Narratomidocs
Writing

The script editor

How to add, convert, reorder and search beats in a scene script without leaving the keyboard.

The middle column of the editor is one scene's script. Click a scene in the rail on the left to open it. Everything below assumes you can edit the project; a viewer sees the same script with the toolbar and the controls gone.

Mod below means Cmd on a Mac and Ctrl everywhere else. Where a shortcut is written Ctrl Alt, it really is Control, on every platform, including a Mac.

Add a beat

Three ways, all producing the same thing:

Type /

On an empty line, / opens the beat menu. Keep typing to narrow it: the match runs over the beat's name, its type and its one-line description, so /st finds Stage, odds finds Check and variable finds Set. Arrow keys move, Enter or Tab inserts, Esc closes.

The menu only opens at the start of an otherwise empty line, so typing "and/or" mid-sentence never pops it. The kind you picked last sorts to the top next time.

Click a toolbar button

Line, Stage, Set, Wait, Choice, Input and Check each have a button in the toolbar above the script. The beat lands after the block your caret is in, or replaces it if that block is an empty line.

Convert the beat you are on

Ctrl Alt plus a letter changes the current beat's kind in place, keeping its position and its beat id.

ShortcutBeat
Ctrl Alt LLine
Ctrl Alt SStage
Ctrl Alt VSet
Ctrl Alt WWait
Ctrl Alt CChoice
Ctrl Alt IInput
Ctrl Alt KCheck

Convert refuses in two cases, silently, rather than throwing your work away: a line that already has text will not become a Stage or a Choice (the text would have nowhere to live), and a beat you have already filled in will not convert away from its kind (its fields would be wiped). Empty the beat first, or delete it and insert a new one.

Write a line

Typing goes straight into a line beat. Enter splits it into a new line beat and carries the speaker across, so a run of dialogue from one character costs one speaker pick, not ten. Enter while an atom beat (a Stage, Set, Wait, Choice or Check) is selected drops a fresh line right after it.

Two menus work inside line text:

  • @ at the start of a line opens the cast list and sets that line's speaker. The @name text you typed is removed; nothing is parsed out of the sentence.
  • { anywhere opens the token list (declared variables plus cast members) and inserts a chip. Typing a complete {token} by hand chips it too. See Tokens.

Emphasis is Mod B and Mod I, or Markdown as you type: **bold** and *italic*.

Reorder, duplicate, delete

ActionHow
Move the beat up or downAlt Up / Alt Down, or drag its grip handle
Duplicate the beat below itselfMod Shift D
Delete a Stage, Set, Wait, Choice or Checkthe X button at the right edge of the beat
Undo / redoMod Z / Mod Y or Mod Shift Z

A duplicate gets a fresh beat id, and a duplicated choice gets fresh option ids too, so conditions that count taken on the original are not accidentally shared. Dragging near the top or bottom edge scrolls the column.

Undo is local only. It replays the edits you pushed, never a collaborator's, so you cannot undo somebody else's paragraph out from under them.

Find and replace

Mod F opens a find bar under the toolbar. Matching is case-insensitive and covers the open scene only, not the whole project or chapter. Enter steps to the next match and Shift Enter to the previous, wrapping both ways; the counter reads "3 of 11". Esc closes the bar and hands the caret back to the script.

Search reaches line text only. It does not look inside the form fields of a Stage, Set or Choice beat, so an option label is not findable this way. Replace All is one undoable edit, and an empty replacement field deletes the matches.

Read the warnings

The script compiles as you type. A beat with a problem gets a marked border; hover it for the compiler's message. An interpolation chip naming something that is neither a declared variable nor a cast member is marked on its own, with the tooltip "Unknown token". Neither blocks you from writing, and neither lets you publish: see Preview.

The toolbar's right side keeps a live word and beat count. Blank lines do not count as beats, because the compiler strips them before the story is built.

On this page