Encounters

An encounter is a scene staged at a location. While the player is there, the host shows the scene as something they can click: talk to that NPC, read that poster, examine that item. Encounters are the seam between the world layer (where the player is) and the narrative layer (what happens when they pick something), and they let those two move independently.

What’s not here: scene concepts and visit-state mechanics (Scenes and visit state), the full field-by-field reference for the Scene entity (Scene reference), and the same for Locations (Location reference).

The two-place shape

  1. Scene picker: the staged scene. Pick from any scene in the project.
  2. Visible at this location when: a per-row expression. Evaluated alongside the scene’s own Visible when field at the moment the host asks for encounters.
  3. Trigger badge: read-only summary of the staged scene’s Trigger (character · <name>, item · <name>, self, or (none)).
  4. Jump to scene (): opens the staged scene’s inspector. Useful when the Trigger badge reads (none) and needs fixing on the scene side.
  5. Add encounter button: appends a new empty row for staging another scene at this location.

An encounter is configured in two places, and both are required. The location lists the scene under its Encounters section, and the scene itself declares a Trigger. If either side is missing, the encounter doesn’t surface in the host. The Trigger badge on each row shows the staged scene’s current Trigger, so a row reading Trigger: (none) tells you which side needs attention; the row’s jumps to the scene’s inspector to fix it.

Add an encounter

  1. Open the location’s inspector and click Add encounter at the bottom of the Encounters section. Pick the scene from the Scene picker in the new row.
  2. Open the scene’s inspector (the row’s jumps there) and set its Trigger (see the next shot). A fresh scene starts at (none), which means it won’t surface as an encounter even if it’s listed under a location. The row’s Trigger badge reflects this immediately, so you’ll see Trigger: (none) without having to drill in.
  3. Save. The encounter will now surface in the host whenever the player is at that location and both visibility fields evaluate true.
  1. Trigger kind dropdown: (none), character, item, or self.
  2. Trigger character picker: shown for the character kind (an item picker appears for item); picks the entity the host draws the indicator on.

Trigger kinds tell the host how to render the affordance: (none) (the scene won’t surface as an encounter, useful for cutscenes and programmatic-entry scenes), character (the host draws an NPC indicator on the chosen character), item (a world-item indicator on the chosen item), and self (a generic location-feature indicator). Two visibility fields gate every encounter: the per-row Visible at this location when on the location side, and the scene’s own Visible when. Both are evaluated and ANDed together at the moment the host asks for encounters; neither takes precedence.

You can also stage an encounter from the scene side. The scene inspector’s Encounter at section lists every location currently staging the scene; click Add as Encounter and pick a location to stage it without leaving the scene you just authored. The World Graph view offers a third path: drag from a location card to a scene card to add the scene as an encounter without leaving the graph. See World Graph for the connection-drawing flow.

Mark an encounter as exhausted

A common pattern: a scene plays once and then disappears from the world. Set the scene’s Resolved when expression to the condition that means “done”, and turn on Hide when resolved. The runtime hides the encounter from the host the moment Resolved when evaluates true.

  1. Resolved when: the expression that means “done.”
  2. Hide when resolved: whether resolving also hides the encounter.

The canonical example is a greeting that should play once: set Resolved when to Played(node_anne_intro) (the scene’s intro node) and Hide when resolved to true. Once the intro node has played, the encounter stops appearing.

Hide when resolved is a three-state dropdown (inherit, true, false). inherit defers to a project-wide default (which itself defaults to true), so setting Resolved when alone is usually enough. The example sets it to true explicitly to make the relationship visible in the inspector. See Scenes and visit state for the visit-state functions (Played, Selected, Visits) the Resolved when expression can use.

Make an encounter unskippable

Set the scene’s Modal field to true. While a modal encounter is running, the player cannot leave mid-scene; the host won’t render a Leave affordance. Like Hide when resolved, Modal is a three-state dropdown (inherit, true, false) that defers to a project-wide default when left as inherit. Reach for it when leaving partway through would break the narrative: a one-line greeting is fine non-modal; an interrogation should be modal.

See also

Docs last synced: 2026-07-08
Screenshot viewer