MikZy is a CounterStrikeSharp plugin for running CS2 matches, scrims, pugs and practice on your own server. It is a customized fork of MatchZy built for game-server hosting. The plugin still loads as MatchZy, so file names, folders, commands and settings (MatchZy.dll, cfg/MatchZy/, matchzy_*) are unchanged.
Looking for the official MatchZy? Use MatchZy by WD-. This fork is an optional alternative for those who want its extra features, for example for tournaments, leagues or community servers. Feature requests and issues are welcome, but there is no guarantee they will be picked up or implemented.
Documentation: https://matchzy.miksen.me/
- Live events API: every round, kill, pause and map result posted as JSON to
matchzy_remote_log_url, for panels, bots and scoreboards. Live events follow Get5's event format by default, so Get5 tooling can read them as is. - Get5 / G5API compatibility: load matches from a URL,
get5_status,get5_endmatch, the Get5 match config format,get5_time_to_start/.addreadytimeand Get5's technical pause rules. - Ready-up options: per-team ready (
matchzy_ready_per_team), join ready mode where nobody types.ready(matchzy_ready_mode 1), and a no-show forfeit when a team is not ready in time. - Advanced stats: HLTV 2.0 rating, KAST, clutches and opening duels, saved to SQLite or MySQL and exported as CSV and JSON.
- Coaches: per-team coach lists in the match config, invisible coach slots and hand-tuned viewing spots per map.
- Pauses: tactical and technical pauses with per-team budgets, overtime timeouts and automatic pausing when a player disconnects.
- In-game menus:
.maadmin menu and a.matchsetupwizard that builds a match without writing JSON. - Game modes: competitive, wingman, rush (3v3) and 1v1, from the match config (
"game_mode"), the.matchsetupwizard or.5v5/.wingman/.1v1. Team size, ready count and live cfg follow the mode. - Practice: grenade history with rethrow, saved and shared lineups shown on the map (
.shownades), bots that shoot back, bot loadouts, path recording with bot replay, a team strategy recorder (.stratrec),.xray, spawns, timers and fast forward. - Server hosting: round backups with a restore picker in
.ma, CSTV demo checks, workshop maps, and optional shutdown when a series ends or the server is empty. - Players vs bots: a match config can put a bot team against an open team of humans.
- Install CounterStrikeSharp on the server.
- Download the latest
MatchZy-<version>.zipfrom the releases page. - Extract it into
game/csgo/and restart the server.
MatchZy writes its config files to csgo/cfg/MatchZy/ on first load (or to csgo/cfg/matchzy/ if that folder already exists). Edit config.cfg there to tune the server.
Optional: install CS2MenuManager (1.0.42 or newer) for the in-game menus. Everything else works without it.
Full guide: Installation
Extract the new zip over the old one and restart. The zip contains nothing under cfg/, so your config files, admins, database settings and saved lineups are never overwritten. New settings are added to the bottom of your config.cfg automatically, and reference copies of the current default cfgs are written to cfg/MatchZy/defaults/ on every load.
To change a few settings of a mode (for example warmup), put only those lines in warmup_override.cfg next to warmup.cfg. MatchZy runs it right after the mode cfg and never writes it, so your changes survive every update.
Details: Updating
| Component | Required | Notes |
|---|---|---|
| CS2 dedicated server | Yes | Linux or Windows. |
| CounterStrikeSharp | Yes | Stock CounterStrikeSharp works. Developed against a .NET 10 build. |
| CS2MenuManager 1.0.42+ | No | Only for .ma, .matchsetup, .nades and .strats. |
| MySQL / MariaDB | No | SQLite is used by default. |
- Commands
- Settings (convars)
- Match config
- Events
- Coaching
- Practice mode
- Game modes
- What's new and the changelog
git clone https://github.com/mrc4tt/MatchZy.git
cd MatchZy
dotnet build -c ReleaseThe output is bin/Release/net10.0/MatchZy.dll with its dependencies. The project compiles against a local CounterStrikeSharp API DLL; point it at yours with -p:CssApiDir=/path/to/CounterStrikeSharp.API/bin/Release/net10.0, and build against the same CounterStrikeSharp version the server runs.
There is no test suite: the plugin only runs inside a CS2 dedicated server, so test changes on a server before opening a pull request.
Need help, found a bug, or have a feature idea? Join the Discord support server:
- Questions and setup help: ask in the support channels on Discord.
- Bug reports: open a GitHub issue, see Reporting bugs below. Discord is fine for a quick check first.
- Feature requests: post them on Discord or open an issue.
Please do not send support requests by direct message. Asking in the public channels means others can help and find the answer later.
Open an issue with the output of css_matchzy_version, your CounterStrikeSharp version and the relevant server console lines. Remove tokens and passwords from logs first.
Based on MatchZy by Shobhit Pathak (WD-).