RealDocs

UCharacterMovementComponent::ServerMove_Implementation

function Engine Deprecated Since 4.0
Deprecated: ServerMove_Implementation() is deprecated, use ServerMove_PerformMovement() 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: virtual

Description

Server-side body of the legacy ServerMove RPC — decodes the client's compressed move parameters on the server and forwards them to ServerMove_PerformMovement() to actually simulate the move.

Caveats & Gotchas

  • Part of the deprecated legacy RPC block; only reached when SUPPORT_DEPRECATED_CHARACTER_MOVEMENT_RPCS=1 and packed movement RPCs are disabled via p.NetUsePackedMovementRPCs=0.
  • Runs entirely on the server (this is the _Implementation half of a UFUNCTION(Server) pair) — never call it directly from client code.
  • Executes only after ServerMove_Validate() returns true; a failing validate silently drops the move instead of calling this.

Signature

virtual void ServerMove_Implementation(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

void

Example

Server-side decode of a legacy move (engine-internal) C++
// Invoked by the engine's RPC dispatch after ServerMove_Validate() passes.
// Decodes InAccel/ClientLoc and hands off to ServerMove_PerformMovement().
void UCharacterMovementComponent::ServerMove_Implementation(
    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.