A template for writing a film/TV script in screenplay format. This is a mix of the format used by final draft and the official format suggested by the oscars, with some slight changes.
Usage
Before you start please make sure to download and install either the font
Courier
orCourier New
.
#import "@preview/its-scripted:0.1.0": *
#show: screenplay.with()
// creates the title page
#maketitle(
title: "When John met Jane",
authors: "John H. Doh",
date: datetime.today(),
draft: 1,
info: [
John Harrison Doh \
john.doh\@email.com \
2697 Blane Street, Saint Luis, Missouri
]
)
// scenes are divided by headings:
= INT. COFFEE SHOP - DAY
The coffee shop is bustling with people. A soft murmur of conversations fills the air. At a corner table, JANE, late 20s, sits alone, sipping her coffee while staring at her laptop screen. She seems lost in thought.
// dialog can be created using the `dialog` function:
#dialog[
// use sub-headings for character names
== JANE
I just... I just need to finish this.
She types a few words, hesitates, and deletes them. She sighs in frustration.
]
JOHN (30s), dressed casually, walks into the coffee shop. He scans the room for a place to sit. His eyes land on the empty seat across from Jane. He approaches her table.
#dialog[
== JOHN
// use the `parenthetical` for parentheticals
#parenthetical[Hesitant]
Can I seat here?
]
#dialog[
== JANE
Oh, um... sure.
]
Suddenly a PTERODACTYL flies through the coffee-shop window.
// pass multiple parameters to the `dialog` function for multiple pieces of dialog happening at once
#dialog[
== JOHN
Ahh! What's that!
][
== JANE
What the hell?
]
// use the close functions for act/script endings
#close[TO BE CONTINUED]
Documentation
Check docs.md for the full documentation.
You can also read example.typ for an example screenplay (the first 2 pages of jurassic park).
Improvements
This library is still pre-1.0, so the look and fill of it still isn’t finalized. If you have any suggestions for improvements to make screenplays look more professional of readable, or you found some issue/bug/missing feature - please create an issue on the github and, if you are able to, please consider contributing.
License
(this isn’t legal advice go read the GNU docs for more information)
This library uses the GNU Lesser General Public License (version 3), this essentially means that you can use the library with no restriction, but if you want to fork the project you must maintain the same license.
Notice that we are talking about the GNU Lesser General Public License, and not the ordinary GNU General Public License. This means that, unlike if we were using GPL, if you want to use this library as part of another project you are not required for that project to be licensed under GPL too.
All example screenplays were lovingly generated by Chat GPT, may their quality serve to show you that you could never be replaced by a robot.