Context
When crouching and uncrouching with Mover’s DefaultMovementSet, the pawn capsule’s half height is changed. This behavior mimics the CharacterMovementComponent. To ensure the pawn’s feet stay at floor level, Mover queues an instant teleport effect in FStanceModifier::AdjustCapsule.
Problem
When the pawn class has multiple primitive components with collision queries enabled, any of the components intersecting with the world at the new desired location will prevent the teleport. For example, when turning on collision queries on GASP’s SandboxCharacter_Mover’s Skeletal Mesh, the mesh can cause teleports to fail. This causes uncrouch and crouch to behave incorrectly, since the height adjustment fails to apply.
Noteworthy: UWorld::EncroachingBlockingGeometry has a special code path for UMovementComponents to only consider the root primitive, but UMoverComponents take the fallback path where all primitive components are tested.
Workaround
Disable all collision queries for child components, if it’s not needed. Alternatively: introduce a new Object Channel, like “Pawn Visual”, in project settings that’s ignored by default and change all of your pawn’s primitives to use that. They won’t prevent teleportations. Update game logic to trace/overlap/block the new Object Channel.
Suggested Fix
To be decided.
Non-fatal callstack, this is just for reference of where the blocking hit occurs that prevents the capsule location adjustment:
> [Inline Frame] UnrealEditor-Engine.dll!ComponentEncroachesBlockingGeometry_WithAdjustment::__l14::<lambda_3>::operator()() Line 1355 C++ UnrealEditor-Engine.dll!ComponentEncroachesBlockingGeometry_WithAdjustment(const UWorld * World, const AActor * TestActor, const UPrimitiveComponent * PrimComp, const UE::Math::TTransform<double> & TestWorldTransform, UE::Math::TVector<double> & OutProposedAdjustment, const TArray<AActor *,TSizedDefaultAllocator<32>> & IgnoreActors) Line 1355 C++ [Inline Frame] UnrealEditor-Engine.dll!ComponentEncroachesBlockingGeometry(const UWorld *) Line 1440 C++ UnrealEditor-Engine.dll!UWorld::EncroachingBlockingGeometry(const AActor * TestActor, UE::Math::TVector<double> TestLocation, UE::Math::TRotator<double> TestRotation, UE::Math::TVector<double> * ProposedAdjustment) Line 1546 C++ UnrealEditor-Engine.dll!UWorld::FindTeleportSpot(const AActor * TestActor, UE::Math::TVector<double> & TestLocation, UE::Math::TRotator<double> TestRotation) Line 1135 C++ UnrealEditor-Engine.dll!AActor::TeleportTo(const UE::Math::TVector<double> & DestLocation, const UE::Math::TRotator<double> & DestRotation, bool bIsATest, bool bNoCheck) Line 803 C++ UnrealEditor-Mover.dll!FTeleportEffect::ApplyMovementEffect(FApplyMovementEffectParams & ApplyEffectParams, FMoverSyncState & OutputState) Line 47 C++ UnrealEditor-Mover.dll!UMovementModeStateMachine::ApplyInstantEffects(FApplyMovementEffectParams & ApplyEffectParams, FMoverSyncState & OutputState) Line 936 C++ UnrealEditor-Mover.dll!UMovementModeStateMachine::OnSimulationTick(USceneComponent * UpdatedComponent, UPrimitiveComponent * UpdatedPrimitive, UMoverBlackboard * SimBlackboard, const FMoverTickStartData & StartState, const FMoverTimeStep & TimeStep, FMoverTickEndData & OutputState) Line 247 C++ UnrealEditor-Mover.dll!UMoverComponent::SimulationTick(const FMoverTimeStep & InTimeStep, const FMoverTickStartData & SimInput, FMoverTickEndData & SimOutput) Line 621 C++ UnrealEditor-Mover.dll!UMoverNetworkPredictionLiaisonComponent::SimulationTick(const FNetSimTimeStep & TimeStep, const TNetworkPredictionState<TNetworkPredictionStateTypes<FMoverInputCmdContext,FMoverSyncState,FMoverAuxStateContext>> & SimInput, const TNetSimOutput<TNetworkPredictionStateTypes<FMoverInputCmdContext,FMoverSyncState,FMoverAuxStateContext>> & SimOutput) Line 159 C++ UnrealEditor-Mover.dll!TTickUtil<FMoverActorModelDef>::DoTick<UMoverNetworkPredictionLiaisonComponent>(TInstanceData<FMoverActorModelDef> & Instance, TInstanceFrameState<FMoverActorModelDef>::FFrame & InputFrameData, TInstanceFrameState<FMoverActorModelDef>::FFrame & OutputFrameData, const FNetSimTimeStep & Step, const int CueTimeMS, ESimulationTickContext TickContext) Line 42 C++ UnrealEditor-Mover.dll!TLocalTickServiceBase<FMoverActorModelDef>::Tick_Internal<0>(const FNetSimTimeStep & Step, const FServiceTimeStep & ServiceStep) Line 123 C++ UnrealEditor-NetworkPrediction.dll!UNetworkPredictionWorldManager::BeginNewSimulationFrame_Internal(float DeltaTimeSeconds) Line 400 C++ UnrealEditor-NetworkPrediction.dll!UNetworkPredictionWorldManager::BeginNewSimulationFrame(UWorld * InWorld, ELevelTick InLevelTick, float DeltaTimeSeconds) Line 287 C++
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-363516 in the post.
| 0 |
| Component | UE - Gameplay - Player Movement - Mover |
|---|---|
| Affects Versions | 5.7 |
| Created | Feb 3, 2026 |
|---|---|
| Updated | Feb 3, 2026 |