Creating a Classic Counter-Strike Map
It is covered here for historical and technical reference.
This page covers the Classic Game Modes of Counter-Strike: Source and Counter-Strike: Global Offensive as well as map requirements.
Casual, Competitive, Wingman and Weapons Expert are the classic game modes in .
See below for instructions on how to load a map in these game modes.
Game Mode Description
The game consists of rounds with a maximum duration. The ways that a round can be won is defined by the map's scenario.
The default scenario is the Elimination Mission. The other two extend the default scenario and eliminate drawn rounds.
Elimination Mission
| |
↓ | ↓ |
Bomb Defusal - basically an Elimination Mission, but:
|
Hostage Rescue - basically an Elimination Mission, but:
|
Map Requirements
A map definitely requires the following to be able to play any classic game mode.
Spawn Points
Create entities and change their classname to either info_player_terrorist or info_player_counterterrorist. This is where players will spawn.
On official maps, the spawn points of each team are not spread among the map but close together in one area. The two 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 Casual, there are up to 10 players on each team.
It is a good idea to include 16 spawn points for each team, to work with 32 player servers, otherwise 5-10 are also sufficient.
Spawn Priority (int)
keyvalue for all other spawn points. The former are used first, latter are only used if needed.Buyzones
Create one or multiple brushes so that each spawn point of one team is touching one, texture them with the tools/toolstrigger
texture, select them all and tie them to an entity by pressing Ctrl+T. Change the entity class to func_buyzone 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(s).
Do this for the spawn areas of both teams.
Map Objectives
A map already works until here, just that it is only an Elimination Mission, meaning that a round can only be won by eliminating the entire enemy team, otherwise the round is drawn. A disadvantage of this is that this encourages passive gameplay to not risk losing the round. To avoid this, there are map objectives so that there is a winning team if the time runs out; This encourages active gameplay for the other team.
You should decide for one of the following:
Competitive Aspects
- The time that players need to reach bomb sites or hostages influences their winning chances, so the spawn point placement can severely impact map balance and can make choke points (meeting points) very engaging.
- 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.
Testing
You can test your map by launching it with the map <mapname>
command.
game_mode 0-3
. To quickly load a map in the right one, you can invoke one of the following:
map <mapname> casual
map <mapname> comp
(orcompetitive
)map <mapname> scrimcomp2v2
( Wingman)map <mapname> scrimcomp5v5
(Weapons Expert)
Miscellaneous
Map Prefix
The map prefix is just a naming convention.[confirm]
The scenario name that is displayed in the loading screen depends only on the prefix of the map file.
Map Prefix | Example Filename | Scenario Name in Loading Screen (English) |
---|---|---|
cs_ |
cs_office.bsp |
Hostage Scenario Mission |
de_ |
de_dust2.bsp |
Bomb Scenario Mission |
none of the above | test.bsp |
Elimination Scenario |
Further Game Modes
There are more game modes such as Wingman, Deathmatch, Retakes, or Guardian that can also be played on classic competitive maps and that only need some (map) adjustments. For a list of all game modes and more, see CS:GO Game Modes.
See also
- How to Develop a Map That Works
- Creating a working mini-map
- Nav Mesh Editing - Make bots work (better) and add Place Names
- mapname.txt - Display custom text when loading your map
- Choosing Player Models - Creating
<game>/maps/<mapname>.kv
- Publishing Your Map to the Steam Workshop