RealDocs

UCharacterMovementComponent::ServerMove_Validate

function Engine Deprecated Since 4.0
Deprecated: Part of the deprecated legacy ServerMove RPC pair; use the packed movement RPC path instead.
#include "GameFramework/CharacterMovementComponent.h"
Access: public Specifiers: virtual

Description

Server-side RPC validation for the legacy ServerMove — returning false causes the engine to disconnect the sending client as a cheat-protection measure.

Caveats & Gotchas

  • Generated as the WithValidation half of a UFUNCTION(Server) pair; unlike most _Validate overrides you write yourself, the engine's default implementation is minimal and mostly relies on FVector_NetQuantize types to bound the data.
  • Returning false doesn't just drop the move — it flags the connection as sending invalid RPCs, which the engine treats as a potential cheat signal and can close the connection.
  • Only relevant when legacy (non-packed) movement RPCs are active; the packed-movement path uses ServerMovePacked_ServerReceive() with its own bitstream validation instead.

Signature

virtual bool ServerMove_Validate(float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc, uint8 CompressedMoveFlags, uint8 ClientRoll, uint32 View, UPrimitiveComponent* ClientMovementBase, FName ClientBaseBoneName, uint8 ClientMovementMode)

Parameters

Name Type Description Default
TimeStamp float Client timestamp for this move.
InAccel FVector_NetQuantize10 Compressed acceleration input for the move.
ClientLoc FVector_NetQuantize100 Client's resultant location after performing the move locally.
CompressedMoveFlags uint8 Packed per-move flags.
ClientRoll uint8 Compressed client view roll.
View uint32 Compressed client view yaw/pitch.
ClientMovementBase UPrimitiveComponent* Component the client believes it's standing on.
ClientBaseBoneName FName Bone name on the client's movement base, if a skeletal mesh.
ClientMovementMode uint8 Packed client movement mode at the time of the move.

Return Type

bool

Example

RPC validation signature C++
// Called by the engine's RPC dispatch before ServerMove_Implementation().
// Returning false disconnects the sending client.
virtual bool ServerMove_Validate(float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc,
    uint8 CompressedMoveFlags, 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.