The Dystopian OLC guide
The command 'redit' allows the builder to enter redit mode.

Syntax redit [create] (vnum)

The create flag is only used when creating a new room. By default redit will call the show command, displaying the stats of the room.


Description:
Yada Yada Yada, here goes the room
description, and all that stuff.
Name:       [Temple of Midgaard]
Area:       [    6] Midgaard
Vnum:       [ 3001]
Sector:     [inside]
Room flags: [no_mob indoors]
Desc Kwds:  [plaque]
-North to [3054] Key: [-1] Exit flags: [none]
At the northen end of the temple, sits a
brown puppy dog.
-East  to [  12] Key: [ 0] Exit flags: [door]
-South to [3005] Key: [ 0] Exit flags: [none]
-Up    to [3700] Key: [ 0] Exit flags: [none]
You see the entrance to Mud School.
Description
Is the full room description
Sector
Inside/Water/Air/Hills/etc
Room Flags
Certain flags explained below
Desc Kwds
Extra Descriptions, read more below
Exits
Leading exits, and door/key status
Exit Descriptions
Additional information, when looking in that direction

While in redit mode the commands can be used to edit the room

Command Description
done This will leave redit mode
walk [direction] Since north/south/etc is used for exits, this command can be used to walk around
olist This command will list objects in the area this room is in
mlist This command will list mobs in the area this room is in
rlist This command will list rooms in the area this room is in
name This command will change the name of the room
desc This command will put the builder in edit mode for the description of the room
format This command will format the description of the room so it looks nice

Handling Exits

Navigating exits requires the use of the direction commands north/south/west/east/up/down, while in redit mode, these commands will not function as they normally do, but instead they will edit the exits in that direction.

Syntax : [exit] [command]
Example : north door

Command Description
dig Syntax : [exit] dig [vnum]
Example : north dig 4001

Will create a new room at [vnum] and make an exit going in that direction, leading to the newly create room. Another exit, leading in the opposite direction from the new room to the room currently being edited will also be created.

Example : Standing in room 4000, we type 'north dig 4001', this will result in room 4001 being created if it wasn't already, and an exit going north from room 4000 to room 4001 being created. On top of this, another exit, going south from room 4001 and ending in room 4000 will also be created (thus making it a two-way passage).

link Syntax : [exit] link [vnum]
Example : north link 4001

This command works exactly like the dig command above, with one difference. It does not create the target room if it is not already there, instead it gives an error message. It is wiser to use this command over dig, since you will not accidently create a room you didn't want.

Example : Standing in room 4000, we type 'north link 4001', this will result in an exit going north from room 4000 to room 4001 being created. On top of this, another exit, going south from room 4001 and ending in room 4000 will also be created (thus making it a two-way passage).

room Syntax : [exit] room [vnum]
Example : north room 4001

This command will create a one way exit leading from the room being edited, to the room with the given vnum. No exit leading the opposite direction will be created. This is mostly used for mazes, and should be used with caution anywhere else.

Example : Standing in room 4000, we type 'north room 4001', this will result in an exit going north from room 4000 to room 4001 being created. Nothing else will happen.

Such exits can have several flags attached to them, like a door flag, and should there be a door flag, then adding flags like closed and locked makes sense.

Command Description
delete '[exit] delete' will delete an exit going in that direction
remove '[exit] remove [key|name|desc]' will remove one of those extras
key '[exit] key [vnum]' will attach the key with the given vnum to the door
name '[exit] name' will change the keyword for the door (default is just north/south/etc)
description '[exit] description' will add the argument given to the description of the exit
door/closed/locked/pickproof/no_pass These commands will set the door status of an exit
Without a door flag, the other flags won't have any affect, and the no_pass flag is used to disable the passdoor spell for that door.

Room Programs

It is possible to trigger certain actions to something a player says in a room, these triggered actions are called room programs. An example of a room program would be a mob that can reply to players when they say hello, or perhaps answer simple questions (The trigger is bound to the room, but the room can force the mobs in it to respond). Another type of room program would be a teleporting trigger, which would teleport the player when he or she says a certain word. Remember to be in redit mode when creating or editing room programs.

On Keywords

The keywords is the string that the room program will trigger on, there is one reserved keyword called '>enter<' which is used when a player enters the room. If you just want your program to trigger on one specific keyword, which must be said alone, then just use that keyword without any special tags (this makes sure noone accidently triggers your roomprogram while talking to people in the room). On the other hand, if you wish the roomprogram to trigger if certain words are used in a sentence, or just one or more of a list of words, then you can use a series of tags to create this effect. Here are a few examples to make things easier to understand.

| hello*hi
This will make the roomprogram trigger on ANY sentence that contains either hello or hi (or even both). notice the '|' in front of the words, this is what makes sure that only one of the keywords is needed to trigger the program.

&hello*jobo
This will make the roomprogram trigger on ANY sentence that contains both hello and jobo. The '& is the special tag that makes the program require all the keywords listed.

The '*' is the wildcard, which means anything can be typed between the words, allowing the roomprogram to trigger on many different sentences.

Teleport Programs

Syntax : teleport [keyword] [flag] [value]
Syntax : teleport [keyword] [create|delete]

flags : output, choutput, target

output : This is the message given to everyone else in the room
choutput : This is the message given to the player that triggers the teleport
target : This is the vnum of the room which the player is teleport to

