Auto Tournament

Configuration

Config files and all matchzy_ settings of the plugin.

With Auto Tournament you usually do not need this page. Auto Tournament sets up the plugin over RCON when you add a server, and sends your match settings again for each match. Change match settings in Auto Tournament under Settings, not in config.cfg.

Use this page when you want a different default on one server, or when you run the plugin without Auto Tournament.

Config files

The files are in game/csgo/cfg/MatchZy/. With CS2 Server Manager, put your own copies in the overrides folder instead, see Config files and database.

FileUsed for
config.cfgThe plugin runs it when it loads. Put your matchzy_* defaults here.
database.jsonDatabase settings: SQLite (default) or MySQL.
admins.jsonSteam64 IDs of plugin admins.
warmup.cfgRuns when warmup starts.
knife.cfgRuns for the knife round.
live.cfg, live_wingman.cfgRun when the match goes live, for 5v5 and for Wingman.
live_override.cfg, live_wingman_override.cfgOptional. Run after the live config, for your own changes.
prac.cfg, dryrun.cfg, sleep.cfgPractice mode, dry run and sleep mode.
whitelist.cfg, humans.cfgUsed by the whitelist and by the "humans only" helpers.
savednades.jsonSaved grenade lineups from practice mode.

After you edit config.cfg, run this in the server console to load it again without a restart:

matchzy_reload_config

Settings in the cvars block of a match config override config.cfg for that match. With matchzy_reset_cvars_on_series_end true (default), they go back to the old values when the series ends.

Who is an admin

A player can use admin commands if one of these is true:

  • The Steam64 ID is in the admins list of the loaded match config. Auto Tournament fills this in.
  • The player has a matching CounterStrikeSharp permission, or @css/root, in addons/counterstrikesharp/configs/admins.json.
  • The Steam64 ID is in cfg/MatchZy/admins.json.
  • matchzy_everyone_is_admin is true. Use this only for testing.

Commands from the server console and RCON always work.

Settings

The Default column shows the value after the shipped config.cfg has run. Where the plugin code has a different built-in value, the note says so.

Match flow

SettingDefaultWhat it does
matchzy_autostart_mode1Mode after the plugin loads: 0 none, 1 match mode, 2 practice mode.
matchzy_kick_when_no_match_loadedfalseKick everyone and block joins while no match is loaded.
matchzy_knife_enabled_defaulttruePlay a knife round by default. Admins toggle it with .roundknife.
matchzy_playout_enabled_defaultfalsePlay all rounds (playout) by default. Admins toggle it with .playout.
matchzy_whitelist_enabled_defaultfalseOnly allow players from the match config. Admins toggle it with .whitelist.
matchzy_minimum_ready_required0Ready players needed to start. 0 means everyone who is connected.
matchzy_allow_force_readytrueAllow admins to use .forceready.
matchzy_reset_cvars_on_series_endtrueRestore settings from the match config cvars block when the series ends.

Ready and auto-ready

SettingDefaultWhat it does
matchzy_autoready_enabledfalseMark players ready on their own when they join a team.
matchzy_autoready_start_delay5Countdown in seconds before the match starts when everyone is auto-ready.
matchzy_autoready_check_delay0.3Seconds to wait after a player joins a team before the ready check.
matchzy_autoready_ready_delay2Seconds before auto-ready marks a player ready.

The matchzy_autoready_simulation_* settings are for testing the plugin itself. Leave them off.

Pauses

SettingDefaultWhat it does
matchzy_use_pause_command_for_tactical_pausefalseMake .pause a tactical timeout instead of a normal pause.
matchzy_both_teams_unpause_requiredtrueBoth teams must type .unpause after a player pause.
matchzy_max_pauses_per_team0Pauses per team. 0 is no limit.
matchzy_pause_duration0Longest pause in seconds. 0 is no limit.
matchzy_enable_tech_pausetrueAllow .tech.
matchzy_tech_pause_flag""Permission needed for .tech. Empty means everyone.
matchzy_tech_pause_duration300Length of a technical pause in seconds.
matchzy_max_tech_pauses_allowed2Technical pauses per team.
matchzy_stop_command_availablefalseAllow .stop to restore the current round. The built-in value is true, the shipped config.cfg turns it off.
matchzy_stop_command_no_damagefalseBlock .stop after a player has damaged the other team.
matchzy_pause_after_restoretruePause the match after a round is restored.

Side choice, give up and forfeit

SettingDefaultWhat it does
matchzy_side_selection_enabledtrueTimer for the side choice after the knife round. When it runs out, the side is picked for the team.
matchzy_side_selection_time60Seconds for the side choice.
matchzy_side_selection_reminder_interval10Seconds between reminders during the side choice.
matchzy_gg_enabledfalseAllow .gg, a team vote to give up the match.
matchzy_gg_threshold0.8Part of the team that must type .gg (0.0 to 1.0).
matchzy_gg_min_score_diff0Rounds a team must be behind before it can use .gg. 0 turns the check off.
matchzy_ffw_enabledfalseForfeit a team that fully disconnects.
matchzy_ffw_time240Seconds before the missing team forfeits.
matchzy_ffw_check_interval10Seconds between forfeit warnings.

Demos and series end

SettingDefaultWhat it does
matchzy_demo_recording_enabledtrueRecord a demo when the match goes live. Needs GOTV.
matchzy_demo_pathMatchZy/Demo folder, relative to csgo/. Must end with /.
matchzy_demo_name_format{TIME}_{MATCH_ID}_{MAP}_{TEAM1}_vs_{TEAM2}Demo file name without .dem. Also knows {MAPNUMBER}.
matchzy_demo_upload_url""Upload each demo to this URL after the map. Empty turns uploads off.
matchzy_demo_upload_header_key, matchzy_demo_upload_header_value""Optional header sent with the upload.
matchzy_series_end_kick_delay_no_demo5Extra seconds before players are kicked at series end, without demos.
matchzy_series_end_kick_delay_demo_no_upload10The same, with demos but no upload URL.
matchzy_series_end_kick_delay_demo_upload60The same, with demo upload, so the upload can finish.

