mojira.dev

AzogMine

Assigned

No issues.

Comments

I traced the issue to the 26.3 entity interpolation refactor, In class net/minecraft/world/entity/SteppedInterpolationHandler

Current 26.3 code:

private SteppedInterpolationHandler(final Entity entity) {
    super(entity, entity.getType().updateInterval());
}

The interpolation length is therefore equal to updateInterval. However, the client should interpolate for updateInterval + 1 ticks.

Player is registered in:

net/minecraft.world.entity.EntityTypes

with:

.updateInterval(2)

Therefore, the current code interpolates player movement for only 2 ticks instead of 3.

I guess expected is:

private SteppedInterpolationHandler(final Entity entity) {
    super(entity, entity.getType().updateInterval() + 1);
}

In 26.2 , the default interpolation length was hard-coded to 3 ticks:

public InterpolationHandler(final Entity entity) {
    this(entity, 3, null);
}

The 26.3 refactor replaced this fixed value with updateInterval, but omitted the +1 . This causes player’s actual updateInterval is 2.

BTW The existing net.minecraft.client.player.RemotePlayer.lerpMotion() implementation already uses updateInterval() + 1 for velocity interpolation. But this seems unrelate to this issue.

Can reproduce in 26.3

[media: image-20260919-190149.png]