This article relates to the game "Counter-Strike: Global Offensive". Click here for more information.

Deathmatch

From Valve Developer Community
Jump to navigation Jump to search
English (en)Translate (Translate)

Counter-Strike: Global Offensive Level Creation
Icon-delisted.png
This page documents information about a game or software, Counter-Strike: Global Offensive Counter-Strike: Global Offensive, that is no longer available for purchase or download digitally.
It is covered here for historical and technical reference.
See also:  Deathmatch Map Design Theory, for deathmatch map design in general
Csgo icon deathmatch.png

Deathmatch is a game mode in Counter-Strike: Global Offensive.

This page is supposed to name technical details as well as useful commands and ConVars available for manipulation for this game mode.

A map is launched in this game mode by invoking game_type 1, game_mode 2 and map <mapname>, or all in one command: map <mapname> dm.

To play the Deathmatch variants Team vs Team or Free For All, you must also set sv_game_mode_flags to 4 or 32, respectively.

Game Mode Description

On official servers, this game mode is played as follows:

  • The game is one perpetual round of 10 minutes where players respawn anywhere on the map.
  • Players make a sound when spawning and are invulnerable for some seconds during which they can buy any primary weapon, any secondary weapon and/or the Zeus x27. The immunity also ends after moving or +attacking.
  • Kills grant points, depending on the weapon type and if it is currently the bonus weapon.
  • Players killing three enemies in a row are given a weapon_healthshot.
  • A player wins by scoring the highest when the game ends.

Map Requirements

info_deathmatch_spawn - When placing these in a map, you might also want to turn off random spawns using an info_map_parameters.

Actually, none.

In maps with no adjustments for Deathmatch, the game uses random spawns across the map. This is OK, and can save the mapper's time. If there are areas where no spawn should be generated, use func_block_dm_spawns brushes.

If you don't want random spawns, create an info_map_parameters entity with the Disable Autogenerated DM Spawns? property set to Yes and place info_deathmatch_spawn entites across the map.
A second option is to use the default spawn points info_player_(counter)terrorist (like in CS:GO/CS2 Competitive Competitive and so on) by setting the Use Normal Spawns in Deathmatch? property to Yes.

PlacementTip.gifPlacement Tip:Spawns points in dead ends might have the disadvantage that other players can hear someone spawning there and camp for them, which can result in a frustrating experience. Also, place spawn points so that the player needn't walk an unnecessarily long way to get to relevant places of action. For example, a Deathmatch spawn point in the depths of T or CT spawn of de_nuke can surely be placed at a better location.
PlacementTip.gifPlacement Tip:Player spawn entities should be placed ~16 units above the ground to avoid players spawning inside the floor. To avoid players spawning inside each other, place at least 10, ideally 32 spawn points. Remember that the player in Counter-Strike: Global Offensive has a width and length of 32 units, whereas Hammer shows a smaller width and length.

Game Mode Settings

The Deathmatch Values refer to csgo/cfg/gamemode_deathmatch.cfg.

Player Spawns

In Deathmatch, the spawning mechanism is mainly manipulated through the ConVar mp_randomspawn, which again is controlled by an info_map_parameters entity.

Console Variable Deathmatch Value Description
dm_reset_spawns ConCommand Removes all info_player_deathmatch entities and re-generates them:

If mp_randomspawn is non-zero and if there is no info_map_parameters entity with the KeyValue disableAutoGeneratedDMSpawns 1 (ignored in CS:GO Guardian Guardian), then the game tries to generate random info_deathmatch_spawns across the Nav Mesh of the map that have the following properties:

  • They have the angles (0,0,0).
  • They do not touch the AABB (!) of func_block_dm_spawns brush entities.
  • Their origins are 16 units above the center of a randomly chosen nav mesh area which...
