In Valve games, the Game Coordinator (GC) is a backend service most notably responsible for matchmaking and inventory management (like loadouts and skins). This project redirects the GC traffic to a custom, locally running implementation.
While it's still possible to connect CS:GO to CS2's GC by spoofing the version number, this may break in the future if Valve updates the GC protocol. This project aims to restore most GC-related functionality without relying on a centralized server.
- Editable inventory (inventory.txt)
- Item equipping
- Opening cases (including sticker capsules, patch packs, graffiti boxes and music kit boxes)
- Graffiti support
- Weapon StatTrak support
- Stickers and patches
- Name tags
- Works without full Steam API emulation
- Full Windows, Linux and MacOS support
- Functional lobbies
- Dedicated server support
- Networking using Steam's P2P interface
- Configurable probability distributions for case opening (all uniform currently)
- Rest of the core features (trade ups, souvenirs, StatTrak swaps...)
- In-game store
- Graphical inventory editor
- A tool to copy your CS2 inventory over
- Matchmaking (can't be implemented without a centralized server)
- Download the last version of the game before CS2's release using depotdownloader:
731 718406683749122620
732 2224497558453288476
733 7173575548168592307
734 3106517550092294329
740 1512455234357538911
- Download the latest artifacts for your platform from the actions page
- Back up your existing launcher executables as they'll be overwritten (i.e. csgo.exe, srcds.exe, csgo_linux64, etc.)
- Extract the contents of the downloaded archive to your game directory, replace the executables when prompted
- Launch the game. If you get the annoying VAC message box, launch the game with the -steam argument.
Requirements:
- Git
- CMake 3.20 or newer
- C++ compiler with C++17 support (VS 2017 or later, Clang 5 or later, GCC 7 or later)
The game is 32-bit on Windows so you need to build as 32-bit:
cmake -A Win32 -B build
Linux dedicated servers are also 32-bit:
cmake -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 -DCMAKE_ASM_FLAGS=-m32 -B build
On MacOS, you need to build for x86_64 instead of arm64:
cmake -DCMAKE_OSX_ARCHITECTURES=x86_64 -DFUNCHOOK_CPU=x86 -B build
For Linux clients you don't have to specify any additional options.