State Events

Estimated reading time: 2 minutes

The StateEvents module is part of the dynamic management system. It handles game state-triggered events. The framework automatically checks and triggers events at passage start and end.

Access via maplebirch.dynamic.State or shortcut maplebirchFrameworks.addStateEvent().

Core API

regStateEvent(type, eventId, options)

Register a new state event.

  • @param type (string): Event type, 'interrupt' or 'overlay'
  • @param eventId (string): Unique event identifier
  • @param options (StateEventOptions): Event configuration
  • @return boolean: Whether registration succeeded
// Register an interrupt event
maplebirch.dynamic.regStateEvent("interrupt", "encounterBandit", {
  output: "banditEncounter",
  cond: () => V.location === "forest" && V.time === "night",
  priority: 5,
  once: true,
});

delStateEvent(type, eventId)

Unregister a state event.

maplebirch.dynamic.delStateEvent("interrupt", "encounterBandit");

trigger(type)

Trigger state events manually:

const result = maplebirch.dynamic.trigger("interrupt");

Event Options

OptionTypeDescription
outputstringWidget macro name to call when triggered
condfunctionTrigger condition, returns boolean
prioritynumberHigher runs first
oncebooleanTrigger only once
forceExitbooleanForce abort current passage (interrupt only)
extra.passagestring[]Only trigger in these passages
extra.excludestring[]Do not trigger in these passages

Event Types

TypeDescription
interruptChecked at passage start; first match interrupts execution
overlayChecked at passage end; multiple may fire, content appended