How to load and save placed blueprint properties?

I want to be clear that I understand the basics of loading and saving. It’s fairly straightforward to load save a known variable to track a game score or some such. The case I am running into is with designer placed blueprints. I suspect that I’m just not approaching this problem correctly from the high level.

My example is a Blueprint light that has an on off state which can be set by the player. I would like to be able to have a system that can go through all the blueprinted objects and save their on off state during gameplay and then reload them on load.

I have tried a couple of approaches but it seems like the main issue is that I have no way to identify the original blueprint when I recover the data and want to reassign it. I’m uncomfortable asking the designer to specify a unique name for each light since user error can create bugs and it would make development slower. Simply iterating lists of all the light blueprints is unsafe because a designer may have added / removed lights during development.

All the demos out there for load save assume that all versions of the recovered objects are identical / interchangeable and respawn/position them which is not my use case. Recreating all the blueprints is not an option because they have static lighting information associated with them.

Any advice on how I should approach this problem?

OK I managed to solve this on my own by creating a BP that creates and manages unique IDs for the placed lights. Once I solved the problem of maintaining unique IDs I just iterate through the light BPs and save / restore custom structs full of their variables.

Things will get out of sync when it comes to adding and removing objects but the system cleans itself up on map load / save so it works pretty well.

Ok enough talking to myself. :slight_smile: