How to Configure Your CS2 Server (server.cfg)
server.cfg is the main configuration file for your CS2 dedicated server — it controls everything from your server's name and password to round times and network rates. Here's a practical reference covering the cvars that actually matter.
What Is server.cfg?
server.cfg is a plain text file that runs automatically every time your CS2 server starts and on every map change. It's a list of console variable (cvar) assignments — one per line — and it's where you define your server's name, game rules, network settings, and more.
File location:
game/csgo/cfg/server.cfg
If the file doesn't exist yet, create it using the file manager. It doesn't need to be pre-populated — even a blank file is valid.
Syntax rules:
cvar_name value
hostname "My CS2 Server"
sv_cheats 0
One cvar per line. String values with spaces go in quotes. Comments start with //.
Server Identity
These cvars control how your server appears in the browser and who can connect.
hostname "My CS2 Server"
sv_tags "competitive,128tick"
sv_visiblemaxplayers 10
sv_password ""
hostname — The name shown in the server browser and in-game scoreboard. Make it descriptive.
sv_tags — Comma-separated tags players can filter by in the server browser. Keep these accurate to your server type (e.g. surf, bhop, casual, competitive). Maximum 128 characters.
sv_visiblemaxplayers — The player cap shown in the browser listing. This can differ from the actual server max — useful if you want to reserve slots for admins.
sv_password — Leave blank for a public server. Set a value to require a password to connect. Share it with your community via Discord or wherever you organize.
Gameplay Settings
sv_cheats 0
sv_friendly_fire 1
sv_autokick 0
mp_autoteambalance 1
mp_limitteams 1
mp_autokick 0
mp_maxmoney 16000
mp_startmoney 800
mp_roundtime 1.92
mp_roundtime_defuse 1.92
mp_freezetime 15
mp_buytime 20
mp_warmuptime 15
mp_halftime 1
sv_cheats — Set to 1 to allow cheat commands (useful for practice servers). Should be 0 on any public or competitive server.
sv_friendly_fire — 1 enables team damage, 0 disables it.
sv_autokick — Automatically kick idle players. 0 disables it, which is usually what you want on a private or low-pop server.
mp_autoteambalance — When 1, the server will auto-balance teams between rounds if they're uneven.
mp_limitteams — Maximum difference in team sizes allowed. 1 means one team can have at most one more player than the other.
mp_autokick — When enabled, kicks players for too many team kills. Set to 0 if you're running a casual environment.
mp_maxmoney — The maximum money a player can hold. Default is 16000.
mp_startmoney — Money each player starts with at the beginning of each half. Default 800.
mp_roundtime — Round length in minutes (for non-defuse modes). 1.92 = roughly 1 minute 55 seconds.
mp_roundtime_defuse — Round length for bomb defuse mode. Commonly set to 1.92 (standard competitive) or 2.5 for longer rounds.
mp_freezetime — How long players are frozen at round start before the round begins (seconds). 15 is standard; lower values speed up the pace.
mp_buytime — How many seconds players have to buy after the round starts.
mp_warmuptime — Length of the warmup period in seconds.
mp_halftime — Set to 1 to enable the halftime side switch. Set to 0 to disable (e.g. for deathmatch or surf servers that don't have halves).
Network Rates and Performance
These settings control how much bandwidth clients and the server exchange. For modern servers on a good connection, setting rates to unlimited (0) is the right call.
sv_minrate 0
sv_maxrate 0
sv_mincmdrate 64
sv_maxcmdrate 64
sv_minupdaterate 64
sv_maxupdaterate 64
sv_maxunlag 0.5
sv_minrate / sv_maxrate — Client bandwidth limits in bytes per second. 0 means unlimited. Leave both at 0 unless you're deliberately throttling bandwidth.
sv_mincmdrate / sv_maxcmdrate — Commands per second the client sends to the server. Locking both to your server's tickrate (64) is standard.
sv_minupdaterate / sv_maxupdaterate — How often the server sends updates to clients. Again, match to your tickrate.
sv_maxunlag — Maximum lag compensation in seconds. 0.5 is a reasonable ceiling that prevents abuse from players with very high ping.
RCON
rcon_password "YourSecurePasswordHere"
rcon_password — Sets the password for remote console access. If left blank, RCON is disabled. If you use RCON tools to manage your server remotely, set this to a strong, unique password. Don't reuse passwords you use elsewhere.
Logging
log on
sv_logfile 1
logaddress_add_http ""
log on — Enables server-side logging. You want this on.
sv_logfile 1 — Writes log output to a file in game/csgo/logs/.
logaddress_add_http — Optionally streams log data to an HTTP endpoint. Used by GOTV and demo recording services. Leave blank if you're not using one.
Gamemode-Specific Config Files
CS2 loads additional config files depending on the active game mode, and settings in those files override server.cfg for that mode. These files live in the same cfg/ folder:
| File | Mode |
|---|---|
gamemode_competitive.cfg |
Competitive |
gamemode_casual.cfg |
Casual |
gamemode_deathmatch.cfg |
Deathmatch |
gamemode_custom.cfg |
Workshop/custom modes |
If you want competitive to have different round times than casual, put the overrides in the appropriate gamemode file rather than in server.cfg. Create the file if it doesn't exist — same syntax as server.cfg.
A Complete Minimal server.cfg
Here's a ready-to-use starting point covering the essentials. Copy this, swap in your values, and drop it into game/csgo/cfg/server.cfg.
hostname "My CS2 Server"
sv_tags "casual,friendly"
sv_visiblemaxplayers 16
sv_password ""
sv_cheats 0
sv_friendly_fire 1
mp_autoteambalance 1
mp_limitteams 1
mp_autokick 0
mp_maxmoney 16000
mp_startmoney 800
mp_roundtime 1.92
mp_roundtime_defuse 1.92
mp_freezetime 15
mp_buytime 20
mp_warmuptime 15
mp_halftime 1
sv_minrate 0
sv_maxrate 0
sv_mincmdrate 64
sv_maxcmdrate 64
sv_minupdaterate 64
sv_maxupdaterate 64
sv_maxunlag 0.5
rcon_password "ChangeThisPassword"
log on
sv_logfile 1
Applying Changes
server.cfg is executed on startup and on every map change, so your changes will take effect automatically the next time the map rotates or the server restarts.
If you want to apply changes immediately without a restart, run this from RCON or the server console:
exec server.cfg
This re-runs the file on the live server. Note that some cvars (particularly tickrate and max player settings) require a full server restart to take effect.