Handling Save Object changes and previous save files

Hey,

Has anyone implemented any kind of save patching system within a blueprint-only game?

I have an interesting scenario where I released a demo for a game which had particular variables and their types defined in the SaveObject I’m using.

Since the demo released I’ve changed some of these variables to use different structs/types - and I’d like to be able to migrate a previous save file to be compatible with the new SaveObject.

Ideally I’d like to be able to run a patch logic on a save slot when someone loads it. I’m now storing a version variable on the SaveObject to indicate which version of the game build is, but that’s as far as I’ve got as I couldn’t see any blueprint nodes that could help me out here…

Anyone have any ideas?

You could try to cast the loaded save object to a “LegacySave” object (which will have to be exactly the same as the old save). You could then read the values from that save, and pass it to the new one.

2 Likes

Ah yes, this might put be down the right path. I’ll need to backtrack and re-create my old save format. I have noticed that the engine seems really struggle and slow down when it encounters the difference in structs/types.

Just leaving a reply here - that I followed what you said and have it working now. It took me a while to bring the object back to it’s original state, but thankfully source control helped out there a bit :slight_smile: I’ve now got another save object for the latest format, and am trying to come up with a robust framework for managing the new objects and being able to increment again in the future.

1 Like