Getting started
Review draft. This source page has not completed website editorial and release-specific verification.
Requirements and installation
Section titled “Requirements and installation”Use Unreal Engine 5.7.4 or 5.8.3. Install the core plugin under YourProject/Plugins/SaveGameDirector, enable it, and restart the editor. C++ modules that include its headers depend on SaveGameDirectorRuntime.
The Editor module adds a strictly read-only SaveGame Director Runtime Inspector and a separate SaveGame Director Runtime Controls tool. Both are under Tools > Director Suite.
Configure and opt in
Section titled “Configure and opt in”Open Project Settings > Plugins > SaveGame Director. Review authority, overwrite backup, queue capacity, autosave defaults, failure policies, and diagnostic history. Current settings default autosave on, interval 300 seconds, minimum 30 seconds, rotation count 3, async enabled.
Add Save Game Director Actor Component to each participating Actor. Choose manual/autosave participation, restore eligibility, transform/property/component capture, capture mode, restore/destruction policy. SaveGameProperties selects supported reflected fields marked with Unreal’s SaveGame flag. The component manages persistent Actor identity and runtime registration.
Blueprint workflow
Section titled “Blueprint workflow”From an Event Graph, call Get Game Instance Subsystem and choose Save Game Director Subsystem. Save Game to Slot takes Slot Name/User Index and returns Boolean plus Operation Result. Later call Load Game from Slot with the same identifier. Inspect status, severity, messages, and warnings. Use Save Game to Slot Async / Load Game from Slot Async for nonblocking gameplay operations and handle both terminal pins.
C++ save example
Section titled “C++ save example”#include "Subsystems/SaveGameDirectorSubsystem.h"#include "Types/SaveGameDirectorRequests.h"
void UMySaveService::SaveCurrentGame(){ UGameInstance* GI = GetGameInstance(); USaveGameDirectorSubsystem* Director = GI ? GI->GetSubsystem<USaveGameDirectorSubsystem>() : nullptr; if (!Director) return;
FSaveGameDirectorSaveRequest Request; Request.Slot = FSaveGameDirectorSlotIdentifier(TEXT("Checkpoint_01"), 0); FSaveGameDirectorOperationResult Result; if (!Director->SaveToSlot(Request, Result)) { UE_LOG(LogTemp, Error, TEXT("Save failed (%d): %s"), static_cast<int32>(Result.Status), *Result.DeveloperMessage.ToString()); }}SaveToSlot is synchronous and may block the calling game thread. See API, C++ API details, Blueprint API details, and Troubleshooting.