Writing a script in plain text

A script can be ordinary text, not locked inside one program’s file: nothing in it but characters and line breaks.

The symbols that format it, like # for a page or a name in caps, are typed on the keyboard, so any text editor opens it. They’re conventions people used to type scripts before there was software to format them. Here’s what they are, and why the file is useful.

Start a comic script Start a screenplay

What plain text means

A plain text file holds characters and line breaks. There’s no hidden layer underneath describing fonts or margins, so there’s nothing in it to be lost or misread by a program that has never seen it before.

What it carries instead is a convention. If everyone agrees that a line starting with INT. is a scene heading, then that line is a scene heading, and anything that knows the convention sets it correctly.

Fountain and Markdown are two such conventions. The screenplay ones can seem arbitrary until you know where they came from: the indents were tab stops on a typewriter, and the page-a-minute rule is an accident of how much Courier fits on a sheet of paper.

Markdown, briefly

Markdown is the older and more general of the two, written for the web and now used almost everywhere text gets typed. Its symbols are ones people were already using in email: # for a heading, asterisks for emphasis, a blank line for a new paragraph.

Comic scripts here are Markdown, because a comic script is mostly a hierarchy and that’s what Markdown is good at. A page is a heading, a panel is a heading below it, and everything under a panel belongs to it.

What you type

# EXT. RIVER ROAD - DAWN

## WIDE. Mist sitting on the water.

CAPTION:	The bus leaves before the sun does.

It reads fine even before it’s formatted. Every symbol is in the comic script format guide.

Fountain, briefly

Fountain does the same job for screenplays with almost no symbols, because the screenplay layout was standard long before Fountain existed. A line in caps with text beneath it is somebody speaking, a line starting with INT. is a scene heading, and everything else is action.

What you type

INT. NOODLE STALL - NIGHT

Steam off the pots. JANIDA counts coins onto the counter.

JANIDA
Two more and I stop.

What you get

INT. NOODLE STALL - NIGHT
 
Steam off the pots. JANIDA counts coins onto the counter.
 
JANIDA
Two more and I stop.

The indents below are worked out from how each line above is typed. Full syntax in the Fountain format guide.

What the file gives you

It outlives the software
A script written in plain text in 1995 opens today, in anything. The file format is what makes that work, whatever program you use.
You can see what changed
Two drafts compare line by line, in version control or any diff tool, so you can find the scene you cut and get it back. Document formats compare badly, since their markup shifts along with the words.
It holds what you typed
No autocorrect on a character’s name, no style drifting on one page, no template underneath it.
It goes everywhere
Email it, put it in a repository, paste it into a message, open it on a phone. Every tool that handles text handles it.
It’s small
A feature-length screenplay is well under a hundred kilobytes. Dozens of drafts fit in the space of one photo.

What you give up

There are some downsides.

  • A few symbols to learn. Barely any for a screenplay. A comic script asks you to remember that # is a page and ## is a panel.
  • Some workflows want a particular file. A production office may ask for a format that isn’t this one. Most screenwriting software imports Fountain, so you can get there, but it’s an extra step.
  • No custom formatting. If you want a page to look a particular way for its own sake, plain text gives you the standard layout instead.

For most writing, I’m happy with that trade. You’re typing the script either way, and this way you can still open the file in twenty years.

Where the formatting comes from

Something still has to read the symbols and lay out the page. Here that happens while you type: the lines format themselves as you go, and the pages break at the standard length, so the count you see is the count that prints.

Your file holds exactly the characters you typed, with the symbols where you put them. Page and panel numbers are worked out when they’re needed, so a script you open a year from now reads the way you left it.