Creating a Bomb Defusal Map

From Valve Developer Community
Revision as of 18:18, 15 August 2021 by Popcorn (talk | contribs) (Overhaul. Investigated mapname.txt, however this section should probably be on a different site.)
Jump to navigation Jump to search

Template:Otherlang2

Warning.pngWarning:Languages pages outdated

Bomb Defusal is a scenario for maps that are played with the Classic game modes of Counter-Strike: Source Counter-Strike: Source and Counter-Strike: Global Offensive Counter-Strike: Global Offensive .

This site covers the requirements for a map for this scenario: spawn points and buy zones for each team, and at least one bomb site, but usually two: A and B.

Note.pngNote: Counter-Strike: Global Offensive Bomb Defusal is also played in Casual, Wingman, Weapon Expert, Demolition and Guardian, each with certain deviations from the following game mode description. See also: CS:GO Game Mode Commands.
Note.pngNote: Bomb Defusal maps use the de_ prefix in their file name. For example, Dust 2 is named de_dust2.bsp.

Scenario Description

Officially, the classic game modes play as follows:

  • Counter-Strike: Global Offensive Before match start, there is a warmup period with player respawns. For warmup arenas, see Setting up 1v1 Warmup Arenas.
  • At the beginning of each round, the players spawn at a spawn point of their team. Each round starts with a freezetime where players can neither move nor shoot. Its duration in seconds is set with the ConVar mp_freezetime.
  • During the freezetime, the players can purchase weapons and equipment.
  • After the freezetime, players can move and shoot. Round-ending objectives are bomb explosion, bomb defusal, elimination and timeout. More precisely: Terrorists must plant a bomb (weapon_c4) at a bomb site (func_bomb_target) and wait for it to explode, Counter-Terrorists must stop them from doing so.
  • All players are notified if a bomb has been planted.
  • Players earn money by winning/losing rounds, getting kills, and by planting or defusing the bomb.

Map Requirements

Spawn Points

Spawn points and buy zones

Info_player_counterterrorist and info_player_terrorist entities are used by default to spawn the players of separate teams at the start of each round. Per round, each entity spawns at most one player.

The spawn areas are usually placed opposite each other on the map and should not be visible to each other.

In Classic Competitive, there are only 5 players on each team. Counter-Strike: Global Offensive In Classic Casual game mode, there are up to 10 players on each team.

Note.pngNote: Keep spawn point entities away from each other, away from any solid things around it and 16 units above the ground.
Note.pngNote: The player width is 32 units, even if Hammer shows different dimensions for a player spawn entity!
Tip.pngTip: It is a good idea to include 16 spawn points for each team, to work with 32 player servers.
Tip.pngTip:

Counter-Strike: Global Offensive You can use the Spawn Priority (int) keyvalue (priority) of spawn point entities to determine the order in which they are used to spawn players. Smaller numbers are used before larger numbers. For example, you might have 5 spawn points with priority 0, and the remaining ones with priority 1. The 5 spawns set to 0 will be the only spawn points used in Classic Competitive matches.

Warning.pngWarning:

The number of info_player_terrorist entities on a map is also the maximum number of players on the Terrorist's team. The same applies to info_player_counterterrorist entities and the Counter-Terrorist's team. This can cause Team is full errors when joining a team.

Buyzones

Create a brush so that all spawn points of a team are touching it, and texture it with the tools/toolstrigger texture. Now select the brush, and press Ctrl+T to tie it to an entity. Change the entity class to func_buyzone. Open the entity properties, and set the Team Number (int) keyvalue (TeamNum) to the appropriate team. This decides which teams are able to open the buy menu while touching the previously created trigger volume.

Do this for the spawn areas of both teams.

Bomb sites

A func_bomb_target brush, textured with tools/toolstrigger

Create a brush textured with tools/toolstrigger, and with it selected, press Ctrl+T and change the entity class to func_bomb_target.

Though the official Bomb Defusal maps have two bomb sites, the game mode will work correctly with just one. If a map has no func_bomb_target, no bomb planting is possible by default.

Note.pngNote: The Heist Mode bomb Target keyvalue (heistbomb) is an unused value and should be ignored.
Note.pngNote:

The bombsites are assigned A and B in the order in which their brush(es) were tied to an entity (!). The order in which their classname is changed to func_bomb_target does not affect the labelling! To swap A and B, move both func_bomb_targets to the world by selecting them and pressing Crtl + Shift + W and then tieing the brush(es) for A to an entity using Ctrl + T. After that, do the same for B. Change the entity class for both of them.

PlacementTip.gifPlacement Tip: Place letter overlays or decals around the bomb site so players can find and identify each site.

Balance

  • As the timings to bomb sites are very important in defuse maps, the spawn point placement can severely impact map balance and can make choke points (meeting points) very engaging.
  • In competitive environments random spawns may not be desirable to some players, but can work on some maps. For example, players on the Terrorist's team on de_dust2 can have a good spawn for B or for A long.
  • Bomb sites are located closer to the Counter-Terrorist's spawn area so that they can get into a defensive position before Terrorists arrive.
PlacementTip.gifPlacement Tip: Each bomb site should require two entrances; Mostly, cover is set up at a bomb site so that a player can watch one entrance while being covered from the other.

mapname.txt

Counter-Strike: Source The plain text in the file cstrike/maps/cs_assault.txt is shown before players choose a team.
Counter-Strike: Global Offensive An edited loading screen. The content of the file csgo/maps/de_testingmap.txt is:
RULESHERE

<font color='#727272'>This is an example for the Valve Developer Community</font><font color='#ff9844'> Colored Text! </font>

You can ship the file <game>/maps/<mapname>.txt with your map to display custom text for that map.

Counter-Strike: Source The text in that file is displayed as plain text in the UI when choosing a team. See the screenshot on the right.

Counter-Strike: Global Offensive The text in that file is displayed in the loading screen. The HTML tag <font color='#FFFFFF'>...</font> can be used for colors. Also, the following formats can be used:

CS:GO Loading screen texts for a de_ map
<mapname>.txt content Result (English)
COMMUNITYMAPCREDITS:
any other text
Bomb Scenario Mission

#SFUI_Rules_<gamemode>_Loading

A community map created by:
any other text
RULESHERE
any other text
Bomb Scenario Mission

#SFUI_Rules_<gamemode>_Loading

any other text
any other text
Loading...any other text
none YOUR TEXT FILE IS BLANK!

If you intend for this space to be blank, open up '<mapname>.txt', enter a single space and save the file.
Note.pngNote:
  • The #SFUI_Rules_<gamemode>_Loading mentioned in the table is actually a language and game mode specific string which is looked up from the text file csgo/resource/csgo_<language>.txt. On the screenshot on the right it is the string "Buy new weapons [...] Best out of 15 rounds".
  • The text "Bomb Scenario Mission" is generated from the map prefix "de_". Maps with "cs_" instead generate "Hostage Scenario Mission" and all other map names deliver "Elimination Mission", no matter the actual scenario!
  • The key word COMMUNITYMAPCREDITS: or RULESHERE must be the first word of the text file to deliver the above result!

See also