> ## Documentation Index
> Fetch the complete documentation index at: https://help.freakhosting.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MatchZy: How to Run CS2 Scrims and Matches on Your Server

> Set up MatchZy on a CS2 server: install it with CounterStrikeSharp, add match admins, run scrims with .ready and knife rounds, and use practice mode.

MatchZy is a free CounterStrikeSharp plugin that turns a Counter-Strike 2 server into a match server. To set it up, install **CounterStrikeSharp** on the **Frameworks** page, unarchive the MatchZy release in `game/csgo/` and restart. Players then type `.ready`, a knife round decides sides, and MatchZy records a demo of the match for you.

| Difficulty | Time | Works on | Panel pages |
| - | - | - | - |
| Intermediate | 20 minutes | CS2 with CounterStrikeSharp | **Frameworks**, **Files**, **Server settings** |

## What does MatchZy do?

* **Ready system**: the match starts when enough players type `.ready`.
* **Knife round**: the winners choose their starting side.
* **Pauses**: tactical and technical pauses.
* **Round backups**: go back to the start of a round after a problem.
* **Practice mode**: spawns, bots, grenade rethrows and saved lineups.
* **Demos**: recording starts when the match goes live and stops at the end.
* **Match setups**: team names, whitelists and Get5-style match configs for leagues and tournament panels.

## How to install MatchZy

**1. Install CounterStrikeSharp**

Open **Frameworks** and click **Install CounterStrikeSharp**. Metamod:Source is installed with it. Restart the server. If you installed it a while ago, click **Reinstall** on its card, because MatchZy needs a recent version.

**2. Download MatchZy**

