How to Set Up a Bhop Server with a Timer

December 18, 2025 Daemon666 8 min read 270 vues

A bunnyhop (bhop) server is a movement server: players chain jumps to build speed, and a timer records how fast they clear a course. CS 1.6 has no built-in "bhop mode" — you assemble it from an engine that allows the movement, a plugin that makes jumps chain reliably, and a timer plugin that records times. This walks through a clean setup on ReHLDS.

1. Start on ReHLDS + ReGameDLL

Bhop servers live or die on movement consistency, so run the maintained stack: ReHLDS with ReGameDLL_CS underneath. ReGameDLL gives you clean control over the movement code and the cvars below behave predictably. Add Metamod-r and AMX Mod X 1.9 on top, because the bhop and timer plugins are AMXX plugins.

2. Set the movement cvars

Two engine cvars shape how bhop feels. Put them in server.cfg:

sv_airaccelerate 100
sv_maxspeed 320

sv_airaccelerate controls how fast you can gain speed while strafing in the air; stock CS uses 10, and bhop/KZ servers raise it (100 is a common value) so strafing actually accelerates you. sv_maxspeed caps ground speed — leave it at the CS default of 320 unless you deliberately want a faster feel. Do not confuse this with a bunnyhop cvar; CS 1.6 has no stock "enable bhop" switch, which is why you need the plugin in the next step.

3. Install an auto-bhop plugin

On stock CS, the engine inserts a small penalty that makes perfectly-timed manual jumps hard, so most bhop servers run an auto-bhop plugin that fires the jump the instant you land while holding jump — the classic "hold space to bhop" behaviour. Our GPL implementation is CSB Bhop Enable. Drop its .amxx into the plugins folder and register it — see installing plugin files and plugins.ini load order:

bhop_enable.amxx

Most such plugins expose a cvar to toggle auto-jump and a per-player say command so purists can turn it off and hop manually. If you want stacked jumps for movement gimmicks, CSB Multi-Jump grants a configurable number of mid-air jumps.

4. Add a timer for records

What makes it a bhop server rather than just a mod is the timer: a run starts when the player leaves the start zone and stops at the end zone, and the plugin stores the time and a leaderboard. Use CSB KZ-Timer, which times runs, shows a live speedometer and clock on the HUD, and keeps per-map records. Add it to plugins.ini:

kz_timer.amxx

The timer keys records by SteamID, so on a non-Steam server make sure Reunion is handing out stable ids — otherwise two players share a record and the leaderboard is meaningless.

5. Load bhop or KZ maps

Bhop courses are custom maps (typically prefixed bhop_, and KZ climbing maps kz_). Put the .bsp files in cstrike/maps/, add them to mapcycle.txt, and serve them over FastDL so players download them quickly on join. These maps have start and end zones the timer reads, so use maps built for timing rather than generic community maps.

6. Tune the server for movement

Movement players are sensitive to registration, so raise the rates. In server.cfg:

sys_ticrate 1000
sv_maxupdaterate 100
sv_maxrate 100000

A high sys_ticrate keeps the server frame time low so jumps land consistently, and generous rate caps let clients run 100 updates/sec. Turn friendly fire off and set a long mp_timelimit or none — bhop players want to stay on a map and grind a time, not rotate every 20 minutes.

Common errors

  • Jumps do not chain / feel sticky — no auto-bhop plugin, or sv_airaccelerate left at the stock 10. Add the plugin and raise airaccelerate.
  • Timer never starts — the map has no start/end zones the timer recognises. Use maps built for the timer plugin.
  • Two players share the top time — colliding non-Steam SteamIDs. Fix identity with Reunion.
  • Speed feels capped no matter what — a plugin or config is clamping sv_maxspeed; read it back in the console and trace what re-sets it.
  • Choppy movement under loadsys_ticrate too low or the box is CPU-starved. Raise ticrate and check server FPS.

Verification

Load a bhop_ map, hold jump, and confirm you chain hops and build speed — the speedometer from the timer should climb as you strafe. Cross the start zone and confirm the clock starts, then the end zone and confirm it stops and records a time. Reconnect and check your record survived, which proves the timer is keying by a stable id. When hops chain, the clock runs, and records persist, the server is complete.

Contributeurs: Daemon666 ✦
Partager :