CrimsonSaveSystem · Lesson 7 of 8

Build a Save/Load Menu

Beginner5 minUI

Before you start

  • Completed: Save & Load
Video coming soon

Chapters

1. List the slots

GetAllSaveSlotHeaders() returns a UCrimsonSaveGameHeader per manual slot — Display Name, Save Date Time, Play Time, and Thumbnail Data — everything a slot row needs without loading the slot.

A save/load menu built from slot headers: name, timestamp, play time, thumbnail.

2. Wire the actions

Each row drives the requests you already know — RequestNewGameSave for an empty slot, RequestLoadFromSlot for a filled one, and RequestDeleteSlot behind a confirmation.

Delete is forever
RequestDeleteSlot is irreversible — put a confirmation dialog in front of it (CrimsonUI's ShowConfirmationYesNo is made for this).

Rebuild the list whenever `OnSaveSlotListChanged` fires so the menu tracks saves made elsewhere (autosaves, save-on-exit).

The facade shortcut

Running CrimsonCore? UCrimsonSaveFacade wraps this whole lesson — StartNewGame, SaveGame, LoadGame, GetSaveSlots, DeleteSlot — one call per menu button.

The CrimsonSaveFacade: one node per menu action.