Commands
Admin commands will have a get5_ prefix and must be used in console. Commands intended for general player
usage are created with sm_ prefixes, which means SourceMod automatically registers a ! and . chat version of the
command. (For example: sm_ready in console is equivalent to !ready or .ready in chat).
Client Commands
Please note that these can be typed by all players in chat.
!ready or !r
- Marks the player as ready.
!unready or !notready
- Marks the player as not ready.
!pause or !tac
- Requests a tactical pause.
!unpause
- Requests to unpause the game.
!tech
- Requests a technical pause.
!coach
- Requests to become a coach for your team. If already coaching, this will move you back as a player if possible. Can only be used during warmup.
!stay
- Elects to stay after a knife round win. This can be substituted by
!ctor!tto select a side.
!swap or !switch
- Elects to swap team side after a knife round win. This can be substituted by
!ctor!tto select a side.
!ct
- Used by the team captain to select CT as the starting side during map selection or by any team member to choose the CT side after winning the knife round.
!t
- Used by the team captain to select T as the starting side during map selection or by any team member to choose the T side after winning the knife round.
!stop
- Asks to reload the last match backup file, i.e. restart the current round. The opposing team must confirm before the
round ends. Only works if the backup system is enabled
and
get5_stop_command_enabledis set to1. You can also set a time or damage restriction on the use of this command.
!forceready
- Force-readies your team, marking all players on your team as ready. This requires that your team has at
least
min_players_to_readynumber of players. Access to this command can be disabled withget5_allow_force_ready.
!ringer <target>
- Alias for
get5_ringer.
!scrim
- Alias for
get5_scrim.
!pick <map>
- Picks a map during map selection. Can only be used by the team's captain when it's their turn to pick.
!ban <map>
- Bans a map during map selection. Can only be used by the team's captain when it's their turn to ban.
!surrender or !gg
- Initiates a vote to surrender the current map.
!ffw
- Initiates a countdown to win the series by forfeit (forfeit-win) if the entire opposing team has left the server during the live phase of a map. The countdown is canceled if a player from the leaving team rejoins the server within the grace period.
!cancelffw
- If a timer to win by forfeit was started after a team left the server, this stops that timer.
All aboard!
The !ffw and !cancelffw commands can only be issued by a full team, which is evaluated via
players_per_team. This prevents a player from reversing a team's decision to request or
cancel a forfeit win if the rest of the team left.
!get5
- Opens a menu that allows access to common commands. You can use the menu to start a new match (or scrim), end a match, force teams ready or load a backup.
Customizing Chat Commands
Get5 allows you to customize the chat commands used by players. By default, all of the above commands can be used, but you can define your own set of commands by adding aliases to the chat commands file. This file is empty by default. When you add a new alias for a command, that alias will be the one Get5 uses when it references the command in chat.
If you provide an invalid command (on the right-hand side in the config file), an error will be thrown. Avoid mapping already used commands to other functionality, as it will likely be confusing to players. You may add multiple aliases for a single command, but note that the last alias to be assigned to the command will be the one Get5 uses in chat.
The chat alias file is only loaded once per plugin boot. If you want to reload it, you must reload Get5.
Valid Chat Commands
The follwing strings are valid commands, and are all explained in the list of commands above:
ready, unready, forceready, tech, pause,
unpause, coach, stay, swap, t, ct,
stop, surrender, ffw, cancelffw, ban, pick
Example: addons/sourcemod/configs/get5/commands.cfg
This maps the French word abandon to the surrender command. Get5 will also print !abandon when it references the
surrender command in chat messages. The original commands (!surrender and !gg) will
still work. Do not prefix your alias with ! or . - this is done automatically.
Server/Admin Commands
Please note that these are meant to be used by admins in console. The definition is:
command <required parameter> [optional parameter]
get5_loadmatch <filename>
- Loads a match configuration file (JSON or KeyValue) relative to the
csgodirectory.
get5_loadbackup <filename>
- Loads a match backup, relative to the
csgodirectory. Requires that the backup system is enabled. If you defineget5_backup_path, you must include the path in the filename.
get5_loadbackup_url <url> [header name] [header value]
- Loads a match backup from a remote host by sending an HTTP(S)
GETto the given URL. Requires that the backup system is enabled. You may optionally provide an HTTP header and value pair using theheader nameandheader valuearguments. You should put all arguments inside quotation marks ("").
get5_last_backup_file
- Prints the name of the last match backup file Get5 wrote in the current series, this is automatically updated each time a backup file is written. Empty string if no backup was written.
get5_loadteam <team1|team2|spec> <filename>
- Loads a team section of a match configuration from a file into a team relative to the
csgodirectory. The file must contain aGet5MatchTeamobject.
get5_loadmatch_url <url> [header name] [header value]
- Loads a remote (JSON-formatted) match configuration by sending an HTTP(S)
GETto the given URL. You may optionally provide an HTTP header and value pair using theheader nameandheader valuearguments. You should put all arguments inside quotation marks ("").
Example
With Authorization:
get5_loadmatch_url "https://example.com/match_config.json" "Authorization" "Bearer <token>"
Without custom headers:
get5_loadmatch_url "https://example.com/match_config.json"
SteamWorks required
Loading remote matches requires the SteamWorks extension.
File URL is public!
As the get_status command is available to all clients, be aware that everyone can see the URL of
the loaded match configuration when loading from a remote. Make sure that your match configuration file does not
contain any sensitive information or that it is protected by authorization or is inaccessible to clients.
get5_endmatch [team1|team2]
- Force-ends the current match. The team argument will force the winner of the series and the current map to be set to that team. Omitting the team argument sets no winner (tie). This command can be configured to also kick players.
get5_creatematch [--parameter] [value]
- Creates a new match using a CLI-approach. You can use this command to create almost any kind of match by combining any of the following parameters as arguments. Running this command with no arguments creates a single match (5v5) with the first map pool from your maps file and map selection enabled, as explained by the defaults below.
Single dash is a shorthand & booleans don't take arguments
The parameters all have a double-dash (--num_maps) and a single-dash name (-nm). This is simply to allow you to
shorten the command if you use the CLI often or with automated systems. Boolean switches can be disabled by simply
not passing the parameter as they all default to false.
-
--num_mapsor-nm- The number of maps to play in the series.
- Type: Integer
- Default:
1
-
--players_per_teamor-ppt- Determines the number of players per team.
- Type: Integer
- Default:
5or2(depending on--wingman)
-
--coaches_per_teamor-cpt- Determines the maximum number of coaches per team.
- Type: Integer
- Default:
2
-
--matchidor-id- The ID of the match.
- Type: String
- Default:
""
-
--skip_vetoor-sv- Disables the map selection system.
- Type: Boolean (no arguments)
- Default:
false
-
--side_typeor-st- Determines the behavior for side selection, unless overridden by
--map_sides. - Type:
String; one ofstandard,always_knife,never_knife,random - Default:
standard
- Determines the behavior for side selection, unless overridden by
-
--coaches_must_readyor-cmr- Determines if coaches must also
!readyup. - Type:
Boolean(no arguments) - Default:
false
- Determines if coaches must also
-
--min_players_to_readyor-mptr- Determines the minimum number of players that must be present before the
!forcereadycommand may be used. - Type:
Integer - Default:
0
- Determines the minimum number of players that must be present before the
-
--min_spectators_to_readyor-mstr- Determines the minimum number of spectators that must
!readyup. - Type:
Integer - Default:
0
- Determines the minimum number of spectators that must
-
--scrimor-s- Configures the match for scrim mode. Cannot be combined with
--team2. Optionally takes the name of the opposing team as an argument.--team1defines the home team. This parameter acts a boolean switch if no team name argument is supplied, in which case the opposing team will be unnamed. - Type:
String - Default:
"" / false
- Configures the match for scrim mode. Cannot be combined with
-
--wingmanor-w- Configures the match for wingman mode. This sets the default of
--players_per_teamto2if not provided. - Type:
Boolean(no arguments) - Default:
false
- Configures the match for wingman mode. This sets the default of
-
--veto_firstor-vf- Determines the logic for selecting which team gets to pick or ban a map first. Ignored if
--skip_vetois passed. - Type:
String; one ofteam1,team2,random - Default:
team1
- Determines the logic for selecting which team gets to pick or ban a map first. Ignored if
-
--current_mapor-cm- Creates a match on the current map. Cannot be combined with
--num_maps > 1or--maplist. - Type:
Boolean(no arguments) - Default:
false
- Creates a match on the current map. Cannot be combined with
-
--no_series_clinchor-nsc- Configures the series to play all maps, even if a team has practically won. I.e. plays all 3 maps of a Bo3.
Irrelevant if
--num_maps<= 2. - Type:
Boolean(no arguments) - Default:
false
- Configures the series to play all maps, even if a team has practically won. I.e. plays all 3 maps of a Bo3.
Irrelevant if
-
--team1or-t1- Sets
team1. Must be the key of a team in the teams file. If you omit this and--team2, the match will be created with the current teams, and each team must have--players_per_teamplayers present. Must not be equal to--team2. - Type:
String - Default:
""
- Sets
-
--team2or-t2- Sets
team2. Must be the key of a team in the teams file. Cannot be used with--scrim. Must not be equal to--team1. - Type:
String - Default:
""
- Sets
-
--maplistor-ml- Uses a custom map list instead of the maps from the maps file. Must be a
comma-separated list of map names, i.e.
de_mirage,de_nuke,de_vertigoCannot be used with--current_mapor--map_pooland cannot contain fewer maps than provided to--num_maps. - Type:
String[] - Default:
[]
- Uses a custom map list instead of the maps from the maps file. Must be a
comma-separated list of map names, i.e.
-
--map_sidesor-ms- Presets the sides for each map. Must be a comma-separated list of side options. It does not need to contain as
many parameters as
--num_maps, i.e.team1_ct,team2_ctcould be used for a Bo3, and the side on the last map would be determined by the value of--side_type. - Type:
String[], any of:team1_ct,team2_ct,knife - Default:
[]
- Presets the sides for each map. Must be a comma-separated list of side options. It does not need to contain as
many parameters as
-
--map_poolor-mp- Determines which key to read maps from in the maps file. The selected map pool
cannot contain fewer maps than
--num_maps. Cannot be used with--maplistor--current_map. - Type: String
- Default:
default
- Determines which key to read maps from in the maps file. The selected map pool
cannot contain fewer maps than
-
--cvarsor-cv- Determines which key to read
cvarsfrom in the cvars file. - Type: String
- Default:
default
- Determines which key to read
-
--match_titleor-mt- Sets the title of the match.
- Type: String
- Default:
""
get5_creatematch examples
Bo3 with current teams and map selection, using the default maps from the maps file:
Bo3 with current teams using a specific set of maps:
Single match with specific teams from the teams file and the default maps from the maps file:
A Bo3 scrim against a team named "Heroic" with home team preset to Astralis (from the teams file) and using the default map pool from the maps file:
A single scrim match against an unnamed team with a custom set of cvars (from the cvars file):
A Bo5 from an extended map pool in the maps file and fixed teams from the teams file:
A 1v1 wingman match with current players on the current map:
A Bo3 with current teams, sides and maps already set and a custom title. --skip_veto is not required when
--num_maps is the same as the number of maps provided to --maplist.
get5_scrim [opposing team name] [map name] [matchid]
- Creates a scrim on the current map using the
scrim_template.cfgapproach. The opposing team name defaults toAwayand the map defaults to the current map.matchiddefaults toscrim. You should not provide a match ID if you use the MySQL extension.
Legacy
You should consider using the teams file + get5_creatematch CLI-approach instead of this command.
The same could be accomplished by adding your home team to your teams file and running this command:
get5_creatematch --scrim [opposing team name] --maplist [map name] --matchid [match id] --team1 [home team id]
get5_addplayer <auth> <team1|team2|spec> [name]
- Adds a Steam ID to a team (can be any format for the Steam ID). The name parameter optionally locks the player's name.
get5_addcoach <auth> <team1|team2> [name]
- Adds a Steam ID to a team as a coach. The name parameter optionally locks the player's
name. This requires that
sv_coaching_enabledis enabled and cannot be used in scrim mode.
get5_removeplayer <auth>
- Removes a steam ID from all teams (can be any format for the Steam ID). This also removes the player as
a coach. If
get5_check_authsis set, the player will be removed from the server immediately.
get5_addkickedplayer <team1|team2|spec> [name]
- Adds the last kicked Steam ID to a team. The name parameter optionally locks the player's name.
get5_removekickedplayer
- Removes the last kicked Steam ID from all teams. Cannot be used in scrim mode.
get5_add_ready_time <seconds>
- Adds additional time-to-ready, limited by
get5_time_to_startorget5_time_to_start_veto, depending on the game state. Can only be used during ready-up phases.
get5_forceready
- Marks all teams as ready.
get5_forcestartdoes the same thing.
get5_status
- Replies with JSON formatted match state (available to all clients).
Definition
Properties marked as
undefined are only present if a match configuration has been loaded.
interface StatusTeam {
"name": string, // (11)
"series_score": number, // (12)
"current_map_score": number, // (13)
"connected_clients": number, // (14)
"ready": boolean, // (15)
"side": "t" | "ct" // (16)
}
interface Status {
"plugin_version": string, // (1)
"gamestate": "none" | "pre_veto" | "veto" | "warmup"
| "knife" | "waiting_for_knife_decision"
| "going_live" | "live" | "pending_restore" | "post_game", // (2)
"paused": boolean, // (3)
"loaded_config_file": string | undefined, // (4)
"matchid": string | undefined, // (5)
"map_number": number | undefined, // (6)
"round_number": number | undefined, // (7)
"round_time": number | undefined, // (8)
"team1": StatusTeam | undefined, // (9),
"team2": StatusTeam | undefined, // (10)
"maps": [string] | undefined // (17)
}
- The version of Get5 you are currently running, along with that version's commit.
Example: "0.8.1-8ef7ffa3" - The current state of the game. The definition lists them in the order they would typically occur.
none
No Get5 configuration was loaded and Get5 will only interfere ifget5_autoload_configis defined.pre_veto
The game is in warmup, waiting for players to!readyfor map selection.veto
The game is in warmup with the map selecton phase currently ongoing.warmup
The game is in warmup, waiting for players to!readyfor either the knife-round or live.knife
The knife-round is ongoing.waiting_for_knife_decision
The knife-round has ended and a decision to!stayor!swapis pending.going_live
The countdown to live has begun.live
The game is live.pending_restore
A backup for a different map was loaded and the game is either pending a map change or waiting for users to!readyto restore to a live round.post_game
The map has ended and the countdown to the next map or server config restoration is ongoing. If the server is broadcasting GOTV, it will remain inpost_gameat least until the broadcast has ended. - Whether the game is currently paused.
- The match configuration file currently loaded.
Example: "addons/sourcemod/configs/get5/match_config.json". Note that this points to the URL of the match configuration when a match was loaded usingget5_loadmatch_url. - The current match ID. Empty string if not defined or
scrimormanualif usingget5_scrimorget5_creatematch. - The current map number, starting at
0. You can use this to determine the current map by looking at themapsarray. - The current round number, starting at
0.-1ifgamestateis notlive. - The number of milliseconds elapsed in the current round.
- Describes
team1. - Describes
team2. - The name of the team.
- The current series score; the number of maps won.
- The number of rounds won on the current map.
- The number of currently connected players.
- Whether the team is
!ready. - The side the team is currently on.
- The maps to be played in the series, i.e.
["de_dust2", "de_mirage", "de_nuke"]. Maps are played in the order they appear in this array.map_numberis the array index of the current map. Note:mapsis only present if the maps have been decided (i.e. afterveto).
Example
{
"plugin_version": "0.9.4-8ef7ffa3",
"gamestate": "live",
"paused": false,
"loaded_config_file": "addons/sourcemod/configs/get5/match_config.json",
"matchid": "1743",
"map_number": 1,
"round_number": 14,
"round_time": 14234,
"team1": {
"name": "NaVi",
"series_score": 1,
"current_map_score": 4,
"connected_clients": 5,
"ready": true,
"side": "t"
},
"team2": {
"name": "Astralis",
"series_score": 0,
"current_map_score": 10,
"connected_clients": 5,
"ready": true,
"side": "ct"
},
"maps": [
"de_dust2",
"de_nuke",
"de_inferno"
]
}
get5_listbackups [matchid]
- Lists backup files for the current match or a given match ID if provided. If you define
get5_backup_path, it will only list backups found under that prefix.
get5_ringer <target>
- Adds/removes a ringer to/from the home scrim team.
targetis the name of the player, their user ID or their Steam ID. Similar to!ringerin chat. To target a user or Steam ID, prefix it with a#, i.e.get5_ringer #43to target user ID 43. See this article for details.
User ID vs client index
To view user IDs, type users in console. In this example, 43 is the user ID and 1 is the client index:
get5_dumpstats [file]
- Dumps player stats to a file, relative to the
csgodirectory, defaulting toget5_matchstats.cfgif no file parameter is provided. If you provide a.jsonfilename, the stats data will be output in JSON format.
get5_debuginfo [file]
- Dumps debug info to a file, relative to the
csgodirectory, defaulting toaddons/sourcemod/logs/get5_debuginfo.txtif no file parameter is provided.
get5_test
- Runs get5 tests. This should not be used on a live match server since it will reload a match config to test.
get5_web_available
- Indicates if the Get5 web panel has been installed.