server.cfg for CS 1.6: A Complete, Commented Example

June 3, 2026 Daemon666 8 min read 12 Aufrufe

server.cfg is where a CS 1.6 server's personality lives: its name, its rules, its network rates, its logging. The engine executes it automatically at startup and again on every map change, which is both convenient and a trap — anything you want applied once (like maxplayers) does not belong here. This is a complete, commented file you can adapt, with an explanation of what each block does and why.

When server.cfg runs

The engine auto-executes cstrike/server.cfg after it loads a map. So it runs at boot and at every map change. That means:

  • Gameplay and rate cvars belong here — they should re-apply each map.
  • maxplayers does not — it is a launch-time value; set it with +maxplayers on the command line.
  • If a setting "resets every map change", it is because your server.cfg re-applies an old value over your live edit. Change the file, not just the live cvar.

The file

Create /home/steam/hlds/cstrike/server.cfg:

// ---- Identity ----
hostname "My CS 1.6 Server | example.com"
sv_contact "[email protected]"

// ---- Passwords / access ----
rcon_password "use-a-long-random-string-here"
sv_password ""                 // set to make the server private
sv_rcon_banpenalty 15          // minutes banned after too many bad rcon tries
sv_rcon_maxfailures 5          // wrong rcon attempts before a temp ban

// ---- Master list / network mode ----
sv_lan 0                       // 0 = appear on the internet list. MANDATORY for public.
sv_region 255                  // 255 = world; or a numeric region code

// ---- Network rates ----
sv_maxrate 25000
sv_minrate 15000
sv_maxupdaterate 101
sv_minupdaterate 30
sv_maxcmdrate 101
sv_mincmdrate 30
sv_timeout 60

// ---- Gameplay ----
mp_timelimit 30                // minutes per map
mp_maxrounds 0                 // 0 = use timelimit instead of round count
mp_freezetime 3
mp_roundtime 3
mp_startmoney 800
mp_buytime 0.25                // minutes (0.25 = 15 seconds)
mp_c4timer 35
mp_friendlyfire 0
mp_autoteambalance 1
mp_limitteams 2
mp_autokick 0                  // 0 = do not auto-kick idlers/TKers
mp_flashlight 1
mp_footsteps 1
mp_tkpunish 0

// ---- Voice ----
sv_voiceenable 1
sv_alltalk 0                   // 0 = teams cannot hear each other

// ---- Downloads (custom maps/sounds) ----
sv_allowdownload 1
sv_allowupload 1
sv_downloadurl ""              // fast HTTP redirect; leave empty to use slow UDP download

// ---- Logging ----
log on
mp_logmessages 1
mp_logdetail 3                 // log damage + kills (needed by stats plugins)
sv_log_onefile 0
sv_logbans 1
sv_logecho 1

// ---- Execute the map cycle ----
mapcyclefile "mapcycle.txt"

The blocks that matter most

sv_lan 0

The single most important line. With sv_lan 1 the server never heartbeats the master list and rejects Steam clients with a LAN error. Public servers must have sv_lan 0.

Rates

The rate block controls how much bandwidth and how many updates the server allows per client. sv_maxupdaterate 101 and sv_maxcmdrate 101 are the modern defaults for a good connection; the min values stop a client from starving itself into rubber-banding. Do not set the max absurdly high — it does not add smoothness beyond the engine's real tick rate, it just wastes bandwidth.

Logging detail

mp_logdetail 3 is required if you run a stats plugin — stats parse damage and kill log lines, and at lower detail those lines are not written. If your stats plugin "records nothing", check this first.

sv_downloadurl

Leave it empty and clients pull custom maps over the slow in-game UDP channel; point it at an HTTP server hosting your cstrike/ files and downloads are far faster. It is worth setting the moment you run custom maps.

Common errors

  • Settings do not apply — the file is named server.cfg.txt (Windows hides the extension), or it is not in cstrike/. It must be cstrike/server.cfg exactly.
  • maxplayers in cfg does nothing — it is a launch-time parameter. Use +maxplayers on the command line.
  • Server shows as LAN / not listedsv_lan is 1. Set it to 0.
  • Stats plugin records nothingmp_logdetail is too low or log is off. Set log on and mp_logdetail 3.
  • A value "keeps resetting" each mapserver.cfg re-executes on map change and overwrites your live edit. Change it in the file.
  • rcon_password in a shared file leaked — anyone who reads the file has RCON. Keep the file readable only by the steam user.

Verification

Start the server and, in the console, echo a few values back to confirm the file executed:

sv_lan
mp_timelimit
sv_maxupdaterate

Each should return the value you set. Force a map change and re-check — the values should persist because the file re-executes. Once the config is stable, wire the whole thing into a systemd service and open the right firewall ports, and the server is ready for players.

Mitwirkende: Daemon666 ✦
Teilen: