Skip to content

OLC Rooms

Kit Oliynyk edited this page Nov 3, 2026 · 3 revisions

TL;DR: redit edits a room prototype in place. Exits are edited with the direction commands (north, south and so on). Doors that are not compass exits are extra exits with their own sub-editor (eexit), and extra descriptions are edited with ed. Use when: you create or change rooms, link rooms together, add doors, hidden passages or look targets, or choose a sector. Source of truth: plug-ins/olc/redit.cpp, plug-ins/olc/eeedit.cpp, plug-ins/movement/exitsmovement.cpp (extra exit messages), src/bits.conf (room_flags, sector_table, exit_flags). Verified: 2026-11-02 against dreamland_code a7c4fd10, dreamland_world a35c62ce, dreamland_areas 6a04168

Entering the editor

redit
redit <vnum>
redit create <vnum>
redit create next
redit show [vnum]
redit reset
redit purge all|mob|obj|<name>
redit goto <vnum>
redit move <vnum> <area file or number>
edit room [...]
Form What it does
redit Edits the room you stand in.
redit <vnum> Edits another room. You are moved into it, and moved back when you leave the editor.
redit create <vnum> Makes a room with that vnum and opens it. The vnum must lie in an area you may edit and must be free.
redit create next Same, with the first free room vnum of the area you stand in.
redit show [vnum] Prints a room without opening the editor.
redit reset Resets the room you stand in (mobs and items come back as the resets say).
redit purge ... Destroys mobs, items or both in the room. Only things whose vnum you may edit are destroyed.
redit goto <vnum> Teleports you to a room you may edit.
redit move <vnum> <area> Not implemented: it says so and changes nothing.

The editor works on the room prototype directly. A change is live at once, and the area is marked as changed. There is no cancel. See OLC.

Room fields

show (an empty line) prints all of these.

Field Command Notes
Name name, uaname, runame One line per language.
Description desc, uadesc, rudesc Multi-line text, see OLC-Line-Editor.
Sector sector <name> ? sector_table. See Choosing a sector.
Flags flags <names> Toggles. ? room_flags.
Clan clan <name> or clan clear Marks the room as that clan's territory: outsiders cannot quit there and clan guards defend it. It does not block entry by itself.
Guilds guilds <class> or guilds clear Class guild. A character of another class cannot walk into it from a room that is not a guild. Each call adds one class, clear removes all.
Liquid liquid <name> Liquid of a river or lake room. A water sector with no liquid gets water automatically.
Smell smell, uasmell, rusmell Text shown by smell.
Sound sound, uasound, rusound Text shown by listen.
Heal rate heal <number> Health and movement regeneration, percent. 100 is normal. The help string says 100 to 400, the command accepts any number.
Mana rate mana <number> Mana regeneration, percent.
Extra descriptions ed, uaed, rued See Extra descriptions.
Extra exits eexit See Extra exits.
Exits north south east west up down See Exits.
Behaviors behaviors <names>, props <behavior> <prop> <value> Attaches bedit behaviors and sets their properties. A behavior name with a space is typed with an underscore in props. props <behavior> <prop> web opens the web editor, props ... del removes the value.
Scripts fenia <trigger> Opens the trigger editor for the room, see Fenia-Triggers.
Legacy behavior oldbehavior, oldbehavior clear XML behavior of the old engine. Not for new work.

Other commands inside redit:

Command Meaning
rlist Rooms of this area, three per line.
mlist <all or name> Mobs of this area.
olist <all, name or item type> Objects of this area.
purge ... Same as redit purge.
create <vnum or next> Makes a room and switches to it.
commands, done List the commands, leave the editor.

Exits

Each direction has a command. Typed alone, it moves you through the exit. Inside the editor that means the editor follows you into the next room. Typed with an argument, it edits the exit.

north dig next
north dig 3105
north link 3105
north room 3105
north delete
north unlink
north key 3110
north key clear
north name gate
north uaname ворота
north runame ворота
north short gate
north desc
north copy
north ?
Form Result
<dir> dig <vnum or next> Creates a new room with that vnum and a two-way link to it.
<dir> link <vnum> Two-way link to an existing room. It fails if the room on the other side already has an exit in the opposite direction, or if you may not edit that room.
<dir> room <vnum> One-way exit to an existing room.
<dir> delete Removes this exit, and the exit on the other side if it leads back here.
<dir> unlink Removes this exit only.
<dir> <flags> Toggles exit flags (? exit_flags). Setting isdoor fills in the default door names.
<dir> key <vnum> Sets the key. The item must be a key. Also sets the exit flags isdoor closed locked and default door names. key clear removes the key.
<dir> name, uaname, runame Door keywords, the words a player types: open gate.
<dir> short, uashort, rushort Door name used in messages, with all grammatical cases for Russian and Ukrainian (a Flexer form, see Area-Format).
<dir> desc, uadesc, rudesc Text shown by look <direction>. Opens the line editor.
<dir> copy Copies flags, names and key to the door on the other side.

