Creating a Bomb Defusal Map

Bomb Defusal is a scenario for maps that are played with the Classic game modes of Counter-Strike: Source and
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.



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:
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
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.
In Classic Casual game mode, there are up to 10 players on each team.




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.

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
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.

Heist Mode bomb Target
keyvalue (heistbomb
) is an unused value and should be ignored.
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.

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.

mapname.txt
You can ship the file <game>/maps/<mapname>.txt
with your map to display custom text for that map.
The text in that file is displayed as plain text in the UI when choosing a team. See the screenshot on the right.
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:
<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. |

- 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:
orRULESHERE
must be the first word of the text file to deliver the above result!