csgo_gc

[!CAUTION] This project is incomplete and not ready for general use.

What is this?

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, in-process implementation.

Why would you want this?

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.

Current features

Planned features

I'm still looking for the full CS:GO Item Schema. If you have a relatively recent copy of it and are willing to share it, let me know!

Not planned

Installation

Inventory editing

For GUI inventory editors, see https://github.com/mikkokko/csgo_gc/issues/82. For manual editing, there is a guide made by someone else here.

Configuration

See csgo_gc/config.txt for available options.

Building

Requirements:

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.

License

This project is licensed under the 2-Clause BSD License. See LICENSE.md for details.

Credits

Third party dependencies