A Guide to Building
Rooms
This is intended as a set of guidelines to those
who are just beginning as Builders. Nothing here is written in stone,
this file is based on my experience and the online help files.
Herne the Hunter
Remember that most important command:
SAVEAREA
Please
Note: Many of these help files have been written or rewritten
by the various hard-working Immortals of the Realms of Despair.
Without these people, there would be no need for these guides, nor
would they be nearly as comprehensive as they are now. |
Table of Contents:
Make a Map as a Starting Point
If you are building for the first time and you are
wondering how to get started from scratch, you may want to read my Getting
Started or Mechanics of Building files
first.
Before doing any building, a Creator level Immortal
should make a basic outline of their intended area layout on paper (Graph
paper works well for this). Mapping out how each room relates to another
will save a lot of time when you go to link the rooms with exits. Once
you have your outline mapped out with "boxes" or "circles",
go ahead and number each box with your vnumbers, the starting point
doesn't really matter, as long as it makes sense to you. It's also a
good idea to mark a North arrow on your paper map while you're at it,
then you'll always know your relative directions.
|
|
- Example map;
-
A map can be as complicated or
as simple as you like, it is merely a tool to help you when
you're making rooms and linking exits. A "room"
can represent a 10x10 room in a
house, or a mile of trail. How many "rooms" you
use to represent what you want is up to you.
|
|
Once you have created a map, you're ready to
go online and begin creating your new area. But before jumping too
far, you should become familiar with the following commands; REDIT,
RSTAT, and RLIST (help files follow).
Creating Rooms out of Thin Air
After you have read and understand this file, you
will be ready to start creating new rooms.
To begin an area from scratch, it is assumed that
you have been assigned vnums. Vnums or Vnumbers are what
the MUD uses to reference the rooms, mobs and objects within your area.
Every room, mob, or object in the MUD environment has it's own unique
vnum. If you haven't been assigned a specific block of vnums then you
need to contact your MUD Administrators to find out how to go about
getting them assigned. You don't really require access to a MUD to start
building, in fact it is often better if you're not online when you start
a building project (See Getting Started
and Mechanics of Building for more information),
but it helps to know what your numbers are.
In order to link an exit to a room, the room must
first exist in the MUD. To "make" a room exist simply GOTO
that room vnum. "Goto" is an Immortal command that
takes you to whatever room you specify. You can make a room outside
of your vnum range, but only rooms within your assigned vnum range will
be saved when you type "savearea". Since you already have
a map, you know approximately how many rooms you require, so a method
I use is to create small groups of rooms (20-25 rooms) by using GOTO
several times in succession, (ex; goto 1000, goto 1001, goto 1002, ...
goto 1025) and once I have a body of rooms made, I can begin linking
those rooms together. I prefer to make a "skeleton" of my
linked rooms before I "flesh out" the rooms with roomflags,
etc.
Most importantly, be sure to SAVEAREA after you make
any additions or changes to your new area. If the MUD crashes while
you're building, and you haven't saved, then everything you've done
since your last save is gone. Save often.
SAVEAREA LOADAREA
Syntax: savearea [Savearea will
save your prototype area.]
Syntax: loadarea [Loadarea will
load your prototype area.]
To find out whether your area is loaded, type "Score."
You should be able to see your assigned vnumbers at the bottom of your
scoresheet, and beneath them should be a box that reads "Area Loaded
[X]". If there is no X in the box, type "loadarea" to
load your area.
If you want to work on an existing area within the
MUD, it presents some new problems. See Getting
Started for more information.
Getting to the Proper Commands
The most important command in room creation is "REDIT."
Simply typing REDIT by itself will return this file to you.
REDIT
Syntax: redit (field) value
Field being one of:
name desc ed rmed
exit bexit exdesc exflags exname exkey
flags sector teledelay televnum tunnel
rlist exdistance
There are two ways of using REDIT; You can either
type REDIT every time you wish to enter a new value (ex: redit flags
dark) or you can type REDIT ON and you will be locked into editing the
room you are currently standing in, with the MUD assuming that anything
you type is preceded by the REDIT command (ex: flags dark). To get out
of the "redit on" buffer, simply type "done". I
prefer the first method of room editing.
The second most important command is RSTAT
(shortform RST);
HELP RSTAT
Syntax: rstat
Syntax: rstat {location}
RSTAT shows you statistics on a location. The location
may be specified as a roomvnum (ex; rst 1200), as the name of a mobile
(ex; rst Seth), or as the name of an object (ex; rst post). RSTAT with
no argument returns the statistics on your present room.
The third command you have for rooms is RLIST
(shortform RLI);
HELP RLIST
Syntax: rlist
Syntax: rlist {first room} [ex:
rlist 1000]
Syntax: rlist {first room} {last
room} [ex: rlist 1000 1010]
This command will list all of the prototype rooms
in your area, when used with no arguments. When used with a single argument
it will list all rooms including and after the argument, and when used
with two arguments, it will list all rooms including and between the
two.
The Help Files
HELP REDIT
Syntax: redit field [parameter
list]
Syntax: redit on
Field |
Parameters |
Description/Notes |
name |
{room name} |
Sets the room name / short description |
exit |
{direction} [vnum] [exittype]
[key] [keywords] |
bexit |
same as above, but does the exit
in both directions |
desc |
none |
Places you into the buffer editor. |
exdesc |
{direction} [text] |
Sets/clears an exit's description |
Ed |
{keyword(s)} |
Adds/edits an extra desc to the
room |
rmed |
{first keyword} |
Removes an extra desc from the
room |
sector |
{value} |
Sets the sector type [See Sectortypes] |
flags |
{flag} [flag] |
Toggles room flags [See Roomflags] |
exflags |
{dir} [flags] |
Displays/toggles exit flags |
exname |
{dir} [keywords] |
Sets an exit's keywords |
exkey |
{dir} {key vnum} |
Sets an exit's key vnum [See Objects] |
Examples; |
- 1. redit name The Captain's Room
- [sets room name - watch your capitals]
- 2. redit exit n 1001
- [sets a 1-way exit north to room 1001]
- 3. redit bexit n 1001
- [sets a 2-way exit north to room 1001]
- 4. redit exdesc n Looking into a bare room.
- [sets the north exit desc]
- 5. redit exname n gate
- [sets the north exit name to 'gate'. It is not a good idea
to have 2 exits with the same exname in a room]
- 6. redit Ed wall scratches runes
- [puts you into an edit buffer that's keyed to the words 'wall
scratches runes'. When PC types 'look wall' or 'look runes',
or 'look scratches', they'll see this edit.]
- 7. redit rmed wall
- [will delete the 'wall' edit and any related keywords. (as
shown above; 'wall scratches runes')]
|
REDIT ON will lock you into a mode in which 'redit'
is implied in each command sequence, and hitting enter will give you
an instant rstat of whichever room you are in at the time. To get out
of REDIT ON, simply type the word DONE.
Example;
redit on
name A dark and foreboding hallway
flags dark indoors
done
See also: Exittypes,
Exflags, Exitmaking, Sectortypes, and
Roomflags
HELP DOORDIRS
When making an exit, the direction can be specified
numerically or as a character. Here is the order of the exits, and their
corresponding bitvector values:
Direction |
Value |
Short Direction |
North |
0 |
N |
East |
1 |
E |
South |
2 |
S |
West |
3 |
W |
Up |
4 |
U |
Down |
5 |
D |
Northeast |
6 |
NE |
Northwest |
7 |
NW |
Southeast |
8 |
SE |
Southwest |
9 |
SW |
Somewhere |
10 |
? |
See; REDIT, RSTAT and RESETCMDS.
HELP EXITTYPES
When making an exit, you can include the bitvectors
for any flags at the time of making the exit (the hard way) or you simply
redit the exflags after the exit is made (the easy way). These are some
of the valid exit-types:
Bit |
Flag |
0 |
Plain exit |
1 |
Door exists (Required to be closed
or locked) |
2 |
Door is Closed |
4 |
Door is Locked |
8 |
Door is Secret (Trying to go
that way won't reveal door) |
32 |
Door is Pickproof (Door can't
be picked by spell or skill) |
64 |
Need to be able to fly to go
that way |
128 |
Need to be able to climb to
go that way |
1024 |
Door is Passdoor proof |
NOTE: You must ADD the values together to generate
an exit-type:
3 = a closed door
7 = a closed and locked door
11 = a closed secret door
15 = a closed, locked and secret door
For the most part, the bitvector flag method is
outdated in the newest version of SMAUG We now use 'redit exflags'
to change exit flags, and to set the advanced exit flags (most of which
are not shown above).
See also: Exflags and Exitmaking
HELP EXITMAKING
The 'redit exit' command is used to create, modify
and remove exits in a room. For more than one exit in the same direction
see Advancedexits.
The syntax of the 'redit exit' command is as follows:
redit exit {direction} [vnum]
[exit-type] [key] [keyword(s)]
|
one of: n, s, e, w, u, d, ne, nw,
se, sw or ? |
|
the room number in which the exit
leads to |
|
the bitvector numbers for the exflags
on this door. |
|
a vnum corresponding to a key object
to unlock this door. |
|
keywords used to refer to the door,
(or exit). |
If only 'redit exit (direction)' is specified, the
exit will be removed.
The 'key' field is optional when specifying keywords. All other fields
are required previous to the field desired.
Examples:
redit exit n 3001 - Creates an exit north to room 3001
redit exit n 3001 3 gate - Changes the exit n to have a closed "gate"
redit exit n 3001 3 15 gate - Changes the gate to allow a key (vnum
15)
redit exit n - Removes the north exit
See Exittypes for generating the
exit-type value.
HELP ADVANCEDEXITS
SMAUG supports having more than one exit in the same
direction, as well as the special direction 'somewhere', represented
by a '?'. If you already have an exit leading north, and would like
another one, use a plus sign '+' in front of the direction:
redit exit +n 3001 - Adds another exit north to room 3001
To modify an extra exit like this, or to remove it,
you'll have to refer to it by number:
redit exit #2 3002 - Change the second exit to go to room 3002
To know what number an exit is, do an "rstat".
For someone to be able to use the second north exit,
you have to set one of the extra flags (see Exflags)
like CAN_CLIMB. It is also usually a good idea to set the HIDDEN flag
for any special exit so that it looks nicer with autoexits on.
The AUTO flag makes it possible to go in a direction
by simply typing the keyword for that exit:
redit exit ? 3001 - Create a 'somewhere' exit to 3001
redit exflags ? auto hidden - Set the proper flags
redit exname ? swim - Set the keyword "swim"
(If a player types 'swim' in the room, they will move to room 3001.)
HELP EXFLAGS
Syntax : redit exflags
{direction} [flag]
Example: redit exflags n isdoor closed locked
(Flags can be stacked as shown)
Example: redit exflags n
(By itself will show the current flags
set)
The following flags are accepted:
Flag |
Description |
ISDOOR |
A door exists in that direction |
CLOSED |
The door is closed |
LOCKED |
The door is locked |
SECRET |
The door is a secret door |
SWIM * |
Must be able to swim to go that way
Not supported yet |
PICKPROOF |
Door is pickproof |
FLY |
Must be able to fly to go that way |
CLIMB |
Must be able to climb to go that
way |
DIG |
Passage is blocked and must be dug
out (See: Resets
Dig Exits) |
NOPASSDOOR |
Door is resistant to the passdoor
spell |
HIDDEN |
Door is not obvious doesn't
appear with autoexits |
CAN_CLIMB |
Can use the climb command to go this
way |
CAN_ENTER |
Can use the enter command to go this
way |
CAN_LEAVE |
Can use the leave command to go this
way |
AUTO |
Keyword can be typed to go this way |
SEARCHABLE |
Searching in this direction can remove
the SECRET flag |
BASHED |
Door has already been bashed in |
BASHPROOF |
Door cannot be bashed open |
NOMOB |
Mobs will not go through this exit
(includes pets) |
WINDOW |
Can scan through but cannot go through
this exit unless 'isdoor' is added doesn't appear with autoexits |
CAN_LOOK |
Allows Player to view destination
room with 'look' |
EATKEY |
Door destroys the key after it unlocks
|
NOFLEE |
Players and Mobs can't flee in this
direction |
ISBOLT* |
Door can be bolted Not supported
yet |
BOLTED* |
Door is bolted Not supported
yet |
Herne's Method Of Making Exits
Currently, the way I make exits is to first make
the exit, then add exflags and keywords as they are required. Always
remember to add an exit description (exdesc).
1. Set the exit (either 1-way or 2-way) and
direction.
2. Set the exit flags.
3. Set the exit description.
4. Set the exit name (if required).
5. Set the exit keyvnum (if required) [note: a key
is an Object]
Example 1:
Syntax |
Description |
redit bexit n 2000 |
Create a 2-way exit north into
room 2000. |
redit exflags n isdoor
closed |
Tell the MUD that there is a door
here and it is closed. Several exitflags can be combined in this
manner. |
redit exname n gate |
Give the exit the keyword "gate".
Be sure to use unique exnames for each named exit in the room (every
exit does not require a name). |
redit exdesc n Into
the garden... |
Add the description "Into
the garden..." to the exit, so anyone looking north will see
the description. |
redit exkey n 2001 |
The north exit can be locked with
the key object 2001, although it is not currently set as "locked". |
Example 2:
Syntax |
Description |
redit exit e1000 |
Create a 1-way exit east from the
room you're in into room 1000. |
redit exflags e hidden
secret |
Tell the MUD that this exit is
hidden and secret (players must use their "search" skill
to find it). |
redit exdesc e A dark
hole... |
Add the description "A dark
hole..." for players to see. |
HELP SECTORTYPES
Flag |
Sector |
Comments |
INSIDE |
0
|
Weather doesn't show. |
CITY |
1
|
|
FIELD |
2
|
|
FOREST |
3
|
|
HILLS |
4
|
|
MOUNTAIN |
5
|
|
WATER_SWIM |
6
|
PC needs aqua_breath/fly/float or
boat |
WATER_NOSWIM |
7
|
PC needs aqua_breath/fly/float or
boat |
UNDERWATER |
8
|
PC needs aqua_breath |
AIR |
9
|
|
DESERT |
10
|
|
UNKNOWN |
11
|
|
OCEANFLOOR |
12
|
PC needs aqua_breath. Can dig here. |
UNDERGROUND |
13
|
Can dig here. |
LAVA |
14
|
|
SWAMP |
15
|
|
Example:
redit sector 8 [Set this room as being underwater]
HELP ROOMFLAGS
Flag Name |
Description |
DARK |
Room is always dark. |
DEATH |
Room causes instant death. (a DT) |
NOMOB |
Mobs cannot wander into this room. |
INDOORS |
Room is indoors - MUST also use sectortype
0. |
LAWFUL |
Room is oriented to those of lawful
alignment. |
NEUTRAL |
Room is oriented to those of neutral
alignment. |
CHAOTIC |
Room is oriented to those of chaotic
alignment. |
NOMAGIC |
Magic cannot be used in this room. |
TUNNEL |
Room is a tunnel - a limited number
of players are allowed.
(use 'redit tunnel #' to set the number.) |
PRIVATE |
Room is private (restricted to 2
people.) |
SAFE |
Room is safe. No violence allowed |
SOLITARY |
Room is solitary. (restricted to
1 person.) |
PETSHOP |
Petshop. (next vnum must be the storeroom.) |
NORECALL |
Players cannot recall out of this
room. |
DONATION |
Donation room. Cannot use 'get all.' |
NODROPALL |
Cannot drop all in this room. |
SILENCE |
Not a sound can be made or heard
in this room. |
LOGSPEECH |
All speech in this room is logged.
(Don't use this without permission.) |
NODROP |
Nothing can be dropped in this room. |
CLANSTOREROOM |
Clan storage room. (Room contents
is saved. Use with caution.) |
NOSUMMON |
Player cannot be summoned out of
this room. |
NOASTRAL |
People cannot astral, mistwalk, or
teleport to
this room. |
TELEPORT |
People in this room will be teleported
out to a specified vnum location. |
TELESHOWDESC |
Players will see the room desc of
the teleport destination room. |
NOFLOOR |
Room has no floor. (if there is an
exit down, then any player who isn't "flying" will fall
down. Floating players take no damage. |
PROTOTYPE |
Room is a prototype. (ie; under construction.) |
ARENA |
Room will not trigger illegal pkill
logs (Use with caution). |
NOMISSILE |
Missiles cannot be fired into this
room. |
NOLOCATE |
Items in this room do not show up
with the Locate Object spell. |
NOSUPPLICATE |
Supplicate does not function in this
room (No sup recall, etc). |
AUCTION |
Auction channel is visible in this
room. |
HOUSE |
For housing. Do not use for building. |
DND |
Immortals in this room with their
"Do Not Disturb" flag up can not be disturbed by others. |
NOHOVER |
Fly and float do not function in
this room. |
NOLOG |
Players who attempt to enter the
game in this room will be moved to the default recall location (21001). |
LIGHT |
This room is always light. |
NOQUIT |
Players cannot quit in this room. |
NOYELL |
Players cannot use yell in this room. |
NOEMOTE |
Players cannot use emotes in this
room. |
Example:
redit flags nomagic indoors [This room is inside, and no magic
can be used here]
HELP EXDISTANCE
Syntax : redit {direction}
exdistance {# of rooms}
Example: redit n exdistance 5
This is relatively new and mostly unsupported programming.
When an exit has an exdistance specified, the MUD will generate the
number of rooms called for and give each of these "virtual rooms"
a random description based on the sectortype and roomflags in the originating
room. Players that quit in these virtual rooms will find themselves
in Limbo when they re-enter the game as the rooms only exist as long
as there's an active player in them. Similarly, objects left in these
rooms will probably be lost as soon as the player leaves the area.
For example;
Room 1000 is sectortype 12 and has a roomflag "dark", and an
exdistance between room 1000 and 1001 of 3 has been specified. When a
player leaves in the direction with the exdistance, the 3 rooms will be
generated, all will be sectortype 12 and all will be dark. The room desc
in each will be generated randomly from a file that has been made for
each sectortype (ie: sector 12 would have a "seafloor" type
description).
** Note:
Personally, I don't really recommend using exdistance unless there has
been some extra work done for it on your MUD.
Specifically, the description files for exdist must
be fleshed out in order to effectively use it. Unless exdist is specified
as being in both directions, it will only function one-way (ie; You may
walk for 3 rooms east, but only 1 room back west on the return journey).
As well, virtual rooms are not saved over reboot and any items in them
will be deleted. Players who saved in virtual rooms and then log-out are
often sent to their recall points when they log back in, while causing
the MUD to give a bug warning or hiccup.
PULLTYPES
Syntax: redit pulltype
<exdir> <pulltype>
Syntax: redit pull <exdir> <force>
Pull forces can be used to move characters/objects
from room to room using forces of nature. Pulltypes include the following
:
undefined |
vortex |
vacuum |
slip |
ice |
mysterious |
current |
wave |
whirlpool |
geyser |
wind |
storm |
coldwind |
breeze |
landslide |
sinkhole |
quicksand |
earthquake |
lava |
fire |
hotair |
|
|
|
Many of the pulltypes have an individualized message that may or may
not apply to the force you are looking to use. The amount of pull force
ranges from -100 to 100. This effects the quickness at which the pull
happens. A negative pull force will PUSH the character in the opposite
direction of the direction used.
This can also be accomplished by using a positive "push":
Syntax: redit <dir> push
<force>
The more extreme the number, the quicker the pull will happen. To see
if a room is affected with a pulltype, type "rstat ex".
See also: OBJECTRESISTANCE, and PULLFORCES
PULLFORCES
The messages given by each force are listed below.
If no specific is given, then the default message
is used.
Pull Force |
Message |
Default: |
Victim is pulled direction.
Victim is pushed direction. |
Mysterious: |
No message |
Whirlpool, Vacuum: |
Victim is sucked direction. |
Current, Lava: |
Victim drifts direction. |
Breeze: |
Object drifts in the breeze. |
Geyser, Wave: |
Victim is pushed direction! |
Slip: |
Victim loses his/her/its footing! |
Wind: |
Victim is blown direction by a strong
wind! |
Earthquake: |
The earth opens up and Victim falls
direction! |
Sinkhole: |
The ground suddenly gives way beneath
Victim! |
Quicksand: |
Victim begins to sink direction into
the quicksand! |
Landslide: |
The ground starts to slide direction,
taking Victim with it! |
Coldwind: |
Victim is forced direction by a bitter
cold wind! |
Hotair: |
Victim is blown direction by a blast
of hot air! |
Storm: |
Victim is driven direction by the
raging storm! |
Vortex: |
Victim is sucked into a swirling
vortex of colors! |
Breeze will not move a character, but based on object
resistance will move an object.
See also: PULLTYPES, and OBJECTRESISTANCE
OBJECTRESISTANCE
The resistance of an object against a pull/push force
is determined by the weight of an object and a few quick math formulas.
The base resistance of an object is equal to its weight.
If an object is flagged "metal" it gets an initial addition
of 1/5th its weight. The resistances then become based off the item type
For scrolls, notes and trash divide the resistance
by 4.
For scraps and containers, divide the resistance by 2.
For pens and quills, multiply the resistance by 5/6.
For mob and pc corpses and fountains, multiply the resistance by 4.
If the absolute value (+/- 100 = 100) of the push value
multiplied by 10 is greater than the resistance of the object, the object
will eventually be moved by the pull/push force.
See also: PULLTYPES and PULLFORCES
A Final Word
When making rooms for the first time, it's a good idea
to make yourself some kind of checklist so that you don't miss adding
something to the room that should be there. This will save time for those
who have to check your work, and it will save you having to go back to
re-write all those things you missed. Remember; Spelling and grammar
count!
The REDIT menu makes an easy checklist;
|
Every room needs a unique and descriptive
name.
(Mazes are the exception.) |
Desc :
|
Descriptions should give the visual
"layout" of the room so that a player can imagine where
they are. Avoid weak 2 or 3 line descriptions. |
Ed :
|
Extra descriptions add more flavor
to the room descs. |
Exdesc :
|
EVERY exit from a room MUST have
an exdesc. |
Exflags :
|
These are optional. |
Exname :
|
These are optional. Avoid 2 identical
exnames in the room. |
Exkey :
|
If your door is locked, you'll need
a key. |
Exdistance:
|
This is optional. (This is not fully
supported yet) |
Flags :
|
These are optional, unless sectortype
is 0. |
Sector :
|
EVERY room MUST have a sectortype. |
Teledelay :
|
An option for those teleporting
rooms. |
Televnum :
|
If the room is a teleport room. |
Tunnel :
|
Optional. Mobs are included in the
number specified. |
[ Rooms ] [ Objects ] [ Mobs ] [ Resets ] [ Programs ] [ Resources ] [
FAQ ]
The entire
contents of this page is Copyright ©1997-2007 FoxDesigns
|