Configuration
This is a list of all the configuration parameters you can set that change how Get5 behaves.
The Main Config File
The config file is auto-generated on first plugin run, then auto-executed on each plugin start. The file is located here:
You can either set the below parameters in that file, or in the cvars
section of a match config. As mentioned in
the explanation of the match schema, that section will override all other settings.
512 and no more
Note that the maximum length of any config parameter is less than 512 characters. Depending on where these parameters are set, being close to this limit may cause problems. This applies to things like URLs or HTTP headers, so beware of long strings in these cases.
Configuration Files
Game Phases
You should also have four config files. These can be edited, but we recommend not
blindly pasting another config in (e.g. ESL, CEVO). These must only include commands you would run in the console (such
as mp_friendlyfire 1
) and should determine the rules for those three stage of your match. You can
also point to other files by editing the main config file.
cfg/get5/warmup.cfg # (1)
cfg/get5/knife.cfg # (2)
cfg/get5/live.cfg # (3)
cfg/get5/live_wingman.cfg # (4)
- Executed when the warmup or map selection phase begins.
- Executed when the knife-round starts.
- Executed when the game goes live during competitive matches.
- Executed when the game goes live during wingman matches.
Prohibited options
You should avoid these commands in your live, knife and warmup configuration files, as most of these are handled by
Get5 automatically or not suitable for changes based on game phases. Introducing restarts, warmup changes or
GOTV delay modifications can cause problems. If you want to set your tv_delay
or tv_delay1
, do it in
the cvars
section of your match configuration. You should also not manually configure any
parameters related to pausing or teams (names, flags etc.), as all of these are set by Get5 based on the contents of
you match configuration.
// You should *never* change any of these yourself:
mp_do_warmup_period
mp_restartgame
mp_warmup_end
mp_warmup_pausetimer
mp_warmup_start
mp_warmuptime
mp_warmuptime_all_players_connected
mp_endwarmup_player_count
mp_team_timeout_max
mp_team_timeout_time
mp_teamscore_max
mp_teammatchstat_txt
mp_teamprediction_txt
mp_teamprediction_pct
mp_teamname_1/2
mp_teamflag_1/2
mp_teamlogo_1/2
mp_teammatchstat_1/2
mp_teamscore_1/2
tv_delaymapchange
// You can change these (or any other GOTV parameters),
// but don't use live/knife/warmup.cfg to do it:
tv_delay
tv_delay1
tv_enable
tv_enable1
tv_snapshotrate
tv_snapshotrate1
Chat Commands File
Contains custom Get5 chat commands in KeyValues format. The location of this file cannot be configured.
Teams File
The teams file is used to set teams from the !get5
menu or as arguments to --team1
or --team2
when using get5_creatematch
. Any property defined in
the Get5MatchTeam schema (except fromfile
) can be used in this file, but only players
is
required. If you don't set a team name
, the team's key is used in the menu. The default, empty teams file is generated
if the file does not exist. This prevents accidental overwrites when updating the plugin.
You can set the location of the teams file with get5_teams_file
.
Teams file example
This file would allow you to run:
or
{
"navi": {
"name": "Natus Vincere",
"tag": "NaVi",
"flag": "UA",
"logo": "navi",
"players": {
"76561198034202275": "s1mple",
"76561198044045107": "electronic",
"76561198246607476": "b1t",
"76561198121220486": "Perfecto",
"76561198040577200": "sdy"
},
"coaches": {
"76561198013523865": "B1ad3"
}
},
"astralis": {
"name": "Astralis",
"tag": "Astralis",
"flag": "DK",
"logo": "astr",
"players": {
"76561197990682262": "Xyp9x",
"76561198010511021": "gla1ve",
"76561197979669175": "K0nfig",
"76561198028458803": "BlameF",
"76561198024248129": "farlig"
},
"coaches": {
"76561197987144812": "Trace"
}
}
}
Maps File
You can configure sets of map pools to use. The default file covers the competitive map pool, an extended pool and some
Wingman maps. You can add as many sets of map pools as you want. Each key of your pool can be selected
in the !get5
menu or passed to --map_pool
when using
the get5_creatematch
command. You can add workshop maps to this file as well, i.e.
"workshop/1193875520/de_aztec"
.
You can set the location of the maps file with get5_maps_file
. The default map file (example below)
is generated if the file does not exist. This prevents accidental overwrites when updating the plugin.
Maps file example
This file would allow you to run:
{
"default": [
"de_ancient",
"de_anubis",
"de_inferno",
"de_mirage",
"de_nuke",
"de_overpass",
"de_vertigo"
],
"extended": [
"de_ancient",
"de_anubis",
"de_cache",
"de_dust2",
"de_inferno",
"de_mirage",
"de_nuke",
"de_overpass",
"de_train",
"de_vertigo"
],
"wingman": [
"de_shortdust",
"de_boyard",
"de_chalice",
"de_cbble",
"de_inferno",
"de_lake",
"de_overpass",
"de_shortnuke",
"de_train",
"de_vertigo"
]
}
Cvars File
You can configure sets of configuration parameters (cvars
) to use. The default file contains only default
, which is
automatically used in the !get5
menu and as the default --cvars
parameter when
using get5_creatematch
. Anything you put in the default
key is automatically loaded
unless you provide a different --cvars
parameter.
You can set the location of the cvars file with get5_cvars_file
. The default cvars file is
generated if the file does not exist. This prevents accidental overwrites when updating the plugin.
Cvars file example
This file would allow you to run:
default
is required!
Do not remove the default
key. If you don't want to apply any extra cvars
when loading matches from the !get5
menu or when using get5_creatematch
, you should simply leave this object empty ({}
).
Server Setup
get5_server_id
- A string that identifies your server. This is used in temporary and backup files to prevent collisions and added as
a header to demo and backup uploads
and event requests. You should set this if you run multiple servers off the same storage,
such as if using Docker, or if simply want to be able to tell servers apart. This also
defines the
{SERVERID}
substitution and the return value of theGet5_GetServerID
native. Maximum length is 64 characters.Default: "0"
Alphanumeric only and no spaces
If you set a custom server ID, do not use spaces, slashes or any other odd symbols. The value is used in various commands and filenames, so it will cause problems if it contains unexpected symbols.
Server ID could be port number
A good candidate for get5_server_id
would be the port number the server is bound to, since it uniquely identifies
a server instance on a host and ensures that no two instances run with the same server ID at the same time. You
should also not put this parameter in your match configuration cvars
, as those
parameters will be written to backup files, which would mean that loading a backup created on another
server would change the server ID.
get5_kick_immunity
- Whether admins will be immune to kicks from
get5_kick_when_no_match_loaded
.Default: 1
get5_kick_when_no_match_loaded
- Whether to kick all clients and prevent anyone from joining the server if no match is loaded. This can
be suppressed for administrators.
Default: 0
get5_kick_on_force_end
- Whether players are kicked from the server when a match is forcefully ended. This only
applies if players are kicked when no match is loaded.
Default: 0
get5_check_auths
- Whether the Steam IDs from the
players
,coaches
andspectators
sections of a match configuration are used to force players onto teams. Anyone not defined will be removed from the game, or if in scrim mode, put onteam2
.Default: 1
get5_print_update_notice
- Whether to print to chat when the game goes live if a new version of Get5 is available. This only works if
SteamWorks has been installed.
Default: 1
get5_pretty_print_json
- Whether to pretty-print all JSON output. This also affects the output of JSON in the
event system.
Default: 1
get5_autoload_config
- A match configuration file, relative to the
csgo
directory, to autoload when the server starts, when Get5 is reloaded or if no match is loaded when a player joins the server. Set to empty string to disable.Default: ""
get5_reset_cvars_on_end
- Whether the
cvars
of a match configuration as well as the Get5-determined hostname are reset to their original values when a series ends. This also causes team-specific configuration options (name, flag, logo etc.) to be set to empty on match end. You may want to disable this if you only run Get5 on your servers and usecvars
to configure demos, backups or remote URL logging on a per-match basis, as reverting some of those parameters can be problematic.Default: 1
get5_debug
- Enable or disable verbose debug output from Get5. Intended for development and debugging purposes
only.
Default: 0
Match Setup
get5_ready_team_tag
- Adds
[READY]
or[NOT READY]
tags to team names.Default: 1
get5_live_countdown_time
- Number of seconds used to count down when a match is going live.
Default: 10
get5_auto_ready_active_players
- Whether to automatically mark players as ready if they kill anyone in the warmup or map selection
phase.
Default: 0
get5_allow_force_ready
- Whether the
!forceready
command is accessible to players. This does not affect the availability ofget5_forceready
to admins.Default: 1
get5_set_client_clan_tags
- Whether to set client clan tags to player ready status.
Default: 1
get5_time_to_start
- Time (in seconds) teams have to ready up for knife/live before forfeiting the match. Set to zero for no limit. If
neither team becomes ready in time, the series is ended in a tie.
Note that the time to ready for map selection is set separately to allow for
shorter ready-up-periods in multi-map series.
Default: 0
get5_time_to_make_knife_decision
- Time (in seconds) a team has to make a
!stay
or!swap
decision after winning knife round. Cannot be set lower than 10 if non-zero. Set to zero to remove limit.Default: 60
get5_print_damage
- Whether to print damage reports when a round ends. The format is determined
by
get5_damageprint_format
.Default: 0
get5_print_damage_excess
- Whether to include damage that exceeds the remaining health of a player in the chat
report. If enabled, you can inflict more than 100 damage to a player in the damage report. Ignored if
get5_print_damage
is disabled.Default: 0
get5_phase_announcement_count
- The number of times the "Knife" or "Match is LIVE" announcements will be printed in chat. Set to zero to
disable.
Default: 5
get5_team1_color
- The color to use when printing the name of
team1
in chat messages.Default: "{LIGHT_GREEN}"
get5_team2_color
- The color to use when printing the name of
team2
in chat messages.Default: "{PINK}"
get5_spec_color
- The color to use when printing the name of
spectators
in chat messages.Default: "{NORMAL}"
Map Selection
get5_display_gotv_veto
- Whether to wait for map selection to be broadcast to GOTV before changing
map.
Default: 0
get5_mute_allchat_during_map_selection
- Suppresses all chat messages not sent in the team-channel for everyone but the team captains
during map selection.
Default: 1
get5_pause_on_veto
- Whether to freeze players during the map selection phase.
Default: 1
get5_time_to_start_veto
- Time (in seconds) teams have to ready up for map selection before forfeiting the match. Set to zero for
no limit. If neither team becomes ready in time, the series is ended in a tie.
Default: 0
get5_veto_countdown
- Time (in seconds) to countdown before the map selection process commences. Set to zero to move to veto
without a countdown.
Default: 5
Pausing
get5_pausing_enabled
- Whether tactical pauses are available to clients or not.
Default: 1
get5_max_pauses
- Number of tactical pauses a team can use. Set to zero to remove limit.
Default: 0
get5_max_pause_time
- Maximum number of seconds the game can spend under tactical pause for a team. When pauses are
unlimited and when
get5_fixed_pause_time
is zero, both teams must call!unpause
to continue the match. This parameter is ignored ifget5_fixed_pause_time
is set to a non-zero value. Set to zero to remove limit.Default: 0
get5_fixed_pause_time
- If non-zero, the fixed length in seconds of all tactical pauses. This takes precedence over
the
get5_max_pause_time
parameter, which will be ignored. Cannot be set lower than 15 seconds if non-zero.Default: 60
get5_allow_unpausing_fixed_pauses
- Whether fixed-duration tactical pauses can be stopped early if both teams choose
to
!unpause
.Default: 1
get5_allow_technical_pause
- Whether technical pauses are available to clients or not.
Default: 1
get5_allow_pause_cancellation
- Whether a pending pause can be canceled by the pausing team using
!unpause
before freezetime begins.Default: 1
get5_max_tech_pauses
- Number of technical pauses a team is allowed to have. Set to zero to remove
limit.
Default: 0
get5_tech_pause_time
- If non-zero, number of seconds before any team can call
!unpause
to end a technical pause without confirmation from the pausing team. Set to zero to remove limit.Default: 0
get5_auto_tech_pause_missing_players
- The number of players that must disconnect from a team during the live phase of a game in order to trigger an
automatic technical pause.
players_per_team
is used to determine what is considered a full team, so if these parameters are equal (typically 5), a pause is triggered if an entire team leaves. Set to zero to disable.Default: 0
If I just want to pause if a team is empty?
If you always want the pause to trigger if an entire team disconnects, regardless of team size, you can
set get5_auto_tech_pause_missing_players
to a large value, as setting it
to a value larger than players_per_team
behaves as if it was set to that value.
Auto-pausing is always enabled
If you set get5_auto_tech_pause_missing_players
to a non-zero value, a
technical pause will be started regardless of the configuration of get5_pausing_enabled
or get5_allow_technical_pause
. This allows you to automatically enable technical
pauses without letting players initiate them on their own.
Automatic tech pauses are still limited by get5_max_tech_pauses
, so you can set that to a
non-zero value to prevent abuse.
get5_reset_pauses_each_half
- Whether tactical pause limits (time used and count) are reset each halftime period.
Technical pauses are not reset.
Default: 1
Surrender & Forfeit
get5_surrender_enabled
- Whether the
!surrender
command is available.Default: 0
get5_surrender_minimum_round_deficit
- The minimum number of rounds a team must be behind in order to initiate a vote
to surrender. This cannot be set lower than
1
.Default: 8
get5_surrender_required_votes
- The number of votes required to surrender as a team. If set to
1
or below, any attempt to surrender will immediately succeed. This value is practically limited to the value ofplayers_per_team
.Default: 3
get5_surrender_time_limit
- The number of seconds a team has to vote to surrender after the first vote is
cast. This cannot be set lower than
10
.Default: 15
get5_surrender_cooldown
- The minimum number of seconds a team must wait before they can initiate
a surrender vote following a failed vote. Set to zero to disable.
Default: 60
get5_forfeit_enabled
- Whether the
!ffw
command is available if one team leaves and whether an automatic forfeit is triggered if both teams leave.Default: 1
get5_forfeit_countdown
- Sets the number of seconds players have to rejoin the server once a forfeit timer
has started. This value cannot be set lower than 30.
Default: 180
Backup System
get5_backup_system_enabled
- Whether the backup system is enabled. This is required for the use of the
!stop
command as well as theget5_loadbackup
command.Default: 1
get5_stop_command_enabled
- Whether the
!stop
command is enabled.Default: 1
get5_stop_command_no_damage
- Whether the
!stop
command becomes unavailable after a player takes damage during a round. Only damage from one team to another counts (no friendly fire, no fall damage etc.). The command may still be used by admins via console at any time (sm_stop
).Default: 0
get5_stop_command_time_limit
- The number of seconds into a round after which the
!stop
command can no longer be used. The command may still be used by admins via console at any time (sm_stop
). Set to zero to remove the limit.Default: 0
get5_max_backup_age
- Number of seconds before a Get5 backup file is automatically deleted. If you define
get5_backup_path
, only files in that path will be deleted. Set to zero to disable.Default: 160000
get5_backup_path
- The folder of saved backup files, relative to the
csgo
directory. You can use the{MATCHID}
variable, i.e.backups/{MATCHID}/
. Required folders will be created if they do not exist.Default: ""
Slash, slash, hundred-yard dash
It is very important that your backup path does not start with a slash but instead ends with a slash. If
not, the last part of the path will be considered a prefix of the filename and things will not work correctly. Also
note that if you use the {MATCHID}
variable, automatic deletion of backups
does not work.
backups/
backups/{MATCHID}/
/backups/
/backups/{MATCHID}
get5_remote_backup_url
- If defined, Get5 will automatically send backups to this URL in an HTTP
POST
request. If no protocol is provided,http://
will be prepended to this value. Requires the SteamWorks extension.Default: ""
get5_remote_backup_header_key
- If this and
get5_remote_backup_header_value
are defined, this header name and value will be used for your backup upload HTTP request.Default: "Authorization"
get5_remote_backup_header_value
- If this and
get5_remote_backup_header_key
are defined, this header name and value will be used for your backup upload HTTP request.Default: ""
Formats & Paths
get5_format_map_names
- Whether to format known map names in chat and menus, i.e.
de_mirage
becomesMirage
.Default: 1
get5_time_format
- Date and time format string. This determines the
{TIME}
tag.Default: "%Y-%m-%d_%H-%M-%S"
get5_date_format
- Date format string. This determines the
{DATE}
tag.Default: "%Y-%m-%d"
Advanced users only
Do not change the time format unless you know what you are doing. Please always include a component of hours,
minutes and seconds in your get5_time_format
so that demo files will not be overwritten.
You can find the reference for formatting a time string here. The
default example above prints time in this format: 2022-06-12_13-15-45
.
get5_event_log_format
- Format to write event logs to. Set to empty string to disable writing event logs.
Default: ""
get5_stats_path_format
- Path where stats are output on each map end. Set to empty string to
disable.
Default: "get5_matchstats_{MATCHID}.cfg"
get5_hostname_format
- The hostname to apply to the server. State substitutes can be used.
If
get5_reset_cvars_on_end
is enabled, the hostname will be reverted to its original value when the series ends. The hostname is updated on every round start to allow for the use of team score substitutes. Set to an empty string to disable changing the hostname.Default: "Get5: {TEAM1} vs {TEAM2}"
get5_message_prefix
- The tag applied before plugin messages. Note that at least one character must come before
a color modifier.
Default: "[{YELLOW}Get5{NORMAL}]"
get5_damageprint_format
- Formatting of damage reports in chat on round end. Ignored
if
get5_print_damage
is disabled.
Default: "- [{KILL_TO}] ({DMG_TO} in {HITS_TO}) to [{KILL_FROM}] ({DMG_FROM} in {HITS_FROM}) from {NAME} ({HEALTH} HP)"
Damage report example
The default example above prints the following to chat on round end and includes information about kills, deaths, assists and flash assists.
{KILL_TO}
becomes a green X
for a kill or a yellow A
or F
for assist or flash assist, respectively.
{KILL_FROM}
is similar to {KILL_TO}
, but the X
value is red (indicating a player killed you).
No attribution replaces {KILL_TO}
and/or {KILL_FROM}
with a white dash: -
.
[Get5] Team A 1 - 0 Team B
- [X] (100 in 3) to [A] (44 in 1) from Player1 (0 HP) # - Killed this player, they assisted in killing you.
- [F] (0 in 0) to [X] (56 in 2) from Player2 (0 HP) # - Killed by this player, flash assisted in killing them.
- [-] (0 in 0) to [-] (0 in 0) from Player3 (84 HP) # - No interaction, this player survived.
- [A] (73 in 2) to [-] (0 in 0) from Player4 (0 HP) # - Assisted in killing this player.
- [-] (30 in 1) to [-] (0 in 0) from Player5 (0 HP) # - Dealt damage to this player, not enough for assist.
Config File Locations
get5_live_cfg
- Config file executed when the game goes live, relative to
csgo/cfg
.Default: "get5/live.cfg"
get5_live_wingman_cfg
- Config file executed when the game goes live, relative to
csgo/cfg
, but for wingman mode.Default: "get5/live_wingman.cfg"
get5_warmup_cfg
- Config file executed in warmup periods, relative to
csgo/cfg
.Default: "get5/warmup.cfg"
get5_knife_cfg
- Config file executed for the knife round, relative to
csgo/cfg
.Default: "get5/knife.cfg"
get5_teams_file
- Location of the JSON teams file. Relative
to
csgo/cfg
.Default: "get5/teams.json"
get5_maps_file
- Location of the JSON maps file. Relative
to
csgo/cfg
.Default: "get5/maps.json"
get5_cvars_file
- Location of the JSON cvars file. Relative
to
csgo/cfg
.Default: "get5/cvars.json"
Demos
get5_demo_upload_url
- If defined, Get5 will automatically send a recorded demo to this URL in an HTTP
POST
request once a recording stops. If no protocol is provided,http://
will be prepended to this value. Requires the SteamWorks extension.Default: ""
get5_demo_upload_use_put
- If enabled, the demo upload HTTP request will use
PUT
instead ofPOST
.Default: 0
get5_demo_upload_timeout
- The HTTP timeout of the demo upload request, in seconds.
Default: 180
get5_demo_upload_header_key
- If this and
get5_demo_upload_header_value
are defined, this header name and value will be used for your demo upload HTTP request.Default: "Authorization"
get5_demo_upload_header_value
- If this and
get5_demo_upload_header_key
are defined, this header name and value will be used for your demo upload HTTP request.Default: ""
get5_demo_delete_after_upload
- Whether to delete the demo file from the game server after
successfully uploading it to a web server.
Default: 0
get5_demo_path
- The folder of saved demo files, relative to the
csgo
directory. You can use the{MATCHID}
and{DATE}
variables, i.e.demos/{DATE}/{MATCHID}/
. Much likeget5_backup_path
, the path must not start with a slash, and must end with a slash. Required folders will be created if they do not exist.Default: ""
get5_demo_name_format
- Format to use for demo files when recording matches. Do not include a file extension (
.dem
is added automatically). If you do not include the{TIME}
tag, you will have problems with duplicate files if restoring a game from a backup. Note that the{MAPNUMBER}
variable is not zero-indexed. Set to empty string to disable recording demos.Default: "{TIME}_{MATCHID}_map{MAPNUMBER}_{MAPNAME}"
Team score is always zero
While it may be tempting to use the {TEAM1_SCORE}
and {TEAM2_SCORE}
variables in the demo name; note that this file is created as the match begins, so the score will always be zero at
that stage.
Events
get5_remote_log_url
- The URL to send all events to. Requires the SteamWorks
extension. Set to empty string to disable.
Default: ""
get5_remote_log_header_key
- If this and
get5_remote_log_header_value
are defined, this header name and value will be used for your event HTTP requests.
Default: "Authorization"
**
get5_remote_log_header_value
- If this and
get5_remote_log_header_key
are defined, this header name and value will be used for your event HTTP requests.Default: ""
Substitution Variables
Match/State Substitutes
Various configuration parameters, such as the file format parameters or the get5_hostname_format
option, take
placeholder strings that will be replaced by meaningful values when printed. Note that these are case-sensitive, so
{Mapname}
would not work.
{TIME}
- The current time, determined by
get5_time_format
.
{DATE}
- The current date, determined by
get5_date_format
.
{MAPNAME}
- The pretty-printed name of the map, i.e. Dust II for
de_dust2
.
{MAPNUMBER}
- The map number being played. Note: Not zero-indexed!
{MAXMAPS}
- The maximum number of maps in the series, i.e.
3
for a Bo3.
{MATCHID}
- The match ID.
{TEAM1}
- The name of
team1
.
{TEAM2}
- The name of
team2
.
{TEAM1_SCORE}
- The score of
team1
on the current map.
{TEAM2_SCORE}
- The score of
team2
on the current map.
{MATCHTITLE}
- The title of the current match.
{SERVERID}
- The value provided to the
get5_server_id
parameter.
Colour Substitutes
These variables can be used to color text in the chat. You must return to {NORMAL}
(white)
after using a color variable.
Example: This text becomes {DARK_RED}red{NORMAL}, while {YELLOW}all of this will be yellow
.
{NORMAL}
{DARK_RED}
{PINK}
{GREEN}
{YELLOW}
{LIGHT_GREEN}
{LIGHT_RED}
{GRAY}
{ORANGE}
{LIGHT_BLUE}
{DARK_BLUE}
{PURPLE}
{GOLD}