← Back to Projects
Unreal Engine

SaveVault Core

Free Unreal Engine plugin (UE 4.26–5.7) replacing the built-in save system with typed serialization, CRC32 integrity checking, and multi-slot management.

C++Unreal EngineBlueprintsGame Development

Overview

SaveVault Core is a free, MIT-licensed Unreal Engine plugin that replaces the engine’s default save system with a more robust foundation. It introduces typed save game objects via USVSaveGame subclassing, a 32-byte binary file header with a SVLT magic number and CRC32 payload checksum, and a UGameInstanceSubsystem-based API accessible from both C++ and Blueprints. Built for UE 4.26 through 5.7, it requires zero configuration to get started while remaining fully production-ready.

Key Features

  • Multi-slot profile management — create and manage any number of named save slots without special configuration
  • CRC32 integrity checking — every save file carries a checksum; corrupt or truncated files are detected and rejected before deserialization
  • Header-only metadata readsGetSlotInfo and ListAllSlots read only the 32-byte header, keeping slot enumeration fast regardless of payload size
  • Typed polymorphic serialization — full UObject subclass identity is preserved across save/load cycles via FObjectAndNameAsStringProxyArchive
  • Version tracking — a SaveVersion field stamped on every write gives the foundation for detecting stale saves at load time
  • Blueprint-first API — all operations exposed as BlueprintCallable nodes, with a USVBlueprintLibrary for compact one-node access and UI-ready helpers

Technical Decisions

The plugin is implemented as two modules — a Runtime core and a Developer test module excluded from Shipping builds. Using a UGameInstanceSubsystem keeps the subsystem lifetime tied to the game instance and eliminates manual registration. The 32-byte header is written with a documented fixed byte layout so any tool or future HeaderVersion bump can parse or migrate files without loading the full UObject payload. UE4/UE5 API differences are isolated behind SV_ENGINE_VERSION integer guards in SVVersionMacros.h, keeping the main code paths clean across the full supported range.