Building on Ack!mud - Part #1.  Updated 10/21/98 
by Kobaan@CiP (Chaos in Paradise)
original builder files from Michlotixlan@AA (Ancient Adventures)


Introduction

There are now several ack!muds, and the process of building new areas
is generally the same on all of them.  This document is a combination
of several documents provided courtesy of Shades of Evil, but is more
extensive and complete.  Once you have an immortal character that is
flagged as a builder you may begin the area creation process.  This 
document assumes you are fairly familiar with the game component of
ack!mud, because without such prior knowledge a builder would probably 
be unaware of how many objects and mobs function in the game.

Basics

Building in our OLC (On-line Compiler) is fairly basic and much less 
tedious than the traditional way of building off-line.  Once you've 
mastered the basics you can apply them to rooms, mobs or objects.  
Because the OLC is rather user-friendly and comes with some helps you 
should not be afraid to experiment.  

Before you begin you should take a moment to set up your new Immortal 
Building character.  You should first turn on your holylight.  The 
holylight allows you see in the darkness, view invisible things, and 
prevents aggressive mobs from attacking you.

Then type "help prompt" and configure your prompt accordingly.  Imms 
have 2 more prompt features available to them.  %R displays the vnum 
you are in, and %z displays the area name you are in.  These will 
enable you to see the VNUM of the room you are in.  VNUMS 
(vector numbers) are how the code recognizes everything in the 
Realm.  Every room, mob and object has it's own vnum.   You can 
find the vnums of objects already in existance with 
"ofind <object name>"; for mobs it is "mfind <mob name>".  The Head 
Builder will assign you your own vnums for building with, and you 
should remember the starting and ending numbers.  The range of vnums 
you are given applies seperately to rooms, mobs and objects.  If you 
have vnums 300 - 399, then you have vnums 300 - 399 available for 
rooms, 300 - 399 are available for objects, and 300 - 399 are 
available for mobs.  The vnums are separate, so a mob, an object, 
and a room could all have the same vnum.  These 3 are separate, 
so it is not necessary to have a vnum only for a room, and another 
only for a mob.  Reusing a vnum for room, obj, and mob all at the 
same time saves space, and should be encouraged.


To start building you simply need to type "BUILD".

Any time you are editing a room, object or mob you can simply type "list" 
or "x" to see the progress.  "help" while in the builder, or ".h" while 
in the text editor gets you help.  "com" brings up available commands to 
you while in the builder.  Some game-playing commands are available, but 
not all of them.  Should you need to perform non-Building commands whilst 
inside the Builder you simply need to preface your command with a colon ":".  
eg. ":t zenithar hello!" will send a tell to Zenithar from inside the 
Builder.  You may not use the : preface is from within the text editor.

Once you enter the Builder you will be faced with the following prompt:

< Mode:  None Use Redit, Medit or Oedit to select mode. >

It is saying that you are not editing anything and you need to type 
"redit" to edit a room, "oedit #" for an object or "medit #" for a mob.
When you are creating anew you will first have to type "uroom" "uobj" 
or "umob" to find the next available vnum in your range.  Then you will
type "addmob # (name)" or "addobj # (name)".  For rooms it is a little 
different, more on that next.  Once you've added the mob or object then 
you medit or oedit.  Type "list" in any of the three editors to see the 
toggable flags and progress of your creation.



**** ROOMS AND REDIT ****

Creating new rooms is achieved by digging through the Realm.  Once you 
are in the starting room you first need to decide the direction for the 
new room.  Then simply type "dig (direction) #".  Now, if you walk in the
direction you indicated you will find yourself in the new room.  By using 
this process you can create new rooms.  


Room Basics

To name the room simply type "name <name of room>".  

Now type "list" and you will see a bunch of toggable room flags.  
The following is their meaning:

Sector:      This determines how many movement points it takes to move 
             across the current room.  Some sector types require but a 
             few points, while others will cost several.  To set the 
             sector, simply choose one of them and type it in, you will 
             see it highlighted when you next type "list".
DARK:        You need a light to see a things.  Also prevents people 
             from seeing the room name from adjacent rooms.
