Child blueprint reset to Parent defaults

Hi TJ,

I seem to still have this issue in 4.14.2. The items are only reset when the parent blueprint is edited and the editor is reopened or packaged to play in stand alone. It doesn’t happen right away and the values that change back to the parents default seem to be random.

I have a base building BP and some default values like name and cost. Then I have child buildings that stem from the base. I change those cost and name values on the child. If I edit the parent and compile the child BP are randomly reset, not sure if its limited to Child BP that are not open in the editor at the time of compile. I just spent a couple weeks rebuilding a project in the latest version to find out the bug still exist. Very annoying.

If you want a project to test PM me and ill send you mine.

Hi Freestyledork,

That would be great. PM me a link to download the project over the Forums if you don’t mind.

PM Sent
Thanks TJ

I noticed something possibly helpful today. If I notice the child blueprints are getting reset in standalone but not in PIE. I add a custom event to the effected blueprints and compile then delete the event and compile again. After that I play in standalone that class has its custom defaults.

This only works if you notice before closing the engine. If you close the engine without doing this you will loose all the custom set values on that child BP.

I posted a repro project for this at

I will repost that here:
[link text][1]

110706-capture.png

MyActorArchetype is the base Blueprint class from the C++ MyActor class.
That works fine.

Repro Steps:

  1. MyActorArchetype_Child is a Blueprint derived from MyActorArchetype. Note that the FText MyProperty in it is blank.

  2. Set it to defaults, compile the blueprint, and save, then close the editor.

Result:

A) When you reopen the editor, that FText field is blank again within the child blueprint. Its inherited value got lost.

B) In addition to loss of values within child blueprints, instances of the parent blueprint class, which is not inherited from any other blueprint, will have uninitialized properties and must rely on GetArchetype() to find the serialized values that were set by humans in data on that archetype.

Expected:

A) For inherited child properties of an instanced UObject to persist between editor sessions when embedded inside another instanced UObject

B) For properties within instanced UObjects to serialize into every other instance when embedded inside another instanced UObject.

Additional Notes:

i) Property values will not get lost if you set the child archetype’s property to something that does not match the parent’s.

ii) A workaround solution is to not embed UObjects within UObjects but instead, have the embedded UObject be sub-objects of the outer Actor (maybe outer component, too, but did not test that)

Hi Freestyledork,

Sorry for the delay. In the PM you sent a before and after project. Starting with the ‘before reset’ project, can you give me the exact steps to reproduce the issue?

I appreciate the ‘after reset’ project but the devs will want to see the error as it happens.

I can’t seem to find an exact way to reproduce the error, I told you what I know. It shouldn’t be hard for someone more experienced then me to find out why this is happening. I will list the steps that I most likely believe to cause the error.

  1. Make a custom Child BP from actor type and add custom variables (well call this base)

  2. Make Child BP from base and change extended variable values (assume base has a name variable and we changed it here)

  3. edit the parent (base) compile

  4. play game in standalone and the child BP name variable was reset to the base value. (note PIE would still show edited value not parents default.) (note2 possible that editing the parent without the child BP open in editor or placed in game could be a reason why its not saved.)

I told you what I know, at this time I don’t have the ability to spend hours to find an exact way to reproduce the error. I was hoping that’s what someone from Epic staff could do. Hopefully this helps as it is a really annoying bug,

I getting this since a verry long time, also into 4.15 version.

  1. Create a character bp, with some variables.
  2. make a instanced bp of this class.
  3. Place this bp to the map.
  4. setup the variables you made into the parent, with other values as default.
  5. Save everything, also the map.
  6. now open the parent bp , change some code into it, or add more variables, what ever.
  7. compile the parent bp.
  8. to be sure save all / then save map
  9. close editor
  10. open editor
  11. now, you will see that the instanced and into map placed childs will be resete to default.
  12. if the bug not occure, just add more code to the parent and continue.
  13. Sooner or later you will see that you lost the values by reset to default.

It most hapen, if you changed some thing at the parent bp/class

I hope this help to reproduce this annoying bug. It really interuppt the progress of developing, if you always have to take care about some lost values and reseted child classes.

This bug is a huge pain. What I have done to work around this is at begin play I have code that manually sets all the default values. That way if the values I put in the menu are reset they are not totally lost. I really wish this bug would get fixed.

Agreed, very annoying. I tried posting steps but apparently we are the only select few who notice this issue. I can confirm its still happening in 4.15. I have added extra steps into my workflow, that I wish I didn’t have to deal with, to prevent data loss. I’ve even provided a sample project.

Tj,
Can you confirm that your testing child bp variables that are set differently from parent are being reset in the class defaults after modifying the parent bp and the child bp are not open or instanced in the level. Also note the effect is only appears after a full ue4 engine restart or standalone game, play in editor will not show the error.

