Add and remove a block
- In the boss’s Begin Play, or when the fight starts, call Add Save Block with Reason
BossFight. Object is Self when left unconnected. - When the fight ends, call Remove Save Block with the same Reason. Reason None removes every block of that object.
While any block is on, Save Game to Rolly Slot, Rolly Quick Save, the quick save key, part saves, memory saves and rewind points fail with Blocked and save nothing. Loads, copies and deletes go ahead.
- An actor’s blocks go at its End Play, so a boss destroyed or a level unloaded never leaves saving blocked. Another object’s blocks go when garbage collection removes it.
- Adding a block that is on already changes nothing. Several objects, or one object with several reasons, block until each is removed.
- Add Save Block without an object or a reason, or with an object being destroyed, returns false with a setup message. On a client it returns false and blocks nothing: the server saves.
Show that saving is blocked
Is Save Blocked is true while a block is on, such as to grey out a Save button; Reasons lists each block as <object>: <reason> for your logs. On a node’s Failure with Status Blocked, Get Save Status Text gives “You cannot save right now.”
From C++
Save->AddSaveBlock(this, TEXT("BossFight"));
Save->RemoveSaveBlock(this, TEXT("BossFight"));
TArray<FString> Reasons;
const bool bBlocked = Save->IsSaveBlocked(Reasons);C++