[SURVEY] There's A Really Really Terrible Bug Where Child Blueprints Get Their Variables Reset

4.17 is the promised fix… I have not heard from anyone using the Preview as to whether this is the case yet. Project stalled until confirmed.

Has anyone tested if 4.17 solves this issue? In the release notes they said: “Some long standing compilation bugs have also been addressed” and I wonder if this bug has been adressed, too?

I can consistently recreate this issue with 4.17 with the Orbit and Gravity plugin. As soon as I manually compile either an ActorComponent parented blueprint or an object parented blueprint, all instanced actors in the level with the actorcomponent revert back to default. I cannot recreate this with blueprints created in version 4.17, I think this may have something to do with importing from 4.16.

I’ve narrowed my issue down to ActorComponent or Object based blueprints that have variables that are referenced by actors. Importing from 4.16 to 4.17 causes instanced actors actorcomponents to lose their settings when an actor references a variable in the actorcomponent. More info on AnswerHub : Blueprint variables reset to default - Blueprint - Epic Developer Community Forums

Hmm… This “something resets randomly” becomes a true nightmare :frowning:

Just a minor bump - I’m still getting this in 4.17 and above.

I think I’ve traced the issue back to the Alt-Drag functionality in the level editor. When creating duplicates of objects that already exist in the world, the duplicates seem to be prone to this issue. Dragging each instance in directly from the content browser seems to fix the problem for those instances.

's an example in my case. I have two actors in the scene which reference each other. If I make a change to the master blueprint, the reference to the other actor remains for the original instance, but the second actor forgets it’s reference / set’s it to none. Anytime I change the Blueprint, I have to remember to set the instances back up. Note: The actors blueprints inherit from C++ classes, and the reference that’s being dropped is a UPROPERTY.

I’ll make a screen-cap video and update thread if I can.

I’m also suffering from this issue, this is driving me mad. The only workaround I’ve been able to use is exposing the defaults I want to blueprint and manually setting them in the level blueprint.
As an aside, I get this issue nearly 100% of the time when I compile with C++, is there any info on that?

Problem still exists in 4.18… scream.

Problem still exists in 4.18.2. scream.

Saying “problem still exists” doesn’t help to solve the issue. Especially that it’s about many issues, many different cases.
If something not working, you need to post stable repro - what’s exactly not working in your case?
Sample project would be awesome, the best repro.

And reporting it on AH usually is better - easier to find and reply for engine developers :slight_smile:

With respect, this is a well document bug, and many people have provided detail repeatable steps to replicate this reliably. A quick search will show this, so it does not need to be re-litigated yet again. Cheers

Just wanted to join in and say this is still happening to me on 4.17.2. I haven’t upgraded my project to 4.18 yet, but from what others have been reporting it sound like this issue still exists on 4.18 as well. I’m going to try and send my project to Epic, and also post on AH. @JoeWintergreen I don’t know if it’s possible to modify the survey at this stage but it might also be useful to ask people to list the engine version they’ve had the issue with.

Has anyone found any workarounds to this? How have you proceeded with your projects? Do you just spawn an actor and attach it to the parent now instead? Or just initialize all your child actor variables on BeginPlay? This bug is incredibly frustrating and painful to recover from when it strikes…

From my understanding, a common practice to try to dodge this one is to set up all your variables on BeginPlay.

This workaround is fine until you want to retrieve class defaults. At this point your only option is to spawn the desired class / retrieve the information you want / delete it.

It has not been much of an issue for me but it can be one depending on your type of projects.

I never set any value in the “Detail pannel”, I only use functions to set all my variables in Construction Script or in Begin Play, for two years now.

I answered the poll. I don’t have proper repro steps neither.

I have just found this thread… coming from a search I decided to do because I was trying to figure why my product was not working as nativized. To my surprise some simptoms match what could make it not work nativized… sooo my question to is: Is this issue happening when nativization is turned on for all blueprints where this is happening? Just curious… because if so I might join the source code scaveging :slight_smile:

From what I know this happen before nativization was a thing in the engine, but don’t think are related. Nativ have other problems or atleast in the past related with limited function contents. just lost the code vars in editor from what I know.

Hello guys!
I’m experiencing this too.
In my case this always occours when I need to change my code in c++ and recompile. If I just recompile without any changes on code, this doesn’t happen.

Hope this helps.

Hey [USER=“2289”][/USER] , since there are still people reporting this issue on 4.17 and 4.18, I was wondering if we could provide anything to you that would help. Would it help if I zipped up my whole project and sent that to you?

We love getting bug reports with projects, @emretanirgan. Can you message me a link and details on reproducing the data loss? If you don’t have anywhere to upload it we can work that out.

Hi,
Something I have seen several times with Blueprints inheriting from each others, is that by design Unreal doesn’t seem to store a flag to remember if a property has been overriden or not.
Which means it only relies on a diff with the parent BP to consider a property to be overriden or not (yellow arrow) and actually save the value.
The consequence is that I often see bugs similar to the ones described in this thread (inherited values being reset).

is an example :
1 - Have some BP named “base” with an integer property “health” set to 100.
2 - Have a BP named “child”, with “base” as a parent, and "health set to 50. A yellow arrow will appear to notify the value as overriden.
3 - Take the “base”, modify the “health” value to 50, then back to 100. The “child” health will be updated to 100 too.
Whenever the base BP property is equal to the overriden child property, Unreal seems to consider that it is no more overriden.

I have seen this behaviour up to 4.16, haven’t tested on more recent builds.
I hope it will help !