Child blueprint reset to Parent defaults

This bug is extremely serious and I’ve encountered it in ALL unreal projects that I’ve worked on within the last 1,5 years. My experience has brought me to the following theories:

  1. It’s unlikely that it’s hardware related. I’ve worked on different machines with different hardware and the issue happened on all of them.

  2. The issue seems to need some time till it occurs. It almost never happens with a fresh project and it starts to happen when you’ve invested some time in the project. WHEN it happens, you can’t get rid of it. Almost if something in the backend of the project breaks forever. From this point on you will have to deal with this bug every working session.

  3. The chance for this bug to occur seems to be related to child blueprints or inheritance in Unreal in general. Chances to encounter the bug raise with complexity of inheritance. If you have a Parent actor, a child actor and a second generation child actor that inherits from the first child actor, chances rise that you’ll be confronted with this issue sooner than later.

  4. Inheritance in Unreal is NOT rock solid. It works, yes. But it’s fragile. I don’t know if this also happens in C++ but in Blueprint the inheritance system CAN lead to unpredictable results that completely break blueprints and / or the project. As I said before: If the bug happens, you have actually no chance to solve it. I’ve worked on a project where I can cast a child actor to it’s parent class via code and all the inheritance stuff works well in code but the output log tells me that this child does not inherit from it’s parent class, even tough it actually does and all the blueprint stuff works. Inheritance in UE4 should be investigated by Epic with a priority of 10^36!

  5. There are workarounds to avoid breaking your project but it’s not really comfortable to do such workarounds. This should not be necessary in an engine like this. What you can do is to only use inheritance in a moderate amount and avoid it when it’s possible. You should also initialize your child actors via a function in the construction script and not in the level editor. This is more work but it worked for me so far.

I’m really hoping that this issue will be investigated as it’s ABSOLUTELY PROJECT BREAKING!