Parlance and the alternatives

Parlance is built for a specific shape of project: a story that's structured data as much as prose, authored by people who already live in git. Different tools fit different shapes, and pretending otherwise helps nobody — so this page covers where Parlance wins, and where one of the others is the better call.

At a glance

Parlance articy:draft Twine ink Yarn Spinner
Static validation & CI story ✓ 30 check families on save + ci-check + independent reference validator ◑ in-app checks ✗ ◑ compiler errors ◑ compiler errors
State-aware dialogue selection ✓ dialogue offers, spec'd + conformance-tested ◑ via scripting ◑ via macros ◑ weave/logic in-script ◑ via commands
Branch-based review workflow ✓ narrative diffs, comments, suggestions, verdicts — plain git ✗ (server products exist) ✗ ◑ text diffs review fine in PRs ◑ text diffs review fine in PRs
AI / MCP integration ✓ MCP server, validated writes ✗ ✗ ✗ ✗
Graph and text authoring, same document ✓ canvas ↔ script view, both fully editable, lossless byte-level round-trip ◑ flow editor is primary; no text form of a scene ◑ Twee import/export round-trips, including layout — not a live second view ✗ text only ◑ graph view adds and moves nodes; branching is authored in text
Structured entities beyond dialogue (quests, factions, items, endings) ✓ 12 first-class types, plus custom types you declare, edited in a grid ✓ templates & objects ✗ ✗ variables only ✗ variables only
Engine integration model ✓ no export step — your engine reads the files the editor writes; published contract + conformance vectors ◑ exporter + official Unity/Unreal plugins ◑ web-native; engine use is DIY ✓ excellent Unity runtime; C/C#/others ✓ first-class Unity
Source format ✓ plain JSON, per-entity files, clean diffs ✗ proprietary project (X exports XML/JSON) ◑ HTML/Twee archive ✓ plain-text .ink ✓ plain-text .yarn
Visual node editing ✓ dialogue, quest, location canvases ✓ mature flow editor ✓ passage map ✗ text-first ◑ graph view, text-first
In-tool playtesting ✓ seeded, rewindable, forced outcomes, live state; an explorer that walks every choice and check outcome ✓ presentation/simulation ✓ play in browser ✓ inky player ✓ preview
Shareable playable build of a scene ✓ single-file HTML export ✗ ✓ whole story is HTML ◑ export for web via tooling ✗
Localization & VO tooling ✓ stable keys, coverage, stale detection ✓ mature ✗ ◑ community tooling ◑ line-tag based
Open spec ✓ MIT schemas + conformance vectors, published separately (details) ✗ ◑ formats documented ✓ open source ✓ open source
License / price free, including commercial use — MIT open spec, editor not open source commercial, per-seat free, open source free, open source free, open source (paid add-ons)

✓ first-class   ◑ possible with work or partial   ✗ not a goal of the tool   †

Choose Parlance if…

Parlance is the only tool here that treats the whole story layer as validated, reviewable data — dialogue, quests, factions, reputation, items, endings — in files your engine reads directly, with no export step in between. One JSON file per entity means a save touches one file and a diff reads like a change to one scene, not to a project. If your narrative has outgrown what one person can hold in their head, that's the problem it's built for — here's what that looks like on a public 112-dialogue project.

Choose Parlance if:

When another tool is the better fit

articy:draft

You're a mid-size-or-larger studio that wants a mature, commercial, all-in-one narrative pipeline with official Unity and Unreal plugins, template-driven game objects, and years of shipped-title track record. For a studio that wants one vendor-supported pipeline covering everything, nothing else commercial comes close. The trade-offs are the proprietary project format (version control works on binary/opaque data, with server products sold to solve the collaboration problem git would otherwise give you) and per-seat licensing.

Twine

You're writing hypertext fiction that ships as a web page, teaching interactive fiction, or jamming — nothing gets you from zero to playable branching story faster, and the output is the delivery format. It's not built for driving a game engine, structured game data, or team review workflows.

ink

Your game is prose-first and your writers are comfortable in a lightweight scripting language. ink's writing ergonomics for dense, weave-style branching prose are unmatched, its Unity integration is excellent, and its shipped-game pedigree (80 Days, Heaven's Vault, countless others) speaks for itself. The structured layer is yours to hand-roll — quests, factions, items, endings — as are any static guarantees beyond compiler errors.

Yarn Spinner

You're Unity-first and want a friendly, well-supported dialogue system with a strong community, voice-over-oriented line tagging, and a syntax writers pick up in an afternoon. Like ink, it stays a dialogue tool: quests, factions, items, endings, and the validation over them are yours to build and maintain.

If you've already written it

Three of the tools on this page are ones Parlance can import from: ink, Yarn Spinner, and Twine (Harlowe and SugarCube stories). There are importers for ChoiceScript, Arcweave and Ren'Py too. The importers are agent skills in the open SKILL.md format — coding agents that support it load them natively, and any other agent can follow a skill's SKILL.md as instructions. You can download them from the open spec repository.

Once installed, you instruct the agent to run the import. It will check every emitted string against your source byte for byte and name anything it can't carry, so the question "do I have to retype my script" has a concrete answer. How migration works.

Worth knowing before you weigh it: conditional text — { cond: line } in ink, <<if>> in Yarn — had no equivalent in Parlance until v0.11.0. It does now (conditional narration), and the importers map guarded lines onto it. That is what turned moving a real manuscript into a conversion rather than a rewrite.

The fastest way to judge: play the demo, then open it in the editor.

† This table is maintained by us, about our competitors — read it with that grain of salt, and tell us if a cell is unfair or out of date.