ACharacter::ClientAdjustRootMotionPosition_Implementation
Deprecated: Use ClientMoveResponsePacked_Implementation instead.
#include "GameFramework/Character.h"
Access: public
Description
The client-side implementation body for ClientAdjustRootMotionPosition, executed on the owning client after the RPC is dispatched. Override this to inject custom correction logic.
Caveats & Gotchas
- • This is the _Implementation suffix counterpart of a deprecated RPC — override it only if you are maintaining legacy movement code targeting older engine versions.
- • Must call Super to ensure the base correction logic (position snap and montage track seek) executes; omitting Super will silently break root-motion network correction.
- • Deprecated alongside its RPC counterpart — new code should override the packed response implementation instead.
Signature
ENGINE_API void ClientAdjustRootMotionPosition_Implementation(float TimeStamp, float ServerMontageTrackPosition, FVector ServerLoc, FVector_NetQuantizeNormal ServerRotation, float ServerVelZ, UPrimitiveComponent* ServerBase, FName ServerBoneName, bool bHasBase, bool bBaseRelativePosition, uint8 ServerMovementMode) Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| TimeStamp | float | Server timestamp of the move being corrected. | — |
| ServerMontageTrackPosition | float | Authoritative montage playback position. | — |
| ServerLoc | FVector | Corrected world location. | — |
| ServerRotation | FVector_NetQuantizeNormal | Corrected rotation packed as a normal vector. | — |
| ServerVelZ | float | Vertical velocity at the correction point. | — |
| ServerBase | UPrimitiveComponent* | Movement base component. | — |
| ServerBoneName | FName | Bone on the skeletal movement base, if any. | — |
| bHasBase | bool | Whether the character has a valid movement base. | — |
| bBaseRelativePosition | bool | Whether ServerLoc is base-relative. | — |
| ServerMovementMode | uint8 | Packed movement mode. | — |
Return Type
void Example
Override to add telemetry before applying correction C++
void AMyCharacter::ClientAdjustRootMotionPosition_Implementation(
float TimeStamp, float TrackPos, FVector Loc,
FVector_NetQuantizeNormal Rot, float VelZ,
UPrimitiveComponent* Base, FName BoneName,
bool bHasBase, bool bBaseRel, uint8 Mode)
{
RecordCorrectionEvent(TimeStamp, Loc);
Super::ClientAdjustRootMotionPosition_Implementation(
TimeStamp, TrackPos, Loc, Rot, VelZ, Base, BoneName, bHasBase, bBaseRel, Mode);
} See Also
Version History
Introduced in: 4.6
| Version | Status | Notes |
|---|---|---|
| 5.6 | deprecated | Superseded by ClientMoveResponsePacked_Implementation. |
Feedback
Was this helpful?