Skip to content

Branching dialogue you can write, play and check before the build.

Write a conversation as lines said by speakers. Give a line its choices, and each choice jumps to the line it names. Play it through as the player will, read it as a graph, and export a Yarn Spinner file when it holds together.

Play The Drowned Archivist: first meeting

  1. ArchivistYou came at low water. Most harvesters do not come back up with the tide.

Write the conversation as a script

Each line has a speaker, what they say, and either choices or what comes next. Choices point at lines by short ids, so reordering lines never breaks a jump. Switch between the script, a play-through that walks the conversation choice by choice, and the graph.

  • Point each choice at a line, or at the end of the conversation
  • Add a line below with the same speaker in one click
  • Each speaker keeps a colour, in the order they first speak
  • Start from the Quest Dialogue template

What it does not do Conditions and variables are not modelled. Write a condition into the choice’s text, as Saltmarrow does with [Carrying a memory crystal]: everyone reads it, but Nodary never evaluates it or hides the choice.

The Drowned Archivist’s dialogue in Nodary’s script view: each line with its id, the Archivist as speaker and her text, choices that each jump to a named line, choices that open with a condition in brackets such as [Carrying a memory crystal] or [Lighthouse level 3 or higher], and lines that end the conversation.

Catch broken branches, then export to Yarn Spinner

Nodary flags a choice or a next that points at a line that no longer exists, a line no path reaches from the start, and a line that says nothing, on the line itself and in a count above the dialogue. When it holds together, the Yarn file button writes a Yarn Spinner 2 script: one node per line, choices as options, jumps between nodes, and the first line tagged start.

  • Problems named on the line and counted above the dialogue
  • Node names made unique and valid for Yarn
  • A jump to a missing line becomes a stop, so the file still compiles
  • Import the .yarn file with Yarn Spinner in Unity, Godot or Unreal

What it does not do Yarn Spinner is an export only: Nodary does not import .yarn or Ink files, and a condition written in a choice’s text stays plain text in the Yarn file.

The Archivist’s dialogue in Nodary’s graph view, with the Script, Play and Graph switch and the Yarn file button above it, and every arrow running from a line to the line its choice names, or to the end.
The graph draws every jump, which is what the checks follow.

Agents check a dialogue before anyone plays it

check_dialogue reads a dialogue the way the editor does: broken jumps, unreachable and empty lines, its speakers and how many ways it ends. With format yarn it also returns the Yarn Spinner script. An agent writes a new dialogue with write_document, changes lines with edit_document, and get_document reads one back as a script, every choice with where it goes.

Connect an agent

You askCheck the Drowned Archivist’s first-meeting dialogue for broken jumps and unreachable lines, fix what you find, then give me the Yarn Spinner file.

Tools it calls
  • search_documents
  • check_dialogue
  • edit_document

Questions

Can I export my dialogue to Yarn Spinner?

Yes. The Yarn file button on every dialogue downloads a Yarn Spinner 2 script: one node per line, choices as options, jumps between nodes, and the first line tagged start. An agent gets the same script from check_dialogue with format yarn.

Can I import Yarn, Ink or Twine files?

No. Dialogue is written in Nodary, and Yarn Spinner is an export only. An agent connected over MCP can turn a script you paste into a dialogue block, each choice pointing at its line.

Does Nodary support dialogue conditions and variables?

Not as logic. You can write a condition into a choice’s text, such as [Lighthouse level 3 or higher], and everyone reading the dialogue sees it, but Nodary keeps no variables and never hides a choice. Add the real conditions in your dialogue system after export.

Does it find dead ends in a branching dialogue?

It finds the branches that would break when played: a choice or a next that points at a line that does not exist, a line no path reaches from the start, and a line that says nothing. Every other line leads somewhere by design: to its choices, to its next, to the following line or to the end.

Can I write a screenplay in Fountain?

Yes. Add a Screenplay block, write Fountain, and read it formatted: scene headings, action, character cues, parentheticals, dialogue, transitions, sections and synopses. Notes and boneyard text are hidden from the formatted view. A screenplay holds up to 50,000 characters, and title pages and dual dialogue are not laid out.

How long can a dialogue be?

Up to 300 lines, each with up to 8 choices. A longer conversation is split into several dialogue blocks, and a jump cannot cross from one block to another.

Write the next conversation where the story lives.

Start free, type / and pick Dialogue, or start from the Quest Dialogue template. No card, nothing to install.

Free for two members and ten documents. No card.