A Counter-Strike 2 dedicated server does not know what a retake is. Out of the box it runs Valve's standard game modes. Retake — bomb pre-planted, randomised loadouts, team balance, thirty-second rounds — comes from a community plugin layered on top. So the job is four separate things: get the dedicated server running, make it publicly listed, add the plugin framework, then install and tune the retake plugin itself.
1. Pick the machine
A retake server at 10–12 slots is not demanding on RAM or core count, but it is very sensitive to single-core clock speed and to network quality. A modern CPU with high per-core performance and a well-peered datacentre near your players beats a bigger, cheaper box further away. Two vCPU and 4 GB of RAM is a realistic floor; 128 tick roughly doubles the simulation work, so do not cut it fine there. Debian or Ubuntu LTS is the path of least resistance.
Run the server as an unprivileged user, not as root:
sudo adduser --disabled-password --gecos "" cs2
sudo su - cs2
2. Install the dedicated server with SteamCMD
SteamCMD is Valve's command-line Steam client and the only supported way to install the server files. Install it, then pull down the CS2 dedicated server, app ID 730. It is an anonymous login — you do not need a Steam account for this part.
./steamcmd.sh +force_install_dir ~/cs2server \
+login anonymous \
+app_update 730 validate \
+quit
The download is large. Re-running the same command later is how you update the server after a Valve patch, and you will need to do that promptly — clients cannot join a server running an older build. On Linux you may also need the 32-bit runtime libraries SteamCMD depends on before the first run.
3. Get a Game Server Login Token
Without a GSLT your server will run but will not appear in the public server browser, and depending on the build it may refuse connections from outside your LAN. Register one in the Steam Game Server Account Management page under app ID 730, using a Steam account in good standing that owns CS2. You get back a long token string.
Pass it on the command line along with your basic server settings:
./game/bin/linuxsteamrt64/cs2 -dedicated \
+game_type 0 +game_mode 0 \
+map de_mirage \
-port 27015 \
-maxplayers 12 \
-usercon \
+sv_setsteamaccount YOUR_GSLT_TOKEN \
-tickrate 128
Treat the token as a secret — it is tied to your Steam account, and it can be revoked if the server misbehaves. Keep it out of any config file you might later share or commit. Open UDP 27015 (and TCP 27015 if you want RCON) on both the host firewall and your provider's network firewall.
Put your remaining settings in game/csgo/cfg/server.cfg: hostname, rcon_password, sv_password if you want it private, and the usual sv_ convars. Start it once at this stage and confirm you can connect from the console with connect yourip:27015 before adding anything else. Debugging a plain server is far easier than debugging a modded one.
4. Add Metamod and CounterStrikeSharp
Metamod:Source is the loader that hooks into the game engine and lets other plugins attach. CounterStrikeSharp is the framework that runs .NET plugins on top of Metamod, and it is what nearly every current CS2 retake plugin is written against.
- Download the CS2 build of Metamod:Source and extract the
addons/metamodfolder intogame/csgo/. - Edit
game/csgo/gameinfo.giand add the Metamod search path line to theSearchPathsblock, immediately above the existingGame_LowViolenceentry. Metamod will not load without this and it is the single most common setup failure. - Download the CounterStrikeSharp release that includes the .NET runtime unless you have installed it separately, and extract it into
game/csgo/so you end up withaddons/counterstrikesharp/. - Restart the server and run
meta listin the console. CounterStrikeSharp should appear as a loaded plugin. If it does not, the gameinfo.gi edit is almost always the reason.
5. Install the retake plugin
With the framework in place, drop your chosen retake plugin into addons/counterstrikesharp/plugins/ and restart. The plugin supplies everything that makes the mode work: pre-planting the bomb, assigning attackers and defenders, generating randomised buys, balancing teams as people join and leave, and resetting the round on a timer.
Most retake plugins also need a spawn file per map — a list of coordinates and view angles for each site, tagged by team and by whether the spawn is intended for a rifle, an AWP or a close-range weapon. Some ship with community spawn files for the active duty maps; those are your starting point, not your finished configuration.
6. Tune the spawns
This is the part that decides whether players come back, and it is the part nobody budgets enough time for. Spawn quality is the entire experience of a retake server.
- Distance parity. Attackers should arrive at contact at roughly the same time from every spawn. One spawn that reaches site two seconds early makes that rotation the only one anyone wants.
- No instant contact. Nobody should be shot within a second of spawning. If a defender's angle covers an attacker spawn directly, move it back.
- Cover the real approaches. Attacker spawns should be spread across the routes teams genuinely use on that site, so players practise the wraps and splits that occur in real rounds — not one funnel.
- Match the weapon to the position. A close-range spawn should not be handed an AWP. Most plugins let you tag spawns by weapon class; use it.
- Defender depth. Defenders should be spread between the plant and the back of the site, not stacked on the bomb.
Test with bots or a handful of friends and watch the win rate. If one side is winning well over half of rounds on a given site, the spawns are the cause far more often than the loadout randomisation. Adjust a few positions at a time so you can tell what changed.
7. Keep it running
Wrap the server in a systemd unit so it restarts on failure and on reboot. Script the SteamCMD update so you can patch quickly after a Valve release, and remember that Metamod, CounterStrikeSharp and your retake plugin all periodically need updating to match a new game build — a server that starts crashing right after a patch is almost always a stale plugin, not a broken install.
Once it is stable and populated, add it to the directory. Listing is free, there is no revenue share, and your Discord link stays on your card. If you want to see how other people have set theirs up, browse the full server list, the EU servers or the 128-tick servers.