Skip to content

Step 04: Functions

BavGames edited this page Jul 23, 2026 · 4 revisions

Every Blueprint node. All of them live in the "Ultimate Save System" category and work from any Blueprint - no casting, no subsystem boilerplate.

Save & Load

Node What it does
Save Game (SlotName) Save the world into a slot, synchronously. Returns a result struct.
Load Game (SlotName) Load a slot into the world, synchronously. Returns a result struct.
Save Game (Async) Latent node with Completed / Failed exec pins - captures on the game thread, writes on a background thread.
Load Game (Async) Latent node with Completed / Failed exec pins - reads on a background thread, restores on the game thread.
Save To Slot Streaming / Load From Slot Streaming On the Save Subsystem (Get Save Subsystem first). Time-sliced for very large worlds. See Step 07.
Mount Slot For Level Streaming / Unmount Level Streaming On the Save Subsystem. Newly shown sub-levels lazily restore from the mounted slot.

The result struct contains Success, Error text and Recovered From Backup.

Slot management

Node What it does
Does Save Exist True if the slot file exists.
Delete Save Delete a slot (and its sidecar files).
Get All Save Slots List every slot name - build your save/load menu from this.
Get Save Slot Meta Timestamp, level name, playtime and custom key/value metadata for one slot.
Duplicate Save Copy a slot to a new name.
Rename Save Rename a slot.

Thumbnails

Save-slot screenshots for your load menu. Capture just before saving; the thumbnail is embedded in the slot's .sav.

Node What it does
Capture Save Thumbnail (Max Width) Grab the current viewport as the thumbnail for the next save. Call it right before Save Game. Max Width downsizes it (0 = full res).
Set Save Thumbnail From Render Target (RT, Max Width) Use a Render Target instead (custom framing).
Get Save Thumbnail (Slot) Read a slot's saved thumbnail as a Texture2D for your load menu. Null if none.
Clear Pending Thumbnail / Has Pending Thumbnail Drop / query the queued thumbnail (Save Subsystem).

Typical flow: Capture Save Thumbnail -> Save Game; in the load menu, Get Save Thumbnail -> set it on an Image. The captured shot rides along on every following save until you capture a new one (or call Clear Pending Thumbnail).

Busy state & blockers

Node What it does
Is Save Or Load Busy True while a save/load is in flight - disable your UI buttons with this.
Push Save Blocker (Reason) Refuse all saves until popped (cutscene, boss fight).
Pop Save Blocker (Reason) Remove a blocker. Reasons stack - push/pop must match.
Is Save Blocked True while any blocker is active.

Autosave & checkpoints

Node What it does
Autosave Now (bSynchronous) Trigger an autosave immediately. Set Synchronous = true when calling from End Play / quit.
Restore Last Autosave Load the newest autosave. False if none exists.
Get Latest Autosave Slot Name of the newest autosave slot.
Start Autosave / Stop Autosave Override the project setting at runtime.
Checkpoint Save into the next checkpoint ring slot; returns the slot name.
Restore Last Checkpoint Load the newest checkpoint.

Cross-level objects

Node What it does
Register Persistent Object (Key, Object) Save this object's SaveGame vars in EVERY slot (profile, settings).
Register Custom Object (Key, Object) Save this object's SaveGame vars inside the CURRENT slot (quest log, world flags).
Unregister Persistent/Custom Object Stop saving it.

Multiplayer

Node What it does
Has Save Authority True on the server (or standalone). Gate your save UI with this.
Restore Player Pawn Restore Into Current Pawn policy: one call that both restores the player's saved data AND teleports the pawn to its saved position. No camera. Returns true if a record was found. Call when the pawn is ready (pawn Begin Play).
Get Saved Player Transform Restore Into Current Pawn policy: returns ONLY the saved position for the current level (out Transform + bool) - it applies nothing, you teleport it yourself (Set Actor Location / Set Actor Transform). The pawn's SaveGame data is already restored by the load, so this pairs with a manual teleport.
Find Player Pawn Persistent World Pawn policy: find the world body that belongs to a player.
Possess Saved Player Pawn Persistent World Pawn policy: find the body and possess it, removing the fresh GameMode pawn.
Save Player Record On the Save Subsystem: snapshot ONE player's state right now, without a world save. Runs automatically at every logout - call it yourself only for extra moments (big trade, level-up).

Both position nodes are synchronous - there is no async version and none is needed. They return instantly: if the async Load Game has not finished yet, they read the player's saved position straight from the (tiny) save file, so they work from the pawn's Begin Play with no Delay and no On Load Completed binding. Restore Player Pawn is the all-in-one shortcut; Get Saved Player Transform is the read-only option when you want to drive the teleport. In multiplayer, call either on the server - movement replication carries the pawn to clients.

Events (Save Subsystem delegates)

Bind these on the Save Subsystem (get it with Get Save Subsystem):

  • On Save Started / On Save Completed / On Save Failed
  • On Load Started / On Load Completed / On Load Failed

Use On Load Failed to show an error popup - errors never disappear silently, but an unconnected Failed pin cannot warn your player.

Next: Step 05: Project Settings

Clone this wiki locally