CS2 Server Setup¶
Before you can add servers to the tournament system, you need to install the required plugins on your CS2 dedicated server(s).
Prerequisites¶
Install CounterStrikeSharp¶
Follow the official CounterStrikeSharp getting started guide to install the runtime and dependencies on your CS2 server:
📖 CounterStrikeSharp – Getting Started
After completing the guide, verify the plugin is loaded by typing meta list in your server console. You should see CounterStrikeSharp listed.
Prefer an automated setup?
Use the companion CS2 Server Manager if you want ready-to-go servers (SteamCMD + CounterStrikeSharp + MatchZy + CS2-AutoUpdater). One command deploys 3–5 servers with the correct plugins and webhook configuration—perfect for LANs or first-time server admins.1
Install MatchZy (Modified Version)¶
- Important:
-
Modified MatchZy required
This project ships with a forked version of MatchZy that exposes additional events for full automation.
The upstream MatchZy release does not emit the data we rely on, so make sure every CS2 server installs this modified build.
Download¶
Latest Release: github.com/sivert-io/matchzy/releases
Installation¶
# Navigate to your CS2 server directory
cd /path/to/cs2/game/csgo
# Extract the plugin (it includes the correct folder structure)
unzip MatchZy-*.zip
# Restart your CS2 server
Verify Installation¶
Type css_plugins list in server console. You should see MatchZy by WD- listed.
Expected Structure¶
The plugin zip file already contains the full addons/counterstrikesharp/plugins/MatchZy/ structure, so extracting to csgo/ puts everything in the right place.
Enable RCON¶
Add these to your server's autoexec.cfg or server.cfg:
Security Note: Use a strong, unique RCON password. This password will be stored in the tournament system to communicate with your server.
Configure Webhook URL¶
The system auto-configures webhooks when you load matches, but you need to ensure your CS2 server can reach your tournament system API.
Test connectivity from your CS2 server:
# For Docker (port 3069)
curl http://192.168.1.50:3069/api/events/test
# For local dev (port 3000)
curl http://192.168.1.50:3000/events/test
Should return: {"message":"Test received"}
Firewall Configuration¶
Make sure your CS2 server can reach the tournament system API:
For Docker Setup (port 3069)¶
- Allow outbound connections from CS2 server to tournament system on port 3069
- CS2 server will send webhook events to:
http://your-tournament-ip:3069/api/events/...
For Local Dev (port 3000)¶
- Allow outbound connections from CS2 server to tournament system on port 3000
- CS2 server will send webhook events to:
http://your-tournament-ip:3000/events/...
- Tip:
-
Note
If your tournament system and CS2 servers are on the same private network (e.g.,
192.168.x.x), no additional firewall configuration is usually needed.
Multiple Servers¶
If you're running multiple CS2 servers:
- Install the modified MatchZy plugin on each server
- All servers should use the same RCON password (or you can use different ones)
- Each server will need network access to the tournament system API
- Add each server individually in the tournament system (Admin Tools → Servers)
Troubleshooting¶
Plugin Not Loading¶
Check CounterStrikeSharp is installed:
Should show CounterStrikeSharp.
Check plugin exists:
Should show MatchZy by WD-.
RCON Not Working¶
Test RCON from tournament system:
Should show "succeeded" if connection works.
Webhooks Not Arriving¶
Check the webhook URL in the dashboard Settings:
- Should match your tournament system's public URL or LAN IP
- Docker: typically
https://your-domain.com - Local dev:
http://your-ip:3000
Test from CS2 server:
Should return success message.
Next Steps¶
Once your CS2 server is configured:
👉 Add Your First Server - Add the server to your tournament system
👉 First Tournament Guide - Create your first tournament
-
CS2 Server Manager repository — https://github.com/sivert-io/cs2-server-manager. ↩