← Back to Index

CorrectPlayerMovePredictionPacket (161)

Sent to a player when their simulation of movement mismatches enough from the server that it wants to correct the client.
Used only in server authoritative movement mode, see ServerAuthMovementMode documentation.<br> Since it is sent to the specified client the target player is implied to be the receiver.<br> It is an optional part of the server authoritative protocol. A server could choose to never send this or do all corrections through MovePlayerPacket, although doing so would likely provide less smooth results.
Field Name Type Field Index Description
PredictionType (Required) uint8 0 Vehicle or Player Prediction
Enum Values:
Index Value
0 Player
1 Vehicle
Pos (Required) Vec3 1 Corrected position

Vec3

Field Name Type Field Index Description
X (Required) float 0
Y (Required) float 1
Z (Required) float 2
Pos Delta (Required) Vec3 2 Corrected velocity

Vec3

Field Name Type Field Index Description
X (Required) float 0
Y (Required) float 1
Z (Required) float 2
Rotation (Required) Vec2 3 Corrected rotation. Only sent when PredictionType is Vehicle

Vec2

Field Name Type Field Index Description
X (Required) float 0
Y (Required) float 1
VehicleAngularVelocity float 4 Angular Velocity for a vehicle. Only sent when PredictionType is Vehicle
On Ground (Required) boolean 5 Is on ground
Tick (Required) PlayerInputTick 6 Which frame we're correcting; should match the tick in the Player Auth Input packet

PlayerInputTick

Field Name Type Field Index Description
Input tick (Required) varuint64 0 In server authoritative movement mode the client supplies this in PlayerAuthInputPacket. For any client-bound packets containing a tick, the server should supply the tick value corresponding to the most recently processed PlayerAuthInputPacket. This allows the client to adjust any client predictions made while the packet was in flight. If the packet is being sent to the client but not relating to data of the player or a client-predicted vehicle, it can be zero. It is also acceptable to specify zero for players, although this may lead to minor visual flickers and less smooth application of CorrectPlayerMovePredictionPacket.