[Mover 2.0] MoverComponent works with Capsule/Box Root, but fails to move a StaticMeshComponent Root

Hello everyone,

I am currently experimenting with the new Mover plugin (Mover 2.0) and I’ve run into an issue when trying to set up a custom Pawn.

My setup works perfectly fine when I use a standard collision shape (CapsuleComponent, SphereComponent, or BoxComponent) as the RootComponent. The inputs are passed correctly through my InputProducer, the MovementModeStateMachine does its job, and the Pawn moves exactly as expected.

However, my game requires the Pawn to use a StaticMeshComponent as its RootComponent. As soon as I replace the capsule/box root with a StaticMesh, the Mover completely stops updating the transform of my Pawn. The mesh just sits there, even though the inputs are still being fired.

My questions for anyone who has dug into the Mover source code:

  1. Does the MoverComponent or its Backend hardcode a check for specific PrimitiveComponent shapes, ignoring StaticMeshes during the movement update?

  2. Is there a specific physical/collision setting required on a StaticMeshComponent for the Mover’s network prediction liaison to update its transform?

  3. Do I need to create a custom MovementMode or override how the Mover sweeps the geometry when dealing with a StaticMesh root?

Any pointers or workarounds would be hugely appreciated. Thanks!

Hey @Arwaen!

That’s a classic xD. To answer your questions directly:

Does Mover hardcode check for Capsules/Boxes?

No, Mover targets UPrimitiveComponent in general via its UpdatedComponent pointer. However, Mover relies heavily on Kinematic Sweeps (ComponentSweepMulti / MoveUpdatedComponent). Standard shapes like Capsules/Boxes work out of the box because they naturally have simple geometric collision queries enabled.

Common reasons why StaticMeshComponent fails to move:

  • Simulate Physics is Enabled: Make sure Simulate Physics is set to FALSE on your StaticMesh Root. Mover handles kinematic simulation & network prediction if Chaos physics is driving the root, it will fight/override Mover’s transforms.
  • Missing Simple Collision: Ensure your Static Mesh actually has a Simple Collision setup in the Static Mesh Editor (e.g., Box/Sphere/Capsule or Convex Hull). Complex collision (polygon-accurate collision) cannot be swept kinematically by Unreal’s movement sweeps, which will cause movement updates to fail.
  • Collision Object & Response Settings: Ensure the Static Mesh’s Collision Profile is set to a query-enabled state like QueryAndPhysics or QueryOnly. If it is set to NoCollision or PhysicsOnly, Mover’s sweep queries won’t register correctly.
  • Mobility: Double-check that your StaticMeshComponent’s mobility is set to Movable (not Static/Stationary).
  • Self Collider / Feedback Loops: Ensure you don’t have any attached child colliders or components configured to collide with the root mesh itself, otherwise it will cause an immediate sweep block/feedback loop.

If you have valid Simple Collision, Simulate Physics = false, and Mobility = Movable, Mover will move a StaticMesh root just fine without needing a custom movement mode!

Hope this gets your Pawn moving! Let me know if you’re still stuck.

Promise I won’t bite! xD