Default door names are "door" in English, "дверь" in Russian and "двері" in Ukrainian. They are filled in only when the exit has none.

Exit flags are in exit_flags: isdoor closed locked noflee noscan pickproof nopass easy hard infuriating noclose nolock invisible hidden improved camouflage fade nofly nowalk swim_only bash_only.

An exit change edits the stored prototype and the loaded room. Default door names are written to the prototype only. Room flags reach the loaded room only when you leave the editor with done.

Extra exits

An extra exit is an exit that is not a compass direction: a hole, a ladder, a secret door, a portal. A player passes it with enter <keyword>. open, close, lock, unlock and look also accept its keyword. Extra exits are edited in a sub-editor.

eexit set <keywords>
eexit delete <keywords>

eexit set opens the editor for the extra exit with those keywords, creating it if needed. The keywords are split by alphabet: Latin words become the English keywords, Cyrillic words the Russian ones. Set the Ukrainian ones afterwards with uaname. done stores the exit in the room, cancel drops the edit. The exit is created at the first done.

Command Field
name, uaname, runame Keywords the player types.
target <room vnum> Where the exit leads.
flags <names> Exit flags, toggled.
size <size> Biggest character size that fits (? size_table).
key <vnum> Key item.
desc, uadesc, rudesc Text shown by look <keyword>.
room, uaroom, ruroom A line added to the room description for those who can see the exit.
from, uafrom, rufrom Name of the exit seen from the room being left.
to, uato, ruto Name of the exit seen from the room being entered.
leaveroom, ualeaveroom, ruleaveroom Message to the room being left.
entryroom, uaentryroom, ruentryroom Message to the room being entered.
leaveself, ualeaveself, ruleaveself Message to the traveller on leaving (optional).
entryself, uaentryself, ruentryself Message to the traveller on arrival (optional).

How the messages work:

  • The room messages are finished sentences in the act format. %1$^C1 is the traveller, %4$N<case> is the exit name. The name comes from from when the traveller leaves and from to when the traveller arrives, so each side can use its own noun in its own case. The engine adds the closing full stop, so do not type one. If a mover is riding, it appends ", riding on " before the full stop.
  • Gender-dependent verbs use the %1$G form, for example %1$^C1 протиснул%1$Gось|ся|ась в %4$N4.
  • leaveself and entryself are sent as written, with no full stop added.
  • An old numeric message-code scheme (codes 0 to 11 for "ушел", "забрался" and so on) is gone. Write the whole sentence.

redit show lists every extra exit as [keywords]. With both room messages empty the engine still prints its closing full stop, so fill them in.

Extra descriptions

An extra description is a keyword and a text, shown by look <keyword>. Rooms and objects have them.

ed set <keywords>
ed web <keywords>
ed copy <keywords>
ed paste <keywords>
ed delete <keywords>
uaed set <keywords>
rued set <keywords>
  • ed edits the English text, uaed the Ukrainian and rued the Russian one. All three share the same keyword string. One keyword string holds the words of every language, separated by spaces.
  • set opens the line editor on the text. A missing keyword is created.
  • web opens the web editor. copy and paste move the text through the edit buffer. delete removes the whole entry.
  • show (or an empty line) lists the extra descriptions of the room, with a web button for each language.

Choosing a sector

The sector sets the terrain for movement cost, weather and the mapper. The values are in sector_table: inside city field forest hills mountain water_swim water_noswim air desert underwater. (unused and max exist in the table and are not for use.) Water sectors set the liquid to water if none is set.

The rules the maintainers used when they audited the existing rooms:

  1. A building (house, hall, tower, temple, shop, cell, castle, tent) is city with the indoors flag, even in the wilderness.
  2. A built underground space (dungeon, crypt, catacomb, sewer, cellar, vault) is inside with indoors.
  3. A natural cave or tunnel takes the sector of the land around it (mountain or hills) with indoors.
  4. Streets, squares, gardens, courtyards, walls and roofs under open sky are city without indoors.
  5. Nature under open sky is the matching land sector without indoors. A dense forest is still open sky unless the text says there is no sky or roof (a hollow trunk, a dugout, a cave).
  6. Add dark only to caves and underground rooms whose text names no light source.
  7. Add near_water only when the text shows real, reachable water (fountain, well, river, lake, sea, dock, spring, waterfall, pool).

indoors means a roof overhead: no sky, no weather.

Room flags

dark no_vanish no_mob indoors nosac nodamage private safe solitary no_recall imp_only gods_only heroes_only newbies_only law nowhere near_water chat no_cast nosummon no_time no_weather traverse_marked no_quest noquit mansion dumb

? room_flags prints the same list with a description of each flag.

Notes

  • Speedwalks in the area header start from the central square of Midgaard, room 3014, see OLC.
  • Mobs and items appear in a room through resets, not through the room: OLC-Resets.
  • redit purge takes mob and obj exactly, not mobs and objs.

See also: OLC, OLC-Resets, OLC-Line-Editor, Area-Format, Writing-Player-Text.

Clone this wiki locally