Best CS2 Server Settings
A clean CS2 server.cfg for whatever you're running — 5v5 competitive, casual, deathmatch, wingman or a practice/retakes server. The game_type and game_mode combo that picks the mode, the mp_ ruleset that shapes the match, the rate convars, and the honest answer on 128-tick vs sub-tick.
CS2 is configured in two places: launch parameters (mode, map, GSLT, port — set once at start) and server.cfg / mode configs (the rules that shape each match). The mode itself is a game_type + game_mode pair, and it's the thing people get wrong most often.
Below are the mode combos, a solid competitive ruleset, the rate convars, and the sub-tick reality. New to it? Start with how to make a CS2 server, and add plugins via how to install CS2 plugins.
What you'll need
A quick checklist before you begin — have these ready and the rest is easy.
- A CS2 dedicated server (app 730) installed via SteamCMD.
- A valid GSLT (sv_setsteamaccount) to list it publicly.
- Access to server.cfg and your launch parameters.
- The right game_type / game_mode pair for your mode.
- (Optional) Metamod + CounterStrikeSharp for practice/retakes plugins.
Configure your CS2 server, setting by setting
Pick the mode with game_type + game_mode
The mode is a pair of values, not one setting. Set them in the launch line (or an autoexec): Competitive 0/1, Casual 0/0, Wingman 0/2, Deathmatch 1/2, Custom/practice 3/0 (for surf, retakes, KZ via plugins).
+game_type 0 +game_mode 1 // Competitive 5v5 // Casual 0/0 · Wingman 0/2 · Deathmatch 1/2 · Custom 3/0
Set the core server.cfg
The essentials every server needs: name, a GSLT so it can be public, RCON, passwords and cheats off. sv_lan 0 makes it an online server.
hostname "My ESAGAMES CS2 Server" sv_setsteamaccount "YOUR_GSLT" rcon_password "changeme" sv_password "" // set to lock the server sv_lan 0 sv_cheats 0
Dial in the competitive ruleset
For 5v5, the mp_ convars set round count, economy, team balance and overtime. This is the MR12 (24-round) modern competitive standard.
mp_maxrounds 24 mp_overtime_enable 1 mp_friendlyfire 1 mp_autoteambalance 1 mp_limitteams 1 mp_startmoney 800 mp_maxmoney 16000 mp_roundtime 1.92 mp_freezetime 15
Set the warmup & match flow
Warmup, ready-up and knife-round behaviour shape how a match starts. For pugs, a warmup with a ready command (via a plugin like MatchZy) is standard; for casual play a short fixed warmup is enough.
mp_warmuptime 60 mp_warmup_pausetimer 1 // hold warmup until ready mp_halftime 1
Set the rate convars
The rate convars govern client networking. Sensible values let modern clients run full rate; too-tight limits cause choke. These are the safe production defaults.
sv_minrate 128000 sv_maxrate 0 sv_mincmdrate 64 sv_maxcmdrate 128
Split configs per mode & exec them
Keep a server.cfg for shared settings and separate competitive.cfg / deathmatch.cfg / practice.cfg for mode rules, then exec the right one. It keeps each mode clean and switchable.
// in server.cfg exec competitive.cfg
A clean, correct config
game_type + game_mode is the #1 gotcha
The mode is a pair, not one value. 0/1 is competitive, 1/2 is deathmatch. Set the wrong pair and the server loads a mode you didn't want, ignoring half your rules.
CS2 is sub-tick — 128-tick is mostly moot
Unlike CS:GO, CS2's registration is sub-tick, so the old 128-tick chase barely matters for hit-reg. Set sane rate convars and a good route; don't obsess over a tickrate flag.
One config per mode
Keep competitive, deathmatch and practice in separate .cfg files and exec the one you want. Far cleaner than one giant server.cfg you keep re-editing.
GSLT to go public
Without a valid GSLT (sv_setsteamaccount) for app 730 the server can't be listed publicly. Generate one per server and keep it secret.
Common problems & fixes
Hit a snag? These are the issues people run into most — and how to solve them.
The server loads the wrong mode
game_type and game_mode are a pair. Competitive is 0/1, deathmatch 1/2 — set BOTH correctly in the launch line, not just one.
My mp_ convars have no effect
The mode config isn't being exec'd, or the mode loaded overrides them. Confirm server.cfg exec's your competitive.cfg and that the mode pair matches.
The server won't appear publicly
No valid GSLT. Set sv_setsteamaccount with a token generated for app 730, and make sure UDP 27015 is open.
Players report choke or bad reg
Rate convars too tight or a poor route. Loosen sv_maxrate/sv_maxcmdrate to the values above and host closer to your players — remember CS2 is sub-tick, so it's route quality, not tickrate.
Skip the setup — host it with ESAGAMES
Want a competition-ready CS2 server without hand-editing configs? Our CS2 hosting ships with mode presets, a full panel and low-latency, sub-tick-friendly routing on a protected Frankfurt network — instant setup.
Frequently asked questions
How do I set the game mode on a CS2 server?
The mode is a game_type + game_mode pair: Competitive is 0/1, Casual 0/0, Wingman 0/2, Deathmatch 1/2, and Custom/practice 3/0. Set both values in the launch line or an autoexec — setting only one loads the wrong mode.
What is the best server.cfg for competitive CS2?
For MR12 5v5: mp_maxrounds 24, mp_overtime_enable 1, mp_friendlyfire 1, mp_autoteambalance 1, mp_startmoney 800, mp_maxmoney 16000, mp_roundtime 1.92 and mp_freezetime 15 — plus the core sv_setsteamaccount (GSLT), rcon_password and sv_cheats 0.
Does CS2 support 128-tick servers?
CS2 uses sub-tick networking, so unlike CS:GO the classic 128-tick versus 64-tick distinction barely affects hit registration. Set sensible rate convars and host on a well-peered network — that matters far more than a tickrate number.
How do I make a CS2 practice or retakes server?
Run it as a custom game (game_type 3, game_mode 0), then install Metamod:Source + CounterStrikeSharp and a practice or retakes plugin. See our how to install CS2 plugins guide for the load order.
Why is my CS2 server ignoring my config?
Usually the config isn't being exec'd, or the game_type/game_mode pair loads a different mode that overrides your convars. Confirm the launch line sets the right mode and that server.cfg exec's your mode config on start.
How do I set the round count and economy?
mp_maxrounds sets total rounds (24 for MR12), mp_startmoney and mp_maxmoney set the economy, and mp_roundtime / mp_freezetime set the timing. Put these in your competitive.cfg and exec it.
Keep reading
Counter-Strike 2 is a trademark of Valve Corporation. ESAGAMES is an independent hosting provider, not affiliated with or endorsed by Valve. You must own a legitimate copy of the game to play on Steam-secured servers.