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.
| File | Used for |
|---|---|
config.cfg | The plugin runs it when it loads. Put your matchzy_* defaults here. |
database.json | Database settings: SQLite (default) or MySQL. |
admins.json | Steam64 IDs of plugin admins. |
warmup.cfg | Runs when warmup starts. |
knife.cfg | Runs for the knife round. |
live.cfg, live_wingman.cfg | Run when the match goes live, for 5v5 and for Wingman. |
live_override.cfg, live_wingman_override.cfg | Optional. Run after the live config, for your own changes. |
prac.cfg, dryrun.cfg, sleep.cfg | Practice mode, dry run and sleep mode. |
whitelist.cfg, humans.cfg | Used by the whitelist and by the "humans only" helpers. |
savednades.json | Saved 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_configSettings 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
adminslist of the loaded match config. Auto Tournament fills this in. - The player has a matching CounterStrikeSharp permission, or
@css/root, inaddons/counterstrikesharp/configs/admins.json. - The Steam64 ID is in
cfg/MatchZy/admins.json. matchzy_everyone_is_administrue. 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
| Setting | Default | What it does |
|---|---|---|
matchzy_autostart_mode | 1 | Mode after the plugin loads: 0 none, 1 match mode, 2 practice mode. |
matchzy_kick_when_no_match_loaded | false | Kick everyone and block joins while no match is loaded. |
matchzy_knife_enabled_default | true | Play a knife round by default. Admins toggle it with .roundknife. |
matchzy_playout_enabled_default | false | Play all rounds (playout) by default. Admins toggle it with .playout. |
matchzy_whitelist_enabled_default | false | Only allow players from the match config. Admins toggle it with .whitelist. |
matchzy_minimum_ready_required | 0 | Ready players needed to start. 0 means everyone who is connected. |
matchzy_allow_force_ready | true | Allow admins to use .forceready. |
matchzy_reset_cvars_on_series_end | true | Restore settings from the match config cvars block when the series ends. |
Ready and auto-ready
| Setting | Default | What it does |
|---|---|---|
matchzy_autoready_enabled | false | Mark players ready on their own when they join a team. |
matchzy_autoready_start_delay | 5 | Countdown in seconds before the match starts when everyone is auto-ready. |
matchzy_autoready_check_delay | 0.3 | Seconds to wait after a player joins a team before the ready check. |
matchzy_autoready_ready_delay | 2 | Seconds before auto-ready marks a player ready. |
The matchzy_autoready_simulation_* settings are for testing the plugin itself. Leave them off.
Pauses
| Setting | Default | What it does |
|---|---|---|
matchzy_use_pause_command_for_tactical_pause | false | Make .pause a tactical timeout instead of a normal pause. |
matchzy_both_teams_unpause_required | true | Both teams must type .unpause after a player pause. |
matchzy_max_pauses_per_team | 0 | Pauses per team. 0 is no limit. |
matchzy_pause_duration | 0 | Longest pause in seconds. 0 is no limit. |
matchzy_enable_tech_pause | true | Allow .tech. |
matchzy_tech_pause_flag | "" | Permission needed for .tech. Empty means everyone. |
matchzy_tech_pause_duration | 300 | Length of a technical pause in seconds. |
matchzy_max_tech_pauses_allowed | 2 | Technical pauses per team. |
matchzy_stop_command_available | false | Allow .stop to restore the current round. The built-in value is true, the shipped config.cfg turns it off. |
matchzy_stop_command_no_damage | false | Block .stop after a player has damaged the other team. |
matchzy_pause_after_restore | true | Pause the match after a round is restored. |
Side choice, give up and forfeit
| Setting | Default | What it does |
|---|---|---|
matchzy_side_selection_enabled | true | Timer for the side choice after the knife round. When it runs out, the side is picked for the team. |
matchzy_side_selection_time | 60 | Seconds for the side choice. |
matchzy_side_selection_reminder_interval | 10 | Seconds between reminders during the side choice. |
matchzy_gg_enabled | false | Allow .gg, a team vote to give up the match. |
matchzy_gg_threshold | 0.8 | Part of the team that must type .gg (0.0 to 1.0). |
matchzy_gg_min_score_diff | 0 | Rounds a team must be behind before it can use .gg. 0 turns the check off. |
matchzy_ffw_enabled | false | Forfeit a team that fully disconnects. |
matchzy_ffw_time | 240 | Seconds before the missing team forfeits. |
matchzy_ffw_check_interval | 10 | Seconds between forfeit warnings. |
Demos and series end
| Setting | Default | What it does |
|---|---|---|
matchzy_demo_recording_enabled | true | Record a demo when the match goes live. Needs GOTV. |
matchzy_demo_path | MatchZy/ | 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_demo | 5 | Extra seconds before players are kicked at series end, without demos. |
matchzy_series_end_kick_delay_demo_no_upload | 10 | The same, with demos but no upload URL. |
matchzy_series_end_kick_delay_demo_upload | 60 | The 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
| Setting | Default | What 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_delay | 13 | Seconds 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_start | true | Show the MatchZy credits line when the match starts. |
matchzy_center_html_notifications | false | Show important events (match live, pause, side choice) in the center of the screen. |
matchzy_notification_duration_global | 5 | Seconds a center message stays for everyone. |
matchzy_notification_duration_player | 6 | Seconds a center message stays for one player. |
matchzy_enable_damage_report | true | Show 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.
| Setting | Default | What it does |
|---|---|---|
matchzy_warmup_enable | 0 | Turn the settings below on. |
matchzy_warmup_message_html | empty | Center message during warmup. clear removes it. |
matchzy_warmup_respawn | 0 | Respawn after death. |
matchzy_warmup_ignore_win_conditions | 0 | Ignore win conditions. |
matchzy_warmup_roundtime_minutes | 10 | Round time in minutes, 1 to 120. |
matchzy_warmup_startmoney, matchzy_warmup_maxmoney | 16000 | Start money and max money, 0 to 60000. |
matchzy_warmup_buy_anywhere | 0 | Buy anywhere on the map. |
matchzy_warmup_infinite_ammo | 0 | Infinite ammo. |
Practice mode
| Setting | Default | What it does |
|---|---|---|
matchzy_smoke_color_enabled | false | Color smokes by player. |
matchzy_save_nades_as_global_enabled | false | Save lineups for everyone instead of per player. |
matchzy_max_saved_last_grenades | 512 | Grenade 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.
| Setting | What it does |
|---|---|
matchzy_server_id | ID of this server in Auto Tournament. Sent with events and reports. |
matchzy_bootstrap_url, matchzy_bootstrap_token | Setup URL and token. The plugin downloads its setup from there. |
matchzy_remote_log_url | URL for match events. Empty turns events off. |
matchzy_remote_log_header_key, matchzy_remote_log_header_value | Header sent with each event, for example X-MatchZy-Token. |
matchzy_report_endpoint, matchzy_report_token, matchzy_report_server_id | Where to push match reports, and how to sign them. |
matchzy_remote_backup_url, matchzy_remote_backup_header_key, matchzy_remote_backup_header_value | Upload round backups to this URL. Empty turns it off. |
matchzy_events_enabled | Main switch for events and the retry queue. Default true. |
matchzy_event_retry_interval | Seconds between retries of failed events. Default 30. |
matchzy_event_cleanup_interval | Seconds between cleanups of old sent events. Default 3600. |
matchzy_config_scope | Name 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,postgameorerror.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
| Setting | Default | What it does |
|---|---|---|
matchzy_safeautoupdater_enabled | true | Ask Steam if the server is up to date, and report when an update is needed. |
matchzy_safeautoupdater_action | warn_only | warn_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_seconds | 1800 | Seconds 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
| Setting | Default | What it does |
|---|---|---|
matchzy_debug_console | true | Detailed logs in the server console. |
matchzy_debug_chat | false | Debug messages in the game chat. Very noisy. |
matchzy_crash_debug_breadcrumbs | true | Write 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_admin | false | Every 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 trueFast scrims with auto-ready:
matchzy_autoready_enabled true
matchzy_autoready_start_delay 5
matchzy_minimum_ready_required 2Give up and forfeit:
matchzy_gg_enabled true
matchzy_gg_min_score_diff 6
matchzy_ffw_enabled true
matchzy_ffw_time 240