ACharacter::ServerMoveDualNoBase
Deprecated: Use ServerMovePacked instead.
#include "GameFramework/Character.h"
Access: public
Specifiers: UFUNCTIONunreliableserverWithValidation
Description
Dual-move variant of ServerMoveNoBase, batching two consecutive client moves into a single RPC when neither involves a movement base. Reduces per-move RPC overhead by half when the character is airborne or on flat ground.
Caveats & Gotchas
- • Deprecated in favour of ServerMovePacked. The packed path handles dual-move batching internally and is the preferred approach in UE5+.
- • Only the final client location (ClientLoc) is sent for the second move — the intermediate location after the first move is inferred server-side, so any discontinuity between moves may be invisible to the server until the next correction.
- • Both moves share the same null base context; if the character lands on a moving base mid-dual-move, the base will not be transmitted until the next ServerMove call.
Signature
ENGINE_API void ServerMoveDualNoBase(float TimeStamp0, FVector_NetQuantize10 InAccel0, uint8 PendingFlags, uint32 View0, float TimeStamp, FVector_NetQuantize10 InAccel, FVector_NetQuantize100 ClientLoc, uint8 NewFlags, uint8 ClientRoll, uint32 View, uint8 ClientMovementMode) Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| TimeStamp0 | float | Timestamp of the older (pending) move. | — |
| InAccel0 | FVector_NetQuantize10 | Acceleration for the older move. | — |
| PendingFlags | uint8 | Compressed move flags for the older move. | — |
| View0 | uint32 | View direction for the older move. | — |
| TimeStamp | float | Timestamp of the newer (current) move. | — |
| InAccel | FVector_NetQuantize10 | Acceleration for the newer move. | — |
| ClientLoc | FVector_NetQuantize100 | Client location after the newer move. | — |
| NewFlags | uint8 | Compressed move flags for the newer move. | — |
| ClientRoll | uint8 | Client roll encoded as a byte. | — |
| View | uint32 | View direction for the newer move. | — |
| ClientMovementMode | uint8 | Client movement mode after the newer move. | — |
Return Type
void Example
Internally dispatched by CharacterMovementComponent C++
// Not called directly. CharacterMovementComponent selects
// ServerMoveDualNoBase when:
// - Two pending moves exist with no base
// - The packed RPC path is disabled
// To intercept, override ServerMoveDualNoBase_Implementation. See Also
Version History
Introduced in: 4.0
| Version | Status | Notes |
|---|---|---|
| 5.6 | stable | — |
Feedback
Was this helpful?