Here's an example on creating a new teleport trigger in a room

OLC> teleport hell create
OLC> teleport hell output $n vanishes in a burning inferno
OLC> teleport hell choutput You are engulfed by hellfire and transported elsewhere
OLC> teleport hell target 4001
Everyone in the room will see the message '$n vanishes in a burning inferno', where $n is the name of the player that triggers the teleport, and the player himself will get the message 'You are engulfed by hellfire and transported elsewhere'. The player is then transported to room 4001 (which would then be hell). The word that triggers this teleport is 'hell'.

Text Programs

Syntax : texttrig [keyword] output +desc
Syntax : texttrig [keyword] [create|delete|clear]

This is the only program that can use the same keyword as an already existing program, thus allowing it to be used as an add-on to other programs. Just create it, and add the output needed.

Example

OLC> texttrig hello create
OLC> texttrig hello output The crowd greets you, and
OLC> texttrig hello output a few people come up and shake your hand.
Simple little program that will trigger on the keyword 'hello', and send the two lines above to the player.

Portal Programs

Syntax : portal [keyword] [flag] [value]
Syntax : portal [keyword] [create|delete]

flags : output, choutput, target

output : This is the message given to everyone else in the room
choutput : This is the message given to the player that triggers the portal
target : This is the vnum of the room which the portal leads to

Here's an example on creating a new portal trigger in a room

OLC> portal void create
OLC> portal void output A shimmering portal appears in front of $n
OLC> portal void choutput A shimmering portal appears in front of you.
OLC> portal void target 2
This simple program will make a portal appear in front of the player, which leads to room 2 (the void), when ever someone says 'void'.

Action Programs

Syntax : action [keyword] [flag] [value]
Syntax : action [keyword] [create|delete]

flags : action and mob

action : This is the action the mob will do.
mob : This is the vnum of the mob.

Here's an example on creating an action trigger in a room

OLC> action hello create
OLC> action hello action say Howdy!
OLC> action hello mob 6001
If someone says 'hello' in this room, while a mob of vnum 6001 stands in the room, then it will reply with 'howdy!'. Any action can be made with action triggers, but beware what you do, it is easy to create very dangerous triggers

NOTE It is possible to get hold of the players name, and using it in the action. If you add '%s' to the action string, then it will be replaced with the players name. I doubt it will work if you use more than one %s, so don't.

Spell Programs

Syntax : spell [keyword] [flag] [value]
Syntax : spell [keyword] [create|delete]

flags : type

type : This is the name of the spell being cast.

Here's an example on creating an action trigger in a room

OLC> spell bless create
OLC> spell bless type darkblessing
If someone says 'bless' in this room, they will get a darkblessing spell cast on them.

The Free Program Command

The command 'rprog' can be used to create programs from scratch - but there is no real help on using it, so you'll have to look through the code to see what you can create of programs.

Extra Triggers

When creating extra descriptions for a room, it is possible to attach a teleport action to the description (e.g. a lever in a room could be pulled, causing a trapdoor to open and move the player to another room). This is done using the ed command in redit mode.

Syntax: ed add [keyword]
Syntax: ed edit [keyword]
Syntax: ed delete [keyword]
Syntax: ed format [keyword]

Syntax: ed type [keyword] [type of trigger]
Syntax: ed action [keyword] [type of action]
Syntax: ed vnum [keyword] [vnum used for room/object/etc]
Syntax: ed buf1 [keyword] [message to player]
Syntax: ed buf2 [keyword] [message to room]

If no type is set, the extra description (ed) will just act as a normal extra description (usually used for signs, plaques, etc). But if one of the following types are set, players can use those commands to activate the action.

Types : pull, press, push, touch, none
Actions : teleport, object, spell, elevator, none

The teleport action will simple teleport the player, and the object action will create an object of type 'vnum' and give it to the player.

An example of creating a lever that can be pulled to transport a player to room 4001 would be something like this (in redit mode)

OLC> ed add 'a rusty lever' (then fill out the description of the lever)
OLC> ed type lever pull
OLC> ed action lever teleport
OLC> ed vnum lever 4001
OLC> ed buf1 lever A trapdoor opens beneath your feet, and you drop into it
OLC> ed buf2 lever A trapdoor opens beneath $n's feet, and $e drops into it
This should a player type 'pull lever' in that room, he will get the message 'A trapdoor opens beneath your feet, and you drop into it', and everyone else in the room will get the message 'A trapdoor opens beneath $n's feet, and $e drops into it', where $n is the name of the player, and $e is the sex (he/she/it) of the player.

Room Flags

A room can have several flags toggled on/off, which affects the room in various ways. Simply type the flags name in redit mode to toggle the flag on/off.

Flag Description
Astral This room is cut of from the rest of the world (do not set)
Dark This room is dark by default
No_mob Mobiles cannot walk into this room
Indoors This room is inside, the sky cannot be reached (certain spells)
Private No more than 2 players can be in this room
Safe This room is safe from combat (do not set)
No_recall It is not possible to recall in this room
No_otrans It is not possible to use transporting devices in this room (not used)
No_teleport The teleport spell will malfunction in this room
Total_darkness This room has drow darkness by default (do not set)
Blade_barrier This room has a blade barrier trap
Arena This is a room in the arena (do not set)
Flaming This room is on fire
Silence It is not possible to use any channels in this room
No_command It is not possible to use any commands in this room (do not set)