# Counter-Strike: Source — Complete Dedicated Server Guide
## Startup Parameters
**Default command line**
```bash
srcds_run -game cstrike -console -usercon +hostport 27015 +map de_dust2 +maxplayers 16 +exec server.cfg
```
**Parameters (exhaustive, server-relevant only)**
- `-game
` — Game directory. Required.
- `-console` — Enable server console output.
- `-usercon` — Enable user console commands.
- `+hostport ` — Server port (UDP). Default: 27015.
- `+ip ` — Bind to specific IP address.
- `+map ` — Starting map. Required.
- `+maxplayers ` — Maximum players (1-64).
- `+exec ` — Execute config file on startup.
- `+sv_setsteamaccount ` — Game Server Login Token for public servers.
- `+rcon_password ` — RCON password for remote administration.
- `+sv_password ` — Server password for private games.
- `+hostname ` — Server name in browser.
- `+sv_lan <0|1>` — LAN mode (0=Internet, 1=LAN only).
- `-tickrate ` — Server tickrate (default: 66, competitive: 128).
- `-port ` — Alternative syntax for hostport.
- `-nohltv` — Disable SourceTV.
- `+tv_enable <0|1>` — Enable/disable SourceTV.
- `+tv_port ` — SourceTV port (default: hostport + 5).
- `-secure` — Enable VAC (Valve Anti-Cheat).
- `-insecure` — Disable VAC (for testing only).
- `+sv_region ` — Server region (255=world, 0-7=specific regions).
- `+fps_max ` — Server FPS limit.
- `-threads ` — Number of worker threads.
- `-norestart` — Don't restart server on crash.
- `+log ` — Enable/disable logging.
- `-condebug` — Log console output to file.
- `+sv_logfile <0|1>` — Enable server logging.
- `+sv_logflush <0|1>` — Flush logs immediately.
**Ports**
- Game: UDP **27015** (primary)
- RCON: TCP **27015** (same as game port)
- SourceTV: UDP **27020** (game port + 5)
- Steam Query: UDP **27016** (game port + 1)
## Config Files & Locations
**Windows:**
- `steamapps/common/Counter-Strike: Source/cfg/server.cfg` — Main server configuration
- `steamapps/common/Counter-Strike: Source/cfg/autoexec.cfg` — Auto-executed commands
- `steamapps/common/Counter-Strike: Source/mapcycle.txt` — Map rotation list
- `steamapps/common/Counter-Strike: Source/motd.txt` — Message of the day
- `steamapps/common/Counter-Strike: Source/banned_user.cfg` — Banned users
- `steamapps/common/Counter-Strike: Source/banned_ip.cfg` — Banned IP addresses
- `steamapps/common/Counter-Strike: Source/logs/` — Server logs directory
**Linux:**
- `~/.steam/steamapps/common/Counter-Strike: Source/cfg/server.cfg` — Main server configuration
- `~/.steam/steamapps/common/Counter-Strike: Source/cfg/autoexec.cfg` — Auto-executed commands
- `~/.steam/steamapps/common/Counter-Strike: Source/mapcycle.txt` — Map rotation list
- `~/.steam/steamapps/common/Counter-Strike: Source/motd.txt` — Message of the day
- `~/.steam/steamapps/common/Counter-Strike: Source/banned_user.cfg` — Banned users
- `~/.steam/steamapps/common/Counter-Strike: Source/banned_ip.cfg` — Banned IP addresses
- `~/.steam/steamapps/common/Counter-Strike: Source/logs/` — Server logs directory
**Key Configuration Files:**
- **server.cfg**: Core server settings (rates, game rules, admin settings)
- **autoexec.cfg**: Commands executed on server start
- **mapcycle.txt**: Map rotation configuration
- **motd.txt**: Welcome message displayed to connecting players
## Steam Workshop
Not supported by this game.
## Common Mods (curated)
- **SourceMod**
- **Purpose**: Admin and scripting framework for Source engine games.
- **Install**: Download from sourcemod.net, extract to game directory, requires MetaMod:Source.
- **Configure**: Edit `addons/sourcemod/configs/admins_simple.ini` for admin users.
- **MetaMod:Source**
- **Purpose**: Plugin loading framework for Source engine.
- **Install**: Extract to game directory, add to gameinfo.txt.
- **Configure**: Plugin loading handled automatically.
- **Mani Admin Plugin**
- **Purpose**: Alternative admin framework with extensive features.
- **Install**: Extract to game directory, configure via mani_server.cfg.
- **Configure**: Admin settings in `cfg/mani_server.cfg`.
## Database
Not applicable - this game does not use a database for core functionality.
## Administration & Scripting
**Remote Administration:**
- RCON (Remote Console) access for server management
- Web-based admin panels (game-specific or third-party)
- In-game admin commands and permissions
**Backup Strategy:**
- Automated daily backups of save files and configuration
- Rotate backups (keep 7 daily, 4 weekly, 12 monthly)
- Test backup restoration procedures regularly
- Store backups in separate location/drive
**Auto-Update:**
- Use SteamCMD for automatic server updates (Steam games)
- Schedule updates during low-traffic periods
- Backup before applying updates
- Monitor for update announcements and patch notes
**Monitoring:**
- Server performance monitoring (CPU, memory, network)
- Player connection logs and statistics
- Error log monitoring and alerting
- Uptime tracking and availability reporting
## Troubleshooting (game-specific)
**"Server not appearing in browser"**
- **Cause**: Missing Game Server Login Token or firewall blocking ports
- **Fix**: Add `+sv_setsteamaccount ` to startup, verify ports 27015 UDP/TCP are open
**"VAC Unable to verify"**
- **Cause**: Modified game files or outdated server binaries
- **Fix**: Verify server files integrity via SteamCMD, remove custom plugins temporarily
**"Map change crashes server"**
- **Cause**: Invalid map file or insufficient memory
- **Fix**: Verify map file integrity, increase server memory allocation, check map compatibility
**"High CPU usage/lag"**
- **Cause**: Incorrect tickrate settings or too many plugins
- **Fix**: Adjust `-tickrate` parameter, disable unnecessary plugins, optimize server.cfg rates
**"RCON not working"**
- **Cause**: Incorrect password or blocked TCP port
- **Fix**: Verify `rcon_password` setting, ensure TCP port (same as game port) is accessible
**"Players getting kicked for 'Authentication timeout'"**
- **Cause**: Steam authentication issues or network problems
- **Fix**: Check internet connectivity, verify Steam services status, adjust timeout settings