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:

  1. Press Win+R → type control keyboard → Enter.
  2. Under Speed tab → Repeat delay: set to Shortest.
  3. Repeat rate: set to Fastest.
  4. 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.