Skip to content

Counter-Strike 2 Server Commands: RCON, Convars and Admin Plugins

Every verified CS2 server command and convar — RCON moderation, mp_ and sv_ settings, bots and cheats, plus CounterStrikeSharp and CS2Fixes admin frameworks.

Updated August 07, 2026
Counter-Strike 2

Counter-Strike 2 has no built-in admin system — no op list, no admin menu, no SourceMod. Server control comes from RCON plus a large set of convars, and anything resembling a community admin experience is added by plugins. This guide covers RCON setup, every server command worth knowing, the convars that change how the game plays, and the plugin layer on top.

Defaults below are the engine defaults. The gamemode configs in game/csgo/cfg/ override many of them — competitive ships mp_roundtime 1.92, mp_freezetime 15 and mp_buytime 20.

1. How CS2 Admin Access Works

There is exactly one native way to prove you are the server operator: the RCON password.

System You authenticate with Gives you
RCON rcon_password (one shared password) Everything, including quit
Server console Direct access to the process The same, without a password
Plugins Your SteamID64 in a config file Per-person permissions, chat commands, a menu

RCON is all-or-nothing — anyone with the password can shut the server down, so it is not something to hand a moderator. The moment you have more than one admin you want the plugin layer in section 10.

CS2 splits console input two ways. Commands fire once and take arguments (kick, changelevel, mp_warmup_end). Convars hold a value (mp_roundtime, sv_alltalk); typing one with no argument prints it. A few things that look like commands are convars — mp_restartgame 1 schedules a restart a second out.

CS2 convars are booleans, not just 0/1

Many CS2 convars are typed as real booleans and print as true/false rather than 1/0mp_friendlyfire, mp_autoteambalance, sv_alltalk, mp_overtime_enable. They still accept 1 and 0, so old CS:GO configs keep working, but do not be surprised when the console answers false.

2. Set Up RCON

RCON is off until you give it a password. Put it in game/csgo/cfg/server.cfg, which the server executes on map load:

hostname "My CS2 Server"
rcon_password "USE_A_LONG_RANDOM_STRING"
sv_password ""
sv_lan 0
sv_logfile 1
server.cfg — RCON setup
Convar Default What it does
rcon_password "" Admin password. Empty disables RCON entirely
sv_password "" The join password. Empty means a public server
rcon_address "" Target for unconnected RCON, format x.x.x.x:port
rcon_connected_clients_allow true Whether connected players may use rcon at all
hostname "" Server name in the browser
sv_lan false LAN mode — no heartbeat, no Steam authentication
sv_logfile false Write server logs to disk
sv_hibernate_when_empty true Near-zero CPU when nobody is connected
sv_visiblemaxplayers -1 Override the slot count reported to the browser

To authenticate from your own client, enable the developer console in CS2's settings, then:

rcon_address 203.0.113.10:27015
rcon_password YOUR_PASSWORD
rcon status
Authenticating from in-game

Prefix each command with rcon afterwards. If rcon returns nothing while you are playing on the server, check rcon_connected_clients_allow — it gates in-game RCON specifically.

Never reuse a password here

rcon_password grants total control of the server process, and the RCON protocol is unencrypted. Use a long random string used nowhere else. sv_rcon_maxfailures and sv_rcon_banpenalty throttle brute force, but both are hidden convars in retail builds — firewall port 27015/tcp to your own address if you can.

Skip RCON entirely

The Console tab on your managed Counter-Strike 2 server is already attached to the server process — type commands there with no rcon prefix and no password on the wire. See Counter-Strike 2 configuration for where each config file lives.

3. Server & Player Management

Run these from the server console, your panel's Console tab, or prefixed with rcon from a game client.

Command What it does
status Print connection status — userid, name, SteamID, ping, address
kick "<name>" Kick a player by name
kickid <userid|steamid> "<message>" Kick by userid or unique ID, with a message
say <message> Broadcast a chat message to everyone
exec <file> Execute a .cfg from game/csgo/cfg/
changelevel <map> Change map, keeping players connected
map <map> Load a new map — drops and reloads everyone
quit Shut the server down
sv_setsteamaccount <token> Set the Game Server Login Token (GSLT)

Prefer kickid over kick. Name matching breaks the moment a name contains spaces, unicode, or a substring of another name, while kickid takes the unambiguous numeric userid printed by status. A kickid also applies a temporary ban lasting sv_kick_ban_duration minutes, default 15.

Every CS2 server needs a GSLT to appear in the server browser. Generate one for app ID 730 at steamcommunity.com/dev/managegameservers and pass it as +sv_setsteamaccount <TOKEN> on the command line.