Go to the [MatchZy releases](https://github.com/shobhit-pathak/MatchZy/releases) and download the latest release **without** CounterStrikeSharp, because the panel already installed it.

**3. Upload it**

Click **Files**, open `game/csgo/` and upload the `.zip`. Click **...** next to it and choose **Unarchive**. The `addons` and `cfg` folders merge with yours. See [how to use the file manager](https://help.freakhosting.com/portals/game-panel/how-to-use-the-file-manager.md).

**4. Restart and check**

Restart the server and type `css_plugins list` in the **Console**. **MatchZy** should be in the list. It also appears on the **Plugins** page.

> [!TIP]
>
> Updating MatchZy replaces `cfg/MatchZy/*.cfg`. Put your own settings in the `*_override.cfg` files so updates don't overwrite them.

## How to add MatchZy admins

Admins can force-start, restart and end matches. Choose one way.

**CounterStrikeSharp admins**

Add the admin to `game/csgo/addons/counterstrikesharp/configs/admins.json` with the flags they need, then type `css_admins_reload`. See [how to add admins in CS2](https://help.freakhosting.com/games/counter-strike-2/how-to-add-admins-in-cs2.md).

| Flag | MatchZy access |
| - | - |
| `@css/root` | All admin commands. |
| `@css/config` | Config-related commands. |
| `@custom/prac` | Practice-related commands. |
| `@css/map` | Change map and turn practice mode on or off. |
| `@css/rcon` | `!rcon <command>`. |
| `@css/chat` | `!asay <message>`. |

**MatchZy admins**

Edit `game/csgo/cfg/MatchZy/admins.json`. MatchZy creates it the first time it loads.

```json theme={null}
{
  "76561198000000000": "",
  "76561198000000001": "@css/config @css/map"
}
```

Each key is a SteamID64. An empty value gives access to **all** MatchZy admin commands, including `!rcon`. List flags to limit an admin. Type `.reload_admins` in chat to reload.

> [!WARNING]
>
> `!rcon` gives full control of the server console. Only give unlimited admin to people you trust with your server.

## How to run a scrim with MatchZy

**1. Set a password**

In **Server settings**, set a **Join password** so only the two teams can join. Click **Review and save**, then restart.

**2. Players join**

The server stays in warmup. By default, at least 2 players must be ready to start.

**3. Ready up**

Each player types `.ready` (or `!ready`) in chat.

**4. Knife round**

The knife winners type `.stay` to keep their side or `.switch` to swap.

**5. Play**

The match goes live and recording starts. To play all rounds, for example 24 rounds for practice, an admin types `.playout` before the start.

## MatchZy commands

Use `.` or `!` in chat, for example `.ready` or `!ready`.

### Player commands

| Command | What it does |
| - | - |
| `.ready` / `.r` | Mark yourself ready. |
| `.unready` / `.ur` | Mark yourself not ready. |
| `.pause` | Pause at the next freeze time. |
| `.tech` | Technical pause. |
| `.unpause` | Ask to unpause. Both teams must type it. |
| `.tac` | Tactical timeout. |
| `.stay` / `.switch` | After the knife round: keep or swap sides. |
| `.stop` | Ask to restore the current round's backup. Both teams must type it. |
| `.coach t` / `.coach ct` | Coach a side. `.uncoach` stops. |

### Admin commands

| Command | What it does |
| - | - |
| `.start` | Force-start the match. |
| `.restart` / `.rr` | Reset the match. |
| `.endmatch` | End the match with no winner. |
| `.forcepause` / `.forceunpause` | Pause or unpause; players can't undo it. |
| `.restore <round>` | Go back to the start of a round. |
| `.roundknife` | Turn the knife round on or off. |
| `.playout` | Play all rounds, whoever is winning. |
| `.readyrequired <number>` | How many players must be ready. `0` means everyone connected. |
| `.whitelist` | Turn the whitelist on or off. Add SteamID64s to `cfg/MatchZy/whitelist.cfg`. |
| `.team1 <name>` / `.team2 <name>` | Set team names. |
| `.map <mapname>` | Change the map. |
| `.prac` / `.exitprac` | Start or leave practice mode. |
| `.settings` | Show the current settings. |
| `.asay <message>` | Admin message to everyone. |

## How does MatchZy practice mode work?

An admin types `.prac`. Then use:

| Command | What it does |
| - | - |
| `.spawn <number>` | Go to a competitive spawn of your team. |
| `.bot` / `.nobots` | Add a bot where you stand, or remove all bots. |
| `.rethrow` | Throw your last grenade again. |
| `.last` | Go back to where you threw your last grenade. |
| `.savenade <name>` / `.loadnade <name>` | Save and load a grenade lineup. |
| `.clear` | Remove smokes and fires. |
| `.noflash` | Turn flash immunity on or off. |
| `.timer` | Time something, for example a rotation. |
| `.exitprac` | Leave practice mode and load match mode. |

For a practice server without MatchZy, see [how to set up a CS2 practice server](https://help.freakhosting.com/games/counter-strike-2/setting-up-a-cs2-practice-server-grenade-cams-infinite-ammo.md).

## MatchZy settings and config files

MatchZy's files are in `game/csgo/cfg/MatchZy/`.

| File | What it's for |
| - | - |
| `config.cfg` | MatchZy's settings. Runs when the plugin loads. |
| `config_override.cfg` | Your changes to `config.cfg`. |
| `warmup.cfg`, `knife.cfg`, `live.cfg`, `live_wingman.cfg`, `prac.cfg` | Game settings for each phase. Add your changes to the matching `*_override.cfg`. |
| `admins.json` | MatchZy admins. |
| `whitelist.cfg` | SteamID64s allowed to join when the whitelist is on. |
| `database.json` | Database settings for match stats. |

| Setting | Default | What it does |
| - | - | - |
| `matchzy_knife_enabled_default` | `true` | Knife round on or off. |
| `matchzy_minimum_ready_required` | `2` | Players needed to start. `0` means all connected players. |
| `matchzy_whitelist_enabled_default` | `false` | Whitelist on or off. |
| `matchzy_playout_enabled_default` | `false` | Play all rounds by default. |
| `matchzy_kick_when_no_match_loaded` | `false` | Kick players when no match is loaded. |

To reload after a change, type `exec MatchZy/config.cfg; execifexists MatchZy/config_override.cfg` in the console, or restart. For MySQL stats, create a database on the **Databases** page and use the host shown there, not `127.0.0.1`.

## How does MatchZy record demos?

MatchZy records a demo when the match goes live and stops after the map ends.

**1. Turn on GOTV**

In **Server settings**, click **Open server.cfg**, add `tv_enable 1`, save and restart. Don't put `tv_enable` or `tv_delay` in MatchZy's phase configs, as that causes demo problems.

**2. Find your demos**

Demos are saved in `game/csgo/MatchZy/` by default, named like `{TIME}_{MATCH_ID}_{MAP}_{TEAM1}_vs_{TEAM2}`. Download them with **Files**.

| Setting | What it does |
| - | - |
| `matchzy_demo_path` | Folder for demos, relative to `game/csgo/`. Must end with `/`. |
| `matchzy_demo_name_format` | How demos are named. |
| `matchzy_demo_upload_url` | A web address MatchZy uploads each demo to when recording stops. |

Full documentation is on the [MatchZy website](https://shobhit-pathak.github.io/MatchZy/).

## Frequently asked questions

### Is MatchZy free?

Yes. MatchZy is open source and free to use. You install it yourself with the file manager.

### Why doesn't the match start when everyone types .ready?

Check the number of players required with `.settings`. An admin can change it with `.readyrequired <number>` or force the start with `.start`.

### Does MatchZy work with tournament tools?

Yes. MatchZy accepts Get5-style match configs, which many league and auto-tournament panels use. See the [MatchZy documentation](https://shobhit-pathak.github.io/MatchZy/).

### Where are my MatchZy demos?

In `game/csgo/MatchZy/` unless you changed `matchzy_demo_path`. GOTV must be on (`tv_enable 1`). Delete old demos regularly, as they use disk space.

### Can I use MatchZy and CS2-SimpleAdmin together?

Yes. Both run on CounterStrikeSharp and read the same `admins.json`.

## Related guides

> **[CS2 server guide](https://help.freakhosting.com/games/counter-strike-2/cs2-server-hosting-guide.md)**
>
> Every Counter-Strike 2 guide in one place.

> **[Add admins in CS2](https://help.freakhosting.com/games/counter-strike-2/how-to-add-admins-in-cs2.md)**
>
> admins.json and admin flags.

> **[Record GOTV demos](https://help.freakhosting.com/games/counter-strike-2/how-to-record-gotv-demos-automatically.md)**
>
> Record every match automatically.

> **[CS2 practice server](https://help.freakhosting.com/games/counter-strike-2/setting-up-a-cs2-practice-server-grenade-cams-infinite-ammo.md)**
>
> Grenade trails, infinite ammo and more.

> **[Install CounterStrikeSharp](https://help.freakhosting.com/games/counter-strike-2/how-to-install-counterstrikesharp-on-a-counter-strike-2-server.md)**
>
> The framework MatchZy runs on.

> [!NOTE]
>
> **Reviewed by the FREAKHOSTING team** on 29 October 2026. Game Panel steps were checked on our panel (Counter-Strike 2 with CounterStrikeSharp 1.0.378); game and plugin details follow their official documentation. Steps may differ slightly if the game or its plugins change.

***

***

> [!NOTE]
>
> ### Need Extra Help?
>
> If you encounter any issues, our support team is ready to assist:
>
> * **Live Chat:** Quick assistance via our website.
> * **Support Ticket:** [Open a Ticket](https://freakhosting.com/clientarea/submitticket.php)
> * **Discord:** [Join our Community](https://discord.gg/freakhosting)
> * **Email:** [support@freakhosting.com](mailto:support@freakhosting.com)

> [!TIP]
>
> ### Save on Your Hosting
>
> Ready to upgrade your hosting? Use code **KB20** at checkout for **20% off** your first order!

***

**Last Updated:** October 2026


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.