CS2 server admin commands let an authorized operator moderate players, change maps and modes, control match flow, manage bots, adjust server rules, and save settings for future restarts. Run them in the dedicated server console, a hosting panel’s server console, authorized RCON, or a configuration file—not automatically in an ordinary player console. For a reliable workflow, identify the execution context first, use status before player actions, use changelevel for a live map rotation, and place repeatable settings in game/csgo/cfg/server.cfg.
This guide covers the commands administrators use most, the permissions and sv_cheats boundary, exact configuration paths, logging, mode values, and recovery steps when a command is rejected.
What counts as a CS2 server admin command?
A console command is a named action invoked from the in-game console, a bind, or a configuration file. A convar is different: it stores a value that a command or game system reads, such as a round timer or server name. The distinction matters when you troubleshoot because a command can perform an action immediately, while a convar usually changes behavior after you set it or reload the relevant system.
CS2OpenDev’s 2026 build inventory lists 1,138 commands and 28 distinct execution flags. Those flags describe who or what may execute a command and whether a value is replicated to clients. A command appearing in a reference does not mean every player can run it: the server, the command’s flags, and the current game state all matter.
Commands, convars, and permissions in practice
- Action command:
mp_restartgame 1schedules a match restart. - Convar:
mp_roundtimestores the round-time value. Entering it without a value prints its current value and description. - Access flag: a command marked
cheatrequiressv_cheats 1; other flags indicate server-only, client-allowed, replicated, or release behavior.
Always check the command’s current description in the build you are running. Updates can alter syntax, flags, defaults, or whether a command is available at all.
Where should I run CS2 server commands?
Use the server console, an authorized RCON session, or a cfg file for server administration. The client console is useful for client-side commands and for connecting to a server, but typing a server command there does not grant server authority.
| Execution context | Best use | Persistence | Typical access boundary | Risk or scope |
|---|---|---|---|---|
| Dedicated-server console | Live moderation, map changes, match controls | One-off unless also written to a cfg | Server operator or console user | Can affect every connected player |
| Hosting-panel console | Remote administration when the provider exposes the server terminal | One-off unless saved in configuration | Panel account with server access | Same server-wide impact as the dedicated console |
| Authorized RCON | Remote commands without opening the physical console | One-off unless a cfg is executed | Valid RCON credentials plus command permissions | Credentials can control the whole server; protect them |
| Server cfg file | Hostname, rates, match rules, tags, and repeatable startup settings | Config-backed; loaded at startup or with exec |
Filesystem or panel file-management access | A syntax error or bad value can affect every match |
| Normal client console | Client-side commands and local testing | Usually client-side | Does not confer server authority | Server commands may be rejected or do nothing |
How do I enable the CS2 developer console?
Enable the console before attempting client-side testing or connecting to a server. This changes the user interface only; it does not make you an administrator on a server you do not operate.
- Open Settings.
- Choose Game.
- Set Enable Developer Console (~) to Yes.
- Press the assigned console key in-game. The default is usually the tilde key, but keyboard layouts can differ.
For server administration, continue in the dedicated console, hosting panel, or RCON session. If a command is rejected in the client console, move it to the server context before changing syntax.
How do I launch and log a dedicated CS2 server?
Valve’s 29 September 2023 release notes provide a minimal dedicated-server launch form:
cs2 -dedicated +map de_dust2
That starts the dedicated process and loads de_dust2. Add logging at launch when you need a record of joins, commands, or match events:
cs2 -dedicated +map de_dust2 +sv_logfile 1 -serverlogging
You can enable the equivalent behavior in configuration:
sv_logfile 1
log on
For HTTP log forwarding, Valve documents:
logaddress_add_http "<server address>:<port>"
Use the address and port of the log receiver you control. Keep logs private when they contain player identifiers or administrative information, and verify that the receiver is reachable before relying on forwarded logs for moderation.
Which commands should I use to moderate players?
Start with status so you can identify the correct player name and user ID. Names can contain spaces, duplicate text, or characters that make name-based actions ambiguous; a user ID from the status output is safer for a targeted kick.
status
kick "Player name"
kickid <userid>
say "Message"
What each moderation command does
statuslists connected players and their IDs. Capture the output before taking action.kick "Player name"removes a player by quoted name. Quote names containing spaces.kickid <userid>removes the specific ID reported bystatus, avoiding most name collisions.say "Message"broadcasts a server message to players. Use it to announce a restart, map change, or scheduled maintenance.
Why is there no universal ban command here?
Ban behavior can depend on the moderation plugin installed on the server. Treat a plugin’s documented syntax as authoritative for that installation instead of assuming that a command from another server will work. Test moderation changes with a non-critical account or a private instance so an incorrect target or syntax does not remove the wrong player.
How do I change the map and game mode?
Use changelevel when you want to move a live server to another map while keeping players connected. Use map for a fresh map load when a disconnect and full reload are acceptable.
changelevel de_mirage
map de_mirage
maps *
game_type 0
game_mode 1
Remove the leading spaces before game_type and game_mode when entering those lines; they are shown separated here only for readability. Run maps * to list maps installed on the server. Set the mode values before loading the map so the new map starts with the intended rules.
| Mode | game_type |
game_mode |
|---|---|---|
| Casual | 0 | 0 |
| Competitive | 0 | 1 |
| Wingman | 0 | 2 |
| Arms Race | 1 | 0 |
| Deathmatch | 1 | 2 |
| Custom | 3 | 0 |
Safe map-change sequence
- Announce the planned change with
say. - Check the target name with
maps *. - Set
game_typeandgame_modeif the mode is changing. - Run
changelevel map_namefor a live rotation, ormap map_namefor a full reload. - Watch the server console for map-load errors and confirm the mode after players reconnect.
How do I control the match flow?
These commands alter the current round or match and should be announced before use on a populated server.
mp_restartgame 1
mp_warmup_end
mp_warmup_start
mp_pause_match
mp_unpause_match
mp_swapteams
mp_scrambleteams
mp_restartgame 1restarts the game after one second.mp_warmup_endends the current warmup;mp_warmup_startbegins one.mp_pause_matchpauses at the next freeze time;mp_unpause_matchresumes play.mp_swapteamsswaps teams and restarts.mp_scrambleteamsscrambles teams and restarts.
A restart, team swap, or scramble can discard the current round state. Record the reason in your admin log and use the least disruptive command that solves the problem.
How do I add, remove, and tune bots?
Basic bot administration does not require cheats:
bot_add_t
bot_add_ct
bot_kick
bot_quota 10
bot_difficulty 2
bot_add_tadds a Terrorist bot;bot_add_ctadds a Counter-Terrorist bot.bot_kickremoves bots.bot_quota 10sets the desired bot quota to 10.bot_difficulty 2sets the configured difficulty value.
Practice controls such as bot_stop 1, bot_kill, and bot_place are cheat-flagged. They work only after sv_cheats 1 is enabled in an authorized practice environment.
Which server and match settings can I configure?
Server identity, network behavior, communication, and match rules are generally convars. Enter a convar without a value to print its current value and description before changing it.
Server identity and connectivity
hostnamesets the name shown to players.sv_passwordprotects access with a password.sv_lancontrols LAN-only operation.sv_tagssupplies server browser tags.sv_alltalkcontrols voice communication between teams.sv_deadtalkcontrols whether dead players can communicate with living players.sv_hibernate_when_emptycontrols behavior while no one is connected.sv_maxrateandsv_minratedefine the server’s rate limits.sv_regionsets the advertised region value.
Round and economy rules
mp_roundtime,mp_freezetime, andmp_warmuptimeset round, freeze, and warmup durations.mp_maxroundsandmp_timelimitlimit match length.mp_buytimesets the purchase period.mp_buy_anywherepermits purchases outside the usual buy zone when enabled.mp_startmoneyandmp_maxmoneyset starting and maximum funds.mp_c4timercontrols the bomb timer.mp_friendlyfirecontrols friendly-fire damage.mp_autoteambalanceandmp_limitteamsgovern team balancing and team-size limits.mp_halftimecontrols halftime behavior.mp_overtime_enablecontrols whether overtime is enabled.
Because these settings affect every player and can change competitive rules, apply them before the match or during a clearly announced maintenance window rather than experimenting mid-round.
How do I save commands in server.cfg and load them with exec?
One-off console changes are not a dependable way to configure a server after a restart. Put repeatable settings in a cfg file under game/csgo/cfg/; a common file is game/csgo/cfg/server.cfg.
Basic persistence workflow
- Open or create
game/csgo/cfg/server.cfgon the server or through the hosting panel’s file manager. - Add only the settings you want applied on every startup, one command per line.
- Save the file without changing its
.cfgextension. - Restart the server, or load a named configuration with
exec filenamefrom the server console or authorized RCON. - Query important convars afterward to verify that the intended values loaded.
For separate rule sets, create additional cfg files in the same directory and load them by name. Keep a backup of the last working file so you can restore service if a typo or incompatible setting prevents the server from starting normally.
Example configuration layout
hostname "Community CS2 Server"
sv_password "replace-with-your-password"
sv_alltalk 0
mp_roundtime 2
mp_freezetime 15
mp_maxrounds 24
Replace example values with your own policy. Do not publish a real password in a guide, paste, or public repository.
When do I need sv_cheats 1?
A command carrying the cheat flag requires sv_cheats 1. Enable it only on a private server or in a practice environment where you have explicit authority. It does not grant access to official matchmaking or to somebody else’s community server.
sv_cheats 1
After enabling cheats, practice controls such as bot_stop 1, bot_kill, and bot_place become available if the current build still exposes them. Turn cheats back off before returning a server to normal play:
sv_cheats 0
Other documented flags include client_can_execute, clientcmd_can_execute, gamedll, release, replicated, and server_can_execute. These describe execution and distribution behavior; they are not interchangeable permission grants.
How do I troubleshoot a command that does not work?
Most failures come from the wrong console, insufficient authority, a typo, or a command whose syntax changed. Use this order to isolate the cause.
1. Confirm the execution context
Move server-wide commands from the client console to the dedicated console, hosting panel, or authorized RCON. A successful client-console entry does not prove that the server accepted the command.
2. Check the command and current value
Use the console’s autocomplete and enter a convar without a value to display its current value and description. Compare the spelling, underscores, and required arguments with the current CS2 build.
3. Check access flags
If the output says the command is restricted, determine whether it is server-only or cheat-flagged. Do not attempt to bypass a restriction on a server you do not administer.
4. Validate player targets
Run status again immediately before a kick. Player IDs can change after reconnects, so an old ID may point to nobody or to a different session.
5. Validate map and cfg names
Use maps * for map names and confirm that cfg files are located under game/csgo/cfg/. If exec reports a missing file, check the filename, extension, capitalization, and server instance you are connected to.
6. Check logs and restart only when necessary
Enable server logging when you need a durable record of rejected commands or map-load errors. A restart can clear transient state, but it will not fix a wrong command or an incorrectly placed cfg file.
What is the safest day-to-day admin workflow?
- Connect to the correct server console or authorized RCON endpoint.
- Run
statusand confirm the server identity before touching players or match state. - Announce disruptive actions with
say. - Use the narrowest command: a user-ID kick instead of a broad reset, or
changelevelinstead ofmapwhen a live rotation is intended. - Put recurring settings in a reviewed cfg file rather than relying on a one-time console change.
- Query key convars and inspect logs after applying a configuration.
- Recheck command syntax and flags after CS2 updates because command inventories are build-specific.
These habits separate routine administration from risky experimentation and make it easier to recover when a setting behaves differently after an update.
Frequently Asked Questions
Can I create a universal CS2 ban command?
There is no single ban syntax that is guaranteed across every CS2 server installation. Ban commands may come from a moderation plugin, so identify the plugin and follow its version-specific documentation; test the command on a private instance before using it on a public match.
Why does RCON authenticate but reject my command?
RCON authentication proves that the remote session is valid, not that every command is permitted. The command may be client-only, server-restricted, cheat-flagged, or unavailable in the current game state; check the server console’s exact rejection message.
How can I protect a working server.cfg from a bad edit?
Keep a dated copy of the last known-good file outside the live server and change one setting group at a time. If the server fails after an edit, restore that copy first, restart, and then test the disputed line separately.
Can launch options replace server.cfg?
Launch options are useful for startup values such as the initial map and logging switches, but they are not a practical substitute for a maintained configuration file. Use startup arguments for process-level behavior and cfg files for repeatable server and match settings.