Skip to content
3 Death Saves
Wiki updated as of 0.3.0 (Sep 2026)

Program Editor

The Program tab holds a separate action tree for each handler: every event this trigger subscribes to, plus Manual. Pick which one you’re editing from the Editing dropdown at the top of the tab. Each entry is listed by its raw event key rather than the friendly name shown on the General tab, so match it against the events you picked there.

The Program tab of a trigger's configuration sheet

Every node in the tree shows an icon, a label, and a row of controls: enable/disable, move up, move down, and delete. Disabling a node skips it when the program runs without removing it from the tree. A node with fields or child slots also gets an expand/collapse arrow; collapsing it hides its fields and children without changing anything.

Some slots are optional, such as an If node’s false branch. An empty optional slot shows an Add button instead of a slot header; adding to it creates the slot, and a remove button on a filled optional slot deletes it and everything inside.

Each slot ends in an Add control. Clicking it opens a searchable list of node types grouped by category, including Structural, Flow, and Variables covered on this page, plus the action categories covered in Actions. Type to filter by name.

The node picker's search and categories

If a node is missing a required field, Glyph can’t save the tree. A warning banner appears above the tree, and the change is lost on reload until the field is fixed.

NodeWhat it does
SequenceRuns its own list of actions in order. Every slot in the tree is a Sequence.
IfBranches on a condition: one set of actions if it’s true, another if it’s false.
For EachRepeats its actions once per item in a collection.
Go ToJumps to a Landing elsewhere in the same program.
LandingA named jump target for Go To.
Call HandlerRuns another of the trigger’s handlers to completion, then continues after this node.
WaitPauses the run before continuing.
Next ItemSkips the rest of the current For Each pass and moves to the next item. Outside a For Each it ends the run.
Stop Remaining ActionsHalts the rest of the run.

Condition syntax for If and For Each’s filter is covered in Placeholders and Conditions.

FieldWhat it does
CollectionWhich list of items to iterate. See Placeholders and Conditions for the built-in collections.
Randomize OrderShuffles the collection before filtering, picking, or limiting it.
FilterA condition; only items where it’s true continue.
LimitStops after this many items. Ignored once Pick is set to anything but All.
PickNarrows the list to a single item instead of iterating all of it.
Pick ByThe dot-path compared for the Lowest/Highest pick modes. Defaults to name for Lowest Name/Highest Name.
Pick IndexThe 0-based position used when Pick is Index.

Pick modes: All, First, Last, Random, Lowest, Highest, Lowest Name, Highest Name, and Index.

Go To’s Limit caps how many times that jump can be taken; 0 means unlimited. A Landing’s Stop When Reached ends the run if the program reaches it by falling through in normal order. The actions after such a Landing then only run when something jumps to it directly with Go To.

Wait’s Formula field overrides Seconds. It accepts a dice formula, a low-high range of seconds, or a comma-separated list of options, one of which is picked at random.

Set Variable and Set Current Collection write values the rest of the program, and other actions, can read as {{variables.name}}. See Placeholders and Conditions.

FieldWhat it does
NameA */? wildcard pattern matches every variable already stored on the target.
ValueEntered as JSON. Leaving it blank clears the matching variable, or every matching variable with a wildcard name.
TriggerDefaults to this trigger. Another trigger can be named directly, by its Region, or by a Tile linked to it.

Set Variable writes to the same stored list shown on the trigger’s Variables tab, so what it sets there persists across fires and appears in that list too.

FieldWhat it does
NameThe variable this collection is stored under.
SourceWhich collection or reference to resolve from. Not used for Clear.
ActionAdd, Remove, or Replace the stored list with the newly resolved items, or Clear it.
Use OwnersStores the resolved items’ owning users instead of the items themselves.

Unlike Set Variable, this only exists for the current run; it isn’t written to the trigger’s stored variables.