As Stu Maschwitz’s readers pointed out, there are a few options available currently that allow for screenplay formatting in a plain text document similar to his Screenplay Markdown proposal. One of these is Screenbundle, a TextMate add-on that formats text documents for screenwriting. Stu, however, expresses reservations about this kind of a solution:

All seem to behave like Final Draft in interpreting plain text into a screenplay format. Which is nice, but it’s a one-way street. I’m thinking there might be a place for a plaintext screenplay format with markdown-like syntax, and a WYSIWYG desktop app that works with that format as easily as FDX.

If you ask me, Screenbundle loaded into TextMate isn’t as much of a one way street as Stu lets on. I’d like to do a quick primer on it and show you why I think it’s a great solution that you can dive into right now.

Get Your Geek On

Pick up your thick-rimmed goggles and leave your Neo-Luddism at the door, it’s time to do some nerdy work. First off, we need to get TextMate and Screenbundle up and running smoothly enough for a non-programmer to enjoy it.

Download and install TextMate. Download the newest version of Screenbundle here. Unzip the file, which will reveal “Screenwriting.tmbundle”. Double click Screenwriting.tmbundle TextMate will launch or activate and Screenbundle will be installed.

Now that was easy. So what’s a bundle?

In TextMate, bundles are basically sets of rules that apply to specific document types. For example, the HTML bundle features code snippets, syntax highlighting rules and preview windows previews that apply only to HTML documents. You can find all of the installed bundles, including your newly minted copy of Screenbundle, under the Bundles menu. Screenbundle appears there as “Screenwriting”.

Just Start

Now that we have everything set up, let’s start a script. Open a new, blank TextMate document. By default, new documents are plain text, but we want to change the language of the document. To do this, simply look to the bottom of your window and find the drop-down menu that has an L (for language!) and the words Plain Text.

Click it, and up will come all of your languages options. Select “Screenplay”. Nothing should change in the document; what you’ve done is told TextMate to recognize screenwriting syntax. From there, you can start to do write a screenplay like you’re probably already used to.

Your first line is going to be a slugline, or a scene heading. “int. house - night” should be good enough. Hit return and voila, the line flips to all caps and changes color. Next up is action text, which you type like normal paragraphs. Hitting tab on a new line after action or slug moves the cursor 4 tab spaces over for your character line. Hit return again and you’re set for dialogue, which is 2 tabs. Ending a scene is equally simple, just type “cut to:” or “fade to:” on a new line and hit return. That line will be moved across the screen and TextMate will be ready for a new scene.

Some of the niceties of Final Draft and other apps are still present. Screenbundle is able to remember characters and locations. Start up a conversation between two characters and it can auto-fill names back and forth. Every scene you write will now be listed in a drop-down on the bottom bar of your TextMate window. Click on a scene’s slugline and your cursor will jump to it in the document. All of this is happening in a plain text document with no markup.1

On the Road

One of the most valuable bits of Screenbundle’s documentation is its explanation of what’s going on behind the scenes. To me, this is reminiscent of learning how to bang out a screenplay on a typewriter[^2]; useful in a pinch and fun to keep in the memory banks. For screenbundle, it’s all about the tab key. I’ll shorten the basic syntax:

Any text editor on any platform with a tab key can now work in this screenplay format. I’m a fan of iOS, where there are many (many, many) text editing options. My preferred text editor of late is Daedalus Touch, which luckily just added a tab key to its extended keyboard. Other options are WriteRoom and Nebulous Notes. I recommend beginning your scripts in TextMate first, at least when out with Screenbundle. That way you’ll have at least a visual reference as to where your tabs should land.

My preferred iOS text editor of late is Daedalus Touch, which luckily just added a tab key to its extended keyboard. Other options are WriteRoom and Nebulous Notes. I recommend beginning your scripts in TextMate first, at least when out with Screenbundle. That way you’ll have at least a visual reference as to where your tabs should land.

Screenbundle’s documentation includes a guide to using the tab key on your text documents. Here’s what it basically comes down to:

Slugline: Begins with “INT.”, “EXT.”, “I/E.” OR consists of all capitol letters.

Action: Any line that doesn’t start with a tab and is not a Slugline or Left-Transition.

Characters: 4 tabs.

Parenthetical: 3 tabs and begins & ends with parenthesis.

Dialogue: 2 tabs.

Transitions: 10 tabs. This isn’t as fast as typing straight into TextMate, but it’s a start.

Output and Delivery

Eventually, you’re going to have to get your screenplay to look like a standard screenplay. From within TextMate you can load a very good looking screenplay preview. Here’s a screen grab of the first page of The Social Network in a TextMate with a preview window loaded next to it. Click them for a closer look.

This forces you to treat writing and proof-reading as two separate tasks. Final Draft and other applications adhere to the page paradigm (which I’m not so fond of) by keeping you aware of the current page the whole time. You are working on something that looks like a finished product. The creative process is a bit kludgier than that. Sometimes it helps to make a mess.

Luckily, if you do want to know what page you are on, Screenbundle has a handy counter that will tell you the current page based on where you are in your document. I like that you can check the current page instead of being made aware of it constantly by the application.

The best way to get your script ready for delivery, in my opinion, is to bring it into Final Draft, which can open .txt files and convert them to script formatting. Screenbundle allows you to send the current script in Final Draft, but only to Final Draft 7. There is a way to modify the code to allow it to open in Final Draft 8, but the easiest method is to simply save the script as a .txt file and open it in FD.

The other option is to make a PDF straight out of TextMate, which is only sort of possible. To do this you’ll need an install of Prince. The bad problem is that not only is Prince a somewhat advanced install, but the free version of it puts a watermark in the corner of every page. To remove it, you need to purchase a Prince license, which is $500, not even close to feasible.

Versus

You might be asking at this point “Why would I use Screenbundle instead of Final Draft?” The real answer is that in order to have a complete screenplay workflow, you’re going to need a copy of Final Draft, no matter what application you want to write in. Unfortunately, it’s still an industry standard, so if you’re passing scripts around, you can’t go without it. Besides, Final Draft is a killer editing and organization application. For writing, it’s not always the best choice.

That’s where Screenbundle comes in. It makes the process of creating new work that much simpler by making it usable on more devices. Plus, part of the fun of TextMate is that you can tweak it to your hearts content. You can change the colors of text highlights, pick whatever font you like2 and do about a million other geeky things3. It sounds like things are advancing on Screenplay Markdown, but until someone implements the new syntax in an actual application, Screenbundle provides a great plain text script writing experience that is available now.