The series end delays add to mp_match_restart_delay. The next match on the server loads after this wait.

Chat and screen messages

SettingDefaultWhat it does
matchzy_chat_prefix[{Green}MatchZy{Default}]Prefix for plugin chat messages.
matchzy_admin_chat_prefix[{Red}ADMIN{Default}]Prefix for .asay messages.
matchzy_chat_messages_timer_delay13Seconds between reminder messages, such as the list of players who are not ready.
matchzy_hostname_format{TEAM1} vs {TEAM2}Server name during a match. Set "" to keep your own name.
matchzy_match_start_message""Message when the match starts. Use $$$ for a new line.
matchzy_show_credits_on_match_starttrueShow the MatchZy credits line when the match starts.
matchzy_center_html_notificationsfalseShow important events (match live, pause, side choice) in the center of the screen.
matchzy_notification_duration_global5Seconds a center message stays for everyone.
matchzy_notification_duration_player6Seconds a center message stays for one player.
matchzy_enable_damage_reporttrueShow a damage report after each round.

To turn center messages off for one match, add this to the match config:

{ "cvars": { "matchzy_center_html_notifications": 0 } }

Warmup on an idle server

These apply only while no match is loaded. The plugin saves them per server.

SettingDefaultWhat it does
matchzy_warmup_enable0Turn the settings below on.
matchzy_warmup_message_htmlemptyCenter message during warmup. clear removes it.
matchzy_warmup_respawn0Respawn after death.
matchzy_warmup_ignore_win_conditions0Ignore win conditions.
matchzy_warmup_roundtime_minutes10Round time in minutes, 1 to 120.
matchzy_warmup_startmoney, matchzy_warmup_maxmoney16000Start money and max money, 0 to 60000.
matchzy_warmup_buy_anywhere0Buy anywhere on the map.
matchzy_warmup_infinite_ammo0Infinite ammo.

Practice mode

SettingDefaultWhat it does
matchzy_smoke_color_enabledfalseColor smokes by player.
matchzy_save_nades_as_global_enabledfalseSave lineups for everyone instead of per player.
matchzy_max_saved_last_grenades512Grenade history per map and player. 0 turns it off.

Auto Tournament connection

Auto Tournament sets these for you. Set them by hand only without Auto Tournament. See Events and report API.

SettingWhat it does
matchzy_server_idID of this server in Auto Tournament. Sent with events and reports.
matchzy_bootstrap_url, matchzy_bootstrap_tokenSetup URL and token. The plugin downloads its setup from there.
matchzy_remote_log_urlURL for match events. Empty turns events off.
matchzy_remote_log_header_key, matchzy_remote_log_header_valueHeader sent with each event, for example X-MatchZy-Token.
matchzy_report_endpoint, matchzy_report_token, matchzy_report_server_idWhere to push match reports, and how to sign them.
matchzy_remote_backup_url, matchzy_remote_backup_header_key, matchzy_remote_backup_header_valueUpload round backups to this URL. Empty turns it off.
matchzy_events_enabledMain switch for events and the retry queue. Default true.
matchzy_event_retry_intervalSeconds between retries of failed events. Default 30.
matchzy_event_cleanup_intervalSeconds between cleanups of old sent events. Default 3600.
matchzy_config_scopeName that keeps this server's saved settings apart in a shared database. Set it as a start argument, +matchzy_config_scope <name>.

These are read-only status values that Auto Tournament reads:

  • matchzy_tournament_status: idle, loading, warmup, knife, playing, paused, halftime, postgame or error.
  • matchzy_tournament_match: the match that is loaded.
  • matchzy_tournament_next_match: a match that waits for the current series to reset.
  • matchzy_tournament_updated: Unix time of the last status change.

CS2 updates

SettingDefaultWhat it does
matchzy_safeautoupdater_enabledtrueAsk Steam if the server is up to date, and report when an update is needed.
matchzy_safeautoupdater_actionwarn_onlywarn_only only reports. restart kicks players and shuts the server down, but only when no match is running (idle, postgame or error).
matchzy_safeautoupdater_offline_backoff_seconds1800Seconds to wait after a failed check, for servers without internet.

When an update is needed, the plugin writes [MATCHZY_UPDATE_AVAILABLE] to the server log and sends a cs2_update_required event. CS2 Server Manager reads this log line, see Plugins and updates.

Debugging

SettingDefaultWhat it does
matchzy_debug_consoletrueDetailed logs in the server console.
matchzy_debug_chatfalseDebug messages in the game chat. Very noisy.
matchzy_crash_debug_breadcrumbstrueWrite match phase changes to addons/counterstrikesharp/plugins/MatchZy/logs/matchzy_breadcrumbs.log. The built-in value is false, the shipped config.cfg turns it on.
matchzy_everyone_is_adminfalseEvery player is admin. For testing only.

Examples

A tournament server that only accepts loaded matches:

matchzy_autostart_mode 1
matchzy_kick_when_no_match_loaded true
matchzy_demo_recording_enabled true

Fast scrims with auto-ready:

matchzy_autoready_enabled true
matchzy_autoready_start_delay 5
matchzy_minimum_ready_required 2

Give up and forfeit:

matchzy_gg_enabled true
matchzy_gg_min_score_diff 6
matchzy_ffw_enabled true
matchzy_ffw_time 240

On this page