Actor doesn't start moving after upgrading to UE4.12


I upgraded to the **4.12 **engine version (compiled, github repo source code).

In 4.10, my Actor starts moving forward.

In 4.12, after the upgrade, my Actor is motionless in the air.

I checked for the MovementComponent and all other properties (like Class Defaults) and all seems to be exactly the same.

The code also is the same, since I just did an upgrade without touching anything.

What have you done to debug?

Have you recompiled the project?
Do standard physics work(falling boxes and such)
Does this only happen in this project?
Have you set breakpoints in the tick function or other such to ensure that actor is getting updates?
Do BP’s still work?


Edit: What happens if you just run this as the server without clients

I have checked every Class Default property, every option in the MovementComponent and all the rest.

I compared those property values between 4.10 and 4.12… apparently they’re exactly the same.

The actor (which is a grenade), though, works perfectly. It explodes after a certain ammount of time, as it is supposed to.
The only thing it doesn’t want to do, is move!

For the rest, everything works.

Even my Rockets work and move properly!* (Grenade and Rocket are two child-classes of one base class)*

That is definetly strange.
Some suggestions:

  • What happens if you apply a impulse (like on begin play) ?
  • Did the “simulate physics” tick box somehow get unticked?
  • Are you direcly setting actor location somewhere?
  • Is onty the physics/gravity not working (Collisions still work?) ?
  • Resetting the movement components settings to default.

I can’t think of anything else that could be the problem right now.


I always see problems like this when I’m overriding a method and forget to call Super. It’s possible they moved code into base class methods between engine versions and if your not calling those methods stuff like this happens.

Probably a long shot but just a thought on what to check.


No, I mean…


That solved this f***ing issue.


I must have forgotten that while coding my algorithms.

But guys, if adding that line is so important… why do they even let the programmer to choose whether to write it or not?

In my case it should’ve been **compulsory **since it screwed everything up!

Glad you got it working :slight_smile:

I think its one of those with great power comes great responsibility things when using c++ in unreal. They give you full access to the api, but the downside is if you dont follow best practices it very may well come back to bite you when they change the code in the class hierarchy. I’m not sure if there is a design pattern they could follow to solve issues like this throughout the api.

I too am glad that you have it working.
Note to self: Make sure that I call Super.