4. Bans and the Ban List

The Source ban commands survived into CS2, gated behind sv_banid_enabled (default true).

Command What it does
banid <minutes> <userid|steamid> Add a user ID to the ban list. 0 is permanent
banip <minutes> <ip> Add an IP address to the ban list
removeid <steamid> Remove a user ID from the ban list
removeip <ip> Remove an IP address from the ban list
writeid Write the SteamID ban list to disk
writeip Write the IP ban list to disk
listid List banned user IDs
listip List banned IP addresses

Bans vanish on restart without writeid

banid and banip only hold the ban in memory. Run writeid (or writeip) afterwards to commit it to disk — this is the most common reason a banned player walks straight back in after a map change. These eight commands are also flagged development-only in the retail build, so they do not appear in console autocomplete. They still execute; you just have to type them in full and confirm with listid that the ban landed.

With no per-admin accountability and no usable ban reason field, most serious communities run a plugin ban system instead — see section 10.

5. Maps and Workshop Content

Command What it does
map <mapname> Load a map from disk
changelevel <mapname> Change level without a full reload
host_workshop_map <id> Fetch the latest version of a Workshop map and host it
host_workshop_collection <id> Host a Workshop collection as a map group
ds_workshop_changelevel <mapname> Change to an already-downloaded Workshop map by name
ds_workshop_listmaps Dump the Workshop maps available on this server

host_workshop_map re-downloads the map, so use it after the author publishes an update; ds_workshop_changelevel is the fast path once the file is on disk. Full setup is in How to add Steam Workshop maps for Counter-Strike 2.

6. Match & Gameplay Convars

The mp_ family is where you shape the match. Set them in server.cfg, or in a per-mode config so they survive a mode change.

Convar Default What it controls
mp_roundtime 5 Round length in minutes, fractional allowed (max 60)
mp_roundtime_defuse 0 Bomb maps; 0 falls back to mp_roundtime
mp_roundtime_hostage 0 Hostage maps; 0 falls back to mp_roundtime
mp_maxrounds 0 Rounds before the map ends (competitive ships 24)
mp_timelimit 0 Minutes per map (0 = no limit)
mp_freezetime 6 Seconds players are frozen at round start
mp_buytime 90 Seconds the buy menu stays open after round start
mp_startmoney 800 Money each player gets on reset
mp_maxmoney 16000 Maximum money a player may hold
mp_afterroundmoney 0 Flat cash awarded to everyone at round end
mp_friendlyfire false Allow team members to injure each other
mp_autoteambalance true Force-switch players to even the teams
mp_limitteams 2 Max team size difference (0 disables, max 30)
mp_autokick true Kick idle, team-killing and team-damaging players
mp_warmuptime 30 Warmup length in seconds (minimum 5)
mp_warmuptime_all_players_connected 0 Shorten warmup to this once everyone joins
mp_warmup_pausetimer 0 1 freezes the warmup timer indefinitely
mp_halftime false Switch sides at halftime
mp_overtime_enable false Play overtime instead of ending a tied match
mp_overtime_maxrounds 6 Rounds per overtime period
mp_overtime_startmoney 10000 Money at the start of each overtime half
mp_overtime_limit 0 Cap on how many overtimes can be played
mp_teammates_are_enemies false Free-for-all — every player is a valid target
mp_forcecamera 0 1 restricts dead players to their own team
mp_c4timer 40 Seconds from arming to detonation (minimum 10)
mp_join_grace_time 0 Seconds after round start a player may join (max 30)
mp_match_can_clinch true Allow a mercy-rule win once a team is unbeatable
mp_spectators_max 2 Spectator slots
mp_death_drop_gun 1 0 none, 1 best, 2 current or best
mp_respawn_on_death_ct / _t false Instant respawn per team

Commands — not convars — that act on the match immediately:

Command What it does
mp_warmup_start / mp_warmup_end Start or end warmup
mp_pause_match Pause at the next freeze time
mp_unpause_match Resume
mp_swapteams Swap sides and restart the game
mp_backup_restore_load_file <file> Restore a round from a backup, written automatically while mp_backup_round_file is set (default backup)

mp_roundtime is minutes, and it is fractional

A mistake carried over from other Source games is mp_roundtime 115 expecting 115 seconds — CS2 clamps it to the maximum of 60 minutes. Competitive rounds are 1.92 minutes, which is 115 seconds. A two-minute round is mp_roundtime 2.

7. Server Behaviour Convars

