Installation
Requirements
Section titled “Requirements”| Component | Required | Notes |
|---|---|---|
| CS2 dedicated server | Yes | Linux or Windows. |
| CounterStrikeSharp | Yes | Stock CounterStrikeSharp works. The fork is developed against a .NET 10 CounterStrikeSharp build. |
| CS2MenuManager 1.0.42+ | Optional | Only needed for the in-game menus (.ma, .matchsetup, .nades, .strats); without it those commands reply with a notice. |
| MySQL / MariaDB | Optional | SQLite is used by default and needs no setup. |
Install from the release zip
Section titled “Install from the release zip”Download MatchZy 1.0.24 (.zip) Download Changelog
-
Install CounterStrikeSharp into
game/csgo/addons/counterstrikesharp/. -
Download the latest
MatchZy-<version>.zip(button above, or the releases page). -
Extract the zip into
game/csgo/. It contains:addons/counterstrikesharp/plugins/MatchZy/ # plugin and its dependenciesaddons/counterstrikesharp/gamedata/matchzy.json # signatures used by practice modeThe zip contains nothing under
cfg/. MatchZy writes its cfg files itself on first load, plus reference copies of the defaults incfg/MatchZy/defaults/. -
(Optional) Install CS2MenuManager as its own plugin under
addons/counterstrikesharp/plugins/CS2MenuManager/if you want the in-game menus. -
Restart the server, or run
css_plugins load MatchZy.
On first load MatchZy writes cfg/MatchZy/config.cfg (all settings, with comments), the mode configs (live.cfg, scrim.cfg, prac.cfg, …), admins.json and database.json (SQLite). Edit config.cfg to tune the server; see Configuration.
To update later, see Updating.
Launch options
Section titled “Launch options”Add these to the server’s start command (or the launch options field in your panel):
-dedicated +map de_dust2 +game_type 0 +game_mode 1 -allow_round_backup_files +tv_enable 1 +tv_enable_dynamic 1| Option | Why |
|---|---|
-allow_round_backup_files |
Required for round backups. Without it CS2 writes no backup files and .restore, .ma → Restore Round and crash recovery do not work. |
+tv_enable 1 |
Turns on GOTV so MatchZy can record demos. Can also go in a cfg. See Demos. |
+tv_enable_dynamic 1 |
Recommended: a tv_enable change takes effect right away instead of on the next map, so MatchZy can bring back a kicked CSTV bot mid-map. |
+game_type 0 +game_mode 1 |
Competitive. For wingman, rush and 1v1, MatchZy switches the mode itself. See Game modes. |
+host_workshop_map <id> / +host_workshop_collection <id> |
Optional: start on a workshop map, or make a collection’s maps available to .map ws:<name>. |
Build from source
Section titled “Build from source”git clone https://github.com/mrc4tt/MatchZy.gitcd MatchZydotnet build -c Release# output: bin/Release/net10.0/MatchZy.dll (+ dependencies)Copy the build output to addons/counterstrikesharp/plugins/MatchZy/ and gamedata/matchzy.json to addons/counterstrikesharp/gamedata/.
The project compiles against a local CounterStrikeSharp API DLL. Point it at your own build with -p:CssApiDir=/path/to/CounterStrikeSharp.API/bin/Release/net10.0. Build against the same CounterStrikeSharp version your server runs; a mismatch shows up as MissingMethodException, TypeLoadException or EntryPointNotFoundException at load.
Config folder name
Section titled “Config folder name”MatchZy works with either cfg/MatchZy/ or cfg/matchzy/. It detects which one exists (an exact lowercase matchzy wins) and uses it for every file, and prints the folder it picked in the server log at startup. Keep only one of the two.