# Character movement doubled if attached to moving actor(pawn)?

**URL:** <https://forums.unrealengine.com/t/character-movement-doubled-if-attached-to-moving-actor-pawn/300481>\
**Category:** Character & Animation\
**Tags:** attach-to-actor, unreal-engine, question, Blueprint, CPP\
**Created:** [December 3, 2014, 5:43pm UTC](https://forums.unrealengine.com/t/character-movement-doubled-if-attached-to-moving-actor-pawn/300481 "2014-12-03T17:43:17Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![n0iz\_1](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@n0iz\_1](https://forums.unrealengine.com/u/n0iz_1)\
**Post date:** [December 3, 2014, 5:43pm UTC](https://forums.unrealengine.com/t/character-movement-doubled-if-attached-to-moving-actor-pawn/300481/1 "2014-12-03T17:43:17Z")

</div>

Hi,  
if a character is standing on top of an moving actor, the character gets moved as the actor is moved, wich is absolutely ok. But if i attach the character to this moving actor, the character movement gets doubled. How can i solve this, so that the attached character can freely walk on the moving actor without getting altered by the movement of the actor.

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_f359e874](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_f359e874](https://forums.unrealengine.com/u/anonymous_user_f359e874)\
**Post date:** [February 12, 2015, 3:54am UTC](https://forums.unrealengine.com/t/character-movement-doubled-if-attached-to-moving-actor-pawn/300481/2 "2015-02-12T03:54:05Z")

</div>

Looking for a solution to a similar problem. I have a blocking volume that moves when the player moves on top of it. When the player moves, it creates a horrible feedback loop, eventually moving the player absurdly fast

---

<div class="post-metadata">

**Author:** ![0x7bf](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@0x7bf](https://forums.unrealengine.com/u/0x7bf)\
**Post date:** [February 18, 2015, 11:48pm UTC](https://forums.unrealengine.com/t/character-movement-doubled-if-attached-to-moving-actor-pawn/300481/3 "2015-02-18T23:48:29Z")

</div>

Hi,

i found a kind of quick’n’dirty workaround for this problem, it’s caused by the CharacterMovementComponent.

I have created a custom CharacterMovementComponent in c++ and i have overridden the `void UpdateBasedMovement(float DeltaSecons)` function. This function applies the velocity from the Actor the Character is standing upon to himself. If the character is attached to this actor he gets twice the velocity of the moving Actor.  
Take a look at  
[https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/Engine/Private/CharacterMovementComponent.cpp](https://github.com/EpicGames/UnrealEngine/blob/release/Engine/Source/Runtime/Engine/Private/CharacterMovementComponent.cpp)

I copied the whole function and just prevented the position update while leaving the rotation stuff as is.

For implementing a CustomMovementComponent see [A new, community-hosted Unreal Engine Wiki - Announcements - Unreal Engine Forums](https://wiki.unrealengine.com/Custom_Character_Movement_Component)

I also noticed that i have to turn of ImpartBaseMovement for correct jumping results, otherwise the character will be pushed forward while jumping.

Hope this helps 😉

---

<div class="post-metadata">

**Author:** ![trushoff](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@trushoff](https://forums.unrealengine.com/u/trushoff)\
**Post date:** [February 13, 2016, 10:15pm UTC](https://forums.unrealengine.com/t/character-movement-doubled-if-attached-to-moving-actor-pawn/300481/4 "2016-02-13T22:15:39Z")

</div>

What exactly you change?

---

<div class="post-metadata">

**Author:** ![LaZeKler](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@LaZeKler](https://forums.unrealengine.com/u/LaZeKler)\
**Post date:** [June 14, 2018, 11:18am UTC](https://forums.unrealengine.com/t/character-movement-doubled-if-attached-to-moving-actor-pawn/300481/5 "2018-06-14T11:18:29Z")

</div>

It’s an old post, but I’ll complete the answer without copying all the function. You can avoid BaseMovement compensation by handling the case that your Character is attach to an actor like so :

```
void UMyCharacterMovementComponent::UpdateBasedMovement(float DeltaSeconds) {
	if (CharacterOwner->GetRootComponent() == nullptr || CharacterOwner->GetRootComponent()->GetAttachParent() == nullptr)
	{
		Super::UpdateBasedMovement(DeltaSeconds);
	}
	else
	{
		return;
	}
}
```

---

<div class="post-metadata">

**Author:** ![LaZeKler](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@LaZeKler](https://forums.unrealengine.com/u/LaZeKler)\
**Post date:** [June 22, 2018, 3:52pm UTC](https://forums.unrealengine.com/t/character-movement-doubled-if-attached-to-moving-actor-pawn/300481/6 "2018-06-22T15:52:48Z")

</div>

Another advise, I encounter an issue when a Character is attached to another actor, Movement will not replicate from the server to clients (at least not properly) even if you replicate RootComponent and parent actor.

See [Unreal Engine Issues and Bug Tracker (UE-53604)](https://issues.unrealengine.com/issue/UE-53604)

---

<div class="post-metadata">

**Author:** ![Supermatta321](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Supermatta321](https://forums.unrealengine.com/u/Supermatta321)\
**Post date:** [April 12, 2024, 8:48pm UTC](https://forums.unrealengine.com/t/character-movement-doubled-if-attached-to-moving-actor-pawn/300481/7 "2024-04-12T20:48:30Z")

</div>

Anyone have a more indepth explanation of this? Would very much appreciate some help!

---

<div class="post-metadata">

**Author:** ![Supermatta321](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Supermatta321](https://forums.unrealengine.com/u/Supermatta321)\
**Post date:** [May 15, 2024, 7:54am UTC](https://forums.unrealengine.com/t/character-movement-doubled-if-attached-to-moving-actor-pawn/300481/8 "2024-05-15T07:54:04Z")

</div>

Did you ever find a solution to this replication problem?

---

<div class="post-metadata">

**Author:** ![Axyzz](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Axyzz](https://forums.unrealengine.com/u/Axyzz)\
**Post date:** [April 20, 2025, 2:37am UTC](https://forums.unrealengine.com/t/character-movement-doubled-if-attached-to-moving-actor-pawn/300481/9 "2025-04-20T02:37:53Z")

</div>

So, did you find anything about it?

---

<div class="post-metadata">

**Author:** ![Supermatta321](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Supermatta321](https://forums.unrealengine.com/u/Supermatta321)\
**Post date:** [June 6, 2025, 8:25am UTC](https://forums.unrealengine.com/t/character-movement-doubled-if-attached-to-moving-actor-pawn/300481/10 "2025-06-06T08:25:32Z")

</div>

I worked around it by not actually attaching the character, and instead use the movement system that aligns the character with the base it is standing on.
