Skip to content

ReFix v1.22 - Robust VTable Swapping & Steam Matchmaking Stability

Choose a tag to compare

@Coronitaa Coronitaa released this 26 Aug 03:22
· 1 commit to main since this release

ReFix v1.22 Release — Robust VTable Swapping, Steam Matchmaking Stability & Multi-SDK User Resolution

Summary of Changes

This release delivers major architectural stability improvements to the Steam proxy pipeline, resolving internal Steam client handshake loops, fixing interface method hook corruption, and ensuring seamless cross-engine multiplayer connectivity across Unity, Unreal Engine, Godot, and custom C++ titles.


Core Fixes & Architectural Improvements

1. Native VTable Swapping (Eliminated Inline Detours on steamclient64.dll)

  • Replaced MinHook (MH_CreateHook) inline code detours in HookVTableMethod with direct, safe virtual method table pointer swapping via VirtualProtect.
  • Root Cause Resolved: Previously, inline detours placed assembly JMP instructions directly inside steamclient64.dll code segment. This caused Steam internal worker threads, IPC dispatchers, and subroutines to inadvertently trigger proxy handlers, leading to infinite handshake loops and connection drops.
  • Benefit: The binary code of Valve Steam client DLL remains 100% untouched. Internal Steam routines run natively with zero interference, while game-level interface calls are cleanly intercepted.

2. Transparent ISteamMatchmaking::JoinLobby Passthrough

  • Hooked_ISteamMatchmaking_JoinLobby now transparently forwards all join invocations to Valve backend (g_orig_VTable_JoinLobby) without blocking or returning synthetic zeroes on engine-internal calls.
  • Proxy tracking (ReFix_NotifyLobbyID) and rich presence updates trigger exclusively upon valid, confirmed 64-bit Steam lobby handles (hCall != 0).

3. Client-Side Matchmaking Metadata Permissions Guard

  • Removed illegal SetLobbyData calls by joining clients inside ReFix_NotifyLobbyID.
  • Only the lobby owner/creator is permitted to mutate lobby metadata (e.g. game_filter), preventing Steam backend rejection and state desynchronization.

4. Multi-Version SteamWorks Interface Resolution (v013v023)

  • Extended EnsureOriginal() with version fallback arrays for ISteamUser (v014 through v023) and ISteamFriends (v013 through v017).
  • Guarantees reliable detection and capture of the local player real SteamID64 and Persona Name across games built with older or newer Steamworks SDKs.

Package Contents & Binaries

  • ReFix_Release_v1.22.zip containing:
    • steam_api64.dll (v1.22 proxy with native VTable swapping)
    • winmm.dll (Loader + ImGui Server Browser Overlay)
    • EOSSDK-Win64-Shipping.dll & RedboneEOS.dll (Epic Online Services auth proxies)
    • AutoDeploy.bat, DLC_Unlocker.bat, Uninstall_ReFix.bat
    • Complete bin/ tool suite & ReFix.ini configuration template