Bunnyhopping is not done through a simple button combination. It is performed through both keypresses and mouse movements. Nor, however, should it be done through a strict combination of keypresses and mouse movements. Good bunnyhopping is very fluid and dynamic. If you want to actually master bunnyhopping, you should read
this post (and
this along with it) in order to understand how and why it works. However, as you seem to be looking for a simple combination of actions, I will attempt to explain how to bunnyhop in those terms.
Firstly, when you're a skulk, always hold the duck key while bunnyhopping. If you don't do this, the skulk's wallclimbing code will interfere with the bunnyhop.
To initiate a bunnyhop, you usually want to start with a so-called "glidejump". To do this, hold forward and a strafe* key, and turn (move the mouse) in the direction that you're strafing. This will increase your speed. Next, after reaching a good speed, jump. To get a good speed, you'll need to experiment with different turn rates and distances. (To see your speed, set cl_showspeed to 1. Note that this will require sv_cheats 1.)
*left or right directional commandOnce you've started the bunnyhop, you increase your speed and change your direction by strafeturning, and maintain your speed by jumping the instant you touch the ground. I will get to strafeturning later. To jump the instant you touch the ground, you usually want to use either the mousewheel or a script to spam the jump command in order to help with timing the jump. It is possible to time the jumps without aid, but it is difficult and highly vulnerable to framerate fluctuations and latency. Anyway, to use the mousewheel, bind it to +jump and roll it just as you are about to hit the ground. If you choose to use a script, you would use something like:
With that script, you would press the key just before hitting the ground. Note that this script will interfere with lerk flight, so you might want to use a toggle. For more information, visit the
scripting forum.
To determine whether you're effectively jumping the instant you touch the ground, try this simple test. While facing into a long hallway, move forward, jump, and then release all directional commands and keep jumping. If you don't lose any significant amount of speed, you're doing it correctly.
Now as I said, you increase your speed and change your direction by strafeturning. Strafeturning is the act of strafing and turning (moving the mouse) in the same direction. For instance, to strafeturn left, you would hold the +moveleft key ('a' by default) while moving the mouse to the left. Strafeturning, when done correctly (which pretty much means not turning too rapidly), will increase your speed. Strafeturning will also change your direction of motion so that it remains perpendicular to the direction of the strafe. In this case, that means you will continue to move in your forward direction, the direction you're aiming. Because of this, if you want to gain speed while bunnyhopping in a straight line, you will need to alternate left and right strafeturning so as not to veer off to the side.
As with glidejumping, try bunnyhopping around with cl_showspeed 1 in order to get a feel for how to best gain speed.