Open asofold opened 7 years ago
On my server with default configuration it seems cheaters get stopped (by morepackets I assume) after stepping only 3 or 4 blocks in a row, so it doesn't really seem to be an issue. However, there's still the fact that people can run full speed backwards, and immediately start moving backwards mid air. This has created a really big advantage for cheaters in PVP and has almost always been an issue. Sure, the "bhop patch" or whatever that was seems to have limited the speed, however strafing mid air still persists as a big issue for PVP.
@Michelele The in-air-strafe would be this ticket: https://github.com/NoCheatPlus/Issues/issues/431
The ticket initially was meant for discussion of methods or concepts of implementation, but any sort of input about how/when such is used and how severe it is, is very much welcome.
Check yDiff more accurate, people will need to send more extra packets and morepackets will flag earlier.
Will require (air-)step handling (idk if present).
Lift off speed is monitored, but we don't sanction too low jumping too much - in this case they use (almost) precise jumping, they just end on ground and move on as if no height difference taken and still sprinting instead of still having to move up by roughly 0.15.
For "precise" checking a good lot of special cases is to be considered (2x0.3 instead of 0.42, lost ground issues need to be confined, where they'd not touch ground on server side, velocity can play a role here too. We can still detect variants "post mortem" with past move tracking even without tight checking, detecting going above step-height with whatever slope(s)/stepping used - naturally at some point morepackets would kick in.
In any case, the main objective is to keep the advantage low/none, not necessarily detecting all variants of cheats.
Step hacks (multi packet) will not work indefinitely if they hit the morepackets limit, but they can still take height differences way too fast.
One simple idea is to track height differences block-wise, similarly to combined-medium horizontal speed tracking, just with counting full blocks.
There are a lot edge cases with blocks where the height difference is rather smaller than the step limit, so one can't just monitor the height difference, but taking height differences greater than the step height can be monitored. You can also take height differences to any 0..7/8th level, with snow layers and similar, so it's not just stepping onto full block level, for the general case.
There may be an amount of packets above which it's ok to let morepackets deal with it, but below that the past-move-tracking should suffice to judge how a height difference was taken. In case we need more than 2 past (+ the currently handled) moves, the tracked amount can simply be increased.