Skip to content

GT-610/csgo-gc

 
 

Repository files navigation

csgo_gc

Caution

This project is under active development and is approaching stability, but issues may still exist. Back up your game files before installation.

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

  • Editable inventory (inventory.txt)
  • Live inventory updates while the game is running
  • Item equipping and loadout updates
  • Opening cases, sticker capsules, patch packs, graffiti boxes, music kit boxes and souvenir packages
  • Souvenir item generation
  • Stickers and patches
  • Name tags
  • Graffiti support
  • Music kits
  • Weapon StatTrak support
  • Music kit StatTrak support, including round MVP count propagation
  • Storage Units
  • StatTrak Swaps
  • Trade ups
  • In-game store purchases
  • Read-only inventory consistency diagnostics
  • Source RCON-compatible local control interface
  • Parameterized RCON item creation for paint kits, wear, seed, StatTrak, music kits, sprays, stickers and custom names
  • Works without full Steam API emulation
  • Full Windows, Linux and macOS support
  • Functional lobbies
  • Dedicated server support
  • Functional server browser (only shows csgo_gc servers by default)
  • Networking using Steam's P2P interface

Planned features

  • More validation and polish for edge-case inventory operations
  • Tooling around live inventory editing

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!

Currently not planned

  • Matchmaking (can't be implemented without a centralized server, possibly will be considered in the future)

Installation

See User Guide.

Inventory editing

Inventory can still be edited offline through inventory.txt. For manual editing, there is a guide made by someone else here. For GUI editors, see this issue.

The local RCON interface can also create and remove items while the game is running. This is intended for scripts and GUI editors that want to avoid the old edit-file-and-restart workflow.

See Souvenir Packages for tournament attributes, examples for different Major eras, manual inventory.txt editing, and an explanation of how package loot lists differ from souvenir sticker metadata.

Configuration

See Configuration for available options.

Supplemental server-only loot lists that are missing from the client schema are stored in csgo_gc/gc_loot_lists.txt. An external loot list can include an item_sets block to reuse collections from items_game.txt without duplicating every item in the collection.

RCON

RCON is disabled by default and binds to localhost with the default configuration; the actual listen address is controlled by bind_address. It uses the Source RCON binary protocol, so existing Source RCON clients can be used.

See RCON user guide for protocol details, configuration, supported parameters and error formats.

Building

See Building for building instructions.

License

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

Credits

  • Mikko Kokko - Original author
  • Theeto - Code reused from the predecessor project, unusual loot lists
  • GT610 (GT-610) - Fork deveopment
  • Contributors who continued inventory, networking, diagnostics and RCON work after the original upstream changes

Third party dependencies

About

Intelligent Game Coordinator for CS:GO (Fork, active dvelopment)

Topics

Resources

License

Stars

14 stars

Watchers

2 watching

Forks

Packages

 
 
 

Contributors

Languages

  • C++ 86.8%
  • C 12.7%
  • CMake 0.5%