Customized MatchZy fork for CS2 competitive servers. Adds a remote log API, G5API compatibility, auto changelevel, advanced stats, a coach system, pause overhauls, and in-game admin and match-setup menus.
Type in chat with a dot prefix (the ! / css_ prefixes work too, e.g. !ready / css_ready).
Help & admin (admins only):
.help- commands available in the current phase..mhelp- summary of admin commands..ma/.matchadmin- in-game admin menu (needs CS2MenuManager)..matchsetup- in-game match-setup wizard (needs CS2MenuManager)..map <name/id>- change map (name or workshop id; auto-yields to a dedicated map plugin if one is installed).- Match flow:
.match,.scrim,.prac,.dry,.warmup, and the ready commands (.ready/.r,.forceready).
- CS2 dedicated server (Windows/Linux)
- CounterStrikeSharp: the plugin framework. This fork targets API 1.0.369 on .NET 10.0.
- CS2MenuManager (1.0.42+): OPTIONAL, required only for the in-game menus. The
.matchadmin/.maadmin menu and the.matchsetupwizard use itsWasdMenuUI. MatchZy loads and runs normally without it; only those two menu commands are unavailable and will reply with a notice instead. Install it if you want the in-game menus.
- Install CounterStrikeSharp into the server at
game/csgo/addons/counterstrikesharp/. - (Optional, for the in-game menus) Install CS2MenuManager as a separate shared plugin at
game/csgo/addons/counterstrikesharp/plugins/CS2MenuManager/. Download the latest release from its releases page. Skip this if you do not use.matchadmin/.matchsetup. - Build this plugin:
dotnet build -c Release
- Copy the build output (
bin/Release/net10.0/MatchZy.dlland its dependencies) to:game/csgo/addons/counterstrikesharp/plugins/MatchZy/ - Copy
gamedata/matchzy.jsonto the CounterStrikeSharp gamedata directory:(The releasegame/csgo/addons/counterstrikesharp/gamedata/matchzy.json.zipalready includes it at this path.) - Restart the server, or run
css_plugins reload MatchZy.
MatchZy resolves a few game functions by key from CounterStrikeSharp's gamedata (CounterStrikeSharp merges every *.json in its gamedata/ directory). The shipped gamedata/matchzy.json provides them, so nothing needs to be added to the core gamedata.json. The required keys (linux + windows signatures) are:
CCSGameRules_PostCleanUp-.breakrestore(respawn breakable props in practice).CSmokeGrenadeProjectile_Create,CHEGrenadeProjectile_Create,CMolotovProjectile_Create,CDecoyProjectile_Create- practice grenade rethrow (.rt/.last/.back).
Signatures shift when Valve updates CS2. If a rethrow or .breakrestore stops working after a game update, regenerate the signatures for the new libserver.so (Linux) / server.dll (Windows) and update gamedata/matchzy.json. Missing or stale keys degrade gracefully (the feature no-ops), they do not crash the plugin.
Note on CS2MenuManager: it is a build-time NuGet reference but only a runtime dependency of the menu commands. The menu assembly is resolved lazily on first use, so the plugin loads without it and only
.matchadmin/.matchsetupare affected. If you install it, place it before MatchZy in the load order.