REGEN:       Makes it a regen room, so you recover hps faster.
NO_MOB:      Mobs cannot enter the room, but may still be loaded with resets.
INDOORS:     The room is indoors, not affected by weather or sunlight.
NO_MAGIC:    Magic spells may not be cast.
HOT:         Does damage through heat if pc/mob is injured.
COLD:        Does Damage through cold if pc/mob is injured.
PK:          Makes the room a player killer room.
QUIET:       People within the room cannot communicate.
PRIVATE:     A maximum of 2 pcs/mobs may walk into the room.
SAFE:        The room is safe or peaceful, no fights are allowed.
SOLITARY:    Only one char/mob allowed walk into the room.
PET_SHOP:    The room is set to become a Pet Shop.
NO_RECALL:   You cannot recall from this room.
NO_TELEPORT: You cannot teleport into this room.
HUNT_HUNT:   Mobs/pcs inside the room cannot be hunted.
NO_BLOODWALK:Vampyres may not blood walk into the room.
NO_PORTAL:   People may not portal into, or out of the room.
NO_REPOP:    Objects and mobiles do not repop in the room.


The Text Editor

Descriptions of rooms and mobs are entered with the text editor.  This is 
the main description of mobs, not the short or long description.  After you
type "desc $edit" you will be in the editor and you may not use any non-
editor commands or they will show up in the description. 

The first thing you need to do is to type ".clear" to erase the buffer. 
After that, whatever you type will end up in the description so be careful
(an off-line editor is recommended before cutting and pasting into on-line
editor).  Remember to include your colour commands (and don't leave 
unecessary spaces before or after colour codes).

Other commands from within the editor are as follows:
.help     or .h      - displays this help.
.save     or .       - saves and exits the editor.
.preview  or .p      - display a preview of the text.
.-[num]   or .-      - deletes [num] lines from the end, or just one line
.clear               - deletes whole text.
.quit     or .q      - quits without saving.
.format   or .f      - formats text for 80 chars
.replace  or .r      - replaces word with string; ie ".r <word> <string>"  
                     If no string, arg1 deleted.

Always format and save before exiting the editor (unless you formatted with
off-line editor).  The text editor is the same as that used to provide 
messages on boards, extra room descriptions, and can be used for other 
things such as mobile long descriptions. 

Extra Room Descriptions

You can add extra descriptions in your room without having to post some 
object in the room.  First you should add some clue in the room 
description to the keyword of the extra description.  Then you  
"extra <keyword> $edit".  Once again you will be in the Text Editor.  
Once players "look <keyword>" they will see the additional description 
you provide in the Text Editor.  This is useful for making a sign in the 
room, or possibly as a special hint that will help the players discover 
more.  To remove an extra description type "extra -<keyword>".  You can 
use a similar process to provide extras for objects.  The commands are  
"ed <keyword> $edit" and "ed -<keyword>".


Doors

You can have simple entrances which are created when you dig to your new 
room or you can actually have an entrance perform as a door.  If you already 
have existing rooms, and you want to connect them, then you can type:
"door <direction> to #"
Should you require a one-way door then you would type:
"door <direction> to # onesided"
To remove a connection between two rooms, type:     
"door <direction> clear"


There are other things you can do to doors.  
!!!WARRNING!!!: If you are going to use ANY of the following options, 
YOU MUST FIRST MAKE THE DOOR   TYPE: DOOR!!!!  
You must ensure this to prevent the mud from crashing.
You can set the door type by doing the following: 
"door <direction> type <+/-> <type>"  

The following is a list of possible types types.
  door       - Makes it a door that can be opened or closed.  
               This NEEDS to be set for ANY of these flags to work.
  climb      - Need to climb of fly thru exit
  immortal   - IMMORTAL only exit
  pickproof  - The door lock cannot be picked
  smashproof - The door cannot be smashed open
  passproof  - The passdoor spell cannot be used to get thru this door
  nodetect   - The find doors skill will never alert the presence of this 
               door

You can give a keyword to a door.  These will be undetected on the exit 
list, and players must "enter <keyword>" to get through it.  To make a door 
have a keyword, type "door <direction> keyword <keyword you want>".  
These keyword doors provide extra inconvenience to player travel.


However, if the door is one-sided you may NOT set any types upon it, 
including type "door".


If you are going to have the door locked then you will need to set a key.
Once you've created the key object you must type "door (direction) key #"
to tell it which key opens the door.  Room resets can then be added to close 
and lock doors.  "addreset door <direction> closed" will lock the door in 
the specified direction.  "addreset door <direction> locked" both closes and 
locks the door at the same time.  Resets should be used on both sides of the 
door to keep it closed for both directions.