Counter-Strike: Source server.cfg configuration
Where cstrike/cfg/server.cfg lives, what executes when, and the documented convars worth setting on a CS:S server.
The main configuration file for a Counter-Strike: Source server is cstrike/cfg/server.cfg. cstrike is the CS:S mod folder, and every path in this article — configs, maps, addons — is relative to it.
For first boot and connecting, see Getting started with your Counter-Strike: Source server.
Where the config files live
| Path | What it is |
|---|---|
cstrike/cfg/server.cfg |
The main server config, executed by the server |
cstrike/cfg/ |
Any other .cfg you write, loaded with exec |
cstrike/cfg/sourcemod/ |
Config files SourceMod generates for its own plugins, once installed |
cstrike/addons/sourcemod/configs/ |
SourceMod's admin and map list configs |
The split matters: cfg/sourcemod/ holds generated cvar configs for plugins, while addons/sourcemod/configs/ holds SourceMod's own data files such as the admin list. They are different directories and it is a common mistake to edit one expecting the other. Plugin specifics are covered in How to install SourceMod plugins on your Counter-Strike: Source server.
How to edit server.cfg
- Open the Files area of your panel and browse to
cstrike/cfg/. - Edit
server.cfg. - Save.
- Apply the change — either restart the server, or run
exec server.cfgfrom the console.
Edits do not apply the moment you save
server.cfgis read when the server executes it, not when your editor writes it. Until you restart orexecthe file, the running server is still using the old values. If a change "did nothing", this is usually why.
Which convars should I set?
The convars below are ones documented in a primary source — Valve's own developer documentation, or AlliedModders' SourceMod code that reads them. They are the settings worth understanding rather than an exhaustive list.
Server visibility and content
| Convar | What it does |
|---|---|
sv_region |
Which part of the world the server browser reports the server as being in |
sv_pure |
Forces clients to use content matching the server's, to stop modified models, materials and sounds |
sv_downloadurl |
Address of a FastDL HTTP server for delivering custom content |
sv_cheats |
Master switch for cheat-protected commands |
sv_region takes these values:
| Value | Region |
|---|---|
| 0 | US — East |
| 1 | US — West |
| 2 | South America |
| 3 | Europe |
| 4 | Asia |
| 5 | Australia |
| 6 | Middle East |
| 7 | Africa |
| 255 | World (default) |
Valve's documentation notes that a server set to a specific region (0–7) is listed when that region or <All> is selected in the browser's location filter, while any other value means it is only listed under <All>. The same page notes the cvar may be deprecated — it has been removed from HLDS though it still exists in SRCDS, and the Steam server browser no longer offers a region selector. Treat it as harmless to set and not something to rely on.
sv_pure accepts 0, 1 or 2. Set to 1 or 2 and, from the next map change, the server enforces that client-side materials, models and sounds match what is specified in pure_server_whitelist.txt. Valve documents a real cost to sv_pure 1: on the first map load the server calculates CRCs for every file marked allow_from_disk+check_crc, which can pause the server for a long time if the whitelist is broad. sv_pure 2 avoids that because the server does not need to calculate CRCs.
sv_pureand custom content pull in opposite directionsA pure server is the right default for a competitive pub. If you run custom skins, models or sounds,
sv_pureis the setting that stops them loading. Decide which of the two you are running before you set it, rather than debugging "my custom content stopped working" later.
Gameplay
These are convars SourceMod's own plugins read at runtime, which is how their names are verified here:
| Convar | Read by |
|---|---|
mp_friendlyfire |
SourceMod's funvotes and basetriggers plugins |
sv_alltalk |
SourceMod's funvotes plugin |
sv_gravity |
SourceMod's funvotes plugin |
mp_maxrounds |
SourceMod's basetriggers plugin |
mp_winlimit |
SourceMod's basetriggers plugin |
mp_fraglimit |
SourceMod's basetriggers plugin |
mp_maxrounds, mp_winlimit and mp_fraglimit are the three end-of-map conditions, and basetriggers reads all three to answer a player typing "nextmap" or "timeleft" in chat. If you set none of them and no time limit, the map never ends on its own.
Map rotation
| Convar | What it does | Default |
|---|---|---|
mapcyclefile |
Names the file containing the map cycle | mapcycle.txt |
Map rotation has its own guide: How to add and rotate maps on a Counter-Strike: Source server.
Administration
| Convar | What it does |
|---|---|
rcon_password |
The RCON password. SourceMod treats it as a protected cvar |
RCON is a single shared password with total control
SourceMod's
sm_cvardocumentation listsrcon_passwordamong the cvars protected by default, alongsidesm_show_activityandsm_immunity_mode— protected because anyone holding it controls the server completely. Use a long random string used nowhere else. If you want per-person admin access with individual permissions instead of one shared password, that is exactly what SourceMod's admin system provides: see How to add admins to a Counter-Strike: Source server with SourceMod.
Your panel console needs no RCON password at all
The Console tab in your GameServerKings panel is attached directly to the server process. Commands typed there run as the server console, with no password crossing the network.
How do I check a setting's actual value?
Type the convar's name into the server console with no argument. The server prints its current value.
Do this rather than trusting a value copied from a guide — including this one. Config files, game updates and plugins all change convars at runtime, so the only authoritative answer for what your server is doing right now comes from your server.
Copied configs fail quietly
Pasting a
server.cfgfrom another game or another Source title is the most common way to break a CS:S server, because a line the engine does not recognise produces an error and then execution continues with the rest of the file. The result is a config that looks like it applied while silently skipping lines. Read the console output the first time youexeca config you did not write.
FAQ
Where is server.cfg on a Counter-Strike: Source server?
cstrike/cfg/server.cfg. On Windows paths this is written cstrike\cfg\server.cfg. The cstrike folder is the CS:S mod directory.
Why are my server.cfg changes not applying?
Because the file is only read when it is executed. Saving the file does not push the values into the running server. Restart the server, or run exec server.cfg in the console.
How do I find out what a convar is currently set to?
Type the convar name in the server console with no value and it prints the current setting. This is more reliable than any documented default, because configs and plugins change convars at runtime.
What does sv_pure do on a Counter-Strike: Source server?
It forces connecting clients to use content that matches the server's, which stops players modifying models, materials or sounds to gain an advantage. Set it to 1 or 2 and it takes effect from the next map change. Use 2 if you want to avoid the CRC calculation pause that sv_pure 1 causes on first map load with a broad whitelist.
Does sv_region still do anything?
Partly. It sets the region the server browser reports, and a server set to 0–7 shows under that region or <All>. Valve's own documentation flags it as possibly deprecated, since the Steam server browser no longer has a region selector, though the in-game browser may still offer one. Set it correctly, but do not expect it to drive traffic.
Should I set a password on my server?
Only if you want it private. A join password makes the server unusable for a public community, which is what most CS:S servers are for. If your goal is to stop other people running admin commands rather than to stop them playing, you want admin permissions instead — see How to add admins to a Counter-Strike: Source server with SourceMod.
Can I use a Counter-Strike 2 config on Counter-Strike: Source?
No. They are different engines — CS:S is Source 1 and CS2 is Source 2 — and the convar sets diverge. Unknown lines fail silently in the middle of an otherwise working file, so a ported config tends to half-apply rather than fail loudly. Start from a CS:S config.
What to read next
- Getting started with your Counter-Strike: Source server — first boot, ports and connecting
- How to add admins to a Counter-Strike: Source server with SourceMod — admin flags, immunity and the full command set
- How to install SourceMod plugins on your Counter-Strike: Source server — installing, enabling and debugging plugins
- How to add and rotate maps on a Counter-Strike: Source server — map cycles, FastDL and map voting
Made with 💜 by GameServerKings
Need a Counter-Strike: Source server?
Deploy an instantly-provisioned Counter-Strike: Source server on high-clock hardware — DDoS protected, no contracts, cancel anytime.
From $4.50 /month