Scripting Guide v2

A LongStories script is a simple text document. You write what the viewer sees and what they hear, and LongStories turns it into a finished video.


Here is a complete script:


## Scene 1: The Bakery (8s)

Early morning. Fog drifts past the windows of @Bakery.
@Narrator: "Every morning, Mira was first in line."
@Mira: "One of everything, please." {lipsync}

## Scene 2: The Golden Loaf (6s)

@Grandpa slides @GoldenLoaf across the counter and winks.
@Grandpa: "Baked this one just for you."

## Reusable Elements

Characters: @Mira, @Grandpa
Locations: @Bakery
Objects: @GoldenLoaf


That's everything a script can contain — four ingredients:


  1. Scenes — headings that split the story into moments
  2. Spoken lines — a name, a colon, and words in quotes
  3. Visuals — plain lines describing what's on screen
  4. The Reusable Elements list — your cast, at the very end


The rest of this guide walks through each one, using the same bakery script.



1. Scenes


Start every scene with a heading: ##, a name, and how many seconds it should last.


## Scene 1: The Bakery (8s)


  • The name is just for you — call it anything.
  • The number in parentheses is the scene's length. Use one exact number: (8s), not (6-8s).


Want more control? Split a scene into shots with ### headings. Each shot is one camera moment:


## Scene 1: The Bakery (8s)

### Shot 1: The street (3s)
Fog drifts past the windows of @Bakery.

### Shot 2: Mira arrives (5s)
@Mira: "One of everything, please."


Shots are optional — if you skip them, LongStories chooses the camera work for you.



2. Spoken lines


Anything the viewer should hear is a name, a colon, and the words in quotes — all on one line:


@Mira: "One of everything, please."
@Narrator: "Every morning, Mira was first in line."


Three rules:


  • Names are one word, starting with @ and a capital letter. Join longer names together: @GirlMaria, @ProfessorTime.
  • Only the quoted words are spoken. The name picks the voice — so spell it the same way every time.
  • For narration, use @Narrator. It's always available; you never need to set it up.


Common mistakes:


Mira: One of everything.            ✗ missing @ and quotes
@Girl Maria: "Hello!" ✗ name has a space — write @GirlMaria
@Mira and @Grandpa: "Morning!" ✗ one speaker per line
@Mira:
"One of everything." ✗ quotes must be on the same line



3. Visuals


Anything the viewer should see is a plain line — no name, no quotes:


@Grandpa slides @GoldenLoaf across the counter and winks.


Plain lines are never read aloud. They tell LongStories what to show: who's there, where they are, what happens.


  • Use names, not pronouns: "Mira opens the door", not "She opens the door".
  • No camera jargon needed. "Close on the loaf, still steaming" works perfectly.
  • A scene or shot with only visuals and no spoken lines is a silent moment — great for pauses and transitions. Give it its own shot to control the timing:


### Shot 3 (3s)
Mira breathes in the smell of fresh bread.



4. The Reusable Elements list


End every script with this list. It tells LongStories which things should look the same every time they appear — your characters, places, and important props.


## Reusable Elements

Characters: @Mira, @Grandpa
Locations: @Bakery
Objects: @GoldenLoaf


  • Copy this template and fill in your own @names.
  • Every character who speaks must be under Characters. (@Narrator is built in — don't list it.)
  • Empty category? Write (none): for example Objects: (none)
  • This list is always the last thing in the script.


💡 In the story itself, put @ in front of these things when they're on screen: @Mira waves from @Bakery. That's how LongStories knows to keep them consistent from shot to shot. Things that appear once and don't matter later don't need an @.



Nice extras


Lip sync. Add {lipsync} after a spoken line to make the character's mouth move on camera:


@Mira: "One of everything, please." {lipsync}


Sound effects. Add {sfx="..."} to any moment:


The oven door creaks open. {sfx="metal creak"}


These two tags are the only ones. Everything else — camera, mood, lighting — you simply describe in words.


One sentence across two shots. End the first part with ... and start the next with ..., same speaker. It's voiced as one smooth sentence while the picture cuts:


### Shot 1 (2s)
@Narrator: "Far beyond the mountains..."

### Shot 2 (3s)
@Narrator: "...the city was waking up."



How many words fit?


Speech takes about 1.5 words per second. So:


  • A (5s) scene fits one short sentence (~8 words).
  • A 30-second video fits about 35–45 spoken words.
  • A 60-second video fits about 80–95 spoken words.


When in doubt, write less. A few moments that land beat many that rush by.



Used LongStories before?


The script format changed. You don't need to convert anything by hand — paste your old script and LongStories rewrites it in the new format for you, keeping every spoken word. But if you're curious, here's what changed:


Old                                      New
Girl Maria: Thanks! → @GirlMaria: "Thanks!"
The sun rises. (read aloud) → @Narrator: "The sun rises."
[visual beat: a bird flies | 4s] → ### Shot 2 (4s)
A bird flies over the valley.
Wait<break time="1s"/>for it. → a short silent shot instead


The biggest change: plain lines used to be read aloud as narration. Now plain lines are visuals, and narration is always @Narrator: "..." — so nothing gets spoken by accident.



Checklist before you generate


  • Script starts with ## Scene 1 and each scene has an exact time like (8s)
  • Every spoken line looks like @Name: "words" — one line, one speaker
  • Names are single words: @GirlMaria
  • Plain lines describe what's on screen (they won't be read aloud)
  • The script ends with the Reusable Elements list, and every speaker is under Characters


Happy scripting! 🎬

Updated on: 08/07/2026

Was this article helpful?

Share your feedback

Cancel

Thank you!