VGKAMI
Advertise Get listed

Game Guides

CS2 Server Admin Commands and How to Use Them

October 26, 2026 11 min read

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 1 schedules a match restart.
  • Convar: mp_roundtime stores the round-time value. Entering it without a value prints its current value and description.
  • Access flag: a command marked cheat requires sv_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.

  1. Open Settings.
  2. Choose Game.
  3. Set Enable Developer Console (~) to Yes.
  4. 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

  • status lists 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 by status, 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

  1. Announce the planned change with say.
  2. Check the target name with maps *.
  3. Set game_type and game_mode if the mode is changing.
  4. Run changelevel map_name for a live rotation, or map map_name for a full reload.
  5. 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 1 restarts the game after one second.
  • mp_warmup_end ends the current warmup; mp_warmup_start begins one.
  • mp_pause_match pauses at the next freeze time; mp_unpause_match resumes play.
  • mp_swapteams swaps teams and restarts.
  • mp_scrambleteams scrambles 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_t adds a Terrorist bot; bot_add_ct adds a Counter-Terrorist bot.
  • bot_kick removes bots.
  • bot_quota 10 sets the desired bot quota to 10.
  • bot_difficulty 2 sets 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

  • hostname sets the name shown to players.
  • sv_password protects access with a password.
  • sv_lan controls LAN-only operation.
  • sv_tags supplies server browser tags.
  • sv_alltalk controls voice communication between teams.
  • sv_deadtalk controls whether dead players can communicate with living players.
  • sv_hibernate_when_empty controls behavior while no one is connected.
  • sv_maxrate and sv_minrate define the server’s rate limits.
  • sv_region sets the advertised region value.

Round and economy rules

  • mp_roundtime, mp_freezetime, and mp_warmuptime set round, freeze, and warmup durations.
  • mp_maxrounds and mp_timelimit limit match length.
  • mp_buytime sets the purchase period.
  • mp_buy_anywhere permits purchases outside the usual buy zone when enabled.
  • mp_startmoney and mp_maxmoney set starting and maximum funds.
  • mp_c4timer controls the bomb timer.
  • mp_friendlyfire controls friendly-fire damage.
  • mp_autoteambalance and mp_limitteams govern team balancing and team-size limits.
  • mp_halftime controls halftime behavior.
  • mp_overtime_enable controls 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

  1. Open or create game/csgo/cfg/server.cfg on the server or through the hosting panel’s file manager.
  2. Add only the settings you want applied on every startup, one command per line.
  3. Save the file without changing its .cfg extension.
  4. Restart the server, or load a named configuration with exec filename from the server console or authorized RCON.
  5. 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?

  1. Connect to the correct server console or authorized RCON endpoint.
  2. Run status and confirm the server identity before touching players or match state.
  3. Announce disruptive actions with say.
  4. Use the narrowest command: a user-ID kick instead of a broad reset, or changelevel instead of map when a live rotation is intended.
  5. Put recurring settings in a reviewed cfg file rather than relying on a one-time console change.
  6. Query key convars and inspect logs after applying a configuration.
  7. 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.