Product Page | Community | Contact | FAQ |
---|---|---|---|
Savior is a C++ tool designed to extend Unreal's save system, providing a more powerful serialization framework for complex Unreal projects. Savior is a custom serialization system built from scratch with efficiency in mind, together with a focus in productivity and ease-of-use in Unreal. This documentation summarizes most common doubts of new users, most common mistakes, and the best solutions to achieve developer's goals.
Productivity |
---|
Savior eliminates micro-management of individual properties, becoming a valuable time saver for small teams. |
Marking a property with Unreal's 'Save Game' exposes property to the save system, no mirror property required. |
A rich library of helper functions brings free customization of the save process within blueprints, no coding. |
Deleting or adding new blueprint properties will not corrupt existing save files; Contrary to other save systems. |
Built-in versioning system helps patching live games, without causing players to lose existing progress. |
Performance |
---|
Savior abuses Unreal's multi-threading capabilities. Saving data is absurdly fast, only limited by target hardware. |
Blueprint properties are read directly from target, mirror property in slots not required, increasing performance. |
Actor's location, rotation, scale, velocity, mesh, materials; Are all recorded from multi-threaded algorithms. |
Utility |
---|
Savior is based on slots to persist data. |
A full HUD system ships with the plugin, making easy to implement loading screens, slot selection screens. |
Data loading progress is automatically calculated, generating feedback progress bars without developer efforts. |
- Install Plugin
- Creating Slots
- Using Save Slots
- Savior Tags System
- Auto-Destroy Mark
- Runtime Spawned Actors
- It's All About the SGUID Property
- Load Game Instance (Async)
- Load Game Instance [+Callbacks]
- Load Game Mode (Async)
- Load Game Mode [+Callbacks]
- Load Game World (Async)
- Load Game World [+Callbacks]
- Load Level (Async)
- Load Level [+Callbacks]
- Open Level (+HUD)
- Open Level (+HUD) [+Callback]
- Save Game Instance (Async)
- Save Game Instance [+Callbacks]
- Save Game Mode (Async)
- Save Game Mode [+Callbacks]
- Save Game World (Async)
- Save Game World [+Callbacks]
- Save Level (Async)
- Save Level [+Callbacks]
- Event: On Loaded
- Event: On Marked (Auto-Destroy)
- Event: On Prepare To Load
- Event: On Prepare To Save
- Event: On Saved
- Event: On Begin Load-Screen
- Event: On Finish Load-Screen
- Invoke Load Screen (Blur)
- Invoke Load Screen (Splash)
- Remove Load Screen
- Hide Slots UI
- Show Slots UI
How, why my Actor isn't saving?
Chances are you did not setup a SGUID Property properly.
Save World or Game Mode returns Failed result, why?
Check thread state with Get Thread Safety node. If you have another save process running, you have to wait until previous process is complete to start a new one.
I still can't save anything?!
Make sure you are creating an instance with New Slot Instance node. Don't try to save data directly into your Slot Class.