Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>StoryModeNew to Visual Studio Code? Get it now.
StoryMode

StoryMode

Yuxi Labs

|
12 installs
| (0) | Free
Author stories for video-games in plain text and preview / print them.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info
storymode logo

Build Status Latest Release Open Issues Pull Requests Last Commit Contributors Version

StoryMode

StoryMode is a Visual Studio Code extension that turns VS Code into a clean, purpose-built writing studio for story scripts used in video-games. Write scenes in plain text with the Narrative DSL, collect them with a single .story manifest, preview the screenplay layout in-editor, and export a print-perfect PDF – all without ever leaving VS Code.

A screenshot of a .narrative file.

──────────────────────────────────────────────────────────────────────── FEATURES ────────────────────────────────────────────────────────────────────────

• Manifest-driven projects – one <title>.story file lists every .narrative arc in playback order.

• Strict, readable headers
– ::story: & ::scene: declarations, plus rich @title, @location, @time, @characters, etc.

• Precision syntax highlighting for keys and values, anchors, cues, dialogue headers, comments.

• Snippets & IntelliSense for scene skeletons, dialogue blocks, metadata tags and common cues.

• Hover tool-tips – every recognised @key shows an in-editor description.

• Live Preview – render the whole script as a paginated screenplay in a side panel.

• Print Script – one-click PDF export, including cover page, table of contents, per-arc page breaks and an End of Document page.

• Download-once Chromium – headless Chrome (≈ 40 MB) is fetched once and cached for all future PDF jobs.

• Verbose Output panel – real-time logs for parsing, preview refresh, PDF progress and Chromium management.

──────────────────────────────────────────────────────────────────────── QUICK START ────────────────────────────────────────────────────────────────────────

1 Install StoryMode from the VS Code Marketplace.
2 Create a file intro.narrative and start a scene:

::scene: intro_arrival
@title:  Arrival
@location: Forest Edge
@characters: Alex, Guide

[[ Alex ]]
"Is anyone out here?."

^^ Leaves rustle in the wind.

3 Create the project manifest echoes-of-light.story:

::story: echoes_of_light
@title: Echoes of Light
@authors: Morgan Yu
@start: intro.narrative

files:
- intro.narrative
- main.narrative
- outro.narrative

4 Press Ctrl ⇧ P / Cmd ⇧ P and run
• StoryMode: Preview Story – opens the formatted script.
• StoryMode: Print Story – exports a ready-to-send PDF.

──────────────────────────────────────────────────────────────────────── PROJECT LAYOUT ────────────────────────────────────────────────────────────────────────

echoes-of-light.story ← manifest / global metadata ├── intro.narrative ← arc: intro ├── main.narrative ← arc: main └── outro.narrative ← arc: outro

Each .narrative file may hold one or more scenes:

::scene: main_chase
@title:  The Chase
@location: Old City Rooftops
@time:    Night

[[ Hunter ]]
>>>sfx: [crossbow_bolt_01]
"End of the line!."

──────────────────────────────────────────────────────────────────────── NARRATIVE DSL – CHEAT SHEET ────────────────────────────────────────────────────────────────────────

Declaration lines

::story: id – manifest header (one per project)
::scene: id – scene start
::end: {{ id }} – scene end (linear)
::end: {{ from }} -> {{ to }} – optional jump to a different arc file

Metadata

@key: value – title, location, time, characters, tone, mood…
custom keys are preserved by the compiler.

Body blocks

[[ Character ]] – dialogue header
^^ action line – stage direction / narration
>>>sfx: [alarm_01] – cue (sfx | music | vfx | camera | event)
"Spoken line." – dialogue text
-> target_scene – hard jump at runtime
# comment – ignored in output
/// writer note /// – prints as footnote in PDF

Anchors

Any declaration ID becomes an anchor: reference it elsewhere as {{ id }}.

──────────────────────────────────────────────────────────────────────── EXAMPLES ────────────────────────────────────────────────────────────────────────

Full working samples live in docs/examples/ – including a manifest, three arcs, cues, jumps and final PDF export.

──────────────────────────────────────────────────────────────────────── CONTRIBUTING & LICENSE ────────────────────────────────────────────────────────────────────────

Pull requests are welcome – read CONTRIBUTING.md.
Code licensed under the Yuxi Labs License (see LICENSE.md).

GitHub ▶ https://github.com/Yuxi-Labs/storymode

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft