CS2 Server Admin Commands: RCON and Management
This is a practical guide for Counter-Strike 2 dedicated server operators. It collects working RCON, moderation and match-control commands verified against current CS2 builds. Commands and values are given as is - copy them straight into the console or a config file.
What RCON is and why you need it
RCON (Remote Console) is a remote server management protocol. It lets an admin send commands to a CS2 dedicated server directly from the in-game console, without shell access to the machine running the server.
RCON runs over the same port as game traffic (27015 by default). To use it, the server must have an RCON password set, and the client must authenticate with that password before sending commands.
RCON in CS2 sends the password over the network. Use a strong password and do not connect to untrusted public servers - a captured password grants full control of the server.
Enabling RCON and setting the password
RCON is activated by setting a non-empty password. You can do this via a launch parameter, in the server config, or manually from the server console.
- 1Open your CS2 server.cfg (folder game/csgo/cfg).
- 2Add the line rcon_password "YourStrongPassword" - while the password is empty, RCON is disabled.
- 3Restart the server or run the command in the server console to apply the value.
- 4Make sure port 27015 (TCP and UDP) is open on the firewall, otherwise the client cannot connect.
// server.cfg
// Remote console password. Keep it secret.
rcon_password "ChangeMe_Strong_Pass_123"
// Optional: limit the number of failed login attempts
sv_rcon_maxfailures "5"
sv_rcon_banpenalty "10"Connecting to RCON from the game client
After connecting to the server (via console or the server browser), the admin authenticates with the password, after which any command prefixed with rcon runs on the server.
- 1Connect to the server: connect IP:27015
- 2Authenticate with the password: rcon_password YourPassword
- 3Send any command with the rcon prefix, for example: rcon status
- 4If the response comes back without a Bad rcon_password error, authentication succeeded.
// In the client console
connect 203.0.113.10:27015
rcon_password ChangeMe_Strong_Pass_123
rcon status
rcon say Hello from the adminModeration commands: kick, ban, banid, kickid
The core moderation tools work by player name, by userid (the per-session index), or by SteamID. You can look up userid and SteamID with the status command.
banid and banip bans only last until the server restarts unless you save them. Run writeid and writeip, otherwise the ban list resets after a restart.
| Command | Purpose | Example |
|---|---|---|
| kick | Kick a player by name | kick "Nick" |
| kickid | Kick by userid (with reason) | kickid 3 Chat spam |
| banid | Ban by userid for N minutes (0 = permanent) | banid 30 3 |
| ban | Ban the current player by userid for N minutes | ban 60 3 |
| banip | Ban by IP address | banip 30 203.0.113.55 |
| writeid | Save SteamID bans to banned_user.cfg | writeid |
| writeip | Save IP bans to banned_ip.cfg | writeip |
| removeid | Remove a ban by SteamID | removeid STEAM_1:0:12345 |
Changing the map: changelevel and map
Two commands change the map. map fully restarts the game on the new map and resets the score; changelevel switches the map with a minimal restart, preserving part of the server state.
Map names are given without an extension. Workshop maps use a prefix with the workshop ID.
| Command | Description |
|---|---|
| map de_dust2 | Load a map with a full restart |
| changelevel de_mirage | Switch map without a full restart |
| host_workshop_map 3070... | Load a workshop map by ID |
| maps * | Show the list of available maps |
rcon map de_inferno
rcon changelevel de_nuke
rcon host_workshop_map 3070287560Match control: mp_ cvars
Cvars prefixed with mp_ control match logic: round length, economy, friendly fire and game format. Changes take effect from the next round, and for reliability apply them with mp_restartgame.
| Cvar | Purpose | Example |
|---|---|---|
| mp_maxrounds | Number of rounds in a match | mp_maxrounds 24 |
| mp_roundtime | Round duration (minutes) | mp_roundtime 1.92 |
| mp_freezetime | Freeze time at round start (sec) | mp_freezetime 15 |
| mp_startmoney | Starting money | mp_startmoney 800 |
| mp_maxmoney | Money cap | mp_maxmoney 16000 |
| mp_friendlyfire | Damage to teammates (1 on) | mp_friendlyfire 1 |
| mp_warmup_end | End warmup immediately | mp_warmup_end |
| mp_restartgame | Restart the game in N seconds | mp_restartgame 1 |
| mp_pause_match | Pause the match | mp_pause_match |
| mp_unpause_match | Unpause the match | mp_unpause_match |
Bot commands
Bots are useful for server testing, practice and filling slots. Managing bots requires a game mode that supports them.
| Command | Purpose |
|---|---|
| bot_add | Add a bot to any team |
| bot_add_t | Add a bot to the Terrorists |
| bot_add_ct | Add a bot to the Counter-Terrorists |
| bot_kick | Remove all bots |
| bot_difficulty 0-3 | Bot difficulty (0 easy, 3 expert) |
| bot_quota 5 | Desired number of bots on the server |
| bot_stop 1 | Freeze bots in place |
| bot_mimic 1 | Bots copy your actions |
rcon bot_difficulty 2
rcon bot_quota 6
rcon bot_add_ct
rcon bot_kicksv_cheats and exec configs on a private server
On a private or practice server, sv_cheats mode unlocks debug commands (god mode, infinite ammo, teleport and more). Enable it only on a trusted server - on a public one it ruins the game and alarms players.
The exec command runs a config from the cfg folder. This is handy for quickly switching setting sets: competitive mode, practice, warmup.
After practice, remember to set sv_cheats 0 and restart the round, otherwise you cannot fairly let regular players onto the server.
| Command | Purpose |
|---|---|
| sv_cheats 1 | Enable cheats (private server only) |
| god | God mode (requires sv_cheats 1) |
| sv_infinite_ammo 1 | Infinite ammo |
| noclip | Fly through walls |
| impulse 101 | Grant maximum money and armor |
| exec server.cfg | Run the server.cfg config |
| exec practice.cfg | Run your own practice config |
Diagnostics: status and common moderation commands
The status command is the admin's main tool. It shows the server name, map, player count and a table with userid, names and SteamIDs, which you need for kickid and banid.
Once your server is configured and stable, add it to monitoring on monitoringcs2.com - you get a public page with player count, map and history, and players can find you in the server list.
| Command | Purpose |
|---|---|
| status | Server summary and player list |
| users | List of connected clients |
| say text | Send a chat message from the server |
| sv_alltalk 1 | Shared voice chat for both teams |
| sv_password "pass" | Join password (private server) |
| sv_pausable 1 | Allow pausing the match |
| quit | Cleanly stop the server |