CS 1.6 Delayed Jump Fix: Input Lag, FPS and Bhop Guide
Last updated: May 5, 2026
Delayed jump in Counter-Strike 1.6 has several distinct causes – wrong fps_max value, incorrect jump bind, V-Sync interference, or high server ping. Each produces a different type of delay. This guide covers every fix in order from most common to least common. If your installation is corrupted, download Counter-Strike 1.6 first.
Fix 1 – fps_max Setting
The GoldSrc engine ties physics directly to frame rate – movement, jump timing, and landing recovery are all calculated per frame. The engine runs most reliably at 100 FPS. Going significantly above 100-120 causes a known bug: after landing from a jump, movement slows down for a few seconds. This directly causes delayed or broken jump timing.
Open the console (~) and type:
fps_max 100
By default Steam CS 1.6 caps FPS at 100. Non-Steam builds often have no cap. Check your current FPS with net_graph 1 in console.
Unlock FPS above 100 – Steam vs Non-Steam
The command to unlock FPS above the default 100 cap differs by version:
| Version | Command | Example |
|---|---|---|
| Steam | fps_override 1 |
fps_override 1 then fps_max 120 |
| Non-Steam | developer 1 |
developer 1 then fps_max 120 |
Above 120 FPS the post-jump slowdown bug becomes clearly noticeable. Most experienced players stay at 100-120 FPS. Values like 500 or 999 cause physics desyncs and rubberbanding on servers.
High refresh rate monitors (144Hz, 240Hz, 360Hz)
A 144Hz or 240Hz monitor makes the image look smoother but does not change CS 1.6 physics or jump timing. The GoldSrc engine cannot simulate more than ~100 FPS of game physics regardless of how many frames your GPU renders. Running fps_max 100 on a 240Hz monitor gives stable physics with a smooth display.
If you want to visually match your monitor refresh rate, set fps to your monitor Hz using the unlock command for your version – then test jump landing movement before using it in competitive play.
Also disable V-Sync at engine level:
gl_vsync 0
Save permanently in userconfig.cfg:
fps_max "100"
gl_vsync "0"
Fix 2 – Disable V-Sync
V-Sync buffers frames before displaying them, adding 1-2 frames of input delay to every keypress including jump. This is separate from the fps_max issue and must be disabled both in-game and in the GPU driver.
In-game console:
gl_vsync 0
NVIDIA Control Panel: Manage 3D Settings → Program Settings → hl.exe → Vertical Sync → Off.
AMD Radeon Software: Gaming → hl.exe → Wait for Vertical Refresh → Always Off.
Fix 3 – Jump Key Bind
A missing or incorrect jump bind causes the key to have no effect or produce a delayed response. Verify and reset the jump bind:
unbind SPACE
bind "SPACE" "+jump"
In Options → Keyboard, confirm Jump is assigned to Space or your preferred key. If the bind shows as unassigned – type the bind command in console.
If using a custom bind script that triggers on keyup instead of keydown, the jump registers only when you release the key – this feels like delay but is actually a script issue. The standard bind "SPACE" "+jump" triggers on keydown.
Fix 4 – Scroll Wheel Jump for Bhop
For bunny hopping specifically, the spacebar jump delay is a fundamental engine limitation – the game processes key inputs at frame boundaries, and at higher FPS values the timing window for a perfect bhop jump is very small. Scroll wheel bypasses this by sending multiple jump inputs per scroll tick.
bind "mwheelup" "+jump"
bind "mwheeldown" "+jump"
bind "SPACE" "+jump"
With scroll wheel bound to jump, each scroll tick sends a jump command – dramatically increasing the chance of hitting the correct frame for bhop. Keep spacebar bound as well for normal jumping.
For complete bhop setup and technique, see CS 1.6 bhop tutorial.
Fix 5 – Network Rates
On online servers, jump commands are sent to the server each command frame. If cl_cmdrate is too low, jump commands are batched and sent less frequently – causing noticeable jump delay specifically on servers, not in offline practice.
Set correct network rates in console:
rate 100000
cl_updaterate 101
cl_cmdrate 101
ex_interp 0.01
| Command | Recommended Value | Effect on Jump |
|---|---|---|
cl_cmdrate |
101 | Sends jump command to server up to 101 times per second – higher = more responsive |
cl_updaterate |
101 | Receives server updates 101 times per second – affects how quickly landing is registered |
rate |
100000 | Maximum data transfer rate – too low causes command queuing and delay |
ex_interp |
0.01 | Reduces interpolation delay – jump feels more immediate |
Note: if your ping to the server is consistently above 80ms, use lower values – cl_cmdrate 60, cl_updaterate 60. Mismatched rates and ping cause worse jump timing than lower but matched values.
Fix 6 – Keyboard Input Delay
Windows keyboard repeat delay settings affect how quickly the OS registers key presses and are separate from CS 1.6 settings. Shorten them for fastest possible input:
- Press Win+R → type
control keyboard→ Enter. - Under Speed tab → Repeat delay: set to Shortest.
- Repeat rate: set to Fastest.
- Click Apply.
If jump delay only happens on a specific keyboard but not another – the keyboard itself has hardware debounce delay. Gaming keyboards typically have 1ms debounce, while cheap membrane keyboards can have 10-20ms debounce that causes missed or delayed inputs.
Also test with a different USB port – some USB hubs or front panel ports have higher polling intervals than direct motherboard USB 3.0 ports.
Fix 7 – Server Lag
If jump delay happens only on specific servers and not in offline practice – the server itself is causing the delay. High server ping, packet loss, or low server tickrate all affect how quickly the server processes your jump command.
| Symptom | Cause | Fix |
|---|---|---|
| Jump delayed only on specific servers | High ping to that server | Join servers with ping below 60ms for responsive input |
| Jump delayed on all servers, fine offline | Low cl_cmdrate or high packet loss | Set cl_cmdrate 101, check connection stability |
| Jump sometimes works, sometimes does not | Packet loss or choke | Type net_graph 3 in console – if choke or loss > 0, change server or fix connection |
| Jump delay only during heavy combat | Server overloaded at high player count | Server-side issue – nothing player can do, find less populated server |
Quick Reference
| Problem | Fix |
|---|---|
| Jump delayed in all situations | fps_max 100, gl_vsync 0, check developer 1 / fps_override 1 |
| Jump not registering at all | bind "SPACE" "+jump" |
| Bhop timing feels impossible | bind "mwheelup" "+jump", bind "mwheeldown" "+jump" |
| Jump delayed only on servers | cl_cmdrate 101, rate 100000 |
| Jump delayed on specific servers only | High ping – join closer server, check with net_graph 3 |
| Keyboard not registering fast presses | Windows keyboard → Repeat delay shortest, test different USB port |
To complete your setup process, visit our official Counter-Strike 1.6 website and also click here for the download Counter-Strike 1.6 original setup.