Convar Default What it controls
sv_cheats false Master switch for every cheat command below
sv_alltalk false Both teams hear each other's voice
sv_deadtalk false Dead players can speak to the living
sv_full_alltalk false Everyone, spectators included, can talk to everyone
sv_talk_enemy_living / sv_talk_enemy_dead false Hear the enemy team, alive or dead
sv_gravity 800 World gravity
sv_accelerate 5.5 Ground acceleration
sv_airaccelerate 12 Air acceleration — raise it for surf and bhop
sv_maxspeed 320 Player speed cap
sv_falldamage_scale 1 Fall damage multiplier (0 disables)
sv_autobunnyhopping false Auto-jump while holding space
sv_enablebunnyhopping false Remove the speed cap on consecutive jumps
sv_allow_votes true Allow player-initiated votes
sv_kick_ban_duration 15 Minutes a kick-ban lasts
sv_banid_enabled true Whether the server honours banid
sv_steamauth_enforce 2 How strictly Steam authentication is required
sv_region -1 Region reported to the server browser
sv_pure_kick_clients true Kick clients whose files do not match, instead of only warning them

sv_pure survived into CS2 — most of its helper convars did not

sv_pure, sv_pure_kick_clients and sv_pure_trace are all present in the retail CS2 build, so sv_pure 1 in a server.cfg is valid and still enforces file consistency. What Source 2 dropped is the rest of the CS:GO family — sv_pure_allow_loose_file_loads, sv_pure_allow_missing_files, sv_pure_consensus, sv_pure_retiretime and sv_consistency all error as unknown. A ported config keeps executing past an unknown command, so the failure is silent unless you read the log.

8. Bots

Bot management is native and needs no cheats.

Command / convar Type What it does
bot_add <t|ct> <type> <difficulty> <name> Command Add a bot matching the criteria
bot_add_ct / bot_add_t Command Add a bot to a specific side
bot_kick <all|t|ct|name> Command Kick matching bots
bot_knives_only Command Restrict bots to knives
bot_quota Convar (10) Total number of bots the server maintains
bot_quota_mode Convar (normal) normal, fill, match or competitive
bot_difficulty Convar (1) 0 easy, 1 normal, 2 hard, 3 expert
custom_bot_difficulty Convar (2) Bot difficulty used for offline play
bot_chatter Convar (normal) Bot radio chatter; off silences them
bot_dont_shoot Convar (false) Bots hold fire

With sv_cheats 1 you also get bot_kill, bot_place (spawn a bot where you are aiming), bot_stop 1, bot_freeze, bot_crouch and bot_mimic.

9. Cheat & Practice Commands

sv_cheats 1 must be set on the server, not your client, before any of these work. Cheats are visible to every connected player, so keep them in their own config and change the map to clear them rather than unsetting convars by hand.

Command What it does
noclip Toggle fly / no-collision. Optional 0 or 1 to force it
god Toggle invulnerability
hurtme <n> Damage yourself by N
setpos <x> <y> <z> Teleport to coordinates
setang <pitch> <yaw> Snap your view angles
give <item> Give yourself a weapon, e.g. give weapon_ak47
endround End the current round immediately
ent_create <name> Create an entity where you are looking
ent_fire <target> <input> Fire an input at a map entity
sv_rethrow_last_grenade Re-throw the last grenade thrown on the server
host_timescale <n> Speed up or slow down the server clock

Cheat-gated convars worth knowing: sv_infinite_ammo (1 = no reloads, 2 = infinite reserve), sv_regeneration_force_on, bot_stop and mp_ignore_round_win_conditions. The rest of a practice setup is ordinary convars:

sv_cheats 1
sv_infinite_ammo 2
ammo_grenade_limit_total 5
mp_warmup_pausetimer 1
mp_buytime 60000
mp_buy_anywhere 1
mp_maxmoney 60000
mp_startmoney 60000
mp_limitteams 0
mp_autoteambalance 0
mp_freezetime 0
mp_roundtime 60
mp_roundtime_defuse 60
mp_ignore_round_win_conditions 1
sv_grenade_trajectory_prac_pipreview 1
sv_grenade_trajectory_prac_trailtime 8
sv_showimpacts 1
sv_showimpacts_time 10
mp_restartgame 1
practice.cfg — nade and retake practice

Save that as game/csgo/cfg/practice.cfg and load it with exec practice. sv_grenade_trajectory_prac_pipreview is the picture-in-picture lineup preview and sv_grenade_trajectory_prac_trailtime (max 8) is how long the trail lingers.

10. The Plugin Layer

Everything above works on a stock server. For chat commands, an admin menu, per-person permissions and persistent bans with reasons, you need a three-layer plugin stack.

Metamod:Source is the loader. CS2 requires the 2.x development branch — the 1.12 stable release is Source 1 only and will not load. Copy addons/ into game/csgo/, then add one line to game/csgo/gameinfo.gi:

