World Development
A world is a folder of plain text, pictures and sounds. Nothing in it is a program: the game reads the tables, runs the script and draws the art. Anyone with a text editor can build one, and the builder tools are in every copy of the game.
These pages describe worlds as ReBreather loads them. They were written from the game's own source, so where an old write-up and these pages disagree, trust these. Worlds written for the original client load unchanged; the few places where ReBreather is stricter or more forgiving are marked on the Table Reference and Quest Script pages.
Where a world lives
Every world is a folder under worlds/ inside the game folder. The folder's name is the world's
name (case does not matter), and the installer knows a folder is a world by the world.ini inside it.
Heroes who play the world are saved under save/<world>/, not in the world folder, so
reinstalling a world never touches anyone's hero.
| File or folder | What it holds |
|---|---|
quest.txt | The script: scenes, dialog and every data table. It can pull in other files with #include. |
monsters.txt, items.txt, spells.txt, maps.txt, levels.txt, groups.txt, trophies.txt | By tradition each table sits in its own file and quest.txt includes them. One big file works just as well. |
missions.ini | The missions the world offers. |
music.ini | Which tune plays on which map (see Music and Sound). |
config.ini | World settings such as the gold a new hero starts with. Listed on the Table Reference page. |
gender.ini | Optional words that change with the hero's gender, read by the g. cookies. |
world.ini, world.ver | The world's identity and its published version number. The version tool writes world.ver. |
maps/ | Map pictures and, for each map, its terrain (.ter), links (.obl) and monster placement (.mon) files. |
scenes/ | Scene backgrounds. |
monsters/ | Monster film strips. |
art/ | Item, spell and trophy sheets that override the game's own. |
midi/, sfx/ | Music and sound effects. |
HTML/ | Pages the script can show with its HTML command. |
How the tables are written
Inside quest.txt a table opens with a line such as +ITEMS and closes with
-ITEMS. Between them, one line is one row, with the columns separated by commas (spaces work too).
Put quotes round any column that contains a comma or a space. A line that begins with a semicolon is a comment.
There are sixteen sections: CREDITS, STORY, TERRAINS, MAPS, TOKENS, ELEMENTS, HANDS, ITEMS, TROPHIES, SPELLS,
MONSTERS, GROUPS, LEVELS, SCENES, EQUIP and THEMES. The Table Reference lists
every column of every one.
Numbers are read the way C reads them: the leading digits count and anything else reads as zero. Several
columns pack more than one number into a dotted field, such as 12.3, and a missing part reads as
zero as well.
The builder's tools
Building happens on the Solo Channel, where no server is involved. From the Solo play window choose Create Your Own World: a short wizard asks for a name and a map picture and lays down the folder. From then on you edit the files and use these chat commands inside the game:
| Command | What it does |
|---|---|
/q quest.txt | Opens a world file in the quest editor (any file name works, so /q items.txt too). |
/reload | Re-reads the whole world without leaving it. |
/funpak | Shows the load log: every warning the loader printed, with the line it objected to. |
/props | Opens the property editor for monsters, items or spells (/props 1 starts on items, /props 2 on spells). |
| Link Editor | Right-click a map in the world editor to place links, name them, pick their scene, group, weather and effects. |
/stepper | Single-steps the quest script with breakpoints, a line at a time. |
/scene 12 | Jumps your hero straight into scene 12. |
/give I5.3, /take T7 | Hands things to your test hero or takes them away, using the same letter codes as the script. |
/fight 40 | Starts a fight with monster 40 (an ally with /fight -40). |
/battle, /class 3, /doldrum | Balance reports: class against class, one class's figures, and the experience curve against monster kills. |
/dist -1, /coverage | Where every monster is placed, and which spell effects the world uses. |
/version | Sets the world's version and builds the zip to publish (see Publishing). |
Several of these are cheat codes and mark the hero that uses them. The world builder's own test hero is born marked, so build with that one, not with a hero you play online. The Cheat Codes page explains the mark.
Reading order
- Maps, Scenes and Links: the shape of a world.
- Heroes and Monsters, Items and Spells, Trophies: the things in it.
- The Quest Script and Cookies: making it do something.
- Telling a Story: keeping a branching plot sane.
- Missions, Music and Sound, Skins and Art: polish.
- Publishing a World: getting it to players.