[PLUGIN] Savior

Ah, thanks for being so prompt! That makes much more sense. I was getting numbers before when I wasn’t using the metadata properly because I was simply stomping over what value you were naturally generating.
Just a quick follow-up then. I can co-opt other meta-data entries and probably jam the variables I’m looking for into them, but is there a better way of going about it? Could I simply access the value from the game mode inside the save data itself? If I understand correctly, simply loading the game mode will overwrite the current game-mode.

There’s nodes to save/load GameInstance class.
I would load the GameInstance class (without Loadscreens) just to read some of my custom meta properties.

Or you could just modify the meta slot class in C++ instead, to include extra default meta properties, but that requires Visual Studio and C knowledge. (and rebuild the plugin from source)

That sounds good to me, I can take it from there.
Thanks for you help and suggestions!

Nice, gonna check that out soon. thanks!

Actually if I remember correctly that checkbox to enable “compression” is removed because it’s now always On by default.

“Minimal / Complex” option on Slots still apply tho.
I was testing on a 40Mb+ save file and it reduced to 9,6Mb when switching to “Minimal” data set.

I still have the checkbox (version 2.6.2) in project settings…

Anyhow, ive got a question about saving my data.

I’m using a actor that holds a couple of RuntimeMeshComponents. (GitHub - TriAxis-Games/RuntimeMeshComponent: Unreal Engine 4 plugin component for rendering runtim). This actor creates the mesh using a array of floats.



UPROPERTY(SaveGame)
TArray<float>Heightmap;


The idea was to save the array, and load back to recreate the mesh. This worked nicely with the RamaSaveSystem to. However, it seems when i add the actor to ‘Actor scope’ it will crash the editor when the gameworld is loaded. It seems that its because of the components within the actor?

Whats the best workaround to ignore these components and recreate the actor using the saved data?

Thanks

First thing I would do is add “**!Save” and "!Load" ** component tags to the instances of RuntimeMeshComponent…
If that has no results then I would use Component Scope to save only specific component classes, leaving RuntimeMeshComponent out of the list.

I actually tried to clear component Scope (and Object Scope), but when i i add the actor to actor scope it will still crash.

In output it says:

[Edit] When i remove the SaveGame UPROPERTY from the float array it wont crash, so im quite sure that the array is causing it…
Also, when i disable compress save data in project settings, it wont crash.

Hmm… That looks like an error when decompressing data from Json parser. It fails if you enable that compression checkbox on project settings.

Are you using Unreal 4.20?

Im using 4.21.1, and Savior version 2.6.2. Its indeed a crash when i attempt to load the gameworld. It seems that im using a wrong version? (as u said compression is now default?)

Looks like I forgot to send 2.6.5 to Marketplace :rolleyes:

There shouldn’t be any of those checkboxes on project settings anymore.
Not Encrypt Property Data neither Compress Save Data

Disable them both and you should be fine.
They confuse some internal things for the FDefaultAllocators of TArrays… I am looking at my personal notes and this is why I do something different on latest version instead of using those checkboxes.

Just enable “Minimal” Compression on your Slot asset and you already get all the compression possible it can offer.
(basically those checkboxes run the thingy twice and that is bad lol)

Okay, I submitted the version that I “thought” was already on Marketplace, sorry about that lol
Basically it just removes those checkboxes that shouldn’t be used anymore.

I still get version 2.6.2 when i download from marketplace…

Epic have to process the update submission, they may take a few days.

Probably a week after New Year’s holiday or even more.

Hi, i was trying to save a DateTime struct, however it seems not being saved?

It somewhat says it is saving, but it doesn’t load anything. I only have health, hunger and thirst checked as “save game”. It shows me in the file, that the save file exists, have load on Begin play and nothing, put print strings on success and fail, no response about it. Debugging does not work anymore. Can’t tell what it is doing as I can’t see it. I’ll post screenshots for ref. if needed. Would appreciate some honest help. Thanks

Use nodes that have no “clock” on top right corner.
If you’re not sure, just use normal save/load nodes instead.

Do not simply attach nodes to Begin Play, you can’t control when Begin Play will be called. It can execute while the Actors you’re trying to load don’t even exist yet in game world.

ScreenShot

The only thing I have on Begin Play is input set to game only as Unreal is no longer making that default. Any suggestion on where to load then? Thanks

Edit: They all have the clock btw