← Packet index

Packet 19

MovePlayerPacket

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.

Packet datagramWire order
HeaderID 19varuint
0Player Runtime IDActorRuntimeID · variable
1PositionVec3 · variable
2RotationVec2 · variable
3Y-Head Rotationfloat · 4 bytes
4Position Modeuint8 · 1 byte
5On Groundboolean · 1 byte
6Riding Runtime IDActorRuntimeID · variable
7Teleport DataMovePlayerTeleportData · variable
8TickPlayerInputTick · variable

Serialized fields

9 top-level fields
  1. 0Player Runtime IDIf server-bound, this is always the id of the sending player. If client-bound, the target player.ActorRuntimeID
    1. 0Actor Runtime IDCompressionvaruint64
  2. 1PositionThe predicted world space position of the player after movement simulation this tick. The server authoritative equivalent of this is PlayerAuthInputPacket::mPosVec3
  3. 2RotationRotation in degrees of the direction they should look, separate from their body orientation. The server authoritative equivalent of this is PlayerAuthInputPacket::mRotVec2
  4. 3Y-Head RotationRotation in degrees of the head. Almost always matches Y rotation. The server authoritative equivalent of this is PlayerAuthInputPacket::mYHeadRotfloat
  5. 4Position ModeDetermines 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-as-Valueuint8
    1. 0Normal
    2. 1Respawn
    3. 2Teleport
    4. 3OnlyHeadRot
  6. 5On GroundFor 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::VerticalCollisionboolean
  7. 6Riding Runtime IDIf 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::mClientPredictedVehicleActorRuntimeID
    1. 0Actor Runtime IDCompressionvaruint64
  8. 7Teleport DataoptionalTeleportation details. Present only when Position Mode is Teleport.MovePlayerTeleportData
    1. 0Teleportation CauseWhy the player was teleported.int32
    2. 1Source Actor TypeThe actor type that caused the teleport.int32
  9. 8TickThe client tick this movement corresponds to.PlayerInputTick
    1. 0Input tickIn 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.Compressionvaruint64

Changelog

Stable releases

Changes between stable protocol releases.

No stable release changes are recorded for this packet.