Skip to content

Projects and settings

File ▸ Project Settings… (⌘,) opens a tabbed dialog.

The Project settings dialog: a grouped tab list on the left (Project, Story data, Writing and audio, Localisation) with the Recording status tab open, showing a Track audio status switch, an audio root folder, a ladder of recording-status folders, and Use Audio Folders and scratch-recording options.
Project settings, with tabs grouped down the left (Project / Story data / Writing & audio / Localisation). The Recording status tab is shown here, mapping each recording stage to a folder on disk.

The General tab holds the Project name, the Start scene (where the story begins, used by Play ▸ Play from Start and the coverage test), Pad after, the project’s default pause between lines (0.6 seconds unless you change it), the Voiced flag, and the Inline formatting (bold and italic) toggle.

The Publish tab holds the Bundle path, where Publish ▸ Publish Bundle writes the .patterc, and the Localisation mode, Embedded or IDs only, with a source-debug option for an IDs-only build.

The Version control tab picks your version-control system.

The Language tab lists the languages your project supports and which one is the source.

The Game Data tab sets out the fields each kind of beat can carry (see Conditions, effects & data).

The World properties tab holds the @world values your game owns and your story reads (declaring them is covered in Properties & Game Data), plus the coverage drivers that stand in for them during a coverage test. Where the game shares its scopes with its other editing tools, the tab says so: saving writes the game’s game.scopes.json first, then keeps a copy in the project (see Sharing scopes with the game’s other tools). File ▸ Share Scopes with Other Tools sets that sharing up.

The Cast tab lists your characters, each with a script name, an optional display name for translation, and an actor. Expand a row (▸) for Grammatical gender, free text (blank means not specified) with auto-suggest for the everyday values (male / female / neuter) and any others already used in the cast, sent to translators so a gendered language can inflect that character’s lines (see Localisation), and for free-text Notes on casting, voice, or intent. Each character’s colour is shown but chosen for you.

The Qualifiers tab holds the project’s speaker qualifiers, V.O., O.S., and RADIO to start with. Each row has a name, which the script shows, and a Game ID, which your game relies on; expand a row for a description. A new qualifier’s Game ID follows its name until you edit it, and an existing one’s stays as it is when you rename it. Add, remove, or reorder them, or start from a standard set. Screenplay set (V.O., O.S., O.C.) and Game set (V.O., O.S., RADIO, PHONE) each replace the list. Changing a Game ID updates every line that uses it. Removing a qualifier leaves its lines flagged, with a fix that picks a replacement.

The Writing status and Recording status tabs hold the status ladders, each stage with its own colour. Recording status is opt-in (a Track audio status switch) and needs the project to be Voiced; see Recording status & audio.

The Estimating tab sizes still-unwritten scenes by a guess instead of their placeholder lines, so the report shows the work ahead. See Estimating.

The Closed captions tab sets the brackets (default [ / ]) and the caption character (default SFX) your game uses to strip non-spoken cues from dialogue when a player turns captions off. Avoid ( as the opener, since parentheses open a performer direction at the start of a line. See Closed captions.

The Dictionary tab is spell-check setup (below).

The @patter properties your story remembers aren’t here. They’re the story’s working vocabulary rather than configuration, so they have their own Properties page at the top of the navigator. What stays in this dialog is the contract with your game (World properties) and the settings around it.

The tabs are grouped down the left (Project / Story data / Writing & audio / Localisation) so the list stays easy to read as it grows.

Choose your VCS (git, Perforce, Plastic, SVN, or none) when you create the project or in Project Settings ▸ Version control. Patterpad is lock- and merge-aware: a scene locked by someone else goes read-only, your own edits check out when you save, and per-scene badges show each file’s state. The full picture, what needs the VCS tool installed and how Patter merges changes, is on its own page: Version control.

Production ▸ Export / Import Localisation… hands your text out for translation and folds it back in (also reachable from the Language settings tab):

  • Export the text for a language, or a blank template for the source, as JSON, Excel (.xlsx), or PO/POT.
  • Import a translated file back. The language comes from the file (or you set it), and Patterpad tells you how many lines it updated.

Patterpad only ever shows and edits the source language; the translations live off to the side and round-trip through this dialog. The full story is under Localisation.

Publish ▸ Publish Bundle (⇧⌘B) compiles your project into the .patterc file your game loads (a toast confirms where it landed). This is what you ship to a Patterplay runtime.

The same build runs from the terminal with patter export, so you can compile it in a script or a CI pipeline without opening the app. See Automation: the CLI.

Turn on Auto Rebuild (the Publish menu’s checkbox) and Patterpad recompiles the bundle for you a moment after you stop editing, so the .patterc on disk stays current without you pressing Publish Bundle. Handy when your game reads the bundle straight from disk and you want to see changes without a manual build. It’s your own setting, not the project’s: turning it on doesn’t turn it on for everyone else working on the project.

It’s careful about it: the rebuild only writes when the compiled bundle actually changed (so it won’t churn the file on cosmetic edits), and if the project is momentarily invalid mid-edit (a half-written condition, say) it quietly keeps the last good build rather than failing. The existing stale-bundle check still flags a bundle that has fallen behind.

It’s off by default, and best left off if you commit the .patterc to a lock-based version control system (Perforce or Plastic): rebuilding on every change would keep checking the file out. With git (or none), and the default gitignored patter-dist/ output, it’s free of side effects.

Patterpad checks your spelling as you write: a red wavy underline appears under words it doesn’t know in dialogue and narration (character names and your project word list are left alone). Right-click a flagged word for up to five suggestions, Add to dictionary (it saves to the project word list), or Ignore for the session. Set it up under Project Settings ▸ Dictionary: pick a built-in dictionary (en-US / en-GB) or import your own, and manage your project words. The Spell-check page has the details.

Patterpad keeps itself up to date: Help ▸ Check for Updates… downloads the next version in the background, then asks to relaunch, taking care not to lose unsaved work.

On a Mac, a small helper installs the update once Patterpad has closed. The first time that happens, macOS may show a notice that Patterpad is running in the background. Nothing of Patterpad keeps running. The helper replaces the app and quits within a few seconds, and only runs when an update is waiting.

The helper is listed under System Settings ▸ General ▸ Login Items & Extensions, in Allow in the Background. If you switch it off, updates can’t install when you quit, and you’ll need to fetch new versions from the download page instead.

Open source under the MIT licence, made by .