โ ๏ธ Limitations & Best Practices
While SaveKit Lite is powerful and easy to use, it's important to understand its design boundaries.
โ What is NOT supported
| Unsupported Feature | Why? |
|---|---|
| Saving UObject references | Can't be serialized as text safely |
| Arrays of components | No automatic serialization available |
| Blueprint-only dynamic spawning | Relies on actor names only โ dynamically spawned actors are not recreated |
| Level streaming | SaveKit Lite is level-instance-based only |
๐ง Best Practices
- โ Ensure each actor has a unique name in the level
- โ
Use
VariablesToSavefor any dynamic state that isn't stored in properties - โ For actors that must persist across multiple maps, assign a StableId (v1.1+)
- โ If you need to save complex data โ break it into string tokens
- โ For objects spawned at runtime โ consider recreating them manually on Load
- โ
Use consistent slot naming (e.g.,
AutoSave,Quick1,Checkpoint) - โ Don't rely on object references โ instead store IDs or lookup keys
- โ
When using
SaveGamevariables, prefer basic types (strings, numbers, bools)
๐ง Suggestions
๐งญ These advanced needs are outside the scope of SaveKit Lite:
- World-level saving across maps โ use GameInstance or a wrapper
- Custom object handling โ extend Saveable with your logic
- Large game state persistence โ look into full save systems or Pro-tier solutions
๐ก Need advanced serialization? Use custom C++ logic or integrate formats like JSON for full control.