ACharacter::ServerMoveOld
Deprecated: Use ServerMovePacked instead.
#include "GameFramework/Character.h"
Access: public
Specifiers: UFUNCTIONunreliableserverWithValidation
Description
Resends an important old move to the server when the client suspects it was dropped. The server processes it only if it has not already been acknowledged.
Caveats & Gotchas
- • Deprecated in favour of ServerMovePacked. The packed path handles old-move retransmission internally.
- • The server checks whether OldTimeStamp has already been processed before applying the move; duplicate processing is guarded against by the timestamp comparison in CharacterMovementComponent.
- • Only acceleration and flags are resent — client location is not included, so the server re-simulates the old move from its own saved state rather than accepting the client's location.
Signature
ENGINE_API void ServerMoveOld(float OldTimeStamp, FVector_NetQuantize10 OldAccel, uint8 OldMoveFlags) Parameters
| Name | Type | Description | Default |
|---|---|---|---|
| OldTimeStamp | float | Timestamp of the old move being resent. | — |
| OldAccel | FVector_NetQuantize10 | Acceleration of the old move. | — |
| OldMoveFlags | uint8 | Compressed move flags of the old move. | — |
Return Type
void Example
Internally managed by CharacterMovementComponent C++
// ServerMoveOld is dispatched automatically by CharacterMovementComponent
// when a previously sent move has not been acknowledged and the client
// suspects packet loss. You rarely override this; to monitor resends:
void AMyCharacter::ServerMoveOld_Implementation(
float OldTimeStamp, FVector_NetQuantize10 OldAccel, uint8 OldMoveFlags)
{
UE_LOG(LogTemp, Verbose, TEXT("Resending old move ts=%.3f"), OldTimeStamp);
Super::ServerMoveOld_Implementation(OldTimeStamp, OldAccel, OldMoveFlags);
} Version History
Introduced in: 4.0
| Version | Status | Notes |
|---|---|---|
| 5.6 | stable | — |
Feedback
Was this helpful?