8.8 KiB
Game Server Config Standards
This document defines the standard format for all Source/GoldSrc engine server configuration files in this repository. All new configs and updates to existing configs must follow these standards.
File Format
- Line endings: CRLF (
\r\n) - Encoding: UTF-8 (ASCII subset in practice)
- Filename:
server.cfgfor all Source/GoldSrc engine games - Trailing newline: One blank line at the end of the file
Header
Every config file must begin with an 80-character header block:
// ****************************************************************************
// [Game Name]
// Config - server.cfg
// Date - DD/MM/YYYY
// ****************************************************************************
- The asterisk lines are exactly 80 characters
[Game Name]is the full display name of the game or mod (e.g.Counter-Strike)Datereflects the date the file was last significantly updated
Section Dividers
Sections are separated by an 80-character dot-padded divider:
// .................................. Basic ................................. //
The section name is centred between dot padding. Sections with an odd total
inner width will have one extra dot on the left side — this is consistent and
acceptable (e.g. Security produces an 81-character line).
Standard section dividers (copy-paste ready):
// .................................. Basic ................................. //
// ................................. Security ................................ //
// ............................. Server Logging ............................. //
// .............................. Communication ............................. //
// ................................ Gameplay ................................ //
// .............................. Map Rotation .............................. //
// ............................. Fast Download .............................. //
// ................................ Ban List ................................ //
// ............................ Startup Commands ............................ //
For game-specific sections, generate the divider so it totals 80 characters (or 81 for odd-length names).
Cvar Comment Format
Every cvar must have a single-line comment on the line immediately above it:
// cvarname - Description.
cvarname value
- One line only — no separate
Default:orRecommended:sub-lines - The value set in the config IS the recommendation
- Description is in sentence case and ends with a period
- Source descriptions from Valve-Server-cvarlist
— files are named
[shortname]-cvarlist.txt - For mod-specific cvars not in the cvarlist, write a clear description
Exec/command format:
// exec file.cfg - Description.
exec file.cfg
Blank line between each cvar block (comment + value pair):
// hostname - Name of the server.
hostname "SERVERNAME"
// rcon_password - Remote console password.
rcon_password "ADMINPASSWORD"
Standard Sections
Sections must appear in the following order. Sections marked (optional) may be omitted if the game does not use those features.
1. Basic (required)
Server identity and access credentials. Always the first section.
| Cvar | Notes |
|---|---|
hostname |
Name of the server |
rcon_password |
Remote console password |
sv_password |
Server password for private servers |
sv_setsteamaccount |
Game server login token (include only for games that support it) |
maxplayers |
Maximum number of players |
2. Security (required)
Server security and integrity settings.
| Cvar | Notes |
|---|---|
sv_lan |
LAN mode — disables Steam authentication |
sv_cheats |
Allow cheat commands |
sv_pure |
Enforce pure server file checking (Source only) |
sv_clienttrace |
Bullet trace accuracy (GoldSrc only) |
pausable |
Allow server to be paused (GoldSrc only) |
sv_rcon_* |
RCON security tuning (if included) |
3. Server Logging (required)
| Cvar | Notes |
|---|---|
log |
Enable server log output |
sv_logbans |
Log bans in the server logs |
sv_logecho |
Echo log information to the console |
sv_logfile |
Log server information to file |
sv_log_onefile |
Log to only one file |
4. Communication (required)
| Cvar | Notes |
|---|---|
sv_voiceenable |
Enable voice communications |
sv_alltalk |
Allow all players to hear each other regardless of team |
sv_voicecodec |
Voice codec to use (Source only) |
5. Gameplay (required)
Standard engine cvars controlling game rules, physics, and mechanics. Use this section for cvars that exist across multiple Source/GoldSrc games — not for cvars unique to one specific game (those go in [Game Name] Settings).
Includes:
mp_*cvars (timelimit, friendlyfire, teamplay, roundtime, etc.)sv_maxspeed,sv_gravity,sv_friction,sv_airacceleratesv_minrate,sv_maxrate,sv_mincmdrate,sv_maxcmdrate,sv_minupdaterate,sv_maxupdaterate(network bandwidth)sv_idlekick,sv_pure,sv_cheatsif not already in Security- GoldSrc:
deathmatch,decalfrequency,sys_ticrate,hpk_maxsize sv_aim(GoldSrc autoaim)
6. Map Rotation (optional)
Include only if the game supports map cycling.
| Cvar | Notes |
|---|---|
map |
Default starting map |
mapcyclefile |
Map cycle file |
7. Fast Download (optional)
Include only if the server provides a fast download endpoint.
| Cvar | Notes |
|---|---|
sv_allowdownload |
Allow clients to download files from the server |
sv_allowupload |
Allow clients to upload customisation files |
sv_downloadurl |
URL of the fast download server |
8. Ban List (required)
Source engine:
// exec banned_user.cfg - Load the banned user ID list.
exec banned_user.cfg
// exec banned_ip.cfg - Load the banned IP address list.
exec banned_ip.cfg
// writeid - Write banned user IDs to banned_user.cfg.
writeid
// writeip - Write banned IPs to banned_ip.cfg.
writeip
GoldSrc engine:
// exec listip.cfg - Load the banned IP address list.
exec listip.cfg
// exec banned.cfg - Load the banned user list.
exec banned.cfg
9. Startup Commands (optional)
One-time commands executed at server start. Examples: exec motd.txt,
custom plugin commands.
10. [Game Name] Settings (optional)
Game-specific cvars that are unique to that game or mod and do not exist in
any other Source/GoldSrc game. If a cvar begins with a game-specific prefix
(e.g. sbox_, jb_, zm_, sf_, ins_) or is otherwise not shared with
other games, it belongs here.
Standard engine cvars (mp_*, sv_*, etc.) must never go in this section
— they always belong in the appropriate standard section above (Security,
Communication, Gameplay, etc.).
The section name must match the full display name of the game or mod followed
by Settings:
Garry's Mod Settings—sbox_*sandbox cvarsInsurgency Settings—sv_vote_*,mp_coop_*vote and coop systemFistful of Frags Settings—fof_*game-specific cvarsZombie Master: Reborn Settings—zm_*game-specific cvars
If a game has no game-specific cvars, omit this section entirely.
Section Name Standards
Use exactly the names below. Do not invent alternatives.
| Correct name | Do not use |
|---|---|
Basic |
Server Info, Server Settings, Settings |
Security |
Server Security, Admin Ops, RCON Configuration, Server Query |
Server Logging |
Logging, Log Settings, Logs |
Communication |
Voice, Voice Settings, Comms |
Gameplay |
Runtime, In Game, Misc, Sandbox Rules, Time Limits/Round Settings, Coop Mode Settings |
Map Rotation |
Map Cycle, Map Cycles, Mapcycle |
Fast Download |
Download, Downloads, Fast DL |
Ban List |
Bans, Ban Files, Banlists |
Startup Commands |
Game Specific Commands, Init Commands, Startup |
Template Variables
All configs must use the following placeholder values. These are replaced by server operators with real values:
| Placeholder | Replaces |
|---|---|
SERVERNAME |
Server hostname |
ADMINPASSWORD |
RCON password |
ADMINPASSWORD |
sv_password (if included) |
Cvar Description Source
Use https://github.com/dgibbs64/Valve-Server-cvarlist
for authoritative cvar descriptions. Files are named [shortname]-cvarlist.txt
and accessible at:
https://raw.githubusercontent.com/dgibbs64/Valve-Server-cvarlist/main/[shortname]-cvarlist.txt
The shortname matches the directory name in this repository (e.g. css for
css/server.cfg).
For cvars not present in the cvarlist (mod-specific cvars), write a concise description in sentence case ending with a period.