Limen Framework 0.1 Help

ULimenGameSaveSubsystem

Overview

The ULimenGameSaveSubsystem is a subsystem within Unreal Engine that manages game saving and loading. It serializes data from ULimenSavesHandler instances into ULimenGameSaveData, handles the lifecycle of these data objects, and provides asynchronous save and load operations. The subsystem also exposes delegates for tracking the state of save and load operations.

Properties

Type

Name

Access

Description

FGameSaveDelegate

OnGameDataLoaded

Public

Delegate called when game data is loaded.

FGameSaveState

OnGameSaveStateChanged

BlueprintAssignable

Delegate for tracking the state of save and load operations.

Functions

Return Type

Signature

Description

void

Initialize(FSubsystemCollectionBase& Collection)

Initializes the subsystem, setting up dependencies and event listeners.

void

Deinitialize()

Cleans up resources and removes event listeners when the subsystem is being destroyed.

void

SaveCurrentGame(UObject* Caller)

Saves the current game data asynchronously using the caller's world context.

void

LoadCurrentGame(UObject* Caller)

Loads the current game data asynchronously using the caller's world context.

void

ScheduleGameLoadOnMapChange()

Schedules a game load when the map changes.

bool

HasLoadedGameData() const

Checks if game data has been loaded into the current world.

bool

DoesSavedDataExist() const

Checks if a save file exists for the current game slot.

void

DeleteGameSave()

Deletes the saved game data for the current game slot.

bool

ShouldSaveData() const override

Determines whether to save game data. Always returns true.

bool

ShouldLoadData() const override

Determines whether to load game data. Always returns true.

void

PreDataSaved() override

Called before data is saved. Currently does nothing.

void

PostDataSaved() override

Called after data is saved. Currently does nothing.

void

PreDataLoaded() override

Called before data is loaded. Currently does nothing.

void

PostDataLoaded() override

Called after data is loaded. Currently does nothing.

FName

GetUniqueDeterministicId() const override

Returns a unique, deterministic ID for the subsystem class.

const [ULimenGameSaveData](LimenGameSaveData.md)*

GetCurrentGameSaveData() const

Retrieves the current game save data object.

bool

IsGameLoadScheduled() const

Checks if a game load is scheduled on map change.

Usage & Implementation Notes

  • Threading Constraints: The subsystem operates within the Unreal Engine's threading model, utilizing async operations for saving and loading.

  • Replication Requirements: Not applicable as this is a local-only subsystem.

  • Memory Lifetime Management: Properly manages memory by destroying temporary objects after serialization and deserialization.

  • Initialization Dependencies: Depends on ULimenSaveSubsystem to handle actual data storage.

22 May 2026