Creating a Bomb Defusal Map: Difference between revisions
(Overhaul. Investigated mapname.txt, however this section should probably be on a different site.) |
|||
Line 6: | Line 6: | ||
{{warning|Languages pages outdated}} | {{warning|Languages pages outdated}} | ||
'''Bomb Defusal''' | '''Bomb Defusal''' is a scenario for maps that are played with the Classic game modes of {{game link|Counter-Strike: Source}} and {{game link|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 | {{csgo}} Bomb Defusal is also played in Casual, [[Creating a Wingman Map|Wingman]], Weapon Expert, [[Creating a Arsenal: Demolition Map|Demolition]] and [[Creating a Guardian Scenario Map|Guardian]], each with certain deviations from the following game mode description. ''See also: [[CSGO Game Mode Commands|CS:GO Game Mode Commands]].''}} | |||
{{Note | Bomb Defusal maps use the <code>de_</code> prefix in their file name. For example, Dust 2 is named <code>de_dust2.[[bsp]]</code>.}} | |||
== Scenario Description == | |||
== | Officially, the classic game modes play as follows: | ||
[[ | * {{csgo}} 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 [[player]]s 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]] <code>mp_freezetime</code>. | |||
* 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 ==== | ||
The spawn | [[image:csgobuyzones.jpg|thumb|350px|Spawn points and buy zones]] | ||
[[Info_player_counterterrorist]] and [[info_player_terrorist]] entities are used by default to spawn the [[player]]s 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 [[player]]s on each team. | |||
{{csgo}} In Classic Casual [[game mode]], there are up to 10 players on each team. | |||
The | {{Note | Keep spawn point entities away from each other, away from any solid things around it and 16 units above the ground.}} | ||
{{Note | The player width is 32 units, even if [[Hammer]] shows different [[dimensions]] for a player spawn entity!}} | |||
{{Tip | It is a good idea to include 16 spawn points for each team, to work with 32 player servers.}} | |||
{{Tip | | |||
For example, you might have 5 spawn points | {{csgo}} You can use the <code>Spawn Priority (int)</code> keyvalue (<code>priority</code>) 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 | | |||
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 ==== | ==== Buyzones ==== | ||
Create a brush | [[Basic Construction|Create a brush]] so that all spawn points of a team are touching it, and texture it with the <code>tools/toolstrigger</code> texture. Now select the brush, and press {{key|Ctrl}}+{{key|T}} to tie it to an entity. Change the entity class to [[func_buyzone]]. Open the entity properties, and set the <code>Team Number (int)</code> keyvalue (<code>TeamNum</code>) 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 ==== | |||
[[image:csgobombsites.jpg|thumb|right|350px|A [[func_bomb_target]] brush, textured with <code>tools/toolstrigger</code>]] | [[image:csgobombsites.jpg|thumb|right|350px|A [[func_bomb_target]] brush, textured with <code>tools/toolstrigger</code>]] | ||
[[Basic Construction|Create a brush]] textured with <code>tools/toolstrigger</code>, and with it selected, press {{Key|Ctrl}}+{{Key|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 | The <code>Heist Mode bomb Target</code> keyvalue (<code>heistbomb</code>) is an unused value and should be ignored.}} | ||
{{Note | | |||
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_target]]s to the world by selecting them and pressing {{Key|Crtl}} + {{Key|Shift}} + {{Key|W}} and then tieing the brush(es) for '''A''' to an entity using {{Key|Ctrl}} + {{Key|T}}. After that, do the same for '''B'''. Change the entity class for both of them. | |||
}} | |||
{{Placement Tip | Place letter [[overlays]] or [[decal]]s around the bomb site so players can find and identify each site.}} | |||
For example, | ==== 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, [[player]]s 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. | |||
{{Placement 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 == | |||
[[Image:Css_mapname_txt_assault.jpg|thumb|500px|{{css}} The plain text in the file <code>cstrike/maps/cs_assault.txt</code> is shown before players choose a team.]] | |||
[[image:csgoloadscreen.jpeg|thumb|500px|{{csgo}} An edited loading screen. The content of the file <code>csgo/maps/de_testingmap.txt</code> is: | |||
<source> | |||
RULESHERE | |||
</code> | <font color='#727272'>This is an example for the Valve Developer Community</font><font color='#ff9844'> Colored Text! </font> | ||
</source> | |||
]] | |||
You can ship the file <code><game>/maps/<mapname>.txt</code> with your map to display custom text for that map. | |||
{{css}} The text in that file is displayed as plain text in the UI when choosing a team. See the screenshot on the right. | |||
{{ | |||
<code> | {{csgo}} The text in that file is displayed in the loading screen. The HTML tag <code><nowiki><font color='#FFFFFF'>...</font></nowiki></code> can be used for colors. Also, the following formats can be used: | ||
< | {| class="standard-table" | ||
< | |+ CS:GO Loading screen texts for a ''de_'' map | ||
</ | ! <mapname>.txt content | ||
<br> | ! Result (English) | ||
|- | |||
<br> | | <source>COMMUNITYMAPCREDITS: | ||
any other text</source> | |||
| Bomb Scenario Mission<br><br>''#SFUI_Rules_<gamemode>_Loading''<br><br><font color='#727272'>A community map created by:</font><br><font color='#ff9844'>any other text</font> | |||
|- | |||
| <source>RULESHERE | |||
any other text</source> | |||
| Bomb Scenario Mission<br><br>''#SFUI_Rules_<gamemode>_Loading''<br><br>any other text | |||
|- | |||
| <source>any other text</source> | |||
| Loading...any other text | |||
|- | |||
| ''none'' | |||
| YOUR TEXT FILE IS BLANK!<br><br>If you intend for this space to be blank, open up '<font color='#72b4d0'><mapname>.txt</font>', enter a single space and save the file. | |||
|} | |||
{{Note | | |||
* 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 <code>csgo/resource/csgo_<language>.txt</code>. 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 <code>COMMUNITYMAPCREDITS:</code> or <code>RULESHERE</code> '''must''' be the first word of the text file to deliver the above result! | |||
}} | |||
==See also== | == See also == | ||
* [[How To Develop A Map That Works]] | * [[How To Develop A Map That Works]] | ||
* [[Choosing Player Models]] | * [[Choosing Player Models]] |
Revision as of 18:18, 15 August 2021

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!