Auto Tournament

Install

Install and update the plugin on a CS2 server.

If you use CS2 Server Manager, it installs and updates the plugin for you. You can skip this page.

What you need

  • A CS2 dedicated server (Steam app 730), up to date.
  • Metamod:Source.
  • CounterStrikeSharp. Use the build "with runtime" if .NET 8 is not installed on the machine.
  • An RCON password, so Auto Tournament can control the server.
  • GOTV on (tv_enable 1) if you want demos.

Install

Install Metamod:Source and CounterStrikeSharp

Install both on the server and check that CounterStrikeSharp loads. Follow the CounterStrikeSharp guide for this.

Metamod version

The newest Metamod builds (from 2026-09-08) do not work with the current CounterStrikeSharp release. The server log then shows Plugin uses old SourceHook Metamod build. Use Metamod 2.0.0.1411 until CounterStrikeSharp is updated.

Download and copy the plugin

The release zip has one top folder, MatchZy-<version>/. Copy what is inside that folder into the server's game/csgo/ folder. Change VERSION to the latest release and CS2_DIR to your server path:

VERSION=1.4.33
CS2_DIR=/home/steam/cs2
curl -L -o /tmp/MatchZy.zip "https://github.com/Auto-Tournament/cs2-plugin/releases/download/v${VERSION}/MatchZy-${VERSION}.zip"
unzip -q -o /tmp/MatchZy.zip -d /tmp
cp -r "/tmp/MatchZy-${VERSION}/." "${CS2_DIR}/game/csgo/"

You now have:

  • game/csgo/addons/counterstrikesharp/plugins/MatchZy/MatchZy.dll
  • game/csgo/cfg/MatchZy/

Set RCON

Set an RCON password in the server config, for example in game/csgo/cfg/server.cfg:

rcon_password "a-long-random-password"

Restart and check

Restart the server. In the server console, run:

css_plugins list

MatchZy must be in the list. The plugin still uses that name. If it is missing, check that CounterStrikeSharp loads first.

Add the server to Auto Tournament

Add the server with its host, game port and RCON password. See Connect a CS2 server.

Several servers on one database

The plugin keeps stats and its saved settings in a database. The default is one SQLite file per server. Several servers can also share one MySQL database. If you do not need shared stats, one SQLite file per server is simpler.

To share one MySQL database:

Use version 1.4.28 or newer

Use version 1.4.28 or newer on every server. Older versions stored the settings once per database. The servers then overwrote each other's settings, and Auto Tournament saw one server several times.

Point the plugin at MySQL

Set the database in game/csgo/cfg/MatchZy/database.json on each server:

game/csgo/cfg/MatchZy/database.json
{
  "DatabaseType": "MySQL",
  "MySqlHost": "192.168.1.20",
  "MySqlDatabase": "matchzy",
  "MySqlUsername": "matchzy",
  "MySqlPassword": "change-me",
  "MySqlPort": 3306
}

Give each server a scope name

Add a scope name to the start arguments of each server. Use a different name on each server:

+matchzy_config_scope cs2-server-1

The start argument is better than setting it in config.cfg, because it is read before any config runs. CS2 Server Manager 1.7.8 and newer adds this argument for you.

Restart and retry

Restart the servers. The plugin logs the scope at startup, for example [ConfigScope] Using scope 'cs2-server-1' (from start argument). Then click Retry on each server on the Servers page.

Update

Save your config files

Save your own cfg/MatchZy/database.json and cfg/MatchZy/config.cfg if you changed them. The zip contains default copies that overwrite them.

Copy the new release

Download the new release and copy it the same way as in Download and copy the plugin.

Put your files back

Copy your saved database.json and config.cfg back into cfg/MatchZy/.

Restart the server

Restart the server, then click Refresh Status on the Servers page in Auto Tournament.

Use the same version on all servers. Auto Tournament shows Version mismatch when servers run different versions.

Versions before 1.4.28 wrote the token to the log

Older versions wrote the Auto Tournament server token in plain text to the server log. If you shared logs from an older version, set a new SERVER_TOKEN in .env, recreate the app container, and click Retry on each server.

On this page