[PLUGIN] Savior

@Get_Gooder I had to lurk around Megascans plugins as well.

The whole thing have been fixed, target version is 3.3.8.
I sent update files to Epic, in a day or two they release it for Unreal 4.25 and 4.26.

I can’t detail here everything done, too many changes I had to do to the very recent TAG_ANOGUID() check added in newer versions.

Wow, thanks for looking into that so quickly!

Epic released 3.3.8 update to the Marketplace.

Is there still an example project? I saw that demo project on YouTube but no link to where I could download. Would be helpful just to look through the Blueprints by myself and see some use-case examples set up by the author.

There’s link on plugin description page, these:


Some people find building the slot widgets UI harder than using the save system itself :slight_smile:

1 Like

Answer to a few marketplace questions (bugged reply form there):


I use the “Open Level” to start a new game, the new level is not opening…

You have to double click your slot on Asset Browser and configure the slot class to actually use a splash screen, example here.

To use the Open Level node correctly, your HUD must be a child of Savior UI class to invoke the splash, example nodes here.

In your target Level Blueprint, you should implement a Load Screen removal logic, example nodes here.

When I save my game and then load that save file, I found out the transforms of an attached spring arm on my character are lost defaulting to a transform of 0 of every vector…

There’s no support for spring arms, you have to set the rotation after load and/or add the component tag "!Load " to it.

Does SAVIOR expect me to work from within a persistent level or not?

If you use “Save Game World” node then all sub-levels are scanned.

If you use “Load Level” node, only the target sub Level is loaded from disk, regardless of which node you used to save the data.

Hi thanks for your reply!
I’ll take a look at the tag system soon, hopefully that works :). I had setup the HUD and saveslot config correctly it seems but it just doesn’t work, no load screen and no change in level.
This is my setup:


You don’t have to create a slot Instance to attach to that Open Level node.

I also have no way to know if that node ever gets to be executed in that screenshot.

Use debug targets when executing blueprints in editor.

That’s it! I removed the instantiated slot from the input and now the loading screen shows. I got so used to the requirement of instantiation when referencing something that I didn’t realise it was unnessecary here :’) thanks

1 Like

If I remember correctly, slot instance will not copy loading screen options to static settings.

I shaw fix that, will see later.

@Roy_Wierer.Seda145 I just removed a little check from that Open Level node.

Isn’t really a bug, it’s just overzealous code.
Instance says got a splash screen, but node goes like: “-I don’t believe you.

Later I send a patch to Epic to correct that.

@BrUnO_XaVIeR So I’m a bit confused by something. I have a blank save slot, when I save to it, I notice when debugging that the slot’s complex data has way more records than what was shown to have been serialized via the debug logs. What’s strange is when I manually delete the .sav files and attempt to resave, it still has all those extra records. I feel like I may have a fundamental misunderstanding of how this is supposed to work. I expect that when I delete the save files, you are effectively deleting all the records for that slot, but that doesn’t appear to be the case.

Slots are in-memory stores.

Data is first written to memory before being saved to disk. If you want always clean data you should discard whatever you have assigned to a slot variable and make new storage using “New Slot Instance” node that points to a slot asset as base.

If you keep an instance around you will keep saving levels to it and data from all levels you saved from will be stored there.

Ohhh okay. So I may have gotten myself into a weird situation then. I wasn’t ever really using the “New Slot Instance” and I was just always saving directly to the slots. So if I understand correctly, I may have been saving to the CDO of these slots because now when I try create a “New Slot Instance”, it still already has a bunch of complex records in it.

So “New Slot Instance” performs a “Shadow Copy” so it will always copy the SlotData over. I’m quite stumped on how to just create a fresh slot with no data. Do I need to delete the Savior3 assets and recreate them to clear the SlotData stored on the CDO? Also, in order to keep the slot’s CDO clean I should only ever save to the runtime instances created via “New Slot Instance”?

Yea man I’m so confused. I’ve got a “New Slot Instance” node before every Save and Load node in our game as to ensure I never read or write data directly to the slot’s CDO, but it still is somehow appending data from the previous saves.

You’re using c++?

A little bit of both

I have included a Reset() function to latest release.

Nice, I was going to recommend adding something like that! So I’m dumb…I have a bunch of actors that I forgot inherited from this ProceduralActor C++ class I created that are placed in the level manually. So every time I load from a save, those actors SGUIDs aren’t the same so it attempts to respawn them all. So then when I save over that slot, I have double the actors I expect.