Cheating in trickjumping
Hi, lately I’ve been receiving some complaints about 999 trickjump server having ”Invalid settings and so on”. The settings are not invalid and haven’t changed. Only thing that has changed is that there is a new anticheat on the server that prevents people from abusing two different movement affected hacks. First one allows you to go slightly faster whenever you turn left and the second one removes the speed loss when you press space. I’m going to ignore the first one as it’s not that important and talk about the second one, which people are mainly complaining about.
The upmove hack is a hack that removes the speed loss when you press space. Normally when you are airstrafing (flying in the air), a scale for your movement input will be calculated. The value of the scaling isn’t that interesting but the bigger it is, the faster you go. The interesting part of the scaling is calculated with the following formula
where speed is the server g_speed value (320 in ETJump), max is the maximum absolute value of player’s forwardmove, rightmove and upmove (127 usually) and total is calculated using the following formula
As you can see, as the value of total increases the scale decreases. If you are on the ground and about to jump, it doesn’t change anything because you also gain z-axis speed due to you jumping up. When you’re in the air the upmove still reduces the scale like it does while you’re on the ground, meaning that you will gain less speed as you hold the jump key down (You’re not getting any boost to z-axis speed as you can’t jump in the air).
In the ET source any upmove value that is over 10 (127 is the max) means that the player wants to jump. Normally when player presses space the value is 127 (except for a single frame, I’ll talk about this more soon) meaning that the total value in the previous formula is bigger meaning you will gain less speed. The cheats (ETDev mainly) abuse this check by limiting the value of upmove to 10 (this can be done clientside) so the value of total will be less than what it would be if the player was a legit jumper.
What I’ve done to prevent this is that every value over 10 will be forced to 127. Normally you have it at 127 so it will not affect your jumping in any way. In some cases it is possible that it’s below 127 for a single frame. What this means is that in these cases, your speed gain will be less than what it would be without the anticheat. Another option would be to ignore any value below 127 but this might cause some issues when the player will not jump as you press space. I will test this option too and allow admins to choose between the two, if the second one will not affect the jumping. The effect of the anticheat is not noticeable at higher FPS. I’ve received complaints that it feels different when playing with 43 FPS. If this is the case, I recommend users to change FPS to 125. The anticheat will be forced on every single server once 2.0.5 is out. If anyone with 125 FPS has complained about this, they’re very likely cheating with upmove hack.
PS. plenty of testing was done by current top strafejumpers like Spectator, Skepty and Vallz before the release of the anticheat. I received no complaints about the physics and everyone said it felt the same.
what about subwayjump? the water prone tricks are sometimes very short bursts of jumping.. does this anticheat affect this map?
No. Subwayjump pronejumps work just fine. :> The AC has been active on 999 for some time already.