How to write a comic script

A comic script tells the artist where the scene is, what happens in each panel, and what everyone says.

This format keeps those three apart. It’s a plain text file, so any text editor can open it. I use it for every Sahtu Press comic, and this page covers all of it.

Start a comic script

The three things you’ll type most

# EXT. NIGHT MARKET - NIGHT

A # starts a new page.

I usually write a scene heading after it to keep my place, but you don’t have to. A bare # is labelled PAGE 1, PAGE 2, and so on.

## Noi ducks under a table.

A ## starts a panel.

Write the description after it. Panels are numbered for you, so don’t type “Panel 6” by hand. If you add a panel between two others later, the ones after it are renumbered.

You can name a panel yourself by bolding the label, ## **PANEL 1:** Noi ducks under a table., though most pages don’t need one and I leave them out.

NOI:	Sorry! Borrowing your floor.

A name in ALL CAPS followed by a colon starts a balloon.

Everything after the colon goes in that balloon, and so do the lines underneath it, until another name or the next panel. The gap after the colon is a tab, which lines the dialogue up in a column while you write. In the editor, a space typed after the colon turns into the tab.

Sound effects and captions

I write captions and sound effects the same way as dialogue, with SFX or CAPTION in place of a name.

What you type

## Behind her, two GUARDS shove past a fruit stall.

SFX:	KRAK

GUARD 1 (BURST):	Stop her!

CAPTION:	Three minutes before the lanterns go out.

What you get

Behind her, two GUARDS shove past a fruit stall.

SFX: KRAK

GUARD 1 (BURST): Stop her!

CAPTION: Three minutes before the lanterns go out.

The sound effect is set in bold, widely spaced letters, the caption goes in a box, and dialogue stays plain. The word before the colon decides how the line is lettered.

Any name works before the colon, so radio chatter and narration are written the same way.

When the letterer needs to know how it sounds

Sometimes a line is whispered, shouted or thought. Put that in brackets after the name.

JANIDA (SMALL):	Half taken.

The ones I use most:

  • (BURST) for a shout, shaped to break out of the balloon.
  • (SMALL) for a line lettered quieter than the rest.
  • (THOUGHT) for a thought balloon.
  • (OFF) for somebody speaking from outside the panel.
  • (LINKED) for two balloons joined by a tail, read as one breath.

Whatever you put in the brackets goes through to the letterer, so (SUNG) and (THROUGH THE DOOR) work too. I only add one when the letterer needs it. If every line has one, the letterer can’t tell which ones matter.

Write it in caps, like the name. A lowercase (small) ends up in the panel description instead of the balloon, with no warning.

Panel size and layout keywords

When a panel needs a particular size or shape, start its description with a keyword in caps.

  • Size and layout. SPLASH, BIG PANEL, WIDE, TALL PANEL, THIN PANEL, SLIVER, TIER, TIER 1, INSET, ACROSS, BORDERLESS, BLEED, FULL BLEED, BROKEN BORDER
  • Storytelling. FLASHBACK, MONTAGE, REPEAT PANEL, SILENT, DETAIL

Consecutive TIER. panels share a row side by side, and numbered tiers like TIER 1. and TIER 2. stack rows into a grid. An INSET (BOTTOM, RIGHT). sits over the panel before it rather than taking a row of its own.

I only use a keyword when the story depends on it, and leave the rest of the layout to the artist. How the layout keywords work on the page is in splashes, spreads, tiers, and insets, and what to write after the keyword is in how to write comic panel descriptions.

Each keyword ends with a period, not a colon, so it isn’t read as someone speaking.

Two-page spreads

A spread runs across two facing pages. Add [SPREAD] to the page heading, then start with SPLASH SPREAD. for a single image across both pages, or start a single panel with ACROSS. when it crosses the fold in the middle.

What you type

# EXT. LIGHTHOUSE ROCK - NIGHT [SPREAD]

## SPLASH SPREAD. FULL BLEED. The beam cuts the storm in half.

SFX:	VMMMMM

## INSET (far right). BROKEN BORDER. Keo leans out of the frame.

KEO:	Still here! Both of us!

What you get

EXT. LIGHTHOUSE ROCK - NIGHT [SPREAD]

SPLASH SPREAD. FULL BLEED. The beam cuts the storm in half.

SFX: VMMMMM

INSET (far right). BROKEN BORDER. Keo leans out of the frame.

KEO: Still here! Both of us!

A spread uses two pages of the issue, so it’s numbered as two (PAGES 16–17, with the next page at 18). It should start on an even, left-hand page, so turning the page doesn’t split it in half. How spreads and panel counts fit into planning an issue is in comic script length.

Notes to yourself

Put notes to yourself in square brackets.

What you type

[9-panel grid page. Even beats, metronome pacing.]

What you get

[9-panel grid page. Even beats, metronome pacing.]

You can see notes in your file, but they stay out of the finished comic. Mine are usually the reason behind a page, or a question I haven’t settled yet.

Keys that save typing

These work while you’re writing a comic.

Tab
The gap between a name and its words. A space typed straight after the colon does the same. Shift + Tab still moves focus out.
Alt + 1
Turn the current line into a page.
Alt + 2
Turn the current line into a panel.
Alt + 3
Pick who speaks: SFX, a caption, or a name already in the script. It types the name, the colon and the tab for you.

The cover

Everything you write before the first page becomes the cover.

Title: Moon’s Purpose
Series: Vongfai
Issue: 1
Writer: Nor Sanavongsay
Artist:
Letterer:

Series, Issue, Writer, Author, Artist, Illustrator, Penciller, Inker, Colorist, Letterer, Designer, Cover, Translator, Editor, Contact, Date, Draft and Copyright are all recognised.

I leave roles I haven’t filled yet blank, as above. A blank field stays off the cover until it has a name.

Is there a standard comic script format?

Screenplays have one standard layout because a studio reads hundreds of them a year. A comic script is written for one artist and one letterer, so writers each made their own templates in word processors.

Whatever it looks like, almost every comic script is a full script with the same three parts: the page, the panel with its description, and the balloons inside it in reading order. The older plot-first method, where the artist gets a summary to break into panels and the dialogue is written after the art comes back, is now rare outside a few publishers.

Plain Markdown keeps those three parts separate without a word processor’s tabs and auto-numbering getting in the way. The file opens in any text editor, and when someone on the book needs every page, panel, and balloon numbered in the text itself, you can export the numbered copy from the preview.