Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-264394

Player velocity desync issues

XMLWordPrintable

    • Icon: Bug 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. 

       

            Unassigned Unassigned
            Owen1212055 Owen
            Votes:
            2 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              CHK: