UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CharacterMovementCVars Namespace Reference

Variables

ENGINE_API int32 AsyncCharacterMovement = 0
 
int32 ForceJumpPeakSubstep = 1
 
FAutoConsoleVariableRef CVarNetUsePackedMovementRPCs (TEXT("p.NetUsePackedMovementRPCs"), NetUsePackedMovementRPCs, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CVarNetPackedMovementMaxBits (TEXT("p.NetPackedMovementMaxBits"), NetPackedMovementMaxBits, TEXT("Max number of bits allowed in each packed movement RPC. Used to protect against bad data causing the server to allocate too much memory.\n"), ECVF_Default)
 
FAutoConsoleVariableRef CVarNetEnableListenServerSmoothing (TEXT("p.NetEnableListenServerSmoothing"), NetEnableListenServerSmoothing, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CVarNetEnableSkipProxyPredictionOnNetUpdate (TEXT("p.NetEnableSkipProxyPredictionOnNetUpdate"), NetEnableSkipProxyPredictionOnNetUpdate, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CVarEnableQueuedAnimEventsOnServer (TEXT("a.EnableQueuedAnimEventsOnServer"), EnableQueuedAnimEventsOnServer, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CVarStuckWarningPeriod (TEXT("p.CharacterStuckWarningPeriod"), StuckWarningPeriod, TEXT("<0: Disable, >=0: Enable and log this often, in seconds."), ECVF_Default)
 
FAutoConsoleVariableRef CVarNetEnableMoveCombining (TEXT("p.NetEnableMoveCombining"), NetEnableMoveCombining, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CVarNetEnableMoveCombiningOnStaticBaseChange (TEXT("p.NetEnableMoveCombiningOnStaticBaseChange"), NetEnableMoveCombiningOnStaticBaseChange, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CVarNetMoveCombiningAttachedLocationTolerance (TEXT("p.NetMoveCombiningAttachedLocationTolerance"), NetMoveCombiningAttachedLocationTolerance, TEXT("Tolerance for relative location attachment change when combining moves. Small tolerances allow for very slight jitter due to transform updates."), ECVF_Default)
 
FAutoConsoleVariableRef CVarNetMoveCombiningAttachedRotationTolerance (TEXT("p.NetMoveCombiningAttachedRotationTolerance"), NetMoveCombiningAttachedRotationTolerance, TEXT("Tolerance for relative rotation attachment change when combining moves. Small tolerances allow for very slight jitter due to transform updates."), ECVF_Default)
 
FAutoConsoleVariableRef CVarNetStationaryRotationTolerance (TEXT("p.NetStationaryRotationTolerance"), NetStationaryRotationTolerance, TEXT("Tolerance for GetClientNetSendDeltaTime() to remain throttled when small control rotation changes occur."), ECVF_Default)
 
FAutoConsoleVariableRef CVarNetUseClientTimestampForReplicatedTransform (TEXT("p.NetUseClientTimestampForReplicatedTransform"), NetUseClientTimestampForReplicatedTransform, TEXT("0: Disable, 1: Enable"), ECVF_Default)
 
FAutoConsoleVariableRef CVarNetServerForcePositionUpdateSyncToClient (TEXT("p.NetServerForcePositionUpdateSyncToClient"), bNetServerForcePositionUpdateSyncToClient, TEXT("If enabled, the server will always sync to the client timestamp when receiving a valid move after forcing updates (true is the old default behavior).\n"), ECVF_Default)
 
FAutoConsoleVariableRef CVarNetServerMaxMoveDeltaTimeScalar (TEXT("p.NetServerMaxMoveDeltaTimeScalar"), NetServerMaxMoveDeltaTimeScalar, TEXT("Allows the server to accept longer moves than the client is normally allowed to send, to avoid corrections (a value of 1 is old default behavior).\n"), ECVF_Default)
 
FAutoConsoleVariableRef CVarReplayLerpAcceleration (TEXT("p.ReplayLerpAcceleration"), ReplayLerpAcceleration, TEXT(""), ECVF_Default)
 
FAutoConsoleVariableRef CVarFixReplayOverSampling (TEXT("p.FixReplayOverSampling"), FixReplayOverSampling, TEXT("If 1, remove invalid replay samples that can occur due to oversampling (sampling at higher rate than physics is being ticked)"), ECVF_Default)
 
FAutoConsoleVariableRef CVarForceJumpPeakSubstep (TEXT("p.ForceJumpPeakSubstep"), ForceJumpPeakSubstep, TEXT("If 1, force a jump substep to always reach the peak position of a jump, which can often be cut off as framerate lowers."), ECVF_Default)
 
FAutoConsoleVariableRef CVarNetServerMoveTimestampExpiredWarningThreshold (TEXT("net.NetServerMoveTimestampExpiredWarningThreshold"), NetServerMoveTimestampExpiredWarningThreshold, TEXT("Tolerance for ServerMove() to warn when client moves are expired more than this time threshold behind the server."), ECVF_Default)
 
FAutoConsoleVariableRef CVarAsyncCharacterMovement (TEXT("p.AsyncCharacterMovement"), AsyncCharacterMovement, TEXT("1 enables asynchronous simulation of character movement on physics thread. Toggling this at runtime is not recommended. This feature is not fully developed, and its use is discouraged."))
 
int32 BasedMovementMode = 2
 
FAutoConsoleVariableRef CVarBasedMovementMode (TEXT("p.BasedMovementMode"), BasedMovementMode, TEXT("0 means always on regular tick (default); 1 means only if not deferring updates; 2 means update and save based movement both on regular ticks and post physics when on a physics base."))
 
FAutoConsoleVariableRef CVarNetUseBaseRelativeAcceleration (TEXT("p.NetUseBaseRelativeAcceleration"), NetUseBaseRelativeAcceleration, TEXT("If enabled, character acceleration will be treated as relative to dynamic movement bases."))
 
FAutoConsoleVariableRef CVarNetUseBaseRelativeVelocity (TEXT("p.NetUseBaseRelativeVelocity"), NetUseBaseRelativeVelocity, TEXT("If enabled, character velocity corrections will be treated as relative to dynamic movement bases."))
 
FAutoConsoleVariableRef CVarUseTargetVelocityOnImpact (TEXT("p.UseTargetVelocityOnImpact"), UseTargetVelocityOnImpact, TEXT("When disabled, we recalculate velocity after impact by comparing our position before we moved to our position after we moved. This doesn't work correctly when colliding with physics objects, so setting this to 1 fixes this one the hit object is moving."))
 
FAutoConsoleVariableRef CVarClientAuthorityThresholdOnBaseChange (TEXT("p.ClientAuthorityThresholdOnBaseChange"), ClientAuthorityThresholdOnBaseChange, TEXT("When a pawn moves onto or off of a moving base, this can cause an abrupt correction. In these cases, trust the client up to this distance away from the server component location."), ECVF_Default)
 
FAutoConsoleVariableRef CVarMaxFallingCorrectionLeash (TEXT("p.MaxFallingCorrectionLeash"), MaxFallingCorrectionLeash, TEXT("When airborne, some distance between the server and client locations may remain to avoid sudden corrections as clients jump from moving bases. This value is the maximum allowed distance."), ECVF_Default)
 
FAutoConsoleVariableRef CVarMaxFallingCorrectionLeashBuffer (TEXT("p.MaxFallingCorrectionLeashBuffer"), MaxFallingCorrectionLeashBuffer, TEXT("To avoid constant corrections, when an airborne server and client are further than p.MaxFallingCorrectionLeash cm apart, they'll be pulled in to that distance minus this value."), ECVF_Default)
 
FAutoConsoleVariableRef CVarAddFormerBaseVelocityToRootMotionOverrideWhenFalling (TEXT("p.AddFormerBaseVelocityToRootMotionOverrideWhenFalling"), bAddFormerBaseVelocityToRootMotionOverrideWhenFalling, TEXT("To avoid sudden velocity changes when a root motion source moves the pawn from a moving base to free fall, this CVar will enable the FormerBaseVelocityDecayHalfLife property on CharacterMovementComponent."), ECVF_Default)
 
FAutoConsoleVariableRef CVarGeometryCollectionImpulseWorkAround (TEXT("p.CVarGeometryCollectionImpulseWorkAround"), bGeometryCollectionImpulseWorkAround, TEXT("This enabled a workaround to allow impulses to be applied to geometry collection.\n"), ECVF_Default)
 
FAutoConsoleVariableRef CVarUseLastGoodRotationDuringCorrection (TEXT("p.UseLastGoodRotationDuringCorrection"), bUseLastGoodRotationDuringCorrection, TEXT("When enabled, during a correction, restore the last good rotation before re-simulating saved moves if the server didn't specify one. This improves visual quality with options like bOrientToMovement or bUseControllerDesiredRotation that rotate over time."), ECVF_Default)
 
FAutoConsoleVariableRef CVarPreventNonVerticalOrientationBlock (TEXT("p.PreventNonVerticalOrientationBlock"), bPreventNonVerticalOrientationBlock, TEXT("When enabled, this allows a character that's supposed to remain vertical to snap to a vertical orientation even if RotationRate settings would block it. See @ShouldRemainVertical and @RotationRate."), ECVF_Default)
 
FAutoConsoleVariableRef CVarDeferCharacterMeshMovement (TEXT("p.DeferCharacterMeshMovement"), bDeferCharacterMeshMovement, TEXT("Optimization - When enabled, defers CharacterMesh move propagation until the end of larger scoped moves. The mesh will still move, but all attached components will wait until all mesh movement is done within the scope."), ECVF_Default)
 
FAutoConsoleVariableRef CVarDeferCharacterMeshMovementForAllCorrections (TEXT("p.DeferCharacterMeshMovementForAllCorrections"), bDeferCharacterMeshMovementForAllCorrections, TEXT("Optimization - When enabled, defers CharacterMesh move propagation for all corrections until the end of larger scoped moves. Requires `bDeferCharacterMeshMovement=true'."), ECVF_Default)
 
FAutoConsoleVariableRef CVarLedgeMovementDetectEdgeNormal (TEXT("p.LedgeMovement.DetectEdgeNormal"), bLedgeMovementDetectEdgeNormal, TEXT("Detect the normal of the ledge when avoiding walking off ledges, to try to find a better movement direction."), ECVF_Default)
 
FAutoConsoleVariableRef CVarLedgeMovementApplyDirectMove (TEXT("p.LedgeMovement.ApplyDirectMove"), bLedgeMovementApplyDirectMove, TEXT("Apply the ledge movement vector directly, rather than the old method that reapplied acceleration."), ECVF_Default)
 
FAutoConsoleVariableRef CVarEnableClientAuthScheduledPushForces (TEXT("np2.CMC.EnableClientAuthScheduledPushForces"), bEnableClientAuthScheduledPushForces, TEXT("Enable a client-authoritative network flow for adding forces to pushed physics objects, requires physics prediction to be enabled in the project settings. NOTE: This is not recommended for networked physics and can produce inconsistency bugs where the client adds multiple forces for a single physics tick on the server, especially if async physics is not enabled."), ECVF_Default)
 
FAutoConsoleVariableRef CVarApplyCharacterCollisionForceAsImpulse (TEXT("p.ApplyCharacterCollisionForceAsImpulse"), bApplyCharacterCollisionForceAsImpulse, TEXT("Whether to apply character impact physics force as impulse when the object hit is not moving."), ECVF_Default)
 
FAutoConsoleVariableRef CVarResetJumpStateDuringResimIfNotFalling (TEXT("p.ResetJumpStateDuringResimIfNotFalling"), bResetJumpStateDuringResimIfNotFalling, TEXT("If true, we'll reset jump state during a correction & resimulation if not falling (e.g. walking). This fixes a bug that locks jump input, which could occur under poor net conditions."), ECVF_Default)
 
FAutoConsoleVariableRef CVarRestoreFloorWhenMissingBaseComponent (TEXT("p.RestoreFloorWhenMissingBaseComponent"), bRestoreFloorWhenMissingBaseComponent, TEXT("If true, when we have a valid floor result, but no PrimitiveComponent, try to keep the CurrentFloorValid if possible."), ECVF_Default)
 
int32 NetShowCorrections = 0
 
FAutoConsoleVariableRef CVarNetShowCorrections (TEXT("p.NetShowCorrections"), NetShowCorrections, TEXT("0: Disable, 1: Enable"), ECVF_Cheat)
 
float NetCorrectionLifetime = 4.f
 
FAutoConsoleVariableRef CVarNetCorrectionLifetime (TEXT("p.NetCorrectionLifetime"), NetCorrectionLifetime, TEXT("Time in seconds each visualized network correction persists."), ECVF_Cheat)
 
FAutoConsoleVariableRef CVarNetForceClientAdjustmentPercent (TEXT("p.NetForceClientAdjustmentPercent"), NetForceClientAdjustmentPercent, TEXT("<=0: Disable, 0.05: 5% of checks will return failed, 1.0: Always send client adjustments"), ECVF_Cheat)
 
FAutoConsoleVariableRef CVarNetForceClientServerMoveLossPercent (TEXT("p.NetForceClientServerMoveLossPercent"), NetForceClientServerMoveLossPercent, TEXT("<=0: Disable, 0.05: 5% of checks will return failed, 1.0: never send server moves"), ECVF_Cheat)
 
FAutoConsoleVariableRef CVarNetForceClientServerMoveLossDuration (TEXT("p.NetForceClientServerMoveLossDuration"), NetForceClientServerMoveLossDuration, TEXT("Duration of zero means single frame loss."), ECVF_Cheat)
 
FAutoConsoleVariableRef CVarVisualizeMovement (TEXT("p.VisualizeMovement"), VisualizeMovement, TEXT("0: Disable, 1: Enable"), ECVF_Cheat)
 
FAutoConsoleVariableRef CVarNetVisualizeSimulatedCorrections (TEXT("p.NetVisualizeSimulatedCorrections"), NetVisualizeSimulatedCorrections, TEXT("0: Disable, 1: Enable"), ECVF_Cheat)
 
FAutoConsoleVariableRef CVarDebugTimeDiscrepancy (TEXT("p.DebugTimeDiscrepancy"), DebugTimeDiscrepancy, TEXT("0: Disable, 1: Enable Detection logging, 2: Enable Detection and Resolution logging"), ECVF_Cheat)
 
int32 SkipPhysicsReplication = 0
 
float NetPingExtrapolation = -1.0f
 
float NetPingLimit = -1.f
 
float ErrorPerLinearDifference = -1.0f
 
float ErrorPerAngularDifference = -1.0f
 
float ErrorAccumulationSeconds = -1.0f
 
float ErrorAccumulationDistanceSq = -1.0f
 
float ErrorAccumulationSimilarity = -1.f
 
float MaxLinearHardSnapDistance = -1.f
 
float MaxRestoredStateError = -1.0f
 
float PositionLerp = -1.0f
 
float LinearVelocityCoefficient = -1.0f
 
float AngleLerp = -1.0f
 
float AngularVelocityCoefficient = -1.0f
 
int32 AlwaysHardSnap = 0
 
int32 AlwaysResetPhysics = 0
 
int32 ApplyAsyncSleepState = 1
 

Variable Documentation

◆ AlwaysHardSnap

ENGINE_API int32 CharacterMovementCVars::AlwaysHardSnap = 0

◆ AlwaysResetPhysics

ENGINE_API int32 CharacterMovementCVars::AlwaysResetPhysics = 0

◆ AngleLerp

ENGINE_API float CharacterMovementCVars::AngleLerp = -1.0f

◆ AngularVelocityCoefficient

ENGINE_API float CharacterMovementCVars::AngularVelocityCoefficient = -1.0f

◆ ApplyAsyncSleepState

ENGINE_API int32 CharacterMovementCVars::ApplyAsyncSleepState = 1

◆ AsyncCharacterMovement

int32 CharacterMovementCVars::AsyncCharacterMovement = 0

◆ BasedMovementMode

int32 CharacterMovementCVars::BasedMovementMode = 2

◆ CVarAddFormerBaseVelocityToRootMotionOverrideWhenFalling

FAutoConsoleVariableRef CharacterMovementCVars::CVarAddFormerBaseVelocityToRootMotionOverrideWhenFalling(TEXT("p.AddFormerBaseVelocityToRootMotionOverrideWhenFalling"), bAddFormerBaseVelocityToRootMotionOverrideWhenFalling, TEXT("To avoid sudden velocity changes when a root motion source moves the pawn from a moving base to free fall, this CVar will enable the FormerBaseVelocityDecayHalfLife property on CharacterMovementComponent."), ECVF_Default) ( TEXT("p.AddFormerBaseVelocityToRootMotionOverrideWhenFalling")  ,
bAddFormerBaseVelocityToRootMotionOverrideWhenFalling  ,
TEXT("To avoid sudden velocity changes when a root motion source moves the pawn from a moving base to free fall, this CVar will enable the FormerBaseVelocityDecayHalfLife property on CharacterMovementComponent.")  ,
ECVF_Default   
)

◆ CVarApplyCharacterCollisionForceAsImpulse

FAutoConsoleVariableRef CharacterMovementCVars::CVarApplyCharacterCollisionForceAsImpulse(TEXT("p.ApplyCharacterCollisionForceAsImpulse"), bApplyCharacterCollisionForceAsImpulse, TEXT("Whether to apply character impact physics force as impulse when the object hit is not moving."), ECVF_Default) ( TEXT("p.ApplyCharacterCollisionForceAsImpulse")  ,
bApplyCharacterCollisionForceAsImpulse  ,
TEXT("Whether to apply character impact physics force as impulse when the object hit is not moving.")  ,
ECVF_Default   
)

◆ CVarAsyncCharacterMovement

FAutoConsoleVariableRef CharacterMovementCVars::CVarAsyncCharacterMovement(TEXT("p.AsyncCharacterMovement"), AsyncCharacterMovement, TEXT("1 enables asynchronous simulation of character movement on physics thread. Toggling this at runtime is not recommended. This feature is not fully developed, and its use is discouraged.")) ( TEXT("p.AsyncCharacterMovement")  ,
AsyncCharacterMovement  ,
TEXT("1 enables asynchronous simulation of character movement on physics thread. Toggling this at runtime is not recommended. This feature is not fully developed, and its use is discouraged.")   
)

◆ CVarBasedMovementMode

FAutoConsoleVariableRef CharacterMovementCVars::CVarBasedMovementMode(TEXT("p.BasedMovementMode"), BasedMovementMode, TEXT("0 means always on regular tick (default); 1 means only if not deferring updates; 2 means update and save based movement both on regular ticks and post physics when on a physics base.")) ( TEXT("p.BasedMovementMode")  ,
BasedMovementMode  ,
TEXT("0 means always on regular tick (default); 1 means only if not deferring updates; 2 means update and save based movement both on regular ticks and post physics when on a physics base.")   
)

◆ CVarClientAuthorityThresholdOnBaseChange

FAutoConsoleVariableRef CharacterMovementCVars::CVarClientAuthorityThresholdOnBaseChange(TEXT("p.ClientAuthorityThresholdOnBaseChange"), ClientAuthorityThresholdOnBaseChange, TEXT("When a pawn moves onto or off of a moving base, this can cause an abrupt correction. In these cases, trust the client up to this distance away from the server component location."), ECVF_Default) ( TEXT("p.ClientAuthorityThresholdOnBaseChange")  ,
ClientAuthorityThresholdOnBaseChange  ,
TEXT("When a pawn moves onto or off of a moving base, this can cause an abrupt correction. In these cases, trust the client up to this distance away from the server component location.")  ,
ECVF_Default   
)

◆ CVarDebugTimeDiscrepancy

FAutoConsoleVariableRef CharacterMovementCVars::CVarDebugTimeDiscrepancy(TEXT("p.DebugTimeDiscrepancy"), DebugTimeDiscrepancy, TEXT("0: Disable, 1: Enable Detection logging, 2: Enable Detection and Resolution logging"), ECVF_Cheat) ( TEXT("p.DebugTimeDiscrepancy")  ,
DebugTimeDiscrepancy  ,
TEXT("0: Disable, 1: Enable Detection logging, 2: Enable Detection and Resolution logging" ,
ECVF_Cheat   
)

◆ CVarDeferCharacterMeshMovement

FAutoConsoleVariableRef CharacterMovementCVars::CVarDeferCharacterMeshMovement(TEXT("p.DeferCharacterMeshMovement"), bDeferCharacterMeshMovement, TEXT("Optimization - When enabled, defers CharacterMesh move propagation until the end of larger scoped moves. The mesh will still move, but all attached components will wait until all mesh movement is done within the scope."), ECVF_Default) ( TEXT("p.DeferCharacterMeshMovement")  ,
bDeferCharacterMeshMovement  ,
TEXT("Optimization - When enabled, defers CharacterMesh move propagation until the end of larger scoped moves. The mesh will still move, but all attached components will wait until all mesh movement is done within the scope.")  ,
ECVF_Default   
)

◆ CVarDeferCharacterMeshMovementForAllCorrections

FAutoConsoleVariableRef CharacterMovementCVars::CVarDeferCharacterMeshMovementForAllCorrections(TEXT("p.DeferCharacterMeshMovementForAllCorrections"), bDeferCharacterMeshMovementForAllCorrections, TEXT("Optimization - When enabled, defers CharacterMesh move propagation for all corrections until the end of larger scoped moves. Requires `bDeferCharacterMeshMovement=true'."), ECVF_Default) ( TEXT("p.DeferCharacterMeshMovementForAllCorrections")  ,
bDeferCharacterMeshMovementForAllCorrections  ,
TEXT("Optimization - When enabled, defers CharacterMesh move propagation for all corrections until the end of larger scoped moves. Requires `bDeferCharacterMeshMovement=true'.")  ,
ECVF_Default   
)

◆ CVarEnableClientAuthScheduledPushForces

FAutoConsoleVariableRef CharacterMovementCVars::CVarEnableClientAuthScheduledPushForces(TEXT("np2.CMC.EnableClientAuthScheduledPushForces"), bEnableClientAuthScheduledPushForces, TEXT("Enable a client-authoritative network flow for adding forces to pushed physics objects, requires physics prediction to be enabled in the project settings. NOTE: This is not recommended for networked physics and can produce inconsistency bugs where the client adds multiple forces for a single physics tick on the server, especially if async physics is not enabled."), ECVF_Default) ( TEXT("np2.CMC.EnableClientAuthScheduledPushForces")  ,
bEnableClientAuthScheduledPushForces  ,
TEXT("Enable a client-authoritative network flow for adding forces to pushed physics objects, requires physics prediction to be enabled in the project settings. NOTE: This is not recommended for networked physics and can produce inconsistency bugs where the client adds multiple forces for a single physics tick on the server, especially if async physics is not enabled.")  ,
ECVF_Default   
)

◆ CVarEnableQueuedAnimEventsOnServer

FAutoConsoleVariableRef CharacterMovementCVars::CVarEnableQueuedAnimEventsOnServer(TEXT("a.EnableQueuedAnimEventsOnServer"), EnableQueuedAnimEventsOnServer, TEXT("0: Disable, 1: Enable"), ECVF_Default) ( TEXT("a.EnableQueuedAnimEventsOnServer")  ,
EnableQueuedAnimEventsOnServer  ,
TEXT("0: Disable, 1: Enable" ,
ECVF_Default   
)

◆ CVarFixReplayOverSampling

FAutoConsoleVariableRef CharacterMovementCVars::CVarFixReplayOverSampling(TEXT("p.FixReplayOverSampling"), FixReplayOverSampling, TEXT("If 1, remove invalid replay samples that can occur due to oversampling (sampling at higher rate than physics is being ticked)"), ECVF_Default) ( TEXT("p.FixReplayOverSampling")  ,
FixReplayOverSampling  ,
TEXT("If 1, remove invalid replay samples that can occur due to oversampling (sampling at higher rate than physics is being ticked)")  ,
ECVF_Default   
)

◆ CVarForceJumpPeakSubstep

FAutoConsoleVariableRef CharacterMovementCVars::CVarForceJumpPeakSubstep(TEXT("p.ForceJumpPeakSubstep"), ForceJumpPeakSubstep, TEXT("If 1, force a jump substep to always reach the peak position of a jump, which can often be cut off as framerate lowers."), ECVF_Default) ( TEXT("p.ForceJumpPeakSubstep")  ,
ForceJumpPeakSubstep  ,
TEXT("If 1, force a jump substep to always reach the peak position of a jump, which can often be cut off as framerate lowers.")  ,
ECVF_Default   
)

◆ CVarGeometryCollectionImpulseWorkAround

FAutoConsoleVariableRef CharacterMovementCVars::CVarGeometryCollectionImpulseWorkAround(TEXT("p.CVarGeometryCollectionImpulseWorkAround"), bGeometryCollectionImpulseWorkAround, TEXT("This enabled a workaround to allow impulses to be applied to geometry collection.\n"), ECVF_Default) ( TEXT("p.CVarGeometryCollectionImpulseWorkAround")  ,
bGeometryCollectionImpulseWorkAround  ,
TEXT("This enabled a workaround to allow impulses to be applied to geometry collection.\n")  ,
ECVF_Default   
)

◆ CVarLedgeMovementApplyDirectMove

FAutoConsoleVariableRef CharacterMovementCVars::CVarLedgeMovementApplyDirectMove(TEXT("p.LedgeMovement.ApplyDirectMove"), bLedgeMovementApplyDirectMove, TEXT("Apply the ledge movement vector directly, rather than the old method that reapplied acceleration."), ECVF_Default) ( TEXT("p.LedgeMovement.ApplyDirectMove")  ,
bLedgeMovementApplyDirectMove  ,
TEXT("Apply the ledge movement vector directly, rather than the old method that reapplied acceleration.")  ,
ECVF_Default   
)

◆ CVarLedgeMovementDetectEdgeNormal

FAutoConsoleVariableRef CharacterMovementCVars::CVarLedgeMovementDetectEdgeNormal(TEXT("p.LedgeMovement.DetectEdgeNormal"), bLedgeMovementDetectEdgeNormal, TEXT("Detect the normal of the ledge when avoiding walking off ledges, to try to find a better movement direction."), ECVF_Default) ( TEXT("p.LedgeMovement.DetectEdgeNormal")  ,
bLedgeMovementDetectEdgeNormal  ,
TEXT("Detect the normal of the ledge when avoiding walking off ledges, to try to find a better movement direction.")  ,
ECVF_Default   
)

◆ CVarMaxFallingCorrectionLeash

FAutoConsoleVariableRef CharacterMovementCVars::CVarMaxFallingCorrectionLeash(TEXT("p.MaxFallingCorrectionLeash"), MaxFallingCorrectionLeash, TEXT("When airborne, some distance between the server and client locations may remain to avoid sudden corrections as clients jump from moving bases. This value is the maximum allowed distance."), ECVF_Default) ( TEXT("p.MaxFallingCorrectionLeash")  ,
MaxFallingCorrectionLeash  ,
TEXT("When airborne, some distance between the server and client locations may remain to avoid sudden corrections as clients jump from moving bases. This value is the maximum allowed distance.")  ,
ECVF_Default   
)

◆ CVarMaxFallingCorrectionLeashBuffer

FAutoConsoleVariableRef CharacterMovementCVars::CVarMaxFallingCorrectionLeashBuffer(TEXT("p.MaxFallingCorrectionLeashBuffer"), MaxFallingCorrectionLeashBuffer, TEXT("To avoid constant corrections, when an airborne server and client are further than p.MaxFallingCorrectionLeash cm apart, they'll be pulled in to that distance minus this value."), ECVF_Default) ( TEXT("p.MaxFallingCorrectionLeashBuffer")  ,
MaxFallingCorrectionLeashBuffer  ,
TEXT("To avoid constant corrections, when an airborne server and client are further than p.MaxFallingCorrectionLeash cm apart, they'll be pulled in to that distance minus this value.")  ,
ECVF_Default   
)

◆ CVarNetCorrectionLifetime

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetCorrectionLifetime(TEXT("p.NetCorrectionLifetime"), NetCorrectionLifetime, TEXT("Time in seconds each visualized network correction persists."), ECVF_Cheat) ( TEXT("p.NetCorrectionLifetime")  ,
NetCorrectionLifetime  ,
TEXT("Time in seconds each visualized network correction persists.")  ,
ECVF_Cheat   
)

◆ CVarNetEnableListenServerSmoothing

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetEnableListenServerSmoothing(TEXT("p.NetEnableListenServerSmoothing"), NetEnableListenServerSmoothing, TEXT("0: Disable, 1: Enable"), ECVF_Default) ( TEXT("p.NetEnableListenServerSmoothing")  ,
NetEnableListenServerSmoothing  ,
TEXT("0: Disable, 1: Enable" ,
ECVF_Default   
)

◆ CVarNetEnableMoveCombining

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetEnableMoveCombining(TEXT("p.NetEnableMoveCombining"), NetEnableMoveCombining, TEXT("0: Disable, 1: Enable"), ECVF_Default) ( TEXT("p.NetEnableMoveCombining")  ,
NetEnableMoveCombining  ,
TEXT("0: Disable, 1: Enable" ,
ECVF_Default   
)

◆ CVarNetEnableMoveCombiningOnStaticBaseChange

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetEnableMoveCombiningOnStaticBaseChange(TEXT("p.NetEnableMoveCombiningOnStaticBaseChange"), NetEnableMoveCombiningOnStaticBaseChange, TEXT("0: Disable, 1: Enable"), ECVF_Default) ( TEXT("p.NetEnableMoveCombiningOnStaticBaseChange")  ,
NetEnableMoveCombiningOnStaticBaseChange  ,
TEXT("0: Disable, 1: Enable" ,
ECVF_Default   
)

◆ CVarNetEnableSkipProxyPredictionOnNetUpdate

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetEnableSkipProxyPredictionOnNetUpdate(TEXT("p.NetEnableSkipProxyPredictionOnNetUpdate"), NetEnableSkipProxyPredictionOnNetUpdate, TEXT("0: Disable, 1: Enable"), ECVF_Default) ( TEXT("p.NetEnableSkipProxyPredictionOnNetUpdate")  ,
NetEnableSkipProxyPredictionOnNetUpdate  ,
TEXT("0: Disable, 1: Enable" ,
ECVF_Default   
)

◆ CVarNetForceClientAdjustmentPercent

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetForceClientAdjustmentPercent(TEXT("p.NetForceClientAdjustmentPercent"), NetForceClientAdjustmentPercent, TEXT("<=0: Disable, 0.05: 5% of checks will return failed, 1.0: Always send client adjustments"), ECVF_Cheat) ( TEXT("p.NetForceClientAdjustmentPercent")  ,
NetForceClientAdjustmentPercent  ,
TEXT("<=0: Disable, 0.05: 5% of checks will return failed, 1.0: Always send client adjustments" ,
ECVF_Cheat   
)

◆ CVarNetForceClientServerMoveLossDuration

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetForceClientServerMoveLossDuration(TEXT("p.NetForceClientServerMoveLossDuration"), NetForceClientServerMoveLossDuration, TEXT("Duration of zero means single frame loss."), ECVF_Cheat) ( TEXT("p.NetForceClientServerMoveLossDuration")  ,
NetForceClientServerMoveLossDuration  ,
TEXT("Duration of zero means single frame loss.")  ,
ECVF_Cheat   
)

◆ CVarNetForceClientServerMoveLossPercent

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetForceClientServerMoveLossPercent(TEXT("p.NetForceClientServerMoveLossPercent"), NetForceClientServerMoveLossPercent, TEXT("<=0: Disable, 0.05: 5% of checks will return failed, 1.0: never send server moves"), ECVF_Cheat) ( TEXT("p.NetForceClientServerMoveLossPercent")  ,
NetForceClientServerMoveLossPercent  ,
TEXT("<=0: Disable, 0.05: 5% of checks will return failed, 1.0: never send server moves" ,
ECVF_Cheat   
)

◆ CVarNetMoveCombiningAttachedLocationTolerance

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetMoveCombiningAttachedLocationTolerance(TEXT("p.NetMoveCombiningAttachedLocationTolerance"), NetMoveCombiningAttachedLocationTolerance, TEXT("Tolerance for relative location attachment change when combining moves. Small tolerances allow for very slight jitter due to transform updates."), ECVF_Default) ( TEXT("p.NetMoveCombiningAttachedLocationTolerance")  ,
NetMoveCombiningAttachedLocationTolerance  ,
TEXT("Tolerance for relative location attachment change when combining moves. Small tolerances allow for very slight jitter due to transform updates.")  ,
ECVF_Default   
)

◆ CVarNetMoveCombiningAttachedRotationTolerance

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetMoveCombiningAttachedRotationTolerance(TEXT("p.NetMoveCombiningAttachedRotationTolerance"), NetMoveCombiningAttachedRotationTolerance, TEXT("Tolerance for relative rotation attachment change when combining moves. Small tolerances allow for very slight jitter due to transform updates."), ECVF_Default) ( TEXT("p.NetMoveCombiningAttachedRotationTolerance")  ,
NetMoveCombiningAttachedRotationTolerance  ,
TEXT("Tolerance for relative rotation attachment change when combining moves. Small tolerances allow for very slight jitter due to transform updates.")  ,
ECVF_Default   
)

◆ CVarNetPackedMovementMaxBits

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetPackedMovementMaxBits(TEXT("p.NetPackedMovementMaxBits"), NetPackedMovementMaxBits, TEXT("Max number of bits allowed in each packed movement RPC. Used to protect against bad data causing the server to allocate too much memory.\n"), ECVF_Default) ( TEXT("p.NetPackedMovementMaxBits")  ,
NetPackedMovementMaxBits  ,
TEXT("Max number of bits allowed in each packed movement RPC. Used to protect against bad data causing the server to allocate too much memory.\n")  ,
ECVF_Default   
)

◆ CVarNetServerForcePositionUpdateSyncToClient

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetServerForcePositionUpdateSyncToClient(TEXT("p.NetServerForcePositionUpdateSyncToClient"), bNetServerForcePositionUpdateSyncToClient, TEXT("If enabled, the server will always sync to the client timestamp when receiving a valid move after forcing updates (true is the old default behavior).\n"), ECVF_Default) ( TEXT("p.NetServerForcePositionUpdateSyncToClient")  ,
bNetServerForcePositionUpdateSyncToClient  ,
TEXT("If enabled, the server will always sync to the client timestamp when receiving a valid move after forcing updates (true is the old default behavior).\n" ,
ECVF_Default   
)

◆ CVarNetServerMaxMoveDeltaTimeScalar

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetServerMaxMoveDeltaTimeScalar(TEXT("p.NetServerMaxMoveDeltaTimeScalar"), NetServerMaxMoveDeltaTimeScalar, TEXT("Allows the server to accept longer moves than the client is normally allowed to send, to avoid corrections (a value of 1 is old default behavior).\n"), ECVF_Default) ( TEXT("p.NetServerMaxMoveDeltaTimeScalar")  ,
NetServerMaxMoveDeltaTimeScalar  ,
TEXT("Allows the server to accept longer moves than the client is normally allowed to send, to avoid corrections (a value of 1 is old default behavior).\n" ,
ECVF_Default   
)

◆ CVarNetServerMoveTimestampExpiredWarningThreshold

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetServerMoveTimestampExpiredWarningThreshold(TEXT("net.NetServerMoveTimestampExpiredWarningThreshold"), NetServerMoveTimestampExpiredWarningThreshold, TEXT("Tolerance for ServerMove() to warn when client moves are expired more than this time threshold behind the server."), ECVF_Default) ( TEXT("net.NetServerMoveTimestampExpiredWarningThreshold")  ,
NetServerMoveTimestampExpiredWarningThreshold  ,
TEXT("Tolerance for ServerMove() to warn when client moves are expired more than this time threshold behind the server.")  ,
ECVF_Default   
)

◆ CVarNetShowCorrections

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetShowCorrections(TEXT("p.NetShowCorrections"), NetShowCorrections, TEXT("0: Disable, 1: Enable"), ECVF_Cheat) ( TEXT("p.NetShowCorrections")  ,
NetShowCorrections  ,
TEXT("0: Disable, 1: Enable" ,
ECVF_Cheat   
)

◆ CVarNetStationaryRotationTolerance

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetStationaryRotationTolerance(TEXT("p.NetStationaryRotationTolerance"), NetStationaryRotationTolerance, TEXT("Tolerance for GetClientNetSendDeltaTime() to remain throttled when small control rotation changes occur."), ECVF_Default) ( TEXT("p.NetStationaryRotationTolerance")  ,
NetStationaryRotationTolerance  ,
TEXT("Tolerance for GetClientNetSendDeltaTime() to remain throttled when small control rotation changes occur.")  ,
ECVF_Default   
)

◆ CVarNetUseBaseRelativeAcceleration

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetUseBaseRelativeAcceleration(TEXT("p.NetUseBaseRelativeAcceleration"), NetUseBaseRelativeAcceleration, TEXT("If enabled, character acceleration will be treated as relative to dynamic movement bases.")) ( TEXT("p.NetUseBaseRelativeAcceleration")  ,
NetUseBaseRelativeAcceleration  ,
TEXT("If enabled, character acceleration will be treated as relative to dynamic movement bases.")   
)

◆ CVarNetUseBaseRelativeVelocity

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetUseBaseRelativeVelocity(TEXT("p.NetUseBaseRelativeVelocity"), NetUseBaseRelativeVelocity, TEXT("If enabled, character velocity corrections will be treated as relative to dynamic movement bases.")) ( TEXT("p.NetUseBaseRelativeVelocity")  ,
NetUseBaseRelativeVelocity  ,
TEXT("If enabled, character velocity corrections will be treated as relative to dynamic movement bases.")   
)

◆ CVarNetUseClientTimestampForReplicatedTransform

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetUseClientTimestampForReplicatedTransform(TEXT("p.NetUseClientTimestampForReplicatedTransform"), NetUseClientTimestampForReplicatedTransform, TEXT("0: Disable, 1: Enable"), ECVF_Default) ( TEXT("p.NetUseClientTimestampForReplicatedTransform")  ,
NetUseClientTimestampForReplicatedTransform  ,
TEXT("0: Disable, 1: Enable" ,
ECVF_Default   
)

◆ CVarNetUsePackedMovementRPCs

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetUsePackedMovementRPCs(TEXT("p.NetUsePackedMovementRPCs"), NetUsePackedMovementRPCs, TEXT("0: Disable, 1: Enable"), ECVF_Default) ( TEXT("p.NetUsePackedMovementRPCs")  ,
NetUsePackedMovementRPCs  ,
TEXT("0: Disable, 1: Enable" ,
ECVF_Default   
)

◆ CVarNetVisualizeSimulatedCorrections

FAutoConsoleVariableRef CharacterMovementCVars::CVarNetVisualizeSimulatedCorrections(TEXT("p.NetVisualizeSimulatedCorrections"), NetVisualizeSimulatedCorrections, TEXT("0: Disable, 1: Enable"), ECVF_Cheat) ( TEXT("p.NetVisualizeSimulatedCorrections")  ,
NetVisualizeSimulatedCorrections  ,
TEXT("0: Disable, 1: Enable" ,
ECVF_Cheat   
)

◆ CVarPreventNonVerticalOrientationBlock

FAutoConsoleVariableRef CharacterMovementCVars::CVarPreventNonVerticalOrientationBlock(TEXT("p.PreventNonVerticalOrientationBlock"), bPreventNonVerticalOrientationBlock, TEXT("When enabled, this allows a character that's supposed to remain vertical to snap to a vertical orientation even if RotationRate settings would block it. See @ShouldRemainVertical and @RotationRate."), ECVF_Default) ( TEXT("p.PreventNonVerticalOrientationBlock")  ,
bPreventNonVerticalOrientationBlock  ,
TEXT("When enabled, this allows a character that's supposed to remain vertical to snap to a vertical orientation even if RotationRate settings would block it. See @ShouldRemainVertical and @RotationRate.")  ,
ECVF_Default   
)

◆ CVarReplayLerpAcceleration

FAutoConsoleVariableRef CharacterMovementCVars::CVarReplayLerpAcceleration(TEXT("p.ReplayLerpAcceleration"), ReplayLerpAcceleration, TEXT(""), ECVF_Default) ( TEXT("p.ReplayLerpAcceleration")  ,
ReplayLerpAcceleration  ,
TEXT("")  ,
ECVF_Default   
)

◆ CVarResetJumpStateDuringResimIfNotFalling

FAutoConsoleVariableRef CharacterMovementCVars::CVarResetJumpStateDuringResimIfNotFalling(TEXT("p.ResetJumpStateDuringResimIfNotFalling"), bResetJumpStateDuringResimIfNotFalling, TEXT("If true, we'll reset jump state during a correction & resimulation if not falling (e.g. walking). This fixes a bug that locks jump input, which could occur under poor net conditions."), ECVF_Default) ( TEXT("p.ResetJumpStateDuringResimIfNotFalling")  ,
bResetJumpStateDuringResimIfNotFalling  ,
TEXT("If true, we'll reset jump state during a correction & resimulation if not falling (e.g. walking). This fixes a bug that locks jump input, which could occur under poor net conditions.")  ,
ECVF_Default   
)

◆ CVarRestoreFloorWhenMissingBaseComponent

FAutoConsoleVariableRef CharacterMovementCVars::CVarRestoreFloorWhenMissingBaseComponent(TEXT("p.RestoreFloorWhenMissingBaseComponent"), bRestoreFloorWhenMissingBaseComponent, TEXT("If true, when we have a valid floor result, but no PrimitiveComponent, try to keep the CurrentFloorValid if possible."), ECVF_Default) ( TEXT("p.RestoreFloorWhenMissingBaseComponent")  ,
bRestoreFloorWhenMissingBaseComponent  ,
TEXT("If true, when we have a valid floor result, but no PrimitiveComponent, try to keep the CurrentFloorValid if possible.")  ,
ECVF_Default   
)

◆ CVarStuckWarningPeriod

FAutoConsoleVariableRef CharacterMovementCVars::CVarStuckWarningPeriod(TEXT("p.CharacterStuckWarningPeriod"), StuckWarningPeriod, TEXT("<0: Disable, >=0: Enable and log this often, in seconds."), ECVF_Default) ( TEXT("p.CharacterStuckWarningPeriod")  ,
StuckWarningPeriod  ,
TEXT("<0: Disable, >=0: Enable and log this often, in seconds.")  ,
ECVF_Default   
)

◆ CVarUseLastGoodRotationDuringCorrection

FAutoConsoleVariableRef CharacterMovementCVars::CVarUseLastGoodRotationDuringCorrection(TEXT("p.UseLastGoodRotationDuringCorrection"), bUseLastGoodRotationDuringCorrection, TEXT("When enabled, during a correction, restore the last good rotation before re-simulating saved moves if the server didn't specify one. This improves visual quality with options like bOrientToMovement or bUseControllerDesiredRotation that rotate over time."), ECVF_Default) ( TEXT("p.UseLastGoodRotationDuringCorrection")  ,
bUseLastGoodRotationDuringCorrection  ,
TEXT("When enabled, during a correction, restore the last good rotation before re-simulating saved moves if the server didn't specify one. This improves visual quality with options like bOrientToMovement or bUseControllerDesiredRotation that rotate over time.")  ,
ECVF_Default   
)

◆ CVarUseTargetVelocityOnImpact

FAutoConsoleVariableRef CharacterMovementCVars::CVarUseTargetVelocityOnImpact(TEXT("p.UseTargetVelocityOnImpact"), UseTargetVelocityOnImpact, TEXT("When disabled, we recalculate velocity after impact by comparing our position before we moved to our position after we moved. This doesn't work correctly when colliding with physics objects, so setting this to 1 fixes this one the hit object is moving.")) ( TEXT("p.UseTargetVelocityOnImpact")  ,
UseTargetVelocityOnImpact  ,
TEXT("When disabled, we recalculate velocity after impact by comparing our position before we moved to our position after we moved. This doesn't work correctly when colliding with physics objects, so setting this to 1 fixes this one the hit object is moving.")   
)

◆ CVarVisualizeMovement

FAutoConsoleVariableRef CharacterMovementCVars::CVarVisualizeMovement(TEXT("p.VisualizeMovement"), VisualizeMovement, TEXT("0: Disable, 1: Enable"), ECVF_Cheat) ( TEXT("p.VisualizeMovement")  ,
VisualizeMovement  ,
TEXT("0: Disable, 1: Enable" ,
ECVF_Cheat   
)

◆ ErrorAccumulationDistanceSq

ENGINE_API float CharacterMovementCVars::ErrorAccumulationDistanceSq = -1.0f

◆ ErrorAccumulationSeconds

ENGINE_API float CharacterMovementCVars::ErrorAccumulationSeconds = -1.0f

◆ ErrorAccumulationSimilarity

ENGINE_API float CharacterMovementCVars::ErrorAccumulationSimilarity = -1.f

◆ ErrorPerAngularDifference

ENGINE_API float CharacterMovementCVars::ErrorPerAngularDifference = -1.0f

◆ ErrorPerLinearDifference

ENGINE_API float CharacterMovementCVars::ErrorPerLinearDifference = -1.0f

◆ ForceJumpPeakSubstep

int32 CharacterMovementCVars::ForceJumpPeakSubstep = 1

◆ LinearVelocityCoefficient

ENGINE_API float CharacterMovementCVars::LinearVelocityCoefficient = -1.0f

◆ MaxLinearHardSnapDistance

ENGINE_API float CharacterMovementCVars::MaxLinearHardSnapDistance = -1.f

◆ MaxRestoredStateError

ENGINE_API float CharacterMovementCVars::MaxRestoredStateError = -1.0f

◆ NetCorrectionLifetime

float CharacterMovementCVars::NetCorrectionLifetime = 4.f

◆ NetPingExtrapolation

ENGINE_API float CharacterMovementCVars::NetPingExtrapolation = -1.0f

◆ NetPingLimit

ENGINE_API float CharacterMovementCVars::NetPingLimit = -1.f

◆ NetShowCorrections

int32 CharacterMovementCVars::NetShowCorrections = 0

◆ PositionLerp

ENGINE_API float CharacterMovementCVars::PositionLerp = -1.0f

◆ SkipPhysicsReplication

ENGINE_API int32 CharacterMovementCVars::SkipPhysicsReplication = 0