CS:GO Game Mode - Retakes
Retakes is a game mode in Counter-Strike: Global Offensive where Terrorists defend a planted bomb against Counter-Terrorists.
This game mode features loadout cards that are dealt to players before each round starts.
This document describes how you can add proper Retakes support to your bomb scenario maps, as well as how to customize the cards in your game.
- 1 Gamemode Description
- 2 How do I add proper Retakes support to an existing bomb scenario map?
- 3 How do I customize my deck of cards?
- 4 Other Console Commands
On official servers, this gamemode is basicly like the Casual gamemode, but with the following differences:
- There are 3 Terrorists playing against 4 Counter-Terrorists.
- Each round, the Terrorists already spawn on a bombsite and the Counter-Terrorists spawn around it. One Terrorist holds the bomb and plants the bomb automatically, so that the bomb has been planted exactly when the freezetime ends. The planter cannot stop himself from planting. The bomb is planted even without players on the Terrorists' team.
- During freezetime, players can neither shoot nor drop weapons. The Terrorists, except the planter, can already move during freezetime, but are restricted by blockers that disappear when the freezetime ends.
- The buy menu is replaced with loadout cards that players are shown during freezetime. When picking one, they get the specified loadout. Opening the buy menu will show the cards again for a new choice. If the freezetime ends without a player's choice, he gets a random one of these cards. This is always the case for bots. The MVP of the last round gets an additional grenade in one of his cards.
- During warmup, players respawn and can choose between four cards: an upgraded pistol round card, a full buy round card, the enemy card and the bonus card, see below. As bots don't pick a card, they have no gun during warmup, except they pick one up.
Game mode ConVars
You can use the provided gamemode_retakecasual.cfg file as a baseline for your Retakes server.
How do I add proper Retakes support to an existing bomb scenario map?
Retakes works on any map with two bomb spots, even without special entities: The players will spawn on opposite bombsites (within a radius of about 256 units from the bombsite's center) and no one can move nor shoot in the freezetime while the bomb is planted.
However, the placement of players and bombs will follow a best effort algorithm that might yield unfair setups. In order to provide the best experience for players, the following entities should be added and configured on your bomb scenario map:
- Brushes that restrict Terrorist movement while the bomb is planted.
- A list of spawn points for both Terrorists and Counter-Terrorists.
- A list of bomb plants and their weight, which is how likely they're supposed to happen during a match.
Movement blockers for Terrorists
If there are blockers for the current bombsite, Retakes allows Terrorists to move around during round setup.
Use Hammer to create func_brush entities that block passages around both bomb sites, name them either retake.asite or retake.bsite and make sure they start disabled. The game automatically removes them after the bomb is planted and the round starts.
tools/wrongway_timermaterial to display the new Retakes icon, similar to the
tools/wrongwaymaterial, which fades into view.
List of spawn points and bomb plant locations
Alongside your map's bsp file you should create a file named
mapname_retake.txt, located at
You can copy one of the active duty maps' files, rename it, and edit its contents accordingly.
The syntax for each spawn point is:
"<id>" "<x> <y> <z> <pitch> <yaw> <roll>"
<id> can be any string, just be sure not to use any of them multiple times, as the last of them overwrites the first. For simplicity, you can use indices (0, 1 , 2, ...) just like Valve.
The other values can be obtained in-game using
getpos on your console.
At the start of each round, the game will choose the spawn points for each player randomly with equal probability from the corresponsing list, using each
<id> at most once.
If there are less spawn points than players, the game generates more.
The syntax for each bomb plant spot is:
"<id>" "<weight> <x> <y> <z> <pitch> <yaw> <roll>"
There's an additional weight factor, indicating how often this bomb plant location occurs during a match. For example, if you have a bomb plant location with a weight of 1, and another with a weight of 10, the latter is 10 times more likely to occur during a retakes match than the former. If all bomb plant locations have the same weight, they are all equally likely to be picked during a match.
getposto obtain a position, subtract 64 units from the
<z>coordinate, otherwise the bomb will float at head height.
If any information is missing, the game will do a best-effort algorithm to generate spawn points, but it is not guaranteed to produce fair results.
How do I customize my deck of cards?
The deck of cards for player loadouts can be customized using specific ConVars. The game comes with a default deck of cards that has been tested on all active duty maps.
Card deck ConVars
The card distribution has the following system: Each round, the round type determines a deck of cards that each teams gets. These cards are distributed to all players within each team. There are the following round types:
|Round(s)||Round Type||Card Deck ConVars|
|1||Default Pistol Round|
|2||Upgraded Pistol Round|
|3||Light Buy Round|
|4, 5, ...||Full Buy Round|
Each of these ConVars is a
<deck string> with special characters that determine the deck of cards for the given round type and team.
<deck string>s have the same syntax:
||This number indicates the number of defuse kits available for this round type. These will be randomly assigned to players on the team in question.|
||This is the number of cards from a group that is added to the deck of a team. Each card of the group can be added multiple times. Example: The card group |
||Any syntax errors in a card make it invalid. Invalid cards have no title and provide only a P250.|
||This string is the card title. It can contain spaces if the whole command expression is quoted. It makes sense to use string tokens here, for example |
||These characters are either |
||This is a comma-separated list of weapons and grenades that a card provides. The first one in this list will be displayed with a big image, subsequent items are shown as pictograms below. If the first one is not a pistol, a card with this will also give a player his default pistol. If multiple weapons for the same slot are given, all but the first are dropped. An |
|secondary||Glock-18 / USP-S / P2000||Dual Berettas||P250||Tec-9 / CZ75-Auto / Five-SeveN||Desert Eagle / R8 Revolver||nothing|
|heavy||Nova||XM1014||Sawed-Off / MAG-7||M249||Negev||nothing|
|smg||MAC-10 / MP9||MP7 / MP5-SD||UMP-45||P90||PP-Bizon||nothing|
|rifle||Galil AR / FAMAS||AK-47 / M4A4 / M4A1-S||SSG 08||SG 553 / AUG||AWP||G3SG1 / SCAR-20|
|grenade||Molotov / Incendiary Grenade||Decoy||Flashbang||HE Grenade||Smoke||nothing|
As an example, consider the default card deck for CTs for the default pistol round (
To get a representation that is easier to read and edit, we split it up into its components in a text editor:
"1|3;<card 1>|1;<card 2>;<card 3>" // One CT gets a defuse kit. The deck consists of 3x <card 1> plus 1x <card 2> or <card 3>. <card 1> = #GameUI_Retake_Card_4v3,0,0,secondary0 // title "4v3", no kevlar, no helmet, P2000/USP-S <card 2> = #GameUI_Retake_Card_FlashOut,0,0,secondary0,grenade2 // title "Flash Out!", no kevlar, no helmet, P2000/USP-S + Flashbang <card 3> = #GameUI_Retake_Card_HideAndPeek,0,0,secondary0,grenade4 // title "Hide and Peek", no kevlar, no helmet, P2000/USP-S + Smoke
In some full buy rounds[Clarify], a player is dealt an additional card that he can choose from.
The special thing about this card is that the first
<item> is picked from the enemy team's default loadout. For example, if a CT gets this card with the first
rifle0, the weapon is a Galil AR instead of a FAMAS.
This card is defined with the ConVars:
In full buy rounds, there is a certain number of additional bonus cards in each team's deck. Currently there's only one bonus card definition per team. The ConVars are:
For the format, see above. The default value for both teams is
There's a ConVar that controls the availability of bonus cards in full buy rounds per team:
The value is a string of comma-delimited integers. Each integer represents a number of bonus cards dealt for a team in a full buy round. In the first full buy round, the first integer determines the number of bonus cards. For the next full buy round, the next integer is used. If all integers have been used, the first is used again and this pattern repeats.
A value of
"1,2" indicates that during the first full buy round, 1 bonus card will be dealt; The second full buy round will feature 2 bonus cards.
Then, only 1 bonus card will be dealt, followed by 2 the next round.
For the value
"1,1,2", the availability is instead "1 card, 1 card, 2 cards, 1 card, 1 card, 2 cards, ..."
""or if the first integer is
0or invalid. If set to one of these values, the bonus card during warmup is empty.
To do: Is the above explanation really the case? Values like
"4", "4,4", "99", "99,99" should increase the probability to get a bonus card, but apparently they don't.
Other Console Commands
||4||The number of players on the CT side.|
||3||The number of players on the T side.|
||2||The maximum number of rounds in a row on the same bombsite.|