Open Markup Language For Interactive Fiction

Write Text Adventures
In Plain Text

Cave is human-readable, software-agnostic, and future-proof. Your stories stay yours forever — no lock-in, no proprietary formats, just prose.

Try CaveDraft Editor View Syntax
See It In Action — Plain Text Becomes Playable Adventure
Cave Source
# Cavern Entrance

You stand at the mouth of a dark cave.
Cold air flows outward. A RUSTY LANTERN
hangs from a hook by the entrance.

[take] lantern
  You lift the lantern. It feels cold
  but the wick looks dry enough.
  [+lantern]

[examine] darkness
  You'll need light to go further.

north <-> Main Chamber {if has:lantern}
Rendered Output
Cavern Entrance

You stand at the mouth of a dark cave. Cold air flows outward. A rusty lantern hangs from a hook by the entrance.

Available Actions:
> take lantern
> examine darkness
> go north (need lantern)

Everything You Need To Write

Professional Tools, Zero Complexity

Prose-First Writing

Your adventure reads like a story, not code. Room descriptions are paragraphs. Actions are natural. Anyone can read a .cave file and understand the game.

Plain Text Forever

Write in any editor — Notepad, VS Code, iA Writer. No databases, no binary formats. Open your files in 2050 with any text editor.

Cascade System

Verb synonyms live in separate .cavelib files. "Take", "grab", "pick up" defined once, reused everywhere. Your story stays clean.

Reusable Libraries

Import standard-en for English verbs. Create custom libraries for genres. Share with the community. Never define synonyms twice.

Export Anywhere

Compile to standalone HTML games. Share a single file. Play in any browser. No servers, no accounts, no dependencies.

Full Parser Support

Directional navigation, inventory management, conditional locks, NPC spawning, random events, nested locations — all in readable syntax.

.cave

Complete adventures. Contains imports, metadata, rooms, actions, and story content. This is your game.

.cavelib

Reusable libraries. Verb synonyms, object aliases, shared arrays. Import into any .cave file with one line.

Cave Syntax In 60 Seconds

It's Just Plain Text With A Few Simple Rules

Full Reference
# Room NameDefine A Location
[verb] targetPlayer Action
[+item] / [-item]Inventory Changes
north <-> KitchenTwo-Way Navigation
{if has:key}...{end}Conditional Content
@import standard-enLoad Verb Library

Ready To Start Writing?

Your Adventure Is Waiting. No Signup, No Downloads, Just Write.

Launch CaveDraft Editor