Story branch checker
Find broken links and orphaned nodes in a branching story or dialogue tree.
Story branch checker
Paste a branching story, dialogue tree or chatbot flow script and this tool maps every node and the links between them, then reports what's broken. It reads headings such as "# NodeName" as node definitions and inline references like "[NodeName]" or Ink-style "-> NodeName" as outgoing links from whichever node they appear under.
Two kinds of problems get flagged. Broken links are references that point to a node heading which doesn't exist anywhere in the document — the usual result of a rename, a typo, or a deleted passage that other nodes still point to. Orphaned nodes are the opposite problem: passages that exist and are fully written, but that no other node ever links to, so a player or user can never actually reach them. Both are easy to miss by eye once a script grows past a dozen or two passages, and both are exactly the kind of bug that only surfaces during playtesting — or after publishing.
Three options tune the check to how you write. "Case-sensitive node names" makes "[Forest]" and "[forest]" count as different targets instead of the same node — useful if your naming convention relies on capitalization. "Ignore a node's link to itself" keeps a passage that loops back on its own choice from counting as a reference for orphan detection, so it doesn't quietly hide a genuinely unreachable node. "Treat first node as the entry point" exempts the very first heading from the orphaned-node report, since a script's opening passage is reached by starting the story, not by another node's link.
Everything runs in your browser: the tool only parses text and never uploads your script anywhere, so unpublished chapters, unreleased game content and client work stay private. Paste a chapter, a whole game script, or a single branching scene — the tally under the output shows node, broken-link and orphaned-node counts at a glance, and the full report lists exactly which line each broken link came from.