Counter-Strike: Global Offensive/Game Modes/Arms Race: Difference between revisions
m (Popcorn moved page Creating a Arsenal: Arms Race Map to CS:GO Game Modes/Arms Race: Applying a consistent name convention.) |
m (Renaming changes.) |
||
Line 1: | Line 1: | ||
{{lang| | {{lang|CS:GO Game Modes/Arms Race}} | ||
{{back|Counter-Strike: Global Offensive Level Creation}} | {{back|Counter-Strike: Global Offensive Level Creation}} | ||
[[File:Csgo icon armsrace.png|left]] | [[File:Csgo icon armsrace.png|left|link=]] | ||
[[File:Csgo icon skirmish armsrace.png|left]] | [[File:Csgo icon skirmish armsrace.png|left|link=]] | ||
'''Arms Race''' (internally: <code>'''gungameprogressive'''</code>) is a [[game mode]] in {{game name|csgo|name=Counter-Strike: Global Offensive}}. | '''Arms Race''' (internally: <code>'''gungameprogressive'''</code>) is a [[game mode]] in {{game name|csgo|name=Counter-Strike: Global Offensive}}. | ||
A map can be launched in this game mode by invoking the console commands <code>game_type 1; game_mode 0; map <mapname></code>, or shorter: <code>map <mapname> gg</code>. See [[CS:GO Game | A map can be launched in this game mode by invoking the console commands <code>game_type 1; game_mode 0; map <mapname></code>, or shorter: <code>map <mapname> gg</code>. See [[CS:GO Game Modes]] for details and tips. | ||
On official servers, Arms Race is played as a skirmish game mode, meaning that additionally, {{ent|sv_skirmish_id|10}} is set, too. This has the side effect that the game mode icon seen in the loading screen has a shield and that the map voting process at the end of the game also "offers" a different [[CS: | On official servers, Arms Race is played as a skirmish game mode, meaning that additionally, {{ent|sv_skirmish_id|10}} is set, too. This has the side effect that the game mode icon seen in the loading screen has a shield and that the map voting process at the end of the game also "offers" a different [[CS:GO Game Modes#Skirmish Modes|war game]]. | ||
{{clr}} | {{clr}} | ||
__TOC__ | __TOC__ | ||
Line 146: | Line 146: | ||
=== Bots === | === Bots === | ||
The current {{csgo mode|Dm}} [[bot]]s can be used in Arms Race, but need a slight modification. When they spawn, they are programmed to buy a weapon and because they can't buy in Arms Race, they get stuck "buying". To overcome this, one could copy and paste <code>csgo/scripts/ai/deathmatch/bt_default.kv3</code>, rename it and remove these lines: | The current {{csgo mode|Dm}} [[bot]]s can be used in Arms Race, but need a slight modification. When they spawn, they are programmed to buy a weapon and because they can't buy in Arms Race, they get stuck "buying". To overcome this, one could copy and paste <code>csgo/scripts/ai/deathmatch/bt_default.kv3</code>, rename it and remove these lines: | ||
{{pre| | |||
{ | { | ||
type = "action_buy" | type {{=}} "action_buy" | ||
}, | }, | ||
}} | |||
</pre> | </pre> | ||
In-game, by setting {{ent|mp_bot_ai_bt|"scripts/ai/deathmatch/<new filename>.kv3"}}, all bots will then use this modified [[CS:GO Bot Behavior Trees|behavior tree]] without getting stuck. | In-game, by setting {{ent|mp_bot_ai_bt|"scripts/ai/deathmatch/<new filename>.kv3"}}, all bots will then use this modified [[CS:GO Bot Behavior Trees|behavior tree]] without getting stuck. |
Revision as of 22:24, 20 February 2022


Arms Race (internally: gungameprogressive
) is a game mode in Template:Game name.
A map can be launched in this game mode by invoking the console commands game_type 1; game_mode 0; map <mapname>
, or shorter: map <mapname> gg
. See CS:GO Game Modes for details and tips.
On official servers, Arms Race is played as a skirmish game mode, meaning that additionally, sv_skirmish_id 10 is set, too. This has the side effect that the game mode icon seen in the loading screen has a shield and that the map voting process at the end of the game also "offers" a different war game.
Game Mode Description
Officially, this game mode plays as follows:
- The game is a single extended round with instant respawn.
- Players start with a weapon and progress to different weapons as they get kills. When a map loads, the game generates a random weapon progression, consisting of 2 sniper rifles, 3 rifles, 1 machine gun, 3 SMGs, 4 pistols, 2 shotguns and the Golden Knife, in this order.
- Killing a player with the knife steals a progression: The killer progresses, the killed loses a progression (assuming he is not at the first weapon).
- The leading player of a team is highlighted to other players and killing him grants an instant progression.
- The first player to get a kill with the golden knife wins the match.
Map Requirements
The only required entities for a map to work in Arms Race are spawn points for each team.
Spawn points
Arms Race uses the normal info_player_(counter)terrorist as well as the info_armsrace_(counter)terrorist entities as player spawns. The spawn priorities of all of these are ignored in Arms Race, so a terrorist will always spawn at a randomly chosen spawnpoint from all existing info_player_terrorists and info_armsrace_terrorists.[confirm]




Modifying Gameplay
Weapon Progressions
ConVar | Default | Description |
---|---|---|
mp_ggprogressive_use_random_weapons
|
1 |
|
mp_ggprogressive_random_weapon_kills_needed
|
2 | If mp_ggprogressive_use_random_weapons is set to 1, this determines the number of kills that a player must make with a weapon to progress to the next (except for the Golden Knife, which requires one kill).
|
sv_ggprogressive_autosniper_first
|
1 | |
sv_ggprogressive_shotgun_last
|
1 |
|
To play with a custom weapon progression, it is suggested to define it in the file csgo/gamemodes_server.txt
, then set mp_ggprogressive_use_random_weapons
to 0 and launch a map in this game mode, see above.
The file csgo/gamemodes_server.txt
could look like this:
"GameModes_Server.txt" { "gameTypes" { // ... "gungame" { "gameModes" { "gungameprogressive" { // ... "weaponprogression_ct" { "ak47" { "kills" "3" } "awp" { "kills" "3" } "knifegg" { "kills" "1" } } "weaponprogression_t" { "ak47" { "kills" "3" } "awp" { "kills" "3" } "knifegg" { "kills" "1" } } } // ... } } // ... } // ... }

// ...
should indicate that there can be much more in it.
weapon_
prefix.Related ConVars
ConVar | Default | Description |
---|---|---|
mp_ggprogressive_healthshot_killcount
|
3 | Grant healthshots in Arms Race after this number of kills. |
mp_ggprogressive_round_restart_delay
|
15 | Number of seconds to delay before restarting a round after a win in Arms Race. ![]() mp_match_restart_delay . |
Disabling Default Spawns using VScript
TYPE <- ScriptGetGameType()
MODE <- ScriptGetGameMode()
if (TYPE == 1 && MODE == 0) // Arms Race uses game_type == 1 and game_mode == 0
{
EntFire("info_player_terrorist", "SetDisabled")
EntFire("info_player_counterterrorist", "SetDisabled")
}
else
{
EntFire("info_player_terrorist", "SetEnabled")
EntFire("info_player_counterterrorist", "SetEnabled")
}
If you want to use the info_armsrace_terrorist and info_armsrace_counterterrorist spawns exclusively, the info_player_terrorist and info_player_counterterrorist entities must be disabled, unless there are none. One way to do this only for Arms Race is writing a VScript such as the one on the right.
- Create a text file with the content shown on the right. Save it at
csgo/scripts/vscripts/
or in a subfolder from there as a.nut
file. - In Hammer, create a logic_script and add this file to its
Entity Scripts
. - In-game, check the console when running the map to see if something goes wrong. If a team is full, there are most likely no valid spawn points for that team.
- When publishing the map, this script must also be packed (see e.g. VIDE).
Bots
The current Deathmatch bots can be used in Arms Race, but need a slight modification. When they spawn, they are programmed to buy a weapon and because they can't buy in Arms Race, they get stuck "buying". To overcome this, one could copy and paste
csgo/scripts/ai/deathmatch/bt_default.kv3
, rename it and remove these lines:
{ type = "action_buy" },
In-game, by setting mp_bot_ai_bt "scripts/ai/deathmatch/<new filename>.kv3", all bots will then use this modified behavior tree without getting stuck.