Twój serwer tutaj Licytuj w cotygodniowej aukcji Promuj serwer
105 lines 5.8 KiB Markdown Source Rendered Raw Permalink History
title, excerpt, category, tags, image, read_time
title excerpt category tags image read_time
server.cfg for CS 1.6: A Complete, Commented Example A full, line-by-line server.cfg for CS 1.6 covering identity, rates, gameplay, logging and downloads — with an explanation of when it actually executes. installation server.cfg, config 8 min read

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 listed — sv_lan is 1. Set it to 0.
  • Stats plugin records nothing — mp_logdetail is too low or log is off. Set log on and mp_logdetail 3.
  • A value "keeps resetting" each map — server.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.