Auto Tournament

Simulation mode

Test a full tournament with bots instead of real players.

In simulation mode, every match is played by bots. The veto is done automatically. Use it to test your servers, your bracket and your settings before an event.

Only use simulation mode on a test install. It changes how every match on the install is played.

What you need

  • A test install of Auto Tournament.
  • At least one CS2 server with Auto Tournament CS2 (formerly MatchZy Enhanced), added on the Servers page.
  • Teams, or players for a shuffle tournament. The players do not need to be real Steam accounts that join.

Turn it on with the Docker image

Simulation is off in production builds. The published Docker image does not show the Developer / Simulation tab in Settings, so you allow simulation with an environment variable and switch it on with the API.

Allow simulation

Add this line to .env:

.env
MATCHZY_ENABLE_SIMULATION_IN_PROD=true

Recreate the app container

docker compose up -d --force-recreate matchzy-tournament

Create an admin API token

Add an admin token to API_TOKENS in .env and recreate the container again. See API.

Switch simulation on

curl -X PUT http://localhost:3069/api/settings \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"simulateMatches": true, "simulationTimescale": 2}'

Send {"simulateMatches": false} to switch it off again.

Turn it on with a build from source

The local build shows the Developer / Simulation tab and a Dev Tools page, and it allows simulation already.

Clone the repository

git clone https://github.com/Auto-Tournament/auto-tournament.git
cd auto-tournament
cp example.env .env

Fill in .env

Set SESSION_SECRET, SERVER_TOKEN and STEAM_API_KEY in .env.

Build and start

docker compose --env-file .env -f docker/docker-compose.local.yml up -d --build

The local build does not keep the database in a volume. Your data is gone when you remove the containers.

Switch simulation on

Open Settings > Developer / Simulation and turn on simulation.

Speed

Simulation Timescale sets how fast the bots play, from 0.1 to 10. Values above 2 can make bots act strangely. Speeds above 4 need the CS2 plugin 1.4.25 or newer. The value is sent when a match loads, so a change only affects matches that load after it.

For a fast test bracket, create the tournament with Max Rounds per Map set to 4 and overtime set to Disabled – no draws (damage tiebreak). Every map then ends after at most 4 rounds and always has a winner.

The timescale does not change the wait after a series ends. The plugin keeps the server for a while before it resets, and the next match on that server loads after the reset. To keep this short, simulated matches load with mp_match_restart_delay 10, a 10 second series-end kick delay and tv_delay 0, so the demo stops and uploads right away. Real matches keep your own settings.

Start over

On a build from source, Dev Tools has Reset Simulation State. It deletes all matches and stats, and keeps servers, teams, maps and the tournament setup. Then you can start the same tournament again.

On this page