← Back to Index

MovePlayerPacket (19)

For client authoritative and server authoritative movement modes, it is only intended as a client-bound packet. It forces the player to a specified position with slightly different behavior depending on the position mode.
Field Name Type Field Index Description
Player Runtime ID (Required) ActorRuntimeID 0 If server-bound, this is always the id of the sending player. If client-bound, the target player.

ActorRuntimeID

Field Name Type Field Index Description
Actor Runtime ID (Required) varuint64 0
Position (Required) Vec3 1 The predicted world space position of the player after movement simulation this tick. The server authoritative equivalent of this is PlayerAuthInputPacket::mPos

Vec3

Field Name Type Field Index Description
X (Required) float 0
Y (Required) float 1
Z (Required) float 2
Rotation (Required) Vec2 2 Rotation in degrees of the direction they should look, separate from their body orientation. The server authoritative equivalent of this is PlayerAuthInputPacket::mRot

Vec2

Field Name Type Field Index Description
X (Required) float 0
Y (Required) float 1
Y-Head Rotation (Required) float 3 Rotation in degrees of the head. Almost always matches Y rotation. The server authoritative equivalent of this is PlayerAuthInputPacket::mYHeadRot
Position Mode (Required) uint8 4 Determines how the client will behave when receiving this, see the enum for details. When sent to the server this is always 'Normal' except when in a vehicle then it's 'OnlyHeadRot'.
Enum Values:
Index Value
0 Normal
1 Respawn
2 Teleport
3 OnlyHeadRot
On Ground (Required) boolean 5 For client bound packets this should have little meaning as it will be reset by the client every frame. For server bound it is true if the player is currently touching the ground. The server authoritative near-equivalent of this is PlayerAuthInputPacket::InputData::VerticalCollision
Riding Runtime ID (Required) ActorRuntimeID 6 If client bound this has no meaning. If server bound it is the vehicle the client is riding as specified by the last SetActorLinkPacket from the server. The server authoritative near-equivalent is PlayerAuthInputPacket::mClientPredictedVehicle

ActorRuntimeID

Field Name Type Field Index Description
Actor Runtime ID (Required) varuint64 0
Teleport Data MovePlayerTeleportData 7 Teleportation details. Present only when Position Mode is Teleport.

MovePlayerTeleportData

Field Name Type Field Index Description
Teleportation Cause (Required) int32 0 Why the player was teleported.
Source Actor Type (Required) int32 1 The actor type that caused the teleport.
Tick (Required) PlayerInputTick 8 The client tick this movement corresponds to.

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.