Id like to also add I took some time today to try and nail down replication steps I was unsuccessful. I can confirm this still happens to me in 4.15 on my main project. I even rebuild everything from scratch in 4.14 because I thought something was corrupt. It still happens. The way I identify if it’s happened while I’m working is by doing a play in standalone before I exit to check variables haven’t been reset. If I notice they are reset my remedy is simply open all child BP and add a custom event node save, then delete the node and save again. Doing this to all the Child BP fixes the problem every time.

Seems plenty of people have the issue, its hard to re create at its simplest form. This leads me into thinking possibly autosave might have something to do with this bug. or some form of cache being over written. I am attaching my repro attempt so that you may see more clearly how I am getting this bug. I use a very similar method of getting the variables to show on screen and see if they are wrong.

Hope this helps.

link text

It happened to me again yesterday too. 14.4.3.

Hadn’t happened for a while so I thought I was in the clear - but then noticed a pile of actors in my levels reverting to default state (which is quite drastic as I use various blueprint variables to control visuals)… affected about 400 actors. :-/

To reduce repeated rework, I have chosen to give up on updating them when it occurs and only fix before a public update release… but it just seems to add a huge risk/uncertainty to the release update pipeline - so isn’t a workable solution for much longer.

(Even tried loading variable values from a data table for each actor during runtime to force the darn things into a state - but that proved a major PITA too).

Hope the problem gets sorted.

Hey guys,

I’ve still be unable to get a repro on this. I tried using your project Freestyledork, but the only variable reset I can reproduce is by renaming variables in the parent blueprint. That is a known issue in 4.15 and is fixed in our latest internal build.

It’s possible that could also fix this issue but without a reliable repro I’m not able to test for it.

If you guys get anymore info, please let me know.

Any news on this issue, I’m running the very latest version of the engine and at random times, some of my child actors reset their settings. For example. I have a door blueprint, I made a child blueprint of that called metal door. In here I tweak the meshes, sounds and effects. In the level, I change various properties of the placed actors like if the door is locked or opened and such. Theses settings keep resetting themselves and It’s a huge setback for my project. Constantly having to go through many many maps setting up the door actors again. Does anybody have a clue on how to fix this? And why it only happens to some of my actors while others work just fine?

Thanks

Same problem here… This is second time that happened to me, first about 2-3 months ago and now again (4.15.1)…
Yesterday until i closed editor was everything fine, today i opened my project and 15 out of 16 child classes were reset to defaults…

Having the same problem :/, are you guys using any kind of Sorce Control?
we are using Perforce.

I’m using perforce, but it’s happened before I started using source control and after. Let me ask you this… Are you on a desktop or laptop? Do you have auto save enabled? How long was the project open the time before you noticed the reset? Are the classes that were reset spawned into the level or already placed?

Hoping to help narrow down a set of similar criteria so unreal staff can find this bug. Because unreal staff can’t reproduce the issue my guess is it has to do with having a project open for an extended period of time.

Last day i lost again the whole setup of all my intanced ai bp.

For reproducing:
Make a parent AI, or character BP. Then add a few variables to the construction script.
The variables are editable.
Now make instances of this bp.
place some of those intanced BPs to the map, then change the values into the instances.(those you placed to map)
Now save all and save map.
Restart editor
Now open the parent of the instanced BPs, and add more editable variables to construction script. Also add some code to the parent bp event graph.
Don’t touch anything at the map and save all, save map.
Now restart pc.
open editor again and see that all instanced BP are set to the default seting of the parent BP.
This not hapen all the time!!!
So continue with add code and variables to the parent bp. save all save map, restart pc.test again.
Do this as long the error not hapen. I’m sure, you will hit the error, once you do this, again and again.
(This is not a jocke! but the error hapen randomly and the only way to see it, is to continue, to add stuff to the parent, aslong the error not occure.)

At least, if it hapen into a large world, you could destroy the PC and trash it trought the window. Really, it is a pain if it hapen.

Not sure, it have to due with the time your project was open. Last i got the issue, my project was open, longer as one day.

Can confirm that not all child and not all variables are set to defaults. There was a problem with struct variables, but since i moved to data table because of this bug, didn’t have it right now. But for now my mesh of the child is reseting to parent, and not for highest one. For example my helmet that not have any code in it reseting to “armour_parent” mesh but stay with “custom_row_name” so its taking all data from Data_table very well. Cant really find a root of this problem and not sure that its not in my code, because i mess with it in this days. My other branches like “weapon_parent” - “sword_bp” is broken too, but its not affecting parents above like “equipment_parent” that connect armour and weapon parent and “items_parent” that master for everything, its stay the same and my branch “consumable_parent” - “health_potion” is working and have custom mesh all that time.