Child blueprint class can loose modified properties on it's instance placed in level due to error caused by change in parent blueprint

Modified properties of child blueprint class instance placed in level can be lost due to error caused by change in parent blueprint.

For example having BP_Test blueprint:

[Image Removed]with child blueprint BP_Test_Child placedin level with set up smart object definition on it’s smart object component:

[Image Removed]

BP_Test blueprint having function Test with boolean input

[Image Removed] and BP_Test_Child implementing it’s parent function Test.

[Image Removed]Then when deleting boolean input in function Test in BP_Test and fixing error in BP_Test_Child caused by this change BP_Test_Child looses smart object definition on it’s smart object component that I set up previously and I have to do it again which is very annoying. Especially in cases when there is more modified properties than just smart object definition.

[Attachment Removed]

Steps to Reproduce

1/ Create blueprint BP_Test of Actor class.

2/ Create function Test in BP_Test.

3/ Add an boolean input in Test function.

4/ Add smart object component to BP_Test.

5/ Create BP_Test_Child as child blueprint class of BP_Test.

6/ Create SO_Test smart object definition.

7/ Place BP_Test_Child in your level and assign SO_Test as smart object definition on it’s smart object component.

8/ Implement Test function in BP_Test_Child. For example like this:

[Image Removed]

and save and compile it.

9/ In BP_Test function Test delete boolean input in Test function and save and compile it.

10/ Fix error caused by previous step in BP_Test_Child:

[Image Removed]

by disconnecting connected variable to now invalid input:

[Image Removed]

and save and compile.

11/ Check whether BP_Test_Child that you placed in level kept SO_Test as smart object definition on it’s smart object component.

Please note that modified properties are lost also in other components. It is not a case just for smart object component. I used smart object component just as an example for the sake of repro steps.

[Attachment Removed]

Hi!

Thank you for the detailed repro steps.

I’ve repro-ed this in Main and we’re tracking a bug for it as UE-368907 (will take a few days to get published on the issue tracker).

These data loss issues tend to get fairly intricate, so it might take a bit until someone from the Blueprint team has time to investigate the details.

Kind Regards,

Sebastian

[Attachment Removed]