CS2 Dedicated Server Setup: SteamCMD, GSLT Token, Game Modes & RCON
How to stand up a Counter-Strike 2 dedicated server from scratch: installing app 730 with SteamCMD, the GSLT login token every public server needs (and why yours is invisible without one), the game_type/game_mode number pairs that pick Competitive vs Casual vs Deathmatch, server.cfg, Source RCON, and the ports to forward.
Setting up a Counter-Strike 2 server is mostly straightforward SteamCMD work, with one gotcha that catches nearly everyone: without a GSLT login token your server runs fine but is invisible on the internet. CS2 also folded CS:GO's old two-app split into a single app, so a lot of older tutorials point at the wrong id. This guide walks the install, the token, the launch line, and RCON.
Installing with SteamCMD
The CS2 dedicated server is Steam app 730 - the same id as the game. CS:GO used to split client (730) and server (740); CS2 merged them, so +app_update 730 is correct and anonymous login works, no account needed:
steamcmd +login anonymous +force_install_dir /home/cs2/server +app_update 730 validate +quit
On Linux the server binary is game/bin/linuxsteamrt64/cs2, but launch it through the cs2.sh wrapper in the install root - the wrapper sets environment the bare binary needs, and running the binary directly often fails with library-load errors. On Windows it is cs2.exe. Re-run the app_update line on each restart to stay current.
The GSLT token (do this before your first public launch)
A Game Server Login Token (GSLT) authenticates your server to Steam. A public, internet-listed server requires one - without it the server starts but does not appear in the server browser and outside players cannot join.
- Go to steamcommunity.com/dev/managegameservers.
- Register a token with App ID
730. The Steam account you use must own CS2, have a phone number attached, and have no community ban. - Copy the token (a 32-character hex string).
- Pass it on the launch line:
+sv_setsteamaccount <YOUR_TOKEN>(no quotes).
Treat the token like a password - if it leaks, revoke and regenerate it on that same page.
Launching and picking a game mode
CS2 selects its mode from two numeric convars, game_type and game_mode, set on the command line (or in config). A typical competitive launch:
./cs2.sh -dedicated -console -usercon -port 27015 \
+sv_setsteamaccount <YOUR_TOKEN> \
+game_type 0 +game_mode 1 +map de_dust2
The commonly used mode pairs:
| Mode | game_type | game_mode |
|---|---|---|
| Casual | 0 | 0 |
| Competitive | 0 | 1 |
| Wingman (2v2) | 0 | 2 |
| Arms Race | 1 | 0 |
| Deathmatch | 1 | 2 |
| Custom | 3 | 0 |
-dedicated runs headless; -port 27015 sets the game port; +map picks the starting map. -usercon is optional - it enables RCON over Steam's networking layer, but plain TCP rcon_password (below) works without it.
Configuration: server.cfg
Server settings that should persist go in game/csgo/cfg/server.cfg - the csgo directory name carried over from CS:GO and is still correct for CS2. It is executed on map load, so put your hostname, RCON password, tickrate-independent gameplay convars, and any mp_* rules there, for example:
hostname "My CS2 Server"
rcon_password "USE_A_STRONG_SECRET"
sv_cheats 0
mp_autoteambalance 1
mp_maxrounds 24
RCON: standard Source RCON
CS2 speaks the standard Source RCON protocol over TCP on the game port, unchanged from Source 1. Set rcon_password (in server.cfg or on the launch line) and any generic Source RCON client - mcrcon, an RCON tool, or a web panel that speaks the protocol - can authenticate and run console commands remotely. Use a long random password; anyone with it has full console control.
Ports to forward
- 27015 UDP - game traffic (override with
-port). - 27015 TCP - Source RCON, on the same port number.
- 27020 UDP - SourceTV / CSTV spectator relay (
tv_port), only if you enable SourceTV.
Forward the game port to your server's LAN IP, launch with a valid GSLT, and the server should appear in the community browser within a minute.
MantaScope tracks the live CS2 server list with real (bot-adjusted) player counts, population history, per-server rank, uptime and downtime alerts. Because CS2 speaks standard Source RCON, you can claim your server on MantaScope and administer it from the browser - live player list, kick/ban, chat and console - alongside population graphs, scheduled messages, automations and Discord notifications, without wiring up a separate RCON tool.