RealDocs

UCharacterMovementComponent::ServerMoveDualHybridRootMotion

function Engine Deprecated Since 4.0
Deprecated: ServerMoveDualHybridRootMotion() is deprecated, use ServerMovePacked_ClientSend() instead, or define SUPPORT_DEPRECATED_CHARACTER_MOVEMENT_RPCS=1 in the project and set CVar p.NetUsePackedMovementRPCs=0 to use the old code path.
#include "GameFramework/CharacterMovementComponent.h"
Access: public Specifiers: virtualUFUNCTIONServerUnreliableWithValidation

Description

Legacy server RPC variant of ServerMoveDual used when a character mixes regular movement with animation root motion — the first move is non-root-motion, the second is root motion.

Caveats & Gotchas

  • Deprecated since 4.26 alongside the rest of the legacy RPC family; only active with SUPPORT_DEPRECATED_CHARACTER_MOVEMENT_RPCS=1 and p.NetUsePackedMovementRPCs=0.
  • Only used when the character's movement mixes root-motion and non-root-motion moves within the same network update — a plain ServerMoveDual is used otherwise.
  • As with ServerMoveDual, ordering of the two moves matters: the first (suffixed with 0) is processed before the second.

Signature

virtual void ServerMoveDualHybridRootMotion(float TimeStamp0, FVector_NetQuantize10 InAccel0, uint8 PendingFlags, uint32 View0, float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc, uint8 NewFlags, uint8 ClientRoll, uint32 View, UPrimitiveComponent* ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)

Parameters

Name Type Description Default
TimeStamp0 float Client timestamp for the first, non-root-motion move.
InAccel0 FVector_NetQuantize10 Compressed acceleration for the first move.
PendingFlags uint8 Packed move flags for the first move.
View0 uint32 Compressed client view for the first move.
TimeStamp float Client timestamp for the second, root-motion move.
InAccel FVector_NetQuantize10 Compressed acceleration for the second move.
ClientLoc FVector_NetQuantize100 Client's resultant location after the second, root-motion move.
NewFlags uint8 Packed move flags for the second move.
ClientRoll uint8 Compressed client view roll for the second move.
View uint32 Compressed client view yaw/pitch for the second move.
ClientMovementBase UPrimitiveComponent* Component the client believes it's standing on after the second move.
ClientBaseBoneName FName Bone name on the client's movement base, if a skeletal mesh.
ClientMovementMode uint8 Packed client movement mode after the second move.

Return Type

void

Example

Hybrid root-motion dual-move RPC signature C++
// Sent instead of ServerMoveDual() when the second move includes animation root motion.
virtual void ServerMoveDualHybridRootMotion(float TimeStamp0, FVector_NetQuantize10 InAccel0, uint8 PendingFlags, uint32 View0,
    float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc, uint8 NewFlags,
    uint8 ClientRoll, uint32 View, UPrimitiveComponent* ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode);

Version History

Introduced in: 4.0

Version Status Notes
5.6 deprecated Deprecated since 4.26 in favor of packed movement RPCs.

Feedback

Was this helpful?

Suggest an edit

Select a field above to begin editing.