Hi unicorn, I wrote the bhop plugin (which was adapted further by @c ), so I'll provide my input. This is how the plugin currently works:
- Players are tracked by how many ticks they spend on the ground after each jump, and this determines the bonus.
- Players are given a speed bonus if they jump within 3 ticks (Cam might've changed the values, so I'll use the values I remember).
- If a player is above 350 velocity, this window becomes 2 ticks.
- The maximum bonus speed is 2x base velocity (~500/ups - I have asked Cam to raise this to 3x base velocity).
- If a player doesn't land a jump within the tick window but within less than five ticks, they receive a small penalty. If a player doesn't land a jump in 5 ticks or more, the bonus speed is reset to zero.
There is a phenomenon in CS2 where players can land a "zero-tick" bhop, which is most likely what you're experiencing with the sudden loss in velocity. A zero-tick jump doesn't register with the plugin's detection method (the plugin tracks ground state, as tracking by inputs wouldn't allow for scrollwheel bhopping), which causes speed to be reset. This might be due to CS2's subtick movement, which we can't remove at the moment with our current plugin framework (there might be a pre-existing plugin that I'm not aware of yet, but I'm not 100% sure). I've tried a few methods to get around this zero-tick bhop, but I have found no solutions as of right now. I will keep looking into it over the next few weeks.
I haven't accounted for bullet punch, so I'll see if there is a way to prevent that in code, and I'll pass it along to Cam.
Thanks for the feedback! Let me know if you have any further questions.