5.0.3
I am submitting a patch that should fix this.
Let me know if you still experience this problem after update.
You are trying to load from save a Map’s key/value of Object References where one or more values in the key or value is an invalid reference to an instance of an object (null pointer).
I would uncheck the “Save Game” checkbox from this Map property that you have then debug your gameplay code to identify why exactly you have a null ptr there that you are trying to load save data into.
I have deleted all actors that have any variables that can be possibly saved, the only thing left is the player (spawned on start if can not be loaded), and have unchecked all “save game” in it. No error in editor at all, and even when I set variables to save, no error. In packaged project, still getting this error.
After removing everything and reinstalling the plugin, it worked. Set something to be saved it broke again, seting to not save it did not changed anything. I just don’t understand this.
An other thing, save slot is not saved after reloading editor or restarting packaged game.
The only explanation I see for an assertion like that is trying to save a reference to some object asset instead of a runtime instance of that object.
Without a stack trace and log files, it’s hard to know.
Hi, @BrUnO_XaVIeR!
I want to use Savior in my project, but I’m not sure if it will work in the long run. The plan is to have a database in the backend and save/load as JSON. Will I be able to use Savior data as JSON?
There are better ways to do that, instead of using a *.sav
file system.
I submitted v4.3.0 for Unreal 5.1.
Waiting for review.
Due to heavy changes to this version of Unreal Engine, this plugin version cannot be backported to older versions of the engine.
??
When right click what?
What about saving and loading destroyed AI , so that they will stay gone between game sessions and saves and loads and levels? Will these AI characters need some kind of ID array set up so it will recognize each character with a unique ID?
If you see pawns on the Demo project, and search for “Mark Destroy” on Blueprints you can see how they self-destroy on load when save data has a record set that pawn to destroyed when it has a (case sensitive) ‘Destroyed’ boolean property exposed with the ‘Save Game’ tag.
All instances of objects on the level which its saved record has ‘Destroyed=true’ value, it is auto destroyed by the Load World node when executed.
Dear Mr BrUno_XaVIeR,
my Actor code by C++. How to add SAVIOR_Procedural implement interface?
Add the “Savior” module to your Build.cs file.
Then include the ISAVIOR_Procedural.h file.
Your class should extend the interface class:
... AMyActorClass : public AActor, public ISAVIOR_Procedural
{
}
When you mention that the savior functions can be called from any bp or from a widget on clicked event , does this mean those functions need to be called in 2 places , or can they be called strictly on just the widget on clicked button? Also like in your demo project , the " Mark Destroyed " function is not connected in the code, can this just be on its own on the character and not connected to its death code? like before it sets lifespan or destroys actor?
it’s disconnected on player pawn bp because I wanted to disable that functionality on player controlled pawn after testing.
So when i’m setting this up , i’m gonna right click the browser , go to Synaptec , then click on a slot and name it ? Right ? Then just when i call one of the nodes like , say , " Load game world" , i would assign that slot as the class on the node ? Do i only need to create 1 slot? And can use it for multiple call nodes? Then just call that node , say on a widget on clicked button? thanks
You always have to instantiate the slot class with the “New Slot Instance” node.
Meaning that i will put the slot i added on the asset browser on the nodes that are called?