Runtime Control
This guide covers how to stop graphs, check whether an actor is busy, and what happens when you try to start the same graph again.
For launch basics, see Basic Usage. For persistence details, see State Persistence.
Stop a running graph
Most stop functions live on Scene Director Subsystem.
All of them accept an optional Clear Persisted State flag (advanced). When enabled, stopped runs also delete their in-memory persistence snapshot for that graph.
Stop everything
StopAllSceneDirectors(Clear Persisted State)— stops all active runs in this world. Call on Scene Director Subsystem (use Get Scene Director Subsystem when you only have a world context).
Stop by actor
Use these when the graph runs in Single Runtime Participant mode and you know which actor should stop.
StopSceneDirectorsForActor(Actor, Clear Persisted State)— stops every active run bound to that actor.StopSceneDirectorsForActorByClass(Actor, Graph Class, Clear Persisted State)— same, but only for one graph class.
Typical use: the player leaves an area and you want to cancel that NPC's personal behavior graph.
Stop by graph class
StopSceneDirectorsByClass(Graph Class, Clear Persisted State)— stops all active instances of one Action Graph, no matter which actors they use.
Stop from inside a graph
Stop Other Graphs— stops every other active run that shares the same single-runtime participant as this node. The current run keeps going. See Action Graph Toolkit.Abort— hard-stops the current run. See Abort.
Check whether an actor is busy
IsActorInRunningScene(Actor)returnstruewhen the actor is a bound participant in any currently running Scene Director instance, including nested child graphs.
Useful before starting a new AI state, opening a dialog, or launching another graph on the same character.
Starting the same graph again
Behavior depends on graph mode.
Normal participant-slot graphs
If the same graph class is already running, a second Run Scene Director call is ignored and returns false.
Exception: if that run is in Pause Gracefully mode, a new launch cancels the pause request and returns the existing instance instead of starting a duplicate.
Single Runtime Participant graphs
Parallel runs of the same graph class are allowed when each run uses a different actor.
Example: ten NPCs can all run the same "Idle Behavior" graph at once — one instance per actor.
Priority conflicts between root graphs
Many root Scene Director graphs can run at the same time. Priority is checked only when the new launch shares at least one participant actor with an already running root graph.
Examples:
- A shop scene on
ShopKeeperand a patrol scene onGuardAcan run in parallel — no shared actors, no conflict. - A new cutscene and an idle loop both bound to the same NPC do conflict — Scene Director compares Priority on the graph assets.
When there is a shared participant actor:
- Higher priority wins and can stop lower-priority conflicting runs.
- If priorities are equal, the result depends on Project Settings → Plugins → Scene Director → Priority Conflict Policy:
- Incoming Wins On Equal (default) — the new graph stops the active one. - Active Wins On Equal — the new launch is rejected.
If the winning graph has Clear Preempted Graph State enabled, stopped lower-priority runs also lose their persisted in-memory snapshot.
Notes:
- Priority applies to root launches through
Run Scene Director. - Child graphs started by
Run Action Graphdo not participate in this priority logic.
See also Graph settings.
Restore flag on launch
Both launch functions accept Restore From State (advanced, default true):
Run Scene Director(..., Restore From State)Run Scene Director With Single Actor(..., Restore From State)
When true and persistence is enabled on the graph, Scene Director tries to resume from the in-memory snapshot before starting fresh.
Set false when you intentionally want a clean run even though old state still exists.