Creating a Classic Counter-Strike Map: Difference between revisions
Thunder4ik (talk | contribs) m (→Spawn Points: Unicodifying, replaced: [[image: → [[File:) |
(Preparing to add MultiPage.) |
||
Line 1: | Line 1: | ||
{{ | {{langsp}} | ||
This page covers the '''Classic Game Modes''' of {{css|4}} and {{csgo|4}} as well as map requirements. | This page covers the '''Classic Game Modes''' of {{css|4}} and {{csgo|4}} as well as map requirements. | ||
Line 18: | Line 16: | ||
<span style=color:#FFFFFF>'''Elimination Mission'''</span> | <span style=color:#FFFFFF>'''Elimination Mission'''</span> | ||
* {{csgo}} Before match start, there is a warmup period with player respawns. For warmup arenas, see [[Setting up 1v1 Warmup Arenas]]. | * {{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]] | * 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}}. | ||
* During the freezetime, the players can purchase weapons and equipment. After the freezetime, players can move and shoot. | * During the freezetime, the players can purchase weapons and equipment. After the freezetime, players can move and shoot. | ||
* Round-ending objectives are elimination and timeout (draw). | * Round-ending objectives are elimination and timeout (draw). | ||
Line 58: | Line 56: | ||
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. | 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. | ||
{{warning|If you get [[Both Teams are Full error|''The T/CT team is full.'' error]], then it is probably because you either placed no spawn points for that team, or all of them are invalid.}} | {{warning|If you get [[Both Teams are Full error|''The T/CT team is full.'' error]], then it is probably because you either placed no spawn points for that team, or all of them are invalid.}} | ||
{{tip|{{csgo}} If only some of the spawn points shall be used for say 5v5, increase the | {{tip|{{csgo}} If only some of the spawn points shall be used for say 5v5, increase the {{code|Spawn Priority (int)}} keyvalue for all other spawn points. The former are used first, latter are ''only'' used if needed.}} | ||
==== Buyzones ==== | ==== Buyzones ==== | ||
[[Basic Construction|Create one or multiple brushes]] so that each spawn point of one team is touching one, texture them with the | [[Basic Construction|Create one or multiple brushes]] so that each spawn point of one team is touching one, texture them with the {{code|tools/toolstrigger}} texture, select them all and [[Creating Brush Entities|tie them to an entity]] by pressing {{key|Ctrl}}+{{key|T}}. Change the entity class to [[func_buyzone]] and set the {{code|Team Number (int)}} keyvalue ({{code|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. | Do this for the spawn areas of both teams. | ||
Line 80: | Line 78: | ||
== Testing == | == Testing == | ||
You can test your map by launching it with the | You can test your map by launching it with the {{code|[[map (console command)|map]] <mapname>}} command. | ||
{{tip|{{csgo}} All classic game modes use {{ent|game_type|0}} and | {{tip|{{csgo}} All classic game modes use {{ent|game_type|0}} and {{code|game_mode 0-3}}. To quickly load a map in the right one, you can invoke one of the following: | ||
* | * {{code|map <mapname> casual}} | ||
* | * {{code|map <mapname> comp}} (or {{code|style=padding:0|competitive}}) | ||
* | * {{code|map <mapname> scrimcomp2v2}} ({{csgo mode|Wingman}}) | ||
* | * {{code|map <mapname> scrimcomp5v5}} ({{csgo mode|We}}) | ||
}} | }} | ||
Line 96: | Line 94: | ||
! Map Prefix !! Example Filename !! {{csgo}} Scenario Name in Loading Screen (English) | ! Map Prefix !! Example Filename !! {{csgo}} Scenario Name in Loading Screen (English) | ||
|- | |- | ||
| | | {{code|cs_}} || {{code|cs_office.bsp}} || Hostage Scenario Mission | ||
|- | |- | ||
| | | {{code|de_}} || {{code|de_dust2.bsp}} || Bomb Scenario Mission | ||
|- | |- | ||
| ''none of the above'' || | | ''none of the above'' || {{code|test.bsp}} || Elimination Scenario | ||
|} | |} | ||
Line 112: | Line 110: | ||
* [[Nav Mesh Editing]] - Make bots work (better) and add ''Place Names'' | * [[Nav Mesh Editing]] - Make bots work (better) and add ''Place Names'' | ||
* [[mapname.txt]] - Display custom text when loading your map | * [[mapname.txt]] - Display custom text when loading your map | ||
* {{csgo}} [[Choosing Player Models]] - Creating | * {{csgo}} [[Choosing Player Models]] - Creating {{code|<game>/maps/<mapname>.kv}} | ||
* {{csgo}} [[CS:GO Map Publish Tool|Publishing Your Map to the Steam Workshop]] | * {{csgo}} [[CS:GO Map Publish Tool|Publishing Your Map to the Steam Workshop]] | ||
Revision as of 20:21, 9 May 2024
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.



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.


- map <mapname> casual
- map <mapname> comp (or competitive)
- 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 | ![]() |
---|---|---|
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