This has been an ongoing issue that can make large scale blueprint projects simply… unshippable. There are some crazy workarounds and every engine update the issue seems to be resolved a little bit more but still ever present. Its happening across all projects with multiple independent people encountering it, see Elephantiasis’ post for references.
The Situation:
Say you have a BP class called Person.
You then have a child class of Person called Walter White.
You then have a child class of Walter White called Heisenberg.
Say Person has two variables, one called “Chemistry Skill” and one called “Drug Selling Skill”.
By default, Person has both of these set to 5.
By default, Walter White has “Chemistry Skill” set to 100 but “Drug Selling Skill” set to 10.
By default, Heisenberg has “Chemistry Skill” at its parent default of 100 but “Drug Selling Skill” set to 100.
**The Issue:
**Infrequently, but not rare, when you load your project in the UE4 Editor (or sometimes even the cooker) you will find that without any changes you’ll see both Walter White’s and Heisenberg’s “Chemistry Skill” and “Drug Selling Skill” become set to 5, the defaults of the class’s most base class short from C++.
Severity:
This can cause an entire project’s skill tree system, weapons, characters, level actors, AI, and any other system that depends on the use of child classes to suddenly be ‘reset’. Child classes are a huge part of development within UE4 and the last thing you want is for them to be unreliable. The worst part about this is because it happens what appears to be randomly, you can never anticipate this or mitigate it effectively.
**Current Fix:
**While it is unknown as to how to prevent this from happening, you can mitigate the damage if you are using Perforce. Close the editor, check out the affected blueprints out then immediately revert them, and reload the project. (notice the checkout here, no changes were made to this file yet it loads with its values reset. Some how by doing this (possibly changing the asset’s timestamp and thus its load order?) it will mitigate the bug until the next time it happens.
If you have a large project and you aren’t using Source Control and this bug hits you, may @Tim_Sweeney have mercy on your soul.