-
Bug
-
Resolution: Unresolved
-
None
-
1.20.1
-
None
-
Plausible
-
Networking, Player
-
Normal
-
Platform
This issue was discovered on Paper but is easily reproducible on lower entity tracking ranges in Vanilla. However, this is noticeable on Vanilla when using spectator mode (and flying in and out of the player's tracking range) and granting large flight speed.
Behavior Link: https://www.youtube.com/watch?v=RjGqo-xQTLA
In general, it doesn't seem like the player's velocity is correctly sent to the client.
This issue seems to have been introduced in 23w07a.
Possible Cause(s)
Essentially, player motion is now interpolated between multiple ticks.
@Override public void lerpMotion(double $$0, double $$1, double $$2) { this.lerpDeltaMovement = new Vec3($$0, $$1, $$2); this.lerpDeltaMovementSteps = this.getType().updateInterval() + 1; }
This causes huge deviations in the client-side prediction of velocity vs what actually occurs on the server.
Additionally, velocity is not sent on the first tick for the Player entity.