Building Story Structure

Building Story Structure

For a simple linear story, stacking blocks top to bottom is enough. But to split your story into chapters or branch it based on player choices, you need to understand the Chapter, Choice, and Go to chapter blocks. This page walks through how they cooperate to form a story's structure. Detailed properties of each block are covered in the "Block Reference" chapter.

Chapter: Waypoints in Your Story

A Chapter block gives a name to a specific point in your story. Placing chapters at part beginnings, choice destinations, or right before an ending lets Choice and Go to chapter blocks send the story to that named point. Add a chapter from [More ▾] on the insert bar, or with [+ Chapter] in the chapter pills row.

Important: The game starts from the top block of the list. You do not need a chapter named start.

Chapters are commonly used to organize the story in ways such as:

  • chapter1, chapter2 — Part boundaries
  • route_a_good_end, route_a_bad_end — Endings of branch routes
  • hub, school_entrance — Common points the story returns to multiple times

Chapter names can be anything you like, but since they are referenced by name from choices, clear, meaningful names are recommended. Select a Chapter line and a chapter name field appears in the details under it; if you rename a chapter later, every Choice, Condition, and Go to chapter that points to it is updated too. When renaming, edit the characters in place rather than clearing the whole name first — if the name passes through an empty value, the choices, conditions, and Go to chapter blocks pointing at it are not updated.

Choice: Branching by Choice

A Choice block presents options to the player and sends the story to a different chapter for each option. In most visual novels, it is the core mechanism for splitting a story into multiple paths.

Add a Choice with [Choice] on the insert bar. It starts with two options, and clicking the Choice line opens Manage choices in the details right under it, listing the options. The column headings are Option text and Go to chapter, and each option has one row with:

  • Option text — What the player sees ("Type the choice text…")
  • Go to chapter — The chapter the story moves to when that option is picked (leave it empty for "— (continue after the choice)")
  • Action button — [Make branch] or [Open chapter →], described below
  • Remove option trash icon

Use [+ Add option] to add as many options as you need. When the player picks one, the game moves to that chapter immediately.

Choice details: option text, Go to chapter, and the [Make branch] button

Creating Branch Chapters in One Step

If you have not made the branch chapters yet:

  1. Type the text of each option. Leave Go to chapter empty.
  2. Press the yellow [Make branch] on any option.
  3. A branch chapter is created for every option that has none. Each branch consists of a Chapter line, an empty dialogue line, and a Go to chapter that returns to the rejoin point.
  4. The screen scrolls down to the branch of the option you pressed and the cursor lands on its empty dialogue line, so you can start writing that branch right away.

Branch chapter names are generated from the option text (for example "Go left" becomes go_left). A name that starts with a digit gets a c_ prefix, a clashing name gets _2, and an empty option gets a numbered default name. The rejoin chapter is after_choice; if another branch already uses a rejoin point, it is reused. You can rename any of them later on the Chapter line.

An option whose chapter already exists shows a purple [Open chapter →] instead of [Make branch]; press it to jump to that chapter.

Moving Between Branches

As branches multiply, you will be hopping between choices and branch chapters often. There are several ways to move without scrolling:

  • Option chips on the Choice line — The Choice line shows a summary such as "Choice (2)" with one chip per option, such as "Go left → go_left". A chip with a destination chapter is a button that jumps to that chapter. A chip pointing to a chapter that does not exist turns red, with a warning such as "2 option(s) point to a missing chapter".
  • Return chips on the Chapter line — Under a chapter's title you see chips such as ← Choice "Go left", ← Go to chapter (in 'start'), and ← Condition (in 'x') (up to three; press [+n] to show them all). Press one to go back to that Choice, Go to chapter, or Condition line.
  • Chapter name in the end-of-chapter strip — In "Then → go to chapter 'x'", the chapter name is an underlined button that jumps to that chapter.

After a jump, the line you arrive at is highlighted in purple for about 1.5 seconds, and if you are filtering by chapter, the chapter pills switch to that chapter too.

The "← Choice" chip on a branch Chapter line and the end-of-chapter strip

Sequential Flow and Chapter Ends

A Chapter block is only a name tag — it does not stop playback. Blocks flow naturally from top to bottom, and if a chapter has no Ending or Go to chapter at its end, play continues straight into the next chapter in the list. For a linear story, this means you only need to arrange your chapters in order.

Branches need more care. If you leave the end of a branch chapter open, play runs into another branch placed right below it, and the player sees dialogue from an option they did not choose. End each branch with an Ending, or rejoin a shared chapter with Go to chapter.

At the end of each chapter in the list, a line such as "Then → go to chapter 'x'" or "Ends with an ending" is shown. Places that run into an unchosen branch are marked with a red warning and an [Add Go to chapter] button, and a red banner above the list ("N place(s) where an unchosen branch plays next.") shows how many such places there are, with a [Show first] button.

Basic Structure Example

Here is a simple block order for a story with two endings:

Chapter: start
Background: Classroom
Dialogue: "After school — who should I talk to?"
Choice:
  - "Friend A" → friend_a
  - "Friend B" → friend_b

Chapter: friend_a
Dialogue: (conversation with Friend A)
Ending: A Memory with Friend A

Chapter: friend_b
Dialogue: (conversation with Friend B)
Ending: A Memory with Friend B

It starts at the top, branches through a Choice, and each path plays its own dialogue before reaching its own Ending. Because friend_a ends with an Ending, it does not run into friend_b. To keep the story going instead of ending, put a block like Go to chapter → after_choice at the end of each branch. [Make branch] already places this block in every branch for you. Repeat and extend this pattern to build complex stories with multiple branches and endings.

Design Tips

  • Create chapters first — Destinations are picked from the chapters in your list. Create the chapter first and then connect Choices to it, or use [Make branch] on the option row.
  • Adopt a naming convention — Consistent prefixes like chapter1_intro, chapter1_end make large projects manageable.
  • Verify in Flow view — As your structure grows, switch with [Script | Flow] in the header to visually confirm that your choices connect where you expect. Places where a chapter runs on into the next one are drawn as a dashed "continues" line. You can even reroute choice destinations directly in Flow view.
  • Make sure every path has an end — Every branch must eventually reach an Ending block. Check the chapter-end lines and red warnings for paths that leak into another branch.

Next Steps

Once you can build story structure, the last piece is learning how to test as you write.