Quick Start

Add the state component, pick a preset and a region, call one node, and see your first world reset in under five minutes.

Six short steps, no C++, no GUIDs to manage. Stable IDs and streaming identity are automatic.

1. Enable the plugin

Edit → Plugins, search for World State Reset Framework, tick Enabled, restart the editor. Details are in Installation.

2. Add the component

Select any Actor in your level and add WSRF State Component.

Its Details panel is ordered Quick Setup → Behavior → Advanced. Everything you need for a first reset is in Quick Setup.

Or skip steps 2 to 4 entirely: select one or more Actors, right-click, open World State Reset Framework, and choose a preset directly — WSRF adds the component if needed, assigns a Stable ID and assigns WSRF.Region.Default. The same operation works on an Actor Blueprint in the Content Browser; every placed instance receives its own Stable ID.

3. Pick a preset

Choose a Behavior Preset:

PresetUse it for
EnemyAn Actor that should return after rest, death or a region reset
Boss / EliteAn Actor that stays defeated permanently, even after resting
Breakable PropAn Actor that may be genuinely destroyed
Permanent ShortcutA change that must remain
Unique PickupA one-time consumed Actor
TrapA resettable armed state
Runtime ActorA temporary spawned Actor

The preset fills in the reset triggers, the persistence mode, the restore strategy and the runtime-spawn behaviour for that role. All of it stays editable afterwards.

4. Pick a region

Under Region, choose a Gameplay Tag — WSRF.Region.Default works immediately. Create your own child tags when your map needs them, for example WSRF.Region.Dungeon.

5. Call Reset World Region

From any Blueprint — your checkpoint, a bonfire, a debug key:

Get World Subsystem (WSRF World State Subsystem)
  -> Reset World Region
       Region                = WSRF.Region.Default
       Reason                = WSRF.Reset.Rest
       Initiator             = self
       Include Child Regions = true
  -> Break FWSRFResetReport
       Restored / Respawned / Removed / Failed

The node returns an FWSRFResetReport synchronously, so you can log or branch on the result in the same frame. Judge the outcome with Was WSRF Reset Successful on the returned report.

The call must be made on the Game Thread. A reset requested from inside another reset callback enters a FIFO queue and executes after the active operation — its immediate report is a queued placeholder, not a completed success. Use its OperationId to match the final report delivered by the world or region completion event.

Reason has to match

A record only responds to a reset whose Reason tag is in its Reset Triggers. The shipped presets already include the usual reasons — WSRF.Reset.Rest, WSRF.Reset.PlayerDeath, WSRF.Reset.Checkpoint, WSRF.Reset.Region, WSRF.Reset.EncounterRestart, WSRF.Reset.Manual. If nothing happens, this is the first thing to check.

6. Play

Press Play, change the world — kill the enemy, break the prop, open the door — then trigger your reset. Managed Actors return to the state captured one tick after their owner’s BeginPlay.

Try the demo

The plugin ships a playable map that demonstrates every behaviour at once:

/WorldStateResetFramework/Demo/Maps/L_WSRF_Demo

Enable Show Plugin Content in the Content Browser to see it. Press Play — the on-screen HUD shows the current interaction and test controls.

The demo covers selective reset, the persistence policies, Rest Site Discovery, Activation, Rest, Fast Travel, Respawn, Quick Save / Quick Load and a Custom Rest Action. The current controls are documented in the Demo Guide.

What you did not have to do

You did not create a GUID, register anything by hand, build a manifest, or write a save file. Those exist for the harder cases and are documented under Streaming and Persistence — they are not part of the first five minutes.

Last updated: 2026-09-04

Type to search titles, sections and keywords.