NoCheatPlus / Issues

Issues managment for the NoCheatPlus project.
13 stars 9 forks source link

High values of Improbable when derping with Bow #417

Open Maxetto opened 7 years ago

Maxetto commented 7 years ago

Short description of the issue.

While derping with Bow (moving high speed and throwing arrows at random), NoCheatPlus detects it as COMBINED_IMPROBABLE with quite high VLs.

Complete output of the ncp version command (please prefer text here).

---- Version information ----
#### Server ####
git-PaperSpigot-"4c7641d" ~MC: 1.8.8~
detected: 1.8.8
#### NoCheatPlus ####
Plugin: 3.15.1-RC-sMD5NET-b1084
MCAccess: 1.8.4-1.8.8 / Spigot-CB-1.8_R3
Features:
blocks: BlocksMC1_4 | BlocksMC1_5 | BlocksMC1_6_1 | BlocksMC1_7_2 | BlocksMC1_8
checks: FastConsume | Gutenberg | AttackFrequency | FlyingFrequency | KeepAliveFrequency
defaults: pvpKnockBackVelocity
packet-listeners: UseEntityAdapter | MovingFlying | OutgoingPosition | KeepAliveAdapter | SoundDistance | CatchAllAdapter
Hooks: AllViolations~NCP~ 1.0
#### Related Plugins ####
ProtocolLib v3.6.5

How to reproduce the issue (is it random / always happens / side conditions)?

Have you made any (noteworthy) changes to the default configuration of NCP?

Yes, I'm running with NCP Community Config. Tried also changing COMBINED_IMPROBABLE from 185 to 200.

Do you run any other special plugins that affect game mechanics next to NC+ (adding skills, machines, adding/changing blocks, other anti cheating)?

No.

Provide additional information, such as error/debug/violation logs. (For reproducible issues with moving consider: https://github.com/NoCheatPlus/Docs/wiki/Debugging#on-the-fly-debug-output-for-individual-players) Use GitHub gists or http://pastebin.com/ or similar for huge logs, or attach a (zip-) file here. For image uploads, please prefer a site that allows viewing without JavaScript, you can upload file attachments for issues right here.

NCP: [17:38:58] combined.improbable VL 421 (n13a32m42)

NCP: [17:40:17] combined.improbable VL 69202 (n215a322m733)

NCP: [12:31:44] combined.improbable VL 15900 (n51a312m507)

Here's a quick video that triggered the check: https://www.youtube.com/watch?v=_5BR1FTXKzg

MarkElf commented 7 years ago

If I had to take a shot in the dark, I would assume that it's the modified yaw rate, being at 95 rather than 380 makes it much more sensitive to snapping motions which is simulated through the high sensitivity.

asofold commented 7 years ago

Overall, i should probably do this slightly differently - e.g. we could estimate some kind of hitting difficulty (post shot), with remembering some things that concerned the shooter at the time of shooting, instead of checking improbable directly at the time of shooting. The fastest fix would be to allow disabling it for shooting projectiles.

Checking improbable with hitting other players makes more sense, because usually it's the hard part to hit at all.

There'll be some overhaul upcoming soonish, introducing a new kind of a check (targeting/difficulty), but i'm not sure if i'll prototype half of it first or if i'd better start with the infrastructure necessary for the more advanced version - dealing with latency and past positions would rather need to be done first.


For now i could extend the configuration for inventory.instantbow, e.g:

The above would resemble the situation now (check not just feed, weight is 0.6 - 0.0 would be off). I'm not sure what values to use as default, usually i'd adapt it not to trigger too much with the default settings.


Altering the default settings would need some cooperation to reach some kind of overall balanced state. Perhaps such would also be better if one had some more easy ways to switch related settings to something else alltogether.

A little brianstorming though.

asofold commented 7 years ago

Build 1087 contains the configuration changes to test and adjust how improbable is used:

Maxetto commented 7 years ago

Issue seems to persist with Default Config.

asofold commented 7 years ago

Of course it does :), i made the default config the same as before - perhaps i've not mentioned that in an appropriate way: the only thing that changes is that you are now able to alter how "projectile shooting" relates to the imrpobable check.

The idea to check/feed improbable is to also allow cancelling projectile shooting when the player is doing too many things at once - so there are some options now, which i currenty can't test out myself:


All in all i'm not 100% sure what actually happens here, so i'm (somewhat blindly) considering these as possible causes:

If packet order inversion is the issue, i could attempt something for leniency options, but it stays an itchy topic.


So the easiest thing is to turn the part off for shooting the bow, by setting the weight to 0.0

Maxetto commented 7 years ago

I would assume it's the second option given that it also triggers BLOCKINTERACT_DIRECTION violations, but I'll see what I/We can do with the new options.

asofold commented 7 years ago

BLOCKINTERACT_SOMETHING seems bugged/changed at present (way too much).

Maxetto commented 7 years ago

I've tried setting the weight to 0.0 but it still counts as COMBINED_IMPROBABLE: NCP: [21:39:26] combined.improbable VL 1986 (n13a153m383)

asofold commented 7 years ago

Just for shooting the bow? In that case likely interaction is already the problem - need to check stuff (e.g. interaction checks improbable etc. best make all spots fully configurable).

There also is a problem with packet processing order (inversion), like the interacaction is processed before a move, though shouldn't - regardless if client side or sevrer side.