Note.pngNote:The generated spawns are never saved, so reloading the map or re-generating the spawns with dm_reset_spawns can result in different deathmatch spawns!
In code, the spawn generation is done by the MaintainDMSpawnPopulation function, defined in the cs_nav_mesh.cpp file.
mp_randomspawn 1 Whether the game should generate and use random spawns, i.e. info_deathmatch_spawns. Setting this to a value other than 0 has the same effect as dm_reset_spawns but does not remove existing spawns. The value determines a team that will spawn at these entities. The other players spawn as usual (normally at info_player_(counter)terrorist entities).
  • 0: None
  • 1: Both teams
  • 2: Terrorists
  • 3: Counter-Terrorists
  • other: None
Note.pngNote:By manipulating this ConVar, random spawns and/or Deathmatch spawns can be used in any game mode. In CS:GO Guardian Guardian, this ConVar is set to 3 in Bomb Defusal and to 2 in Hostage Rescue.
mp_randomspawn_dist 0 If greater than 0, a randomly spawning player will, if possible, not be spawned at a spawn point where the smallest distance to another player is smaller than the value of this ConVar.
mp_randomspawn_los 1 If non-zero, a randomly spawning player will, if possible, not be spawned at a spawn point with direct line of sight to another player.


A player's spawn coordinate is chosen with the following priorities. If a priority cannot be met, the next is used. If there is an info_map_parameters entity with the keyvalue usenormalspawnsfordm 1, then the right column is used, otherwise the left.

