Skip to content

Companion DLL: OnlineFix ​

Early / Unfinished Implementation

The companion DLL feature is still in early development. The [[inject]] array syntax is part of a draft pull request (PR #146) that has not been merged. The OnlineFix companion DLL itself must be built from source with no pre-built releases available. This page is provided for developers who want to experiment with the feature.

This page is located in the Upcoming Features section for a reason — expect breaking changes and incomplete functionality.

For games whose matchmaking runs outside Steam (e.g., Epic Online Services, custom P2P networking), the built-in -onlinefix alone may not be sufficient. The OnlineFix companion DLL (by @Ran-Mewo) fills this gap.

What It Does ​

While OST's built-in -onlinefix spoofs AppID 480 at the Steam client level (enabling Steamworks lobby matchmaking), some games handle matchmaking in-process without going through Steam APIs. The OnlineFix companion DLL is injected directly into the game process to intercept and redirect those calls.

How to Use ​

  1. Build OnlineFix.dll from source (see build instructions below). No pre-built releases are published yet.
  2. Place the DLL in your Steam root directory
  3. Configure in opensteamtool.toml:
toml
[[inject]]
path = "OnlineFix.dll"
when_cmdline = "-onlinefix"
  1. Launch the game with -onlinefix in its Steam launch options

Note

The [[inject]] array syntax is part of a pending pull request (PR #146) and is still in draft. See Upcoming Features for details.

Build Instructions ​

The OnlineFix repo requires:

  • CMake 3.20+
  • Visual Studio 2022 (MSVC x64) — Windows primary build
  • Or mingw-w64 (x86_64-w64-mingw32-*) for cross-compilation on Linux/macOS
powershell
cmake -B build -A x64
cmake --build build --config Release

Output: build/Release/OnlineFix.dll

Relationship to Built-in Online Fix ​

LayerWhat it handles
OST built-inSteam client level — AppID 480 spoofing for Steamworks P2P
OnlineFix DLLProcess level — in-game matchmaking that bypasses Steam (EOS, custom P2P, etc.)

Most games will work with the built-in feature alone. The companion DLL is only needed for titles whose multiplayer implementation does not use Steam APIs.

OpenSteamTool is provided for research and educational purposes only.