[PLUGIN] Savior

Hey! So, I found something that seems like a bug, but I’m not entirely sure if it’s just me misunderstanding how Savior should work. My bad if that’s the case - I’m still getting the hang of it. :smiling_face:
Here’s how to make the ‘bug’ happen:

  1. Create a new blueprint class with a static mesh component as the root (I called mine BP_SpawnableCube). Do the required steps needed to save dynamic/runtime spawned actors (SGUID and implement procedural interface).

  2. Create a new Savior (Slot) in the Content Browser.

  3. Setup events for spawning BP_SpawnableCube in a random location, saving, and loading. See image below:


    I put the events in the Level Blueprint for simplicity, but I experienced the same problem when I had the code in the Game Instance.

  4. Play the game and spawn 3 cubes in runtime. I will refer to these as cube A, B, and C.

  5. Save the game. Exit the game.

  6. (This is the step that ‘causes’ the bug, if I don’t do this step everything works as expected.) Right click the Savior Slot in the Content Browser and select Save Data Explorer to visualize what is saved in the save file. Close the Save Data Explorer.

  7. Start the game again and spawn 1 cube (Cube X). Save and exit the game.

  8. Start the game and load the save. You will see 3 cubes spawning. Cube X, B, and C.

At the last step I expected to only see 1 cube spawning (the one from step 7) since that is the behavior when not opening the Save Data Explorer. My understanding is that Save Game World normally overwrites the previous save. Correct me if I’m wrong.

Deleting the save file and meta data file physically on disk and then starting from step 7 again will still result in 3 cubes loading/spawning. Restarting the Unreal editor seems to ‘reset’ (sometimes, but not always) the save slot back into “normal” behavior (same behavior as if never opening the Save Data Explorer in step 6).