It’s August 2024 and this is still an issue with UE 5.4.3 (Blueprint, at least). Child Blueprints are resetting randomly/at-will whenever I reference any variable from the parent class.
Yes, totally true, happening to me as well.
This article from the official knowledge base addresses the issue: https://dev.epicgames.com/community/learning/knowledge-base/oEn6/investigating-blueprint-data-loss-issues-in-unreal-engine
It seems this behaviour occours for several reasons. The article linked above can help diagnosing the specific problem.
In my case, I have a problem with instance properties values: with a blueprint widget instanced in another blueprint, the properties values get overwritten by the default values in the class when the engine is restarted.
It turned out this happened when the blueprint class had a default value set to a record from a string table and there was the localization active.
I solved by setting the default value in the blueprint class to a string literal instead of a string table record, leaving the string table record set only in the instance properties. HTH.
I’ve spent a month trying to fix this and think I was able to reproduce the undesired behavior in UE 5.4, but this happens from recompiling a blueprint, not opening the editor (although maybe opening the editor does a compile too?)
- Make a new project with the third person kit.
- Make a child of the BP_ThirdPersonCharacter.
- Make a new actor component, add a TestVar (String) with Instance Editable enabled and make the default value “asdf”.
- Add this actor component to the BP_ThirdPersonCharacter parent (not child).
- Drop a few of the BP_ThirdPersonCharacter_Child into a level.
- Set the value of TestVar differently on each child actor instance’s component in the level.
- Now recompile the BP_ThirdPerson_Character_Child a few times and then check the TestVar on each child actor instance in the level. They have been reset to the default value of “asdf”.
What’s odd is that sometimes the values will hold to what you’ve set (for a while), other times they reset after a single recompile of the child actor blueprint.