Guide

How to host a CS2 retake server

From an empty Linux box to a working retake rotation. Budget an evening, and expect most of it to go on spawns rather than installation.

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.

  1. Download the CS2 build of Metamod:Source and extract the addons/metamod folder into game/csgo/.
  2. Edit game/csgo/gameinfo.gi and add the Metamod search path line to the SearchPaths block, immediately above the existing Game_LowViolence entry. Metamod will not load without this and it is the single most common setup failure.
  3. 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 with addons/counterstrikesharp/.
  4. Restart the server and run meta list in 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.

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.

List your server