Pawn on moving platform did not update visually

So I have a player character and an airship pawn that I can possess to fly in the world. The weird thing is that when I possess the airship pawn, and move around, the player character standing on the ship does not move with it. But when I possess back to the character, my character snaps back to its location on the ship.

Anyone have any idea why this is happening?

Hey @Woozard!

There’s not really enough data to tell you one way or another, there’s a lot of moving parts to making sure a pawn stays attached to a moving actor. Can you show us how you are doing this? Are you attaching actor to actor? Component to Actor? What?

Let us know!

Sorry for the late reply, I didn’t have the project with me during the weekends, and I don’t remembered much of the details about the player BP, and ship BP

But here are some more information:

When controller possess the ship, player is not attached to the ship. I thought the physics system will update all colliding objects, but guess I was wrong.

The Player is using the character movement component, I didn’t do anything special with it except for setting which component it updates.

The Ship is using the floating pawn movement component, and I also didn’t customize anything except for which component to update

But Player and Ship movement is down through AddMovementInput() function instead of SetActorLocation().

Player jumping is done by calling the Jump() function in ACharacter.

These are all the information I can think of at the moment, let me know if there’s any other information that could help!

Yup, this is the one. You want to use “Attach Actor(Target Actor)” and “Detach Actor(Target Actor)” in C++, or “Attach Actor To Actor” and “Detach Actor” in blueprints. You’d just make sure to attach BEFORE the player can move the ship, and detach AFTER the player can move the ship.

Alright, I’ll try this tomorrow, and get back to you!

1 Like

Hey @DevPilot — this is a classic pawn possession quirk, especially when dealing with physics and relative transform inheritance. Let’s break it down. :rocket:

What’s likely happening here is that your player character isn’t actually “attached” to the airship, even though it visually appears to be standing on it.


:white_check_mark: Why the Character Doesn’t Move with the Ship:

When you possess the airship:

  • The player character is no longer possessed (and likely running CharacterMovementComponent in idle state).
  • If the character isn’t attached to the ship or manually moved relative to it, it stays world-positioned.
  • Unreal won’t auto-parent your unpossessed character to the new pawn unless you tell it to.

When you switch back to the character, possession snaps the camera and controls back — but it never updated the transform while on the ship.


:hammer_and_wrench: What to Try:

  1. Attach the Character to the Airship

blueprint

CopyEdit

Character->AttachToActor(Airship, FAttachmentTransformRules::KeepWorldTransform);

Do this before switching possession. That way, even when unpossessed, the character “rides” the airship via transform inheritance.

  1. Disable Character Movement During Possession
    While the airship is possessed, disable the character’s movement component to prevent weird drift or physics ticks.
  2. Use a Scene Component “Seat Anchor”
    Attach the character to a fixed scene component (like a “SeatSocket” or “DeckAnchor”) on the airship. This helps maintain consistency in transform logic.

:brain: Bonus Workflow Tip

When working on stuff like this — multiple pawns, interactions, transform edge cases — I’ve found it super helpful to track little tasks and reminders directly per asset or blueprint.

For example:

  • “Fix snapping when detaching from ship”
  • “Add animation sync for landing”
  • “Handle collision when transitioning”

I used to jot these down in Notion or Trello, but now I just leave checklist items right in the editor, attached to the asset or blueprint — which saves a ton of time.

If you’re building something interaction-heavy, that kind of asset-level tracking is a huge help.
(If you’re curious what I use, here’s a tool that made a big difference: Asset Optics on Fab).

Hope that helps — let me know how the ship rig turns out! Would love to see it flying. :airplane::sun_behind_large_cloud:

It works! My pawn is following the ship now!

1 Like

This is really helpful! I had an issue where when I detach from the ship my player position is all over the player. Disable the movement component before possess fixed it for me.