---
title: "Counter-Strike: Source server.cfg configuration"
description: "Where cstrike/cfg/server.cfg lives, what executes when, and the documented convars worth setting on a CS:S server."
url: "https://www.gameserverkings.com/knowledge-base/counter-strike-source/configuration-overview/"
category: "Counter-Strike: Source"
category_url: "https://www.gameserverkings.com/knowledge-base/counter-strike-source/"
published: "2026-08-07T08:25:09.323Z"
updated: "2026-08-07T08:32:30.452Z"
source_format: "markdown"
site: "GameServerKings"
---

# Counter-Strike: Source server.cfg configuration

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](/knowledge-base/counter-strike-source/getting-started-with-your-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](/knowledge-base/counter-strike-source/how-to-install-sourcemod-plugins/).

## How to edit server.cfg

1. Open the **Files** area of your panel and browse to `cstrike/cfg/`.
2. Edit `server.cfg`.
3. Save.
4. Apply the change — either restart the server, or run `exec server.cfg` from the console.

> [!IMPORTANT] Edits do not apply the moment you save
> `server.cfg` is read when the server executes it, not when your editor writes it. Until you restart or `exec` the 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.

> [!WARNING] `sv_pure` and custom content pull in opposite directions
> A pure server is the right default for a competitive pub. If you run custom skins, models or sounds, `sv_pure` is 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](/knowledge-base/counter-strike-source/how-to-add-and-rotate-maps/).

### Administration

| Convar | What it does |
|---|---|
| `rcon_password` | The RCON password. SourceMod treats it as a protected cvar |

> [!WARNING] RCON is a single shared password with total control
> SourceMod's `sm_cvar` documentation lists `rcon_password` among the cvars protected by default, alongside `sm_show_activity` and `sm_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](/knowledge-base/counter-strike-source/how-to-add-admins-with-sourcemod/).

> [!TIP] Your panel console needs no RCON password at all
> The **Console** tab on your [GSK Counter-Strike: Source server](/games/counter-strike-source/) 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.

> [!CAUTION] Copied configs fail quietly
> Pasting a `server.cfg` from 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 you `exec` a 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](/knowledge-base/counter-strike-source/how-to-add-admins-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](/knowledge-base/counter-strike-source/getting-started-with-your-server/) — first boot, ports and connecting
- [How to add admins to a Counter-Strike: Source server with SourceMod](/knowledge-base/counter-strike-source/how-to-add-admins-with-sourcemod/) — admin flags, immunity and the full command set
- [How to install SourceMod plugins on your Counter-Strike: Source server](/knowledge-base/counter-strike-source/how-to-install-sourcemod-plugins/) — installing, enabling and debugging plugins
- [How to add and rotate maps on a Counter-Strike: Source server](/knowledge-base/counter-strike-source/how-to-add-and-rotate-maps/) — map cycles, FastDL and map voting

---

Made with 💜 by GameServerKings
