Table of Contents
How to Build
Building is how the world grows: you dig new rooms, describe them, and open them to players. These commands need a builder role: worldbuilder or implementor (build anywhere), or zonebuilder (build only in zones you've been assigned). Ask an admin to grant one.
In-game, the authoritative lists are always help room and help zone (and help topics shows which topics you can see). This page mirrors them.
Closed and open rooms
A newly dug room is born closed — under construction. A closed room can't be entered by players through its exits, and its look carries a [closed] note. Builders who can edit a room may simply walk into it (and reach it with goto) to keep working. When it's ready, room open (alias room commit) opens it to players; room close (alias room draft) closes it again for maintenance.
Digging rooms
- dig dir — dig a new, unnamed room to the north/south/east/west and step in.
- dig dir name — open a passage to an existing room called name, or dig a new one with that name and step in.
- dig dir id — open a passage to the existing room with that id.
- dig new name — a room with no exits (also: dig - / dig . / dig noexit).
Digging a new room makes a two-way passage (the way back is dug for you) and steps you through; the room inherits the zone you dug from. Linking to an existing room leaves you put and only adds the exit (the return exit too, if that room's facing slot is free).
Editing the current room
- room name name — name the room
- room desc text — set the description (what players read on look)
- room keywords words — alternate names for the room, so goto word reaches it
- room info — its id, zone, exits (with target ids), and open/closed state
- room open / room close — open to players, or close for maintenance
- room delete id — delete a closed room (asks you to confirm; it goes to trash and inbound exits are stripped)
Editing exits directly
dig always makes a two-way passage. To set or clear a single (one-way) exit, edit it directly — like every room command, on the room you stand in:
- room exit dir id|name — point this room's dir exit at a room
- room noexit dir — remove this room's dir exit
These are one-way, so the far room is untouched. To fix the matching exit, goto that room and edit it there.
An exit can also be unlisted: a secret exit you can still walk if you know to, or a hidden exit sealed until a lever opens it. Both are set with room-data flags – see Advanced Building (Hidden exits and Secret exits).
Getting around
goto teleports you straight to a room — handy for editing the far end of a one-way exit, or any room you can build in.
- goto id — by number
- goto name — by name (or a room keyword), preferring your current zone
- goto name zone — prefer a given zone (by name or id)
You can only goto (and walk into closed) rooms in zones you're allowed to build in.
Zones
Zones group rooms into areas — a town, a forest, a dungeon. Every room belongs to exactly one zone. A zone has an internal name (used in commands) and optional display info shown to players.
- zone create name — create a new zone (internal name; tells you its id)
- zone list (or the zones command) — list all zones
- rooms [zone] — list rooms in the current zone, or a named/numbered one
- room zone id|name — move the current room into a zone
- zone name display — set the zone's display name (shown as internal - Display)
- zone desc text — set the zone's description
- zone suggested lo hi — set the zone's suggested level range
The zones list reads: #id internal - Display name - Description (lo-hi) — each part shown only once you've set it.
Items and creatures
Builders also stock the world with items (a sword, a lamp, a sign) and mobiles (creatures and NPCs). Those have their own guides:
- All about Items — create, describe, keyword, equip, and blueprint items (the item factory)
- All about Mobiles — create creatures, give them data, and simple reactions
- Shops — turn a mobile into a shopkeeper that buys and sells
Zones also reset about once an hour, repopulating any registered spawns; the zone setspawn (mobiles) and zone setitem (items) commands live in those two guides.
A worked example
dig north room name Kitchen room desc A cramped kitchen. A fan turns slowly on the ceiling and the linoleum squeaks underfoot. room keywords kitchen cook room info room open
You dug a room north, named, described and keyworded it, checked it over, and opened it to players. Walk south to come back — that return exit was made for you.
Custom Commands
A very common thing you want to do is add a way to create a custom command; either to show a custom flavortext or to cause something to happen. This section will detail ways that you can create a custom command such as “move painting” or “assemble telescope”.
A command on the room itself -- **cmd_//slug//**
The simplest custom command needs no item at all – you hang it on the room. A room-data field named cmd_slug defines a command, where slug is exactly what the player types with spaces turned into underscores. Its value is an action followed by its text; for now the one action is exa, which prints the text just like an examine (same colour and all):
room data cmd_examine_keyhole exa You examine the keyhole. It is unusually small. It must require an unusually small key!
Now typing examine keyhole in that room prints that line. A room command pre-empts everything – it fires even when the word is normally a built-in (examine, look) or a live exit direction, and only the room command runs. It can only ever trigger on a command you defined, so nothing else in the room changes.
To print more than one line, add numbered continuations – cmd_slug_2, _3, … – which run in order right after the first:
room data cmd_examine_keyhole exa The keyhole is unusually small. room data cmd_examine_keyhole_2 exa It must require an unusually small key!
The slug is the whole typed phrase. “examine keyhole” is cmd_examine_keyhole, a bare “listen” is cmd_listen, “pull lever” is cmd_pull_lever; matching ignores case and extra spaces. A room command only prints (the exa action) – when you want a command that actually does something (reveal a thing, open a way), reach for an object verb hook next.
Verbs on an object -- **do //word// to //thing//**
A custom command can also live on an item – a prop – and there it can do more than print. Give the prop a verb hook and any player who types “word item” triggers it. For example, a rug that hides a trapdoor:
item rug data verb_move A trapdoor is revealed beneath the rug! item rug data verb_move_reveal trapdoor
Now move rug prints that line and clears the invisible flag on the trapdoor sibling, so it appears in the room. The same shape gives you verb_word_toggle (flip a thing hidden ↔ shown), verb_word_exit dir (slide open a sealed passage out of the room), and more. These hooks – with locks, keys, openables, object exits, and the complete rug-trapdoor-cellar build – are covered in full in Advanced Building (Verb hooks and A worked example: a rug, a trapdoor, a cellar).
Commands that reach across a zone -- flags and gates
A verb hook fires in one room. When a custom command should reach across an area – light three braziers scattered through the sewers and a stone door grinds open somewhere else – the prop raises a flag on the shared zone blackboard, and a gate room elsewhere watches for the right combination:
item brazier data verb_light_zoneflag brazier_a
Lighting each brazier sets its own flag (one-way, and cleared on a zone reset so the puzzle re-arms); the gate room lists the flags it needs and un-seals a hidden exit once they are all raised. The full recipe – flags, requiring a tool in hand, and building the gate – is in Advanced Building (Multi-room puzzles: zone flags and gates).
Builder help topics
- help room — dig / room / exit / goto
- help zone — the zone commands
- help item and help mob — items and creatures
- help worldbuilder and help implementor — your role's overview
