Certain BP class properties keep losing value

Well, I try to reproduce this and cannot. Are You sure that You are duplicate this onto the same level (when You have more than one layers)?
However I still have same problem, but cannot create clear reproduction path… (4.13)

This is the worst part, I don’t know how to reproduce the issue. I am duplicating the actor by just dragging some actor in the viewport while the ALT key is being pressed. I am not using more than one layer. When it happens, if I restart the editor, more properties lose it’s values.

My conclusion is: the issue doesn’t happen when the editor is restarted. It happens before. But we see bigger consequences when the editor is restarted.

I was using 12.5, I changed to 13.0 today. Without any hope…

Here are some details about my project that may be relevant. Some were already cited above, other are my assumptions:

  • the issue only happens with blueprints instances which parent class is also a blueprint.
  • the entire category of properties loses the values.
  • it’s not always the same category.
  • when the issue happens, all instances in the level of the same class loses the values of the properties.
  • as I said above, I don’t think the issue happens when the editor is started. It happens before, while we are doing… stuff. But, when the editor is restarted, is when we see the damage.
  • I am doing a 2D space shooter. It has hundreds of enemies. So, I don’t know if it is relevant, but my level has a lot of actor instances.

Epic team, I am a programmer and I know that issues without a proper scenario to repeat are very hard to fix, BUT I think this is a huge issue. I mean, data is being lost and sometimes we don’t even see when it happens (when we noticed, can be too late). Maybe someone should take a look and try to find the issue on the code? I would do it by myself, but my knowledge on engine’s code is not enough, I don’t even know where to start.

I made a video of the issue. Again, I don’t know how to repeat. I just noticed it was happening, so I turned on the video capture.

Video

As you can see in the video:

  • I select an actor and it have an “Orders” property filled.
  • I “ALT+click_and_drag” the actor to create a copy. The duplicated actor doesn’t have the value on the “Orders” property as it should have.
  • I select the first actor again and it still have the “Orders” property filled.
  • I save and restart the editor.
  • The editor crashes… I don’t even know if it is related or not (I think it’s not), but anyway… I restart the editor again.
  • I load the same level.
  • Now, all actors are with the “Orders” property without value.

And that’s it.

Just had this issue happen again today in a very large level after having it not happen for a couple of months. Every single puzzle element in this level now needs to be recreated. It happened after saving everything, closing the editor, putting the computer to sleep and coming back after a few hours and opening it back up.

Seriously, this is a very important issue, and I assume that it’s hard to fix, otherwise it’d be fixed by now. But really, can we at least get some sort of status update on it? It feels obvious to me and a lot of other people that this issue is affecting quite a lot of projects and is becoming a major roadblock in trying to polish pretty much anything.

It happened again here too…

This is very serious. A hotfix on 4.12 already fixed an error related to data on components, and now this…

I never seen a mesh disappear on 3dx max, or a layer disappear on Photoshop, or a function disappear on Visual … but it’s the second time I see data disappearing on Unreal Engine. I really don’t know why, but for me is clear that the storage system is not good, it appears to be messy… I mean, for me, it’s completely unreliable.

(And I insist that it doesn’t happen when the editor is closed or opened. The cause happens while you are using, but the data are still in memory, so you only see when you restart the editor. See my answer below.)

Ditto. Yesterday while I was working on my project I noticed the same issue of memory loss WHILE working inside it. I had my project open, was working on something completely unrelated to these classes, and everything was working fine in the editor. As soon as I tried opening a standalone game version, the issue was quite apparent that memory had been loss with the classes, and that could only be seen in the editor once it had been restarted. This is really ridiculous. I am not sure if putting these classes into C++ would fix the issues or not, but if it is proven to then I’m willing to go ahead and do so for the integrity of my project, but I’m hesitant considering the amount of work and unsure if it’ll even fix the issue.

's solution where you include the parent classes in the level worked for about 2 months until about 2 days ago.

Hi, .
1 - We don’t have the steps to reproduce. I tried many times to find these steps, but I couldn’t.

2 - Please se my answer below, there is a link to a video.

3 - I don’t think so. What kind of circular dependencies? Memory references? Class hierarchy? Can you give us an example?

Hi and Higuy8000,

  • Do you have any steps I can take to reproduce this error on my end in a clean, blank project with no additional content?
  • Can you describe specifically what is occurring?
  • Do you have any circular dependencies within your project that could be overwriting your content?

Hi ,

I’m not sure about exact repro steps, since it seems to occur randomly, but heres it how it usually happens for me:

  1. Open up a new or exisiting project.
  2. Create a Actor Blueprint
  3. Add some sort of variables to it - booleans, ints, etc.
  4. Create a child of this blueprint.
  5. In the child, add more variables, such as booleans, floats, ints, and references to other actors.
  6. Create a child of that blueprint, and place instances of it in the level.
  7. Using the detaisl panel, fill in the variables with whatever you want, as long as it is not the default values.
  8. Close editor, reopen
  9. Notice the values of variables that are contained in the first child (child of class created in step 2) of the instances all get reset to their default values.

