You know classic Diku redit. Neo has no redit. Instead you open a room draft in a personal workspace, set fields with @room … commands, review with @examine, then @save room to commit into the world database.
Hub: Creation Law. Room scripts: Script Law — Rooms.
Neo never drops you into a numbered OLC menu. @new room <vid> allocates one in-memory draft on your immortal. Until you @save or @clear, that draft is the only room editor you have open. A second @new room while a draft exists errors — finish or abandon first. That is the most common first-day mistake.
Your VID must lie in the room range on your immortality record (implementors assign ranges). Creating outside your range is rejected by the code.
1. Find a free VID (optional but wise):
> @find room (lists unused room VID blocks) > @find room 3 (unused blocks sized for 3 contiguous rooms) >
2. Open the draft:
> @new room 1200 Okay. >
If you see an error about an existing draft, run @examine room, then either @save room or @clear room and try @new again.
3. Set the title and description (writers open — type text, then finish the writer the same way you finish other multi-line immortal writers):
> @room proper A quiet stone alcove > @room general Cool air pools here among worn flagstones. Shadows cling to the corners. >
proper is the one-line title players see in the prompt / look header. general is the multi-line room description. You set them as separate steps because they are separate fields on the prototype.
4. Sector and flags (why: sector drives movement/weather feel; flags gate magic, NPCs, healing, etc.):
> @room attrs sector inside Okay. > @room flags roomflags healing Okay. >
Coded attribute classes are Sector and SpecRoom. Flag class RoomFlags includes DARK, NO_NPC, NO_MAGIC, PRIVATE, HEALING, AIR, SILENCE, ARENA, DUMP, GOD, SAVE, RECALL, NO_TELEPORT_IN / OUT, …. Prefix with ! to clear a flag when the modifier supports it.
5. Review before you save:
> @examine room --- Room --- ... >
Check title, description, sector, flags, and any doors. Fix mistakes now — @save writes what you see.
6. Commit:
> @save room Okay. >
The draft is gone; the room lives in the world DB. @load room 1200 later if you need to edit again.
From ModifyStats.cmdCrRoom:
proper — one-line room title (writer)general — multi-line description (writer)attrs <class> <attr> — Sector, SpecRoomflags <class> <flag> — RoomFlags (! to clear when supported)door … — exits (next section)extras … — extra descriptions (look keywords)proc <name> — attach a room SpecProc after the script exists (Script rooms)map <item> <x> <y> — map item / coordinatesstadium <value> — stadium linkageWhy doors are multi-step: you add an exit slot, point it at a destination room, then set type / flags / key. The destination room must already exist and lie in the zone VID range of the room you are editing — linking to a missing VID is a classic gotcha.
Syntax: @room door [add|delete|flags|general|key|keywords|proper|room|type|weight] <direction>
Directions from Direction (north, east, south, west, up, down, …). Door types (DoorType): PATH, GATE, OBJECT, WINDOW, STADIUM. Door flags (DoorFlags): CLOSED, SECRET, LOCKED, PICKPROOF, WIZLOCKED, KNOCKPROOF.
> @room door add east Okay. > @room door room east 1202 Okay. > @room door type east gate Okay. > @room door flags east locked Okay. > @room door key east 3102 Okay. > @room door keywords east add gate Okay. > @examine room > @save room Okay. >
If @room door room … fails, confirm 1202 exists (goto 1202 / stat room) and sits in-range for this zone.
Why @dig exists: walking @new + manual two-way doors for every neighbor is tedious. @dig <direction> <room-vid> copies the room you stand in, creates the new VID, and links the exit (Immortality.createDig → RoomDB.createCopy). Target VID must be in your room range.
> goto 1200 > @dig south 1203 Okay. >
Then goto 1203, @load room 1203 (if needed), rewrite proper / general so the copy is not a clone of the parent, @examine, @save.
> @find room > @find room 3 > index room midgaard > goto 3001 > stat room >
Build two connected rooms the way a new creator should the first week:
> @find room 2 > @new room 4500 Okay. > @room proper (east end of the quiet alley) > @room general (wet cobbles, a shuttered stall…) > @room attrs sector city Okay. > @examine room > @save room Okay. > goto 4500 > @dig east 4501 Okay. > goto 4501 > @load room 4501 > @room proper (west end — rewrite so it is not a clone) > @room general > @examine room > @save room Okay. >
Common mistakes: forgetting to rewrite the dug copy; opening @new room while 4500's draft was never saved; wiring a door to a VID you have not created yet.
Next: put rooms under a zone top (Zones). For ENTER/UPDATE behavior, create the SpecProc first, then @room proc <name> (Script rooms). Attaching a proc name that does not exist yet is a frequent miss — index proc_room to verify.
redit — workspace only.room draft; @save or @clear before another @new room.@dig destination must be in your assigned room range.@wrap can reformat long general / extras text after writing.SpecRoom via @room attrs (compiled), not a free-form script name — see Script rooms.