SaveVault Pro
Paid Unreal Engine plugin extending SaveVault Core with async IO, AES-128 encryption, version migration, auto-save, cloud save, and server-authoritative multiplayer.
Overview
SaveVault Pro is the paid extension of SaveVault Core — a production-grade save system for Unreal Engine (UE 4.26–5.7). It builds directly on top of the free Core module as a drop-in upgrade, adding every feature a shipped game demands: AES-128 encryption to prevent save tampering, async IO to eliminate game-thread frame stalls, a versioned migration chain to keep player saves valid across patches, and server-authoritative multiplayer coordination. If SaveVault Core is already integrated, upgrading is a folder copy and recompile — no existing save code changes required.
Key Features
- Async IO — file operations dispatched to a thread pool worker with game-thread delegates (
OnSaveComplete,OnLoadComplete); in-flight futures drained on shutdown with no writes to freed memory - XOR + AES-128 encryption — applied post-serialization, pre-write; mode and key configured once in Project Settings with no call-site changes; wrong key produces a CRC mismatch on load
- Version migration chain —
FSVMigrationChainruns registered lambda steps in ascending order on load when the on-disk version is behind, with anOnMigrateBlueprint event for UI-side fixup - Auto-save subsystem —
USVAutoSaveSubsystemfiresSaveToSlotAsyncon a configurable interval and on every level transition, withTriggerAutoSaveNow()for checkpoint-style saves - Cloud save interface —
ISVCloudBackendpure C++ interface for Steam, EOS, or any custom backend; ships with aFNullCloudBackendno-op stub for test wiring - Server-authoritative multiplayer —
USVNetworkSaveComponentonAGameStatecoordinates saves via reliable RPCs; save data never crosses the wire, only slot names and result codes do - Save diff editor tool — Editor-only
USVSaveDiffToolcompares two slots field-by-field viaTFieldIterator<FProperty>for validating migration steps or inspecting patch-to-patch changes
Technical Decisions
Async serialization keeps UObject access on the game thread (a hard UE requirement) while offloading only the raw file write to a thread-pool worker — this is the only safe split point. Encryption is applied post-serialization so the CRC in the header covers the encrypted payload, meaning a wrong key manifests as a CRC mismatch and reuses the same corrupt-file error path with no additional error handling. The ISVCloudBackend interface is intentionally C++ only with non-dynamic delegates, since cloud SDK callbacks always fire on background threads and require explicit game-thread marshalling that Blueprint’s dynamic delegates would obscure. The multiplayer component is constrained to AGameState rather than AGameMode because AGameMode is server-only and non-replicated — attaching Server RPCs to it causes a CDO construction crash at PIE startup.