Strategies for Saving Game with Level Streaming?

Hey-oo,

Still working on Game Save Stuff. I’ve build a little project, Github link available below, and I’m wondering if this is the best way to pack and save data, and then load them up again. I thought I had a good system before, but now I have to consider Level Streaming. My project is a single Level, with multiple sublevels. It’s a indoor open-world, hotel like environment, where the player is free to roam the rooms/passageways without intermittent loading screens.

My test project consist of a few coins, a few lights, and a few physics boxes. These are scattered across a few (2) streaming levels, which are activated by streaming volumes. There are also 3 hotkeys; Save, Load, Reset. The idea ofcourse is that the coins picked up has to be gone, the lights toggled have to save their states, and the boxes has to remain where the player shoves them, when saved and loaded, and streamed.

The only way I could think of is to have each object save their data to the SaveGame object when they have been activated. I have a “self manage” system where they can set their state by looking up theirselves in the SaveGame and setting their own state when they come into existence. (Activated by BeginPlay via Level Streaming Volume). I’ve tried a checkpoint system, but it’s doesn’t seem useful as items not yet streamed, or items that have been changed and unloaded, don’t get a chance to save their values before the next checkpoint.

This is my first dive in to game dev, and I’m not sure if this is the standard way, or if there are better strategies for more efficient setup.

As an aside, any recommendations for reading up on GameDev Strategies? Do-s and Don’t-s of setting up game systems efficiently?

Thanks All!