Some notes: I’ve had the issue happen when the computer is shutdown and restarted, put to sleep (without editor open), while the editor is open (issue can be seen in standalone version of game, but not inside regular editor), and also just restarting the editor. It’s not consistent either, but the above repro steps is essentially how it occurs - it very much does seem like some sort of child BP / inheritance issue, as I have other blueprints that are not childs (with parent class Actor) and do not have this issue at all. Another interesting note is that the base parent, at least in my class, does not have the values reset, only variables from the first child of that class…

I do not have any circular dependencies that could be overwriting it. I’ll also say I’ve noticed this issue since at least 4.10. I’m currently on 4.12.5 but from what I can gather 4.13 does not resolve the issue either. There is also more repro steps listed by other uses near the bottom of this thread that seem pretty consistent with things I’ve seen as well.

If you’d like me to upload my entire project for any sort of analysis (through a private message or email) I’d be more than happy to send it to you.

I too am suffering from this issue, and on 4.13. The only workaround I can see is to set all the relevant variables on Begin Play in the level blueprint, but that doesn’t help with static meshes using blueprint components.

+1 very strange issue, also in 4.13.1 child blueprints values are reseting or even setting to none – > for skeletal mesh , material etc.

Same here, 4.12.5 - started happening today for a reason I do not understand yet.

Things I noticed: It happens for child blueprints of a base blueprint class. Only properties are affected that are inherited. The moment I set these values to “none” in the parent class and specify them in the child instead, they “stick” after a restart. Workaround - but not nice.

These child blueprints are in a folder. I cannot verify this 100%, but it seems to affect the first blueprint in the folder, not the second any other after that. I tested it by renaming them (switching order) and it started affecting the “new” first child blueprint.

It started happening after I cleaned the project up a bit. I have 2 skeletal meshes and pawns I use in game and a base SK mesh and pawn that I had around because it came from a sample project. I cleaned the two base versions up, including the skeleton they had and replaced the now missing references in the animation blueprint with one of the 2 skeletal meshes I actually use. Once I restarted the editor, I noticed that this behavior started

Hi EchelonV.

When you say “The moment I set these values to “none” in the parent class” and “specify them in the child”, do you mean the “Class Defaults”?

The folder part is weird. For me, the bug happens with all child blueprints, but each one is in separated folders.

It’s the default pawn of the shooter game template, that I based child pawns on. I did leave the 3rd person mesh and animation BP blank in the properties of that blueprint and only set them in the children. That fixed it for now.

I found that the data is still there when importing. But these data is being exported with wrong property names. For example, instead of “DestroyDistance=50000.000000” (where “DestroyDistance” is the name of the property), the data is being exported as “FloatProperty_1256=50000.000000”.

On UnrealType.h, there is a function called “FindField” and this line: “if( It->GetFName() == FieldName )”. “GetFName()” returns “DestroyDistance”, but “FieldName” is “FloatProperty_1256”, so it returns false and the value “50000.000000” is never setted to anything. I tried to find some variable inside the UField class to identify the field as “FloatProperty_1256”, but it appears to not exist.

Before that, when exporting, the properties are with the wrong name in the array UStruct::PropertyLink and I didn’t found any clue how to get the correct name. So, someone before the exporting is messing around with the property names.

The good news is: I can now repeat the issue anytime.

The bad news is: not in a blank project.

So, , I can give you access to my Github project and pass the steps to reproduce, if you need.

Great find, . This issue has been haunting us (we ended up writing a system to store the data outside of the classes). This should lead to a fix.

I’m experiencing this issue too. But I have to add that the child blueprint doesn’t need to be placed in a level to make this strange behaviour happen.
It also happens for child classe in the content browser.

For example I have got a custom enumeration that defines the character type (like human, vampire, etc.) in the parent class. In the child classes the variables have to be set individually to create different characters that are based on one parent class.
This variable will be reset REGULARLY for no reason. It happens completely randomly without any obvious cause. I did not rename the enum or the variable in the parent class for ages and nevertheless it happens almost daily after closing the editor, shutting down the PC and reopening the project.

It’s really hard to build a game if your work gets destroyed in regular intervals and it’s simply impossible to check every custom variable every time this happens.

I’m really desperate about this… Please prioritize fixing this bug :frowning:

Until this issue is not fixed (I am waiting for to give him access to my project), I recommend two precautions to avoid the bug:

  • Never save your map after compile a blueprint which have an instance in the map (even if this blueprint doesn’t suffer with the issue).
  • If you are in doubt if you can save the map or not, select an actor which frequently loses it’s properties and duplicate it. If the properties are all correctly duplicated, then your map is ok and can be saved; otherwise, close without save and reopen the map.

I too still have this issue occuring in 4.13.1