That’s class default , archetype, then your actual instance.

The default and archetype will be empty values, they are spawned and destroyed by the Editor many times depending on what assets you open, this is not a problem.

As far as I understand I’ll create versions in the database object and then I’ll set my desired version with blueprints. After I set the version whatever I load or save will be applied to that version, right?

There is a scenerio came to my mind, not sure if it’s the correct approach.

If I wanted to remove “SaveGame2” in the main menu, I would have to first set the version to “SaveGame2” and then remove everything.

Or if I wanted to display each one of the save game name in the main menu, I’d need to load them one by one and get the information and set the widgets. Or different save file for save names, played time etc.

No, I will add a node to destroy tables.

And existing tables (versions) you can get as an array of strings.

Sounds cool, looking forward to get my hands on it and give my feedback :slight_smile:

With these nodes one can control tables from UI widgets.
There’s also a “Has Version” node to check if a table exist.
Will submit updated code to marketplace staff:

1 Like

is save all the only way to do threaded save? i assume issuing an immediate save on component is not the best way?

Try to set your Database class to execute commands as a background task:

Then subscribe to “On Finish Data Save/Load” delegates:

Be warned that working with threaded actions makes your code more complicated and bugs require more experience to track.

You often have to track the state of your thread when you enabled threaded background task on DB:


BTW… I think I can improve the speed of Immediate Saves when DB is marked as background, I will take a look where I can make it smoother this weeked.

awesome, thanks, will wait to see if something like that is needed.

is there a way to read/write to the DB without being attached by actor/component? I want to save dynamically spawned actors, then on game load, read from the table and have the gamemode spawn them in the level.

You can manually use Generate/Unpack nodes and ‘Add Command to Queue’:

SQLite nodes

But if you want a custom load mechanisms without any pointer to Actor or Property, you have to know C++ and do your custom loading from there.