In Deathmatch, a player spawns at...
Default "Use Normal Spawns in Deathmatch"
  1. The origin of any enabled info_deathmatch_spawn that is not blocked by another player.
  2. The origin of any enabled info_player_terrorist or info_player_counterterrorist (matching the player's team)
    that is not blocked by another player.
  3. The origin of any info_deathmatch_spawn.
  4. (0,0,0) (worldspawn).
  1. The origin of any enabled info_player_terrorist or info_player_counterterrorist (matching the player's team)
    that is not blocked by another player.
  2. The origin of any info_player_terrorist or info_player_counterterrorist (matching the player's team).
  3. (0,0,0) (worldspawn).
Note.pngNote:This might not be 100 % accurate, but too few spawn points definitely cause problems.

Round Settings

Console Variable Deathmatch Value Description
mp_dm_kill_base_score 10 Number of base points to award for a kill in deathmatch. Cheaper weapons award 1 or 2 additional points. The knife awards 10 additional points.
mp_timelimit 10 The time in minutes until the map is changed. If this time is up, the current round is the last. At its end, all players are stopped.
mp_fraglimit 0 If > 0: The number of kills at which the map ends if one team reaches it, no matter the game mode. When reached, all players are stopped.
mp_roundtime 10 The length of a round in minutes.
Note.pngNote:If this value is less than mp_timelimit, the round restarts like in Competitive and there is no proper deathmatch game ending.
mp_match_end_restart 0 At the end of the match, perform a restart instead of loading a new map.
mp_match_restart_delay Not set.
Default: 25
The time in seconds that the end screen of the game is shown.

Equipment

Every player has their own default equipment that they are given post spawn, along with the knife in their loadout or weapon_knife or weapon_knife_t. If the player buys something, their entire (!) previous default equipment is replaced with what they are buying right now.

Note.pngNote:The ConVars mp_t_default_secondary and mp_ct_default_secondary are considered if a player's default equipment does not contain a pistol. All similar ConVars such as mp_t_default_melee and mp_ct_default_melee are not considered.

See weapon_healthshot for ConVars giving players a Medi-Shot.

Console Command Description
cl_dm_buyrandomweapons Players with this set to 1 will automatically receive a random primary and secondary weapon on spawn in deathmatch.
dm_togglerandomweapons Turns random weapons in deathmatch on/off and plays a sound.

Bonus Weapon

There are bonus weapon periods. Active bonus weapon periods are visible as a HUD element on the left on all players' screens. It shows the current period's bonus weapon, remaining time and the amount of bonus points awarded to players making kills with the bonus weapon. There are sounds for the start and end of weapon bonus periods.

Console Variable Deathmatch Value Description
mp_dm_bonus_length_max 30 Maximum time in seconds that the bonus time will last.
mp_dm_bonus_length_min 30 Minimum time in seconds that the bonus time will last.
mp_dm_bonus_percent 50 Percent of the mp_dm_kill_base_score additionally awarded when someone gets a kill with the bonus weapon during the bonus period.
mp_dm_bonus_respawn 0 Determines whether players getting the bonus weapon in deathmatch are respawned with it or just given it directly.
mp_dm_time_between_bonus_max 40 Maximum time in seconds that a bonus time will start after the round start or after the last bonus weapon period.
mp_dm_time_between_bonus_min 30 Minimum time in seconds that a bonus time will start after the round start or after the last bonus weapon period.

Dogtags

See also: item_dogtags.

Dogtags are not enabled by default. They are used in the Hunter-Gatherers and Bounty Hunter skirmish game mode.

  • If mp_dm_dogtag_score is greater than 0, killed enemies will drop dogtags that certain players can pick up.
  • Collecting dogtags awards extra points.
  • Killing enemies with the bonus weapon makes them drop extra dogtags.
Console Variable Default Value Description
mp_dm_dogtag_score 0 Points to award players for picking up a dogtag in deathmatch.
mp_dm_bonusweapon_dogtags 0 Additional dogtags to drop when making a kill with the bonus weapon.
mp_dogtag_pickup_rule 0 Who is eligible to pick up a dogtag:
  • 0: killer only,
  • 1: killer's team,
  • 2: victim's team,
  • 3: killer and victim's team,
  • 4: any.
mp_dogtag_despawn_time 120 The time in seconds that dogtags stay before despawning automatically. 0: infinite.
mp_dogtag_despawn_on_killer_death 1 Determines whether dogtags should despawn when their killer dies.

Team Mode

The team mode is not enabled by default. It is used in the Team vs Team Deathmatch variant (using sv_game_mode_flags), but also in the skirmish game modes Hunter-Gatherers and (unused) Team Deathmatch.

  • Killing enemies is worth team victory points.
  • Killing enemies with the Deathmatch bonus weapon awards additional victory points.
  • The first team to hit the mp_fraglimit with their victory points wins (or the team with the most victory points at the end of the mp_timelimit).
Console Variable Default Value Description
mp_dm_teammode 0 In deathmatch, enables team DM visuals and scoring. (0: personal, 1: team mode, 2: )
Todo: what does 2 do?
mp_dm_teammode_kill_score 1 Team deathmatch victory points to award for killing an enemy.
mp_dm_teammode_bonus_score 1 Team deathmatch victory points to award for kills with bonus weapons.
mp_dm_teammode_dogtag_score 0 Team deathmatch victory points to award for collecting enemy dogtags.

Miscellaneous

Console Variable Deathmatch Value Description
mp_bot_ai_bt "scripts/ai/deathmatch/bt_default.kv3" Uses the specified behavior tree file to drive the bot behavior.
mp_buy_during_immunity 0 When set, players can buy when immune, ignoring buytime. 0 = default. 1 = both teams. 2 = Terrorists. 3 = Counter-Terrorists.
mp_respawn_immunitytime 10 How many seconds after respawn immunity lasts. Set to negative value to disable immunity.
mp_solid_teammates 0 How solid are teammates: 0 = transparent; 1 = fully solid; 2 = can stand on top.
mp_teammates_are_enemies 0 Determines whether teammates are considered enemies, however not making them solid. With this set to 1, the game plays more like free for all.
sv_disable_immunity_alpha 0 If set, clients won't slam the player model render settings each frame for immunity [mod authors use this].
sv_infinite_ammo 2 If set to 1, each player has infinite primary and reserve ammo, meaning they can shoot forever without reloading. If set to 2, each player has infinite reserve ammo, meaning they will have to reload.