CS 1.6 Server.cfg Optimization: High FPS ReHLDS Guide
Last updated: May 1, 2026
This is a tested server.cfg download for CS 1.6 ReHLDS servers — optimized for 1000 FPS, stable hit registration, low choke, and lag-free gameplay. Download the file, merge it with your existing config, and restart your server. If your players need a clean CS 1.6 client, send them to csdownload.net.
Download server.cfg
The ZIP contains a single server.cfg file with all performance and ReHLDS settings from this guide. Tested on ReHLDS servers with up to 32 players.
Requirements
These settings require ReHLDS. The sv_rehlds_* commands do not exist in legacy HLDS — using them on a standard HLDS server will produce console errors and the commands will be ignored.
Download the latest ReHLDS and related components from the ReHLDS official website:
| Component | What It Does |
|---|---|
| ReHLDS | Enhanced HLDS engine — required for all sv_rehlds_* settings |
| ReGameDLL_CS | Enhanced server-side GameDLL with additional CS 1.6 fixes |
| ReAPI | AMXModX module for ReHLDS/ReGameDLL plugin support |
| Metamod-R | Optimized Metamod fork for plugin management |
How to Install
- Download and extract the ZIP. You will find a single
server.cfgfile inside. - Open the extracted file with Notepad or Notepad++.
- Open your existing server.cfg on your server in a second window.
- Copy all content from the downloaded file.
- Paste it at the bottom of your existing server.cfg.
- Check for duplicate commands — scroll through your existing config and remove any older entries for the same commands (e.g., if you already have
sys_ticrate, delete the old line and keep the new one). - Save the file and restart your ReHLDS server.
- Connect to the server and type
net_graph 3to verify everything is working.
Settings Explained
Tickrate & Updates
sys_ticrate "1100"
sv_maxupdaterate "80"
sv_minupdaterate "64"
sys_ticrate "1100" — How many times per second the server processes game logic. 1000–1100 is the current standard for ReHLDS servers — this achieves ~1000 server-side FPS. Higher ticrate reduces the gap between a player’s action and the server’s response.
Server FPS is not the same as client FPS. Clients only receive updates at the rate set by sv_maxupdaterate — but a high ticrate means those updates are prepared more frequently and sent with less delay.
| Server Type | sys_ticrate | sv_maxupdaterate | Recommended client settings |
|---|---|---|---|
| Public (up to 32 players) | 1000 | 80 – 101 | rate 100000; cl_updaterate 101; ex_interp 0.01 |
| Competitive / 5v5 | 1000 – 1100 | 101 | rate 100000; cl_updaterate 101; ex_interp 0.01 |
| Bhop / Surf | 1000 | 101 | rate 100000; cl_updaterate 101; ex_interp 0.01 |
| Low-end VPS | 500 | 64 | rate 25000; cl_updaterate 60; ex_interp 0.02 |
If stats in the server console shows FPS below 500, your CPU cannot sustain 1000 ticrate. Lower sys_ticrate to 500 until the stats FPS stabilizes above the ticrate value.
sv_maxupdaterate "80" — Maximum updates per second sent to each client. Use 101 on competitive servers for maximum smoothness. Use 80 on public servers to reduce uplink bandwidth usage.
sv_minupdaterate "64" — Minimum updates per second guaranteed to every client regardless of their connection quality.
Network Rates
sv_maxrate "0"
sv_minrate "100000"
sv_maxrate "0" — Maximum bytes per second sent to a client. Setting to 0 removes the cap — players with high bandwidth receive all available data. On servers with limited uplink, set this to 100000 to prevent one player from consuming all bandwidth.
sv_minrate "100000" — Minimum bytes per second guaranteed to every client. Ensures smooth movement and hit registration. Players who cannot sustain this bandwidth will experience packet loss. For servers with mixed connections, lower to 25000.
sv_downloadurl "" — Fast download URL for custom maps, sounds, and models. When set, clients download server resources via HTTP instead of through the game connection — dramatically faster map downloads. Set this to your web server or FastDL URL. Example: sv_downloadurl "http://yourserver.com/fastdl/". Leave empty if you do not have a FastDL setup.
pingboost 3 — Reduces player ping by optimizing how the server handles timer precision. Values: 1 (minimal boost), 2 (moderate), 3 (maximum). Higher values increase CPU usage. Start with 2 and monitor CPU via stats. If CPU stays under 70% at full player load, use 3. Not available on all hosting environments — some VPS providers block the system timer access required for pingboost to function.
Movement & Physics
sv_airaccelerate "100"
edgefriction "2"
host_framerate "0"
decalfrequency "60"
sv_airaccelerate "100" — Controls air movement speed. Default is 10. Set to 100 only on Bhop or Surf servers. On standard public or competitive servers, keep this at 10 — setting 100 allows players to gain unlimited speed mid-air and breaks standard CS 1.6 movement.
host_framerate "0" — Always set to 0 on ReHLDS. Any other value overrides the automatic frame processing and slows the server down.
decalfrequency "60" — Minimum seconds between player spray applications. 60 means once per minute. Adjust to your preference.
Lag Compensation
sv_maxcmdrate 101
sv_maxunlag 0.5
sv_uploadmax 1.0
sv_maxcmdrate 101 — Maximum command packets per second accepted from a client. Must match the client’s cl_cmdrate. If clients report Choke > 0 in net_graph, verify their cl_cmdrate does not exceed this value.
sv_unlag 1 — Enables server-side lag compensation. Always set to 1. Without this, players with higher ping have a significant disadvantage — their shots are calculated based on where enemies currently are, not where they were when the shot was fired.
sv_maxunlag 0.5 — Maximum seconds the server rewinds player positions for lag compensation. At 0.5, players with up to 500ms ping benefit from hit registration correction. Lower to 0.2–0.3 on servers where all players have low ping.
sv_timeout 65 — Seconds before the server disconnects a player who stops responding. Default is 65. Lower values (30–40) are useful on public servers to quickly free slots from disconnected players. Higher values (90–120) help players on unstable connections stay connected through brief outages.
ReHLDS Specific Settings
sv_use_entity_file "0"
sv_rehlds_force_dlmax "1"
sv_delayed_spray_upload "0"
sv_rehlds_send_mapcycle "0"
sv_rehlds_local_gametime "1"
sv_rehlds_hull_centering "1"
sv_rehlds_movecmdrate_max_avg "-1"
sv_rehlds_stringcmdrate_max_avg "-1"
sv_rehlds_movecmdrate_max_burst "-1"
sv_auto_precache_sounds_in_models "0"
sv_rehlds_stringcmdrate_max_burst "-1"
sv_rehlds_attachedentities_playeranimationspeed_fix "1"
| Command | Effect |
|---|---|
sv_use_entity_file "0" |
Speeds up map loading, reduces FPS drops during map changes |
sv_rehlds_force_dlmax "1" |
Forces clients to download at maximum speed — faster loading screens |
sv_delayed_spray_upload "0" |
Eliminates spray-related lag spikes during gameplay |
sv_rehlds_send_mapcycle "0" |
Stops server from sending map cycle to clients — reduces connection bandwidth |
sv_rehlds_local_gametime "1" |
Fixes time drift between server and clients — improves shot timing accuracy |
sv_rehlds_hull_centering "1" |
Fixes hitbox offset bug from legacy HLDS — shots that visually connect now register correctly |
sv_rehlds_movecmdrate_max_avg "-1" |
Disables movement command rate limiting — prevents server from dropping legitimate client packets |
sv_rehlds_stringcmdrate_max_avg "-1" |
Disables string command rate limiting |
sv_rehlds_movecmdrate_max_burst "-1" |
Disables burst movement command limiting |
sv_auto_precache_sounds_in_models "0" |
Skips unnecessary sound precaching — reduces map load time |
sv_rehlds_stringcmdrate_max_burst "-1" |
Disables string command burst limiting |
sv_rehlds_attachedentities_playeranimationspeed_fix "1" |
Fixes grenade and knife animation sync between what you see and what opponents see |
How to Check If It Works
From inside the game
Connect to your server as a player and type net_graph 3 in the console:
- Choke = 0 — server is processing all your packets ✓
- Loss = 0 — no packets dropping ✓
- Ping — your latency to the server (not affected by these settings)
From the server console
Type stats in your server console or via HLSW with RCON:
CPU In Out Uptime Users FPS Players
23.33 191.95 282.03 840 2293 1044.32 21
- FPS — should be close to your sys_ticrate value (1000+). If below 500, lower sys_ticrate.
- CPU — should be under 70% under full player load.
Full Config Reference
// CS 1.6 Performance Settings — csdownload.net
// Paste at the bottom of your existing server.cfg
// Do not replace your full server.cfg with this block
// Tickrate & Updates
sys_ticrate "1100"
sv_maxupdaterate "80"
sv_minupdaterate "64"
// Network Rates
sv_maxrate "0"
sv_minrate "100000"
// Movement & Physics
sv_airaccelerate "100"
edgefriction "2"
host_framerate "0"
decalfrequency "60"
// Lag Compensation
sv_unlag 1
sv_maxcmdrate 101
sv_maxunlag 0.5
sv_uploadmax 1.0
sv_timeout 65
// Connection (optional — configure for your server)
// sv_downloadurl "http://yourserver.com/fastdl/"
// pingboost 3
// ReHLDS Settings (requires latest ReHLDS)
sv_use_entity_file "0"
sv_rehlds_force_dlmax "1"
sv_delayed_spray_upload "0"
sv_rehlds_send_mapcycle "0"
sv_rehlds_local_gametime "1"
sv_rehlds_hull_centering "1"
sv_rehlds_movecmdrate_max_avg "-1"
sv_rehlds_stringcmdrate_max_avg "-1"
sv_rehlds_movecmdrate_max_burst "-1"
sv_auto_precache_sounds_in_models "0"
sv_rehlds_stringcmdrate_max_burst "-1"
sv_rehlds_attachedentities_playeranimationspeed_fix "1"
You can see all the available game resources plus you can get the latest installer here. To complete your setup process.
