Skip to content

Patterpad, the editor

Patterpad is the desktop app where you write Patter projects. It is built on one idea: a scriptwriter should be pleased to use it. The surface reads like a screenplay, the serious tooling waits until you reach for it, and the complexity stays hidden until you ask for it.

This section is a full tour, right down to the many keystrokes, gestures, and menus that are easy to miss. If you only read one other page, make it The writing surface.

The first time you launch, Patterpad asks once for your name (and an optional email). That’s all, no wizard. Your name signs your review comments and suggestions, and marks who edited each line. Leave the name blank and Patterpad falls back to your computer’s user name, so skipping the prompt still signs your work sensibly. You can change either at any time from User Information (in the Patterpad app menu on macOS, or the File menu on Windows and Linux).

From there you land on the welcome screen, where you can open a project, create one, or pick from your recent projects.

File ▸ New Project… (⌘N / Ctrl+N) opens a simple dialog:

  • Project name: shows a live preview of the <name>.patter folder you’ll get.
  • Version control: git, Perforce, Plastic, SVN, or none. Patterpad sets up the right config for whichever you pick, and you can switch it later in Project Settings.
  • Publish output: where Publish Bundle writes the finished file. It starts at a sibling ../patter-dist/<name>.patterc and leaves the name alone once you type your own path.

Then you Choose Location for your Patter project.

A Patter project is a real folder of files (see the format). On macOS the .patter folder opens with a double-click; on Windows and Linux it’s an ordinary folder.

You probably want to store it in whatever VCS you are using for your project, alongside your game files; but you won’t be shipping the Patter project itself, only the .patterc published bundle.

Patterpad gets you working in one click:

  • Open a project (⌘O / Ctrl+O), click a recent one, or use File ▸ Open Recent.
  • It reopens the last scene you were editing, with your cursor back on the exact line and scrolled into view.
  • Double-click a .patter folder to reopen your last session, double-click a single scene file to open just that scene, or run patterpad <path> from a shell.

Launching from a shell, --at opens the project straight at a location instead of where you left off:

Terminal window
patterpad my-game.patter --at L_greet # a line, by its beat id
patterpad my-game.patter --at tavern-intro # a scene or block, by its Game ID
patterpad my-game.patter --at "The Street" # a scene or block, by its name
patterpad --at L_greet # no path: reopen the last project there

--at=<where> works too. <where> takes the same query as patter resolve: it tries an exact beat id first, then a Game ID, then a name, then a partial match. So an id lifted straight out of a locale table, an audio filename, or a runtime log pastes in and lands the cursor on the line it names, which is the quickest way to answer “a tester reported a problem with this line”.

A scene target opens that scene at the top. A block, group, or line target opens its scene and puts the cursor on it. If nothing in the project matches, Patterpad prints that on the terminal and opens the project as it normally would, so a stale id in a bug report can’t stop you getting in. If Patterpad is already running, the same command jumps the open window rather than starting a second copy.

A .patter project is a folder of files, which is perfect for version control but awkward to email or drop in a chat. A Patterpack is that whole project squeezed into a single .patterpack file you can hand to someone.

  • File ▸ Export as Patterpack… writes a <name>.patterpack. Like Save As, it carries the source only: your scenes, settings, notes, and translations travel; recorded audio and the published .patterc bundle do not (they are large and rebuilt anyway).
  • File ▸ Open Patterpack… takes a .patterpack, asks where to create the project folder (defaulting to <name>.patter beside the pack), unpacks it there, and opens it. Opening always makes a fresh folder: it never writes over an existing project.
  • Double-click a .patterpack (or drop it on the app) does the same: Patterpad asks where to unpack it, then opens the result.

Because a Patterpack is a real copy, the person you send it to can open it, write, and send one back. It is the friendly way to pass a project to a collaborator who is not on your version-control system.

The Patterpad workspace: a Scenes navigator on the left, the script surface in the centre showing dialogue snippets for The Patter Tour, and the Inspector on the right.
The three-column workspace: the Scenes navigator (left), the script surface (centre), and the Inspector (right). The script stays put; the side panes are guests you toggle with ⌘1 and ⌘2.

Three columns, with the script always in the centre:

  • Scenes (left): your list of scenes. The open scene unfolds to list its blocks - the block your cursor is in stays marked, and clicking one jumps straight to it. Drag a scene to reorder the list; the order is saved with the project (it changes nothing about how the story plays). Add a scene with the + New Scene row at the foot of the list (or File ▸ New Scene…, ⇧⌘N); delete one from its right-click menu (or File ▸ Delete Scene…) - if other scenes jump into it, the confirm names them, and the dangling jumps show as problems until you repoint them. Toggle the pane with View ▸ Show Scenes (⌘1).
  • The script (centre): where you write. This one stays put; the sides are guests.
  • Inspector (right): the detail for whatever your cursor is on. Toggle with View ▸ Show Inspector (⌘2).

Drag the edge between a pane and the script to resize it, or double-click that edge to reset the pane to its usual width. View ▸ Reset View brings both panes back (and rescues a play window that’s drifted off-screen). Patterpad remembers your pane widths between sessions.

When you want nothing but the words, Writing View (⇧⌘M) clears everything else away: both panes, the top bar, and the bottom bars, leaving just the script and the hint bar. See Reading & focus.

File ▸ Save (⌘S) saves the current scene. If a teammate has the file locked, Patterpad respects that and tells you who’s holding it, rather than overwriting their work. Autosave is on by default (about every 30 seconds; toggle it in Project Settings), and Patterpad also saves before switching scenes, playing, or installing an update.

MIT-licensed open source · Made by · patterkit.dev