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
!ct
or!t
to select a side.
!swap
or !switch
- Elects to swap team side after a knife round win. This can be substituted by
!ct
or!t
to 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_enabled
is 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_ready
number 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
csgo
directory.
get5_loadbackup <filename>
- Loads a match backup, relative to the
csgo
directory. 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)
GET
to the given URL. Requires that the backup system is enabled. You may optionally provide an HTTP header and value pair using theheader name
andheader value
arguments. 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
csgo
directory. The file must contain aGet5MatchTeam
object.
get5_loadmatch_url <url> [header name] [header value]
- Loads a remote (JSON-formatted) match configuration by sending an HTTP(S)
GET
to the given URL. You may optionally provide an HTTP header and value pair using theheader name
andheader value
arguments. 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_maps
or-nm
- The number of maps to play in the series.
- Type: Integer
- Default:
1
-
--players_per_team
or-ppt
- Determines the number of players per team.
- Type: Integer
- Default:
5
or2
(depending on--wingman
)
-
--coaches_per_team
or-cpt
- Determines the maximum number of coaches per team.
- Type: Integer
- Default:
2
-
--matchid
or-id
- The ID of the match.
- Type: String
- Default:
""
-
--skip_veto
or-sv
- Disables the map selection system.
- Type: Boolean (no arguments)
- Default:
false
-
--side_type
or-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_ready
or-cmr
- Determines if coaches must also
!ready
up. - Type:
Boolean
(no arguments) - Default:
false
- Determines if coaches must also
-
--min_players_to_ready
or-mptr
- Determines the minimum number of players that must be present before the
!forceready
command may be used. - Type:
Integer
- Default:
0
- Determines the minimum number of players that must be present before the
-
--min_spectators_to_ready
or-mstr
- Determines the minimum number of spectators that must
!ready
up. - Type:
Integer
- Default:
0
- Determines the minimum number of spectators that must
-
--scrim
or-s
- Configures the match for scrim mode. Cannot be combined with
--team2
. Optionally takes the name of the opposing team as an argument.--team1
defines 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
-
--wingman
or-w
- Configures the match for wingman mode. This sets the default of
--players_per_team
to2
if not provided. - Type:
Boolean
(no arguments) - Default:
false
- Configures the match for wingman mode. This sets the default of
-
--veto_first
or-vf
- Determines the logic for selecting which team gets to pick or ban a map first. Ignored if
--skip_veto
is 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_map
or-cm
- Creates a match on the current map. Cannot be combined with
--num_maps > 1
or--maplist
. - Type:
Boolean
(no arguments) - Default:
false
- Creates a match on the current map. Cannot be combined with
-
--no_series_clinch
or-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
-
--team1
or-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_team
players present. Must not be equal to--team2
. - Type:
String
- Default:
""
- Sets
-
--team2
or-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
-
--maplist
or-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_vertigo
Cannot be used with--current_map
or--map_pool
and 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_sides
or-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_ct
could 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_pool
or-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--maplist
or--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
-
--cvars
or-cv
- Determines which key to read
cvars
from in the cvars file. - Type: String
- Default:
default
- Determines which key to read
-
--match_title
or-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.cfg
approach. The opposing team name defaults toAway
and the map defaults to the current map.matchid
defaults 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_enabled
is 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_auths
is 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_start
orget5_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_forcestart
does 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_config
is defined.pre_veto
The game is in warmup, waiting for players to!ready
for 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!ready
for 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!stay
or!swap
is 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!ready
to 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_game
at 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
scrim
ormanual
if usingget5_scrim
orget5_creatematch
. - The current map number, starting at
0
. You can use this to determine the current map by looking at themaps
array. - The current round number, starting at
0
.-1
ifgamestate
is 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_number
is the array index of the current map. Note:maps
is 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.
target
is the name of the player, their user ID or their Steam ID. Similar to!ringer
in chat. To target a user or Steam ID, prefix it with a#
, i.e.get5_ringer #43
to 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
csgo
directory, defaulting toget5_matchstats.cfg
if no file parameter is provided. If you provide a.json
filename, the stats data will be output in JSON format.
get5_debuginfo [file]
- Dumps debug info to a file, relative to the
csgo
directory, defaulting toaddons/sourcemod/logs/get5_debuginfo.txt
if 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.