Visual node graph at any scale

A custom canvas editor with content-type colour coding, inline title editing, and level-of-detail rendering. Zoom in to work on a single node; zoom out to see the whole narrative flow at a glance. Scales to thousands of nodes without slowing down.

Scenes that scale

Break your story into reusable, callable units. Each scene has its own intro, update, and outro. Scope variables locally where it makes sense; share globally where it doesn't. Nest scenes for sub-sections of a chapter, or call one scene from another and return when it finishes. Scenes can share the canvas, with soft bounding boxes marking each scene's territory so the boundary is visible at a glance.

Expression language with autocomplete

Conditions read like sentences. Syntax highlighting colours variables, functions, and operators differently; autocomplete suggests the right thing as you type. A "?" help panel opens a full quick reference next to every expression field. Dynamic text with {var_name} placeholders resolves at runtime, so writers cover situational variation without near-duplicate nodes.

Want to write your next story in StoryBonsai?

Request Access →

Built-in simulator

Messaging-app playback, including video and captions, with placeholder text for un-recorded lines. A breadcrumb of your choices lets you rewind to any past decision without restarting.

Test the story, not just the syntax

Expression tests pin condition behaviour. Define cases (these variables, this play history, this inventory, this time of day) and lock in the expected outcome. Stops "fixed once, broken later" regressions before they ship.

Assertion tests capture invariants the whole game has to satisfy. "The player never enters the boss room without a weapon." "The bartender eventually offers a drink once met." Each assertion has a temporal-logic wrapper (always, eventually, never, until) and one or more lines composed with and / or / implies. Tests run on every edit and live with the field they describe, so renaming a field doesn't break its tests.

Reverse references

Select any node, variable, character, scene, location, item, skill, or tag. Instantly see every node that references it, with the exact field (visible when, event condition, event target) and one-click navigation. Find every place a variable is read or written before refactoring it.

Automated path testing + coverage heatmap

Play thousands of versions of your story to catch broken paths before players find them. The path tester surfaces what a static scan cannot: variable min/max violations, unreachable nodes with explanations, duration mismatches, infinite loops. Five strategies (random, adversarial, cooperative, greedy goal-seeking, coverage-guided) drive the tester at different goals, and it walks MoveTo and AdvanceTime actions alongside choices.

Results without leaving the editor

Every path-test run surfaces inside the editor with statistics, issues, and per-scene breakdowns. Click any flagged node to jump straight to it. No terminal, no context switch.

Project correctness at a glance

Real-time validation surfaces errors on node cards, the minimap, the project tree, and inside the inspector. The Project Validator panel lists every error across the project in one place with click-to-navigate: dead-code flags, meter and bounds warnings, tag validation, and expression return-type mismatches. Catch problems at edit time, not at playtest.

Story beats

Mark the narrative moments that matter inside your videos and audio: "player saw the betrayal," "player met Claire." The engine remembers which beats the player has actually seen and at what importance. Your developers can build recaps, callbacks, and "previously on…" moments from story content you already wrote, with no separate tracking system.

Canvas filters

Combine text, tag, scene, and player filters with boolean operators. Right-click any node to filter by its tags or player. Find anything in any project size, instantly.

Single-player or multiplayer. Built into the runtime.

Author conversations across multiple players. Choices belong to players; the editor keeps it all straight.

Coming soon

In active development.

Style-guide linting. Rules like "max 25 words per choice" enforced at edit time.

Request Access →

Screenshot viewer