Skip to workspace
PixelOkay

Interactive Story Builder

Branching narrative workspace
Local workspace
Tools
100%
↖ Drag passages to arrange · Scroll to zoom
Ready to write a new path
0 passages·0 choices·0 endings

Write interactive fiction without coding

PixelOkay Interactive Story Builder is a free browser workspace for choose-your-own-adventure stories, narrative games, branching lessons and interactive scripts. Add passages, connect choices, define story variables, test alternate decisions, and download the complete playable adventure as a single HTML file.

Build a branching story

Add a passage and a choice that links to another scene. Follow the visual flow to find missing story branches and endings.

Preview decisions with conditions

Create variables and add conditions or effects to choices. Playtest changing outcomes without running any external code.

Publish and keep editing

Download an offline playable HTML or a JSON project to continue editing. All story content stays in your browser unless you choose to share it.

PUBLISH / EXPORT

Share your story

Choose the output that fits your workflow. Your editable project is a separate file.

LOCAL SAFETY COPIES

Recovery center

Browser storage is temporary and may be cleared. Download JSON files for reliable backups.

Story Builder guide

Writing: Select a passage, edit its text and add labeled choices. A choice points to another passage. Add a linked passage to create a new branch.

Variables: Define a number, true/false or text value. Use choice conditions to hide decisions and effects to change values. Write {{courage}} in a passage to display it.

Playtest: Follow choices, review unique scenes visited and download a local playtest log. Back reverses effects; Restart clears progress.

Mapping: Auto layout arranges passages by distance from the starting scene. Duplicate copies a scene and its outgoing choices. Both can be undone.

Keyboard: Ctrl/⌘+S saves, Ctrl/⌘+Z undo, Ctrl/⌘+Shift+Z redo. Arrow keys move the selected passage when focus is outside inputs. Escape closes dialogs.

Privacy: No account or network upload. JSON is the editable master; standalone HTML is for readers.

Using Interactive Story Builder

Create passages and choices, select a starting scene and define supported typed variables. Playtest paths, inspect structural diagnostics and export the standalone reader. Save story JSON to continue authoring later.

Scene text is plain text and user JavaScript is not executed. Structural checks and playtest coverage do not prove that every state or ending works. Projects are bounded to 320 passages, 18 choices per passage, 40 variables and 2 MB serialized data. HTML export is a downloadable reader, not automatic hosting or live collaboration; browser recovery is best effort.

Workflow and output choices for Interactive Story Builder

Create a branching story from plain-text passages and choices, define supported typed variables and conditions, then playtest paths and inspect structural diagnostics.

Story JSON is the editable authoring project. Standalone HTML is a reader export for the finished story; it does not host the story or enable live collaboration.

Example workflow

  1. Create a few passages and choose the story’s starting scene.
  2. Add choices and supported variable conditions or effects, then follow several paths in playtest.
  3. Review structural diagnostics, export the standalone reader and save JSON for continued authoring.

Authored example: Outline a fictional three-scene museum mystery where one choice sets a clue variable that changes a later option. Test both branches and mark the exercise as authored rather than an exhaustive story-state proof.

Limits and handling: Passages, choices, variables, project bytes and history are bounded. Passage content is plain text; user JavaScript is not executed. Structural diagnostics and selected playtests do not prove every possible state or ending.

Interactive Story Builder questions

Does the reader execute JavaScript that I add to a passage?

No. Story text is plain text and the builder does not execute user-provided JavaScript.

Does a successful playtest prove every ending is reachable?

No. Diagnostics and playtest coverage describe the paths you checked, not every possible story state.

Related tools