Skip to content
3 Death Saves

Dialogue Tree Editor

Wiki updated as of 0.7.0 (Oct 2026)

Every shop runs on a dialogue tree. The tree decides what the shopkeeper says, which choices the player sees, when the shelf opens, and how a visit ends. The archetypes ship with finished trees that you can edit here.

Each shop gets its own tree, stored on a journal page that players cannot see. Open the editor with Edit Shop Tree in shop settings, with Open in editor at the end of the Shop Builder, or with the Edit Dialogue Tree button on the tree’s journal page. Changing a shop’s archetype rebuilds its tree and replaces your edits.

Edit Dialogue Tree button on the journal page

The Nodes tab lists every node as a row that expands into its full detail. A row with a problem shows a warning icon, and hovering it lists that node’s issues. The bar above the list filters rows by node type and adds a new node of the chosen type. Shift-click selects several rows. Right-click a row, or use its menu button, to copy, copy the sub-tree, duplicate, paste, or delete.

A node row's right-click menu

Save Tree saves your field edits, and closing the editor saves them too. Adding, deleting, pasting, or reordering nodes, lines, and choices saves the tree immediately.

The Dialogue Tree Editor

The Overview tab sets the entry node, the node a visit starts at. It also sets what happens when a buyer tries to enter outside the shop’s opening hours: post a message, redirect to a node, or let them in anyway. The tab lists the tree’s errors and warnings, each with a jump-to-node link.

  • Dialogue speaks lines and shows each choice as a button.
  • Browse opens the shelf with a filtered slice of stock and the cart. Its mode picks Party Buys, Party Sells, or both, and it can group and sort the items. It needs a filter, a checkout choice, and a leave choice.
  • Inventory asks the player to pick one of their own items and stores it in a named variable for later nodes. A field and value, plus an optional filter, narrow what it accepts. It needs a picked choice and a leave choice.
  • Transaction commits the cart, then branches by outcome. It starts with Success and Cancelled branches. Add Insufficient Funds and Out of Stock branches when you want them; a missing branch falls back to Cancelled.
  • Roll Table rolls a Foundry roll table, stores the result in a variable, and branches on conditions against the roll. Show Roll Animation posts the roll to chat for dice-animation modules.
  • Auto branches on conditions without showing the player anything. Auto and Roll Table nodes each need one unconditional choice as the fallback.
  • Goto jumps to another node, or to another tree by its page UUID. Picking New tree-jump… as a choice’s target creates a Goto node for it.
  • End closes the visit and can run a final list of effects.

Every node can override the shop’s accent color and backdrop vignette while it shows. Nodes without lines can log an ambient line when reached. The entry node sets how the shop fades in, and an End node sets how it fades out.

A Dialogue node can override the speaker’s name and portrait, or take both from an actor. Each line has its own text, condition, portrait, and sound.

The Lines picker sets how lines play. Speak Every Line plays each line whose condition passes, in order. Speak One at Random draws from the lines that pass, avoids repeating the previous draw, and keeps the same draw for the rest of the visit. A count field sets how many lines it draws.

On a return visit, a Dialogue node normally shows short repeat-visit text instead of its full lines. Always Show Lines turns that off, and random nodes always draw again.

Fare Node generates one choice per travel destination set on the shop, priced and labeled automatically, all leading to the node picked in Fare Target. It needs the Travel Pace module and at least one destination in shop settings.

A choice has its button text, a target node, an optional cost, a Show When condition, and a When Chosen effect list.

Conditions, effects, and item filters are built from rows, grouped with AND, OR, and NOT. Drop an item, roll table, or macro onto a UUID field instead of pasting its UUID.

A Show When condition builder with AND, NOT, and OR groups

Conditions check the buyer’s wealth, level, attributes, and items, plus shop and world flags and counters. Goodwill conditions can test the raw value or the buyer’s rung on the shop’s goodwill ladder, where 1 is the lowest rung. Time conditions cover the time of day, the season, whether the shop is open, and whether it closes within a set number of minutes. There are also conditions for roll results, haggling, the transaction log, and archetype services like commissions, loans, boarding, mounts, and the back room.

Item filters can match items that are a stocked journal.

Effects set flags and counters, change prices and goodwill, adjust the buyer’s actor, grant an Active Effect, and move currency and items. A make-item effect gives the buyer a placeholder item with a name and image you choose. The heat effects raise heat, apply a lean result, send the buyer to lay low, roll for a raid, and sell or close a lead. Other effects advance world time, sell a travel fare, play a sound, post to chat, or fire a hook. A macro effect runs only when a GM takes the choice. Other modules can add their own entries through the module API.

A roll card effect’s difficulty field can read a value from the shop’s settings, written as {{shop.heat.leanDc}}.

A choice on a Dialogue node can accept free-text input. Keywords route what the player types to other choices on the node, and a fallback choice catches everything else. Always Show the Text Box shows the typing box without the player picking the free-text choice first.

Inventory and Transaction nodes can grant an Active Effect when they complete, applied to the chosen item or the buyer. Drag an Active Effect into the field or paste its UUID. Archetype services draw their effects from the Peddler Effects compendium described in System adapters.

A Browse node can carry Shopkeeper Asides. The shopkeeper speaks them at random as items move in and out of the cart, and once per visit when the cart total passes a threshold you set. They appear as speech bubbles in the vignette.

The footer shows a Valid badge, or an issue count plus a separate warning count. Hover a count to list its messages by node. Click it to jump to the first node it covers.

The validation footer with its issue list

Errors cover structural breaks such as missing required choices, dangling targets, and free-text choices outside a Dialogue node. Warnings flag unreachable nodes, Auto and Roll Table loops, settings a node type ignores, and conditions, effects, or filters that no active module provides.

Open Graph shows a map of the tree that redraws as you edit. Zoom with the scroll wheel or the buttons, and drag the background to pan. Drag a node to move it. Clicking a node opens its row in the editor.

The dialogue tree graph