What Depends on What?
The order matters: MetaMod:Source loads native extensions, CounterStrikeSharp provides the C# plugin framework, and MatchZy runs as a CounterStrikeSharp plugin. After a CS2 update, the framework versions must match the current server build.
This structure also explains why errors almost always propagate from the bottom up: if MetaMod does not load, CounterStrikeSharp will not start in the first place, and MatchZy will not appear in any plugin list. If you reinstall MatchZy first in that situation, you are fixing the wrong layer. So always work your way up from the lowest level.
Requirements
Before you start, check three things:
- Server access: You need access to the plugin manager in the panel or to the file manager. For the manual method, SFTP access to the game server files is required.
- A current backup: Plugin installations modify
game/csgo/addons/. A backup before the first write operation saves you from a complete reinstall if something goes wrong. - A stopped server: Never write to
addons/while the server is running. Partially written files cause loading errors that are hard to distinguish from real version conflicts.
Installation in the Panel
- Create a backup and stop the server.
- Open the Plugin Manager and install MetaMod:Source first.
- Then install CounterStrikeSharp.
- Start the server once. MetaMod and CounterStrikeSharp must appear in the log without loading errors.
- Stop the server again, install MatchZy, and start it.
- Use
css_plugins listin the server console to check whether MatchZy is loaded.
For manual installation, MetaMod and CounterStrikeSharp belong under game/csgo/addons/; MatchZy is located under game/csgo/addons/counterstrikesharp/plugins/MatchZy/. Use the plugin manager whenever possible so paths and compatible versions are selected automatically.
The intermediate start after step 3 is not an optional extra step. It cleanly separates two sources of errors: if the server already gets stuck here, the issue is with the framework and not with MatchZy. If you install everything in one go and the server no longer starts, you will have to guess afterward which of the three components is responsible.
Basic Commands for a Match
Players use the chat commands:
.ready mark as ready
.unready remove ready status
.pause pause match
.unpause resume match
Depending on the MatchZy configuration, the same commands may also start with !. Admins load a match configuration using the load command provided by MatchZy; check the exact file name in your MatchZy configuration beforehand.
Useful server commands:
status
mp_warmup_end
mp_restartgame 1
changelevel de_mirage
bot_kick
If you want to start matches regularly without console work, the CS2 Match Center with MatchZy is the more convenient option: teams, map, format, and GOTV can be set in the form instead of typing every setting as a command.
Narrowing Down Errors
The three most common symptoms have clearly distinguishable causes:
css_plugins listdoes not recognize the command. CounterStrikeSharp is not loaded. Check the startup log to see whether MetaMod was initialized at all — without MetaMod, there is no CounterStrikeSharp.css_plugins listworks, but MatchZy is missing from the output. The framework and plugin layer are fine, but MatchZy is in the wrong directory or does not match the installed CounterStrikeSharp version.- The server no longer starts after installation. Usually this is a version conflict after a CS2 update. Temporarily remove MatchZy, start the server, and work your way back up.
Always read the startup log from top to bottom. The first Failed, Error, or Exception block identifies the affected layer; everything after that is usually a follow-up error that disappears on its own once the root cause has been fixed.
After a CS2 Update
If plugins suddenly disappear, do not reinstall the entire game server. First check whether MetaMod and CounterStrikeSharp still load, update both frameworks, and then update MatchZy. The first Failed, Error, or Exception block in the startup log usually shows the affected layer.
Valve releases CS2 updates without regard for third-party frameworks. As a result, there may be hours or days between an update and the matching MetaMod or CounterStrikeSharp version. For league matches with a fixed date, it is worth controlling automatic updates deliberately so a server does not switch to a build right before the match for which no compatible plugins exist yet.
FAQ
Do I also need to install SourceMod? Not for MatchZy. MatchZy is built on CounterStrikeSharp. SourceMod is a separate, parallel plugin ecosystem and is not required for this stack.
In what order should I update? Always from bottom to top: first MetaMod:Source, then CounterStrikeSharp, and finally MatchZy. The other way around, the upper plugin loads against a framework that does not yet match the server build.
Why are the chat commands not responding?
Either MatchZy is not loaded — css_plugins list shows that — or your configuration uses a different command prefix. Both .ready and !ready are common.
Can I install plugins while the server is running?
No. Stop the server first. Write operations to addons/ while the process is running create incomplete files and loading errors that look like version conflicts.
Where can I find the official documentation? The installation steps and configuration options for MatchZy are in the MatchZy documentation. For version questions around the Metamod/SourceMod family, the overview of required versions at AlliedModders is the reference.
The server is running, but performance drops during the match. That is not a plugin problem in the strict sense. Check tickrate and server load separately from the plugin stack — there is a separate guide on tickrate and performance on CS2 servers.