docs code

Addventure

Write interactive fiction played with pencil, paper, and addition.

Try It Live Build a Game
Act I

The Game

What players experience at the table

Verb + Object = Story

Every verb and every object has a numeric ID. To interact, you add them together. If the sum exists in the potentials list, something happens. No dice, no electronics — just pencil, paper, and imagination.

Verb 51
LOOK
+
Object 951
TERMINAL
=
Sum 1002
ENTRY A-2

The compiler assigns IDs automatically — authors write stories, not spreadsheets.

Try a Turn

Pick a verb, pick a target, and see what happens.

Room Sheet — Control Room
1. Choose a verb
2. Choose a target

A Player's Turn

Pick a Verb

Choose an action from the verb list. LOOK, USE, TAKE — each has a numeric ID.

Pick a Target

Choose an object from the current room sheet or your inventory, or even the room itself.

Add the Numbers

Verb ID + Object ID. Just arithmetic.

Look Up the Sum

Find the result in the potentials list. If it's there, something happens.

Read the Entry

The story ledger has narrative text and physical instructions to update your sheets.

Update & Continue

Cross out old IDs, write new ones. The game state lives on paper.

What Players Get

A compiled game is a printable PDF with four sheet types. Everything you need to play fits in a stack of paper.

Title Page

The game introduction and the potentials list — every valid sum mapped to a ledger entry, the core lookup table for play.

Actions & Inventory

Verb IDs for taking actions. Inventory slots for carried items you collect along the way.

Room Sheets

One per location. Lists every visible object and its ID. Players flip between sheets as they move through the world.

Story Ledger

Numbered narrative entries. Story text with physical instructions: cross out, write in, move items, change rooms.

See it all come together.

Download “The Facility” — Example Game PDF

A complete, printable game. Print it out and play right now.

Finished The Facility? Download the Epilogue

Act II

The Engine

How authors build worlds

Write Games in Plain Text

editing control-room.md
CRATE
+ LOOK: A heavy wooden crate, nailed shut.
+ USE + CROWBAR:
  You pry it open. A keycard glints inside.
  - CRATE -> CRATE__OPEN
    + LOOK: Splintered wood, lid hanging off.
  - KEYCARD -> room
    + LOOK: A small keycard among the splinters.
    + TAKE:
      You pocket the keycard.
      - KEYCARD -> player
  - CROWBAR -> trash

A game is a directory of markdown files. One index.md defines metadata, verbs, and objects. Every other .md file defines rooms.

This snippet defines a crate you can look at and pry open with a crowbar — transforming the crate, revealing a keycard, and consuming the crowbar. All in twelve lines.

Indentation defines hierarchy. Arrows move things: to the player's inventory, into the trash, between rooms, or into new states. The compiler handles the rest.

Build, Print, and Play

One command transforms your scripts into a complete, playable game package.

Input
.md Files
Parse
Script AST
Compile
ID Allocation
Output
Printable PDF

Automatic ID Assignment

The compiler allocates all verb and object IDs automatically. Authors never touch a number — just write interactions and let the engine handle the maths.

State & Transformation

Objects transform between states with OBJECT__STATE syntax. Child interactions inherit automatically.

Cross-Room Cues

Deferred triggers that fire when a player enters a specific room. Build puzzles that span the entire map.

Collision Detection

The compiler validates that no two interactions produce the same sum. If collisions occur, it reallocates IDs automatically.

Easy PDF Output

Generates print-ready PDFs with fillable fields via Typst. Players can write directly in the PDF or print and play with pencil.

Multi-Target Interactions

Combine a verb with two targets — USE + KNIFE + BINDINGS. Wildcards match all room objects for catch-all responses.