--- title: "The 25 CS 1.6 Server Cvars You Actually Need" excerpt: "A no-filler reference to the server cvars that matter on a public CS 1.6 server: identity, networking, rates, downloads, logging and security, with sane values." category: "administration" tags: "cvars, config" image: "" read_time: "8 min read" ---
A CS 1.6 server exposes hundreds of cvars, and most are noise you will never touch. This is the short list that actually determines whether your server is findable, plays smoothly, and is safe to run in public. Put these in server.cfg; the round-specific mp_ cvars have their own reference.
| Cvar | Example | What it does |
|---|---|---|
hostname | "My CS 1.6 Server" | Name shown in the browser and master list. |
rcon_password | "long-random" | Remote admin password. Make it long; RCON is brute-forceable. |
sv_password | "" | Join password. Empty = public. |
sv_contact | "admin@example.com" | Contact address in server info. |
sv_region | 3 | Master-list region (0 US-East ... 3 Europe ... 255 world). |
| Cvar | Example | What it does |
|---|---|---|
sv_lan | 0 | Must be 0 to heartbeat the master list. 1 = LAN only. |
sv_timeout | 60 | Seconds before a silent client is dropped. |
sys_ticrate | 1000 | Target server FPS ceiling — see the truth about it. |
pausable | 0 | Prevent clients pausing the server. |
sv_lan 0 is the one people forget; with it at 1 the server never appears online and clients hit a LAN error. See server not in the master list.
| Cvar | Example | What it does |
|---|---|---|
sv_maxrate | 25000 | Max bytes/sec per client. 0 = uncapped; cap it. |
sv_minrate | 15000 | Floor so low-rate clients do not choke everyone. |
sv_maxupdaterate | 101 | Max snapshots/sec to a client. Cannot exceed server FPS. |
sv_minupdaterate | 30 | Floor for update rate. |
sv_maxspeed | 320 | Movement speed ceiling. Standard is 320. |
sv_maxupdaterate is bounded by your actual server FPS: promising 101 updates on a 60 FPS server is a lie the engine cannot keep, and you get choke on the scoreboard (see choke and loss).
| Cvar | Example | What it does |
|---|---|---|
sv_allowdownload | 1 | Let clients download missing content. |
sv_allowupload | 1 | Let clients upload their sprays/logos. |
sv_downloadurl | "http://dl.example.com/cs" | FastDL mirror. See FastDL setup. |
| Cvar | Example | What it does |
|---|---|---|
log | on | Enable logging to cstrike/logs/. |
mp_logmessages | 1 | Log chat, useful for moderation. |
mp_logdetail | 3 | Log attacks and kills (bit 1 + bit 2). |
sv_cheats | 0 | Must be 0 in public; 1 enables cheat cvars. |
sv_filterban | 1 | 1 = banned IDs are blocked (ReHLDS/HLDS ban filter). |
sv_voiceenable | 1 | In-game voice on/off. |
decalfrequency | 30 | Seconds between spray decals; raise to curb spray spam. |
That is 25 cvars that do real work. On ReHLDS you also get hardening cvars worth adding on top, but the list above is the universal floor.
Treat these five groups as a checklist for any new server. Identity is what players and the master list see, and a weak rcon_password here is the single most dangerous omission — a guessed RCON password hands an attacker the whole server, so make it long and random and never reuse it across servers. Visibility and networking decides whether the server is reachable at all; sv_lan 0 plus an open UDP 27015 (see which ports to open) are non-negotiable for a public box.
The rate group is where most "my server feels laggy" complaints actually live. The rates are a contract between server and client: the server offers a ceiling, the client requests up to it, and the real delivered rate is the minimum of what both allow and what the server FPS can sustain. Set sv_maxrate and sv_maxupdaterate deliberately rather than leaving them at defaults, and keep the update rate within reach of your true server FPS — the details are in the sys_ticrate guide. The downloads and logging/security groups are the ones people bolt on later and regret not setting from day one: FastDL keeps map changes fast, and logging is the only reason you will be able to answer "who did that?" a week after the fact.
A final habit worth forming: comment each block in server.cfg so six months from now you know why a value is what it is. A cvar with no comment is a cvar nobody dares change.
sv_lan 1. This is the number-one cause.sv_maxupdaterate promises more than server FPS delivers. Match it to real FPS.sv_region set to the wrong number, so region filters hide you.rcon_password. Use a long random string and consider sv_rcon_* failure limits on ReHLDS.amxx.cfg or a per-map config. Trace the execution order.After editing server.cfg, change the map and read values back in the console — typing a cvar name with no argument echoes its current value:
sv_lan sv_maxupdaterate sv_downloadurl
Confirm each shows what you set. Then check the server appears in the internet browser under the right region, and that a client joins without choke. If a value refuses to stick, see why server.cfg is not executing.