Hey everyone, I just thought I’d announce the first (source only) release of my open source save game / streaming persistence plugin for UE4, called “SPUD”. Here’s an intro video:
Source / documentation: GitHub - sinbad/SPUD: Steve's Persistent Unreal Data library
UE4 Version: 4.26.1 (does work with 4.25 too but needs manual help around seamless travel)
Features:
- Mark actors as persistent with a simple marker interface
- Automatically handles deleted actors
- Automatically handles runtime spawned actors
- Save / load game with automatic screenshots (if desired) and summary data
- List save game metadata without loading the whole save file (including screenshots, for load game screens)
- Persistence of streaming levels as they are unloaded / reloaded, and maps as you travel (active game data cache)
- Easy to use
- Fast
- Fairly compact saves (all data is binary packed)
- Upgrading save games for system or user data changes is catered for
- Full multi-map, streaming level example project showing how to use it
Saves are self-contained, but optimised for multi-level / streaming - on load game, only global data is loaded, level data is split out into an active game cache, each part is loaded on demand as maps or streaming levels come in, and paged out again as those levels are unloaded.
I made this because I didn’t find an existing solution that worked the way I wanted. I’m lucky that more recent versions of UE have hooks that perhaps previously libraries couldn’t use, so this system is fairly automatic. Try it out if you’re looking for a save game system, or need a system for keeping object state persistent as streaming levels are loaded and unloaded in larger maps.
It’s source-only right now so you’ll need a C++ project, but 99% of the functionality can be used from Blueprints too. I’m considering doing a pre-built Marketplace release later on so Blueprint-only folks can use it too, but the project will remain open source & free for anyone.
Hope it’s useful! I built this for our game and thought it might help others too.