Game    csgo/addons/metamod
gameinfo.gi — loading Metamod

Restart and run meta list to confirm it loaded — worth repeating after every CS2 update, since game updates break Metamod regularly and a broken plugin usually means a server that will not boot.

CounterStrikeSharp is the framework almost everything is written against now. It runs on Metamod and lets plugins be written in C#. First-time installs need the with-runtime build, which bundles .NET; Linux hosts may also need libicu. Admins go in configs/admins.json:

{
  "YourName": {
    "identity": "76561197960287930",
    "flags": ["@css/generic", "@css/kick", "@css/ban", "@css/changemap"]
  }
}
configs/admins.json
Flag Grants
@css/generic Generic admin — required by most commands
@css/kick Kick players
@css/ban / @css/unban Ban and unban
@css/slay Slay, slap and similar
@css/changemap Change map
@css/cvar Change convars
@css/config Execute config files
@css/chat Chat commands (gag, mute)
@css/vote Start votes
@css/password Set the server password
@css/rcon Run RCON commands
@css/cheats Toggle sv_cheats and use cheat commands
@css/reservation / @css/vip Reserved slot and VIP marker for other plugins
@css/root Everything, and bypasses immunity

CounterStrikeSharp is a framework, not an admin mod

Installing it does not give you !kick, !ban or !slay. Its own documentation is explicit that traditional admin commands are left to individual plugins — CounterStrikeSharp supplies the permission model and the API, and you add an admin plugin on top. This trips up everyone arriving from SourceMod, where the two were one package.

CS2Fixes is the other half of the ecosystem — a Metamod plugin independent of CounterStrikeSharp, originally built for zombie escape but widely used for its admin system. It ships the commands people expect: kick, ban, unban, mute, gag, slay, slap, noclip, give, health, money, revive, map, setnextmap, extend, who, status, getpos, setpos, spec, beacon, glow and the RTV set. Run them from chat with ! or /, or from console with a c_ prefix (c_noclip); admins go in addons/cs2fixes/configs/admins.cfg. Its targeting syntax is the fastest thing in this article: @all, @ct and @t for groups, $ for a SteamID64, & for an exact name, # for a userid from status.

11. FAQ

How do I become admin on my own CS2 server?

Set rcon_password in game/csgo/cfg/server.cfg, then run rcon_password YOUR_PASSWORD in your in-game console while connected. Every command in this guide then works prefixed with rcon. There is no native per-person admin list — for that you need Metamod:Source plus CounterStrikeSharp or CS2Fixes.

Why do my bans disappear after a restart?

banid and banip only write to memory. Run writeid and writeip afterwards to commit them to disk. Those commands are also hidden from autocomplete in the retail build, so a typo fails quietly — check with listid that the ban actually landed.

Why does sv_pure say unknown command?

It should not — sv_pure is still in the retail CS2 build, alongside sv_pure_kick_clients and sv_pure_trace. If you are seeing that error, check which line actually produced it. The CS:GO helper convars sv_pure_allow_loose_file_loads, sv_pure_allow_missing_files, sv_pure_consensus, sv_pure_retiretime and sv_consistency did not survive Source 2 and do error as unknown. When a config hits an unknown command the server prints an error and carries on with the rest of the file, so a ported server.cfg can look like it worked while quietly skipping lines.

Do CS2 admin commands need a slash?

Not in the server console or over RCON — type status, not /status. The ! and / prefixes belong to plugin chat commands. CS2Fixes accepts both in chat and uses c_ from console; CounterStrikeSharp plugins conventionally use css_.

How do I set up a practice server?

Put the practice convars in game/csgo/cfg/practice.cfg and run exec practice. You need sv_cheats 1 for noclip, sv_infinite_ammo and sv_rethrow_last_grenade, but the buy-anywhere, long-round and grenade-trail settings are ordinary convars — section 9 has a config to copy.

Why is my server not showing in the browser?

Almost always a missing or invalid Game Server Login Token — generate one for app ID 730 and pass it as +sv_setsteamaccount <TOKEN>. Also confirm sv_lan is 0, since a LAN server sends no heartbeat at all.

Can I run admin commands without any plugins?

Yes — sections 3 through 9 are entirely native. Plugins add per-person permissions, an in-game menu, gagging and muting, ban reasons and immunity. That is real quality-of-life, but none of it is required to run and moderate a server.


Made with 💜 by GameServerKings

Need a Counter-Strike 2 server?

Deploy an instantly-provisioned Counter-Strike 2 server on high-clock hardware — DDoS protected, no contracts, cancel anytime.

From $11.50 /month