
This lists the zones that are currently open to mortals when
the game boots. There are also commands available to level 9 and
above immorts to add or delete zones from this list. This commands
basically do a zunlock or zlock, so read the help for them to
understand the issues at hand.
Syntax: list_zones List all active zones on startup.
Syntax: add_zone [zone_num] Add a zone to the active list.
Syntax: rem_zone [zone_num] Remove a zone from the active list.
Examples: list_zones
add_zone 0
rem_zone 5
See Also: zlist rstat zunlock zlock

This function allows you to add a single 'casts spell' to an object.
You will need to do an 'aosave' in the zone to which the object
belongs in order to make the changes permanent.
CASTS SPELL Relates to staffs, scrolls, and potions, currently.
See slist for spell numbers available.
Syntax: add_casts_spell [obj_num] [spell_level] [spell_num]
Example: add_casts_spell 65 30 7 // add a level 30 spell numbered 7
// to object 65.
See Also: add_stat_affect ostat add_casts_spell slist

This command allows you to add a blank keyword to the front of the
array of keywords in your CURRENT ROOM. You can then use the ch_kdesc
and add_kname commands to make it how you want it. Hegemon has a GUI
to do all this.
The steps to adding a keyword are like this:
add_keyword # Creates a new (blank) keyword.
rstat # Shows you the keywords in the current room.
stat_keyword [keyword number] # Verbose listing, primes the Hegemon GUI.
add_kname, ch_kdesc # Modifies the keyword.
asave # Save the current zone, with your keywords too!!
usage: add_keyword
See Also: rstat rm_keyword stat_keyword clear_keyword ch_kdesc
See Also: add_kname asave

This command allows you to add a name to a keyword entry
in your current room. For instance, if you had a rock
keyword entry, then you might want to also add 'stone'
as a keyword name for it.
usage: add_kname [keyword_index] [new_keyword_name]
See Also: rstat rm_keyword stat_keyword add_keyword ch_kdesc
See Also: clear_keyword

There are several commands that let you add or delete names from
a mobile or object. The syntax for add_mname is:
Syntax: add_mname [mob_num] [name to be added]
Example: add_mname 55 guard
See Also: ch_rname ch_odesc add_oname rem_mname rem_oname

(Can now be used on rooms and objects too!!)
This function, though a bit unwieldy, allows you to add or modify a
script for some room, object or mob. If the entity already has a script
triggered by what you specify here, then it will be over-written. After
entering this command, you will be prompted to input the script. In your
script, there are certain variables you can put in:
%% Percent Sign
%M Actor's Name
%m Target's Name, if it's a MOB
%o Target's Name, if target is an Object
%S The Entity 'executing' the script.
An example script for a mob might be:
(Suppose the trigger is when the actor types wear dagger, and the
dagger's Vnum is the same as the target number for the script.)
say %M, that's a sharp %o you have there, better be careful!;;
pause 1;;
emote glances again at the dagger and starts hammering on his latest sword.;;
NOTE: Enter all this at once, on one line.
usage: add_mob_script [mob_num] [trigger_cmd] [actor_num]
['discriminator_string'] [target_num]
[takes_precedence]
usage: add_room_script [rm_num] [trigger_cmd] [actor_num]
['discriminator_string'] [target_num]
[takes_precedence]
usage: add_obj_script [obj_num] [trigger_cmd] [actor_num]
['discriminator_string'] [target_num]
[takes_precedence]
NOTE: If 'discriminator_string' is a number, prepend DESCRIM_ to it or
it will not work, for example: DESCRIM_55
Arguments:
mob_num/rm_num is the number of the entity which should get this script
trigger_cmd: Should be one of the commands we support:
close, donate, drop, eat, enter, examine, exit, fill, follow,
get, give, group, hit, list, lock, "look, meditate, open, order,
pay, prone, remove, rest, say, shoot, sit, slap, sleep, stand, tell,
throw, ungroup, unlock, wake, wear, yell
actor_num: The mob which can trigger this script, if -1 then it can be
anyone
discriminator_string: An optional trigger condition, designed for
communications, but has extensions that now work for other
commands. For the communications (say, yell, tell), it will
match any string which contains it, and it is NOT case sensitive.
NOTE: If a few cases, where there is a target involved, and also
another object, like: give [obj] [critter], the
discriminator_string will be the number of the OBJECT involved.
NOTE: Use 'NA' (no quotes) if you don't want or need a
descriminator.
On non-communication triggers, the following discriminators
can be used: FEM, MALE, NEUTER, BARD, CLERIC, WARRIOR, SAGE
WIZARD, THIEF, ALCHEMIST, HUMAN, ANITRE, DARKLING,
DRAGON, DWARF, OGRUE, ELF, UNDEAD, ANIMAL, MONSTER
When added, these have the meaning of 'only'. So, if you make
FEM your desriminator, then the script will only be triggered
on FEMALES. You can add several by doing something like:
FEM.THIEF.ELF, which will mean that this script will only work
on a female, elven thief.
SPECIAL DISCRIMINATORS FOR CERTAIN TRIGGERS:
--------------------------------------------
enter: The discriminator is the direction entered from:
above, below, north, northwest, northeast, east, southeast,
south, southwest, west
put: The discriminator is the object number of the bag. Enter
-1 if it can be any container.
target_num: This can be a MOB or OBJECT number, which ever makes sense
to the trigger command.
takes_precedence: If this action should pre-empt already-running
scripts, enter anything but zero (0), if NOT, then enter a zero
(0).
-----------------------------------------------------------------------
Special Scripting Commands:
pause, exact_damage, oload, mload, affect_hp, affect_mana,
affect_mov, is_greater_than, is_less_than, is_equal_to,
is_in_posn
-----------------------------------------------------------------------
NOTE: the use of the 'pause' command can be very useful, as it helps
to space out the mobs actions. The pauses are the length of a round of
battle, about 2-3 seconds each.
NOTE 2: You must do an amsave/asave/aosave in the zone that the entity
belongs to in order to have your changes made permanent through a reboot.
mstat/rstat/ostat will give you the zone that the entity belongs to.
------------------------------------------------------------------------
Caveats: Only one command per line. Comments not implemented at
this time. Your 'if' construct must have an else statement,
even if it is empty. Note that each command must end with
double semi-colons.
Comforts: You should be unable to seriously harm the game, no matter
what awful script you write! Bad loops could waste resources
though.
Expanded Scripting Capability:
==============================
NOTE: square brackes should not be used in the actual script, they
are just used to delineate commands in the examples below.
Defining what Entity is to take the script action:
--------------------------------------------------
Currently all commands are from the perspective of the mob/room/obj that
'owns' the script. Now you may specify the commands to be 'executed'
by other actors. For instance, suppose you wanted to check if the
actor had a specific piece of eq in his/her inventory? The answer
to this problem is found below.
To specify that the action should be taken by someone else, use this
syntax:
Action to be taken by the actor:
**%M [normal script command]
Action to be taken by the target.
**%m [normal script command]
Action to be taken by script owner (this is the default).
**%S [normal script command]
Action to be taken by target, if target is an object.
**%o [normal script command]
For instance, in this example we query whether or not the actor has
object #44 in his/her possession.
**%M if does_own 44
===============================
High Level Constructs:
----------------------
if [conditional command and arguments]
[do this block
of stuff]
else
[do this block
of stuff]
end
===============================
Low Level Constructs:
-------------------------------
script_goto_true [label] [conditional command and args]
script_goto_false [label] [conditional command and args]
script_jump_true [line number] [conditional command and args]
script_jump_false [line number] [conditional command and args]
label: [your_label]
===============================
Conditional Commands: (See 'help does_own' for more information.)
-------------------------------
TRUE, FALSE, is_equal_to, is_less_than, is_greater_than,
is_in_posn, does_own
Special Scripting Commands:
--------------------------------
recho: Room wide echo.
silent_junk: Junk object without any external messages.
oload: Load an object from nowhere.
===============================
Example Mob Script:
-------------------------------
Trigger: give Actor Mob: -1 Target Mob: 76 Precedence: 1
Discriminator: 334 .
start of script text:
---------------------
say Ahhh, you must know of Korg!!!;;
if does_own 334 335;;
say I own both hearts;;
else;;
say I don't own both hearts;;
end;;
say Hrm....;;
say End of script..;;
==============================
Room Scripting Commands:
------------------------------
recho: Echo a message to the room.
tell: The room tells a player a message.
zecho: Cause a message to be echoed across the entire zone.
wizchat: Cause a message to be sent to the wizchat channel.
rm_move_all: Force all players to exit in a certain direction.
rm_move: Force one player to exit in a certain direction.
rm_transport_all: Move all mobs to another room.
rm_transport: Move one mob to another room.
neighbor_echo: Echo a message to a neighboring room (like after a move).
other_room_echo: Echo a message to a different room, by VNUM.
rm_omove_all: Force all objects to exit in a certain direction.
rm_omove: Force one object to exit in a certain direction.
rm_otransport: Force an object to go to another room.
rm_otransport_all: Force all objecs to go to another room.
oload:
mload:
==============================
Object Scripting Commands:
------------------------------
recho: Echo a message to the room.
tell: The room tells a player a message.
zecho: Cause a message to be echoed across the entire zone.
wizchat: Cause a message to be sent to the wizchat channel.
obj_move_all: Force all players to exit in a certain direction.
obj_move: Force one player to exit in a certain direction.
neighbor_echo: Echo a message to a neighboring room (like after a move).
obj_omove_all: Force all objects to exit in a certain direction.
obj_omove: Force one object to exit in a certain direction.
pull: Triggered by: pull [descriminator], see help for pull.
push: Triggered by: push [descriminator], see help for push.
See Also: olc amsave mstat rm_script list_scripts stat_script affect_hp
See Also: affect_mana affect_mov comparators rm_comm

There are several commands that let you add or delete names from
a mobile or object. The syntax for add_oname is:
Syntax: add_oname [obj num] [name to be added]
Example: add_oname 55 guard
See Also: ch_rname ch_odesc rem_oname add_mname rem_mname

Adds a blank path at the given cell number. If this cell number is within
the cells already added, then it will be inserted. You may then modify the
blank path cell with the commands listed below.
Syntax: add_path [vehicle_num] [path_cell_num]
Example: add_path 25 2 Add a blank path cell in the second position.
See Also: rstat stat_path ch_path_desc set_path_dir rem_path add_path
See Also: tog_veh_stop list_paths set_path_pointer

This is used to add permanent inventory to Shopkeepers. You
probably want to use the 'DB' method to directly affect the
database. Don't forget to do an amsave to make your changes
permanent.
NOTE: Syntax has changed!!
Syntax: add_perm_inv [object_number] <i_th> [shopkeeper]
Syntax: add_perm_inv [object_number] [VNUM] DB
Example: add_perm_inv 5 2.baker He now sells object number 5.
Example: add_perm_inv 5 55 DB Mob # 55 now sells object number 5.
See Also: aosave mstat olist aolist buy list rem_perm_inv

THIS HAS BEEN DEPRECATED BY THE ADD_MOB_SCRIPT AND RELATED COMMANDS.
Please do not use this command.
This command can allow you to add special procedures to already-written
mobs. Just follow the prompts and remember to do an aosave when completed.
Note that if you do a 'reset_olc', you will have effectively done a
'mclear' on it. This could be messy, but hopefully not fatal. Please
avoid this.
Syntax: add_proc [mob_number]
Example: add_proc 50 //add some proc to mob 50
See Also: rm_give_proc rm_bow_proc rm_curse_proc rm_say_proc

There are several commands that let you add or delete names from
a mobile or object. The syntax is the same for all of them:
Syntax: command [obj or mob num] [name to be added or removed]
Example: add_oname 55 guard
rem_mname 45 cup
The commands are:
add_oname, add_mname, rem_oname, rem_mname
See Also: ch_rname ch_odesc

This function allows you to add a stat affect to an object.
You will need to do an 'aosave' in the zone to which the object
belongs in order to make the changes permanent. The stat numbers
are below. The game does a sanity check, so some of these
cannot be added, even though the command will look like it worked.
0 position {0 stand, 1 sit, 2 rest, 3 sleep, 4 med,
5 stun, 6 dead, 7 prone}
1 str, 2 int, 3 con, 4 cha, 5 wis,
6 dex, 7 hit, 8 dam, 9 ac, 10 attacks, 11 pause_count
12 sex {0 female, 1 male, 2 neuter}
13 class, {1 warrior, 2 sage, 3 wizard, 4 ranger, 5 thief,
6 alchemist, 7 cleric, 8 bard}
14 race, {1 human, 2 anitre, 4 darkling, 7 dwarf, 9 ogrue,
11 elf, 14 sombrian}
15 hp, 16 mana, 17 mov, 18 align,
19 level, 20 misc: hometowns
{ 1 garland, 2 jakarta, 3 gamora, 4 exile}
21 wimpy
22 practices, 23 hp_max,
24 mana_max, 25 mov_max, 26 type_of_mob, { 0 pc, 1 smob 2 mob}
27 dam_received_divisor, 28 dam_given_multiplier,
29 heat_resis, 30 cold_resis, 31 elect_resis,
32 spell_resis 33 religion, 34 in_zone (origin zone for mobs),
35 bare_hand_dice_count, 36 bare_hand_dice_sides,
37 hp_regen, 38 mana_regen, 39 mov_regen
40 guild, 41 NULL, 42 NULL
usage: add_stat_affect [obj_num] [stat_to_add] [stat_modifier]
Example:
add_stat_affect 65 7 5 // add stat 7 with affect 5 to obj 65
See Also: rm_stat_affect ostat

Allows you to add a zone to the 'active' database. This is
different from create_zone by the way. Active zones mean that
by default they will be zunlocked and ready for mortal players
when the mud starts up.
Syntax: add_zone [i_th]
Examples: add_zone 5 # add zone 5 to the playable zones.
See Also: rem_zone list_zones

This command lists all the doors created for your current zone.
Syntax: adlist
Example: adlist
See Also: olist mlist dstat dlist dclear

Writes all doors in your zone out to permanent storage. Usefull after
modifying a door in some way, or deleting one using 'dclear'.
Syntax: adsave <zone_num>
Example: adsave //default zone_num is your current zone
adsave 0 //save doors for zone zero
See Also: dclear asavedstat dlist

Used to affect the Hit Points (up or down) of a particular
victim. The worst this command can do is put the HP to 1. It
will never kill. This command can be used by scripting mobs
and immortals, objects, and rooms.
syntax: affect_hp <i_th> [victim] [dice_count] [up/down] [dice_sides]
example: affect_hp 2.guard 5 down 4 # Lower guard's HP by 5d4
example: affect_hp guard 5 up 4 # Raise guard's HP by 5d4
See Also: affect_mana affect_mov add_mob_script roll

Used to affect the MANA (up or down) of a particular
victim. This command can be used by scripting mobs
and immortals, objects, and rooms.
syntax: affect_mana <i_th> [victim] [dice_count] [up/down] [dice_sides]
example: affect_mana 2.guard 5 down 4 # Lower guard's MANA by 5d4
example: affect_mana guard 5 up 4 # Raise guard's MANA by 5d4
See Also: affect_hp affect_mov add_mob_script roll

Used to affect the Movement (up or down) of a particular
victim. This command can be used by scripting mobs
and immortals, objects, and rooms.
syntax: affect_mov <i_th> [victim] [dice_count] [up/down] [dice_sides]
example: affect_mov 2.guard 5 down 4 # Lower guard's MOV by 5d4
example: affect_mov guard 5 up 4 # Raise guard's MOV by 5d4
See Also: affect_hp affect_mana add_mob_script roll

This command lists all mobs belonging to a certain zone.
Syntax: amlist [zone_num] [how_many]
Example: amlist 1 15 Shows first 15 mobs for zone 1
See Also: mlist arlist aolist olc

This saves all mobss belonging to the zone you designate, or the default,
which is the one you are in when you give the command. It is destructive in
that the old mob database on disk is destroyed, written over. This
command is useful for fine tuning your mobs for your zone. This is also
a way you can permanently (almost) delete an object from the database if
you no longer want it. In case of accidents, there is a duplicate copy
saved in your OLC_DIR, but there is no online way to mess with it.
Syntax: amsave <zone_num> //attempt to save mobs in [zone_num]
amsave //attempt to save mobss in current zone
Example: amsave 15
amsave
See Also: asaveaosave mset mclear
Note: You can only use this command on zones you are an owner of.

This command lists all objects belonging to a certain zone.
Syntax: aolist [zone_num] [how_many]
Example: aolist 1 15 Shows first 15 objects for zone 1
See Also: olist arlist amlist olc

This saves all objects belonging to the zone you designate, or the default,
which is the one you are in when you give the command. It is destructive in
that the old object database on disk is destroyed, written over. This
command is useful for fine tuning your objects for your zone. This is also
a way you can permanently (almost) delete an object from the database if
you no longer want it.
Syntax: aosave <zone_num> //attempt to save objects in zone
//[zone_num]
aosave //attempt to save objects in current zone
Example: aosave 15
aosave
See Also: asaveamsave oset oclear
Note: You can only use this command on zones you are an owner of.

This function lists rooms defined in a given zone.
Syntax: arlist [zone_num] [how_many]
Example: arlist 2 50 Shows first 50 rooms defined in zone 2.
Example: arlist Shows first 100 of current zone.
See Also: amlist aolist rlist olc goto

This allows you to change the description of the door
in question. It is interactive, so you can enter it one
line at a time.
Syntax: ch_ddesc [door_number]
See Also: dlist adlist dstat

This command allows you to change the description of a keyword in
your current room, specified by an index. You will be prompted for
input after executing this command.
usage: ch_kdesc [keyword_index]
See Also: rstat rm_keyword stat_keyword add_keyword add_kname
See Also: clear_keyword keyword

This allows you to change the long description of the mobile
in question. It is interactive and you may enter it a line
at a time if you wish.
Syntax: ch_mdesc [mob_number]
See Also: mlist amlist mstat

This allows you to change the in room description of the mobile
in question. You enter it all at once. NOTE: the description must
be in single quotes.
Syntax: ch_mndesc [mobile_number] ['new in room description']
See Also: mlist amlist mstat

This allows you to change the short description of the mobile
in question. You enter it all at once. NOTE: the description must
be in single quotes.
Syntax: ch_msdesc [object_number] ['new short description']
See Also: mlist amlist mstat

This allows you to change the long description of the object
in question. It is interactive and you may enter it a line
at a time if you wish.
Syntax: ch_odesc [object_number]
See Also: olist aolist ostat

This allows you to change the in room description of the object
in question. You enter it all at once. NOTE: the description must
be in single quotes. An in-room description might be:
A small sword lies in the dust.
Syntax: ch_ondesc [object_number] ['new in room description']
See Also: olist aolist ostat

This allows you to change the short description of the object
in question. You enter it all at once. NOTE: the description must
be in single quotes. A short description might be:
a short sword
Syntax: ch_osdesc [object_number] ['new short description']
See Also: olist aolist ostat

Changes the description of a certain path cell in a vehicle.
You will be prompted for input after entering this command.
Syntax: ch_path_desc [vehicle_num] [path_cell_num]
Example: ch_path_desc 25 2 Change the desc of the 2nd cell in vehicle #25
See Also: rstat stat_path ch_path_desc set_path_dir rem_path add_path
See Also: tog_veh_stop list_paths

This function should allow you to change the description of your
current room. You then must write the zone out to make the changes
stick.
usage: ch_rdesc
See Also: olc write_zone rset rstat

Change the name (the short description you see when in brief mode)
of the current room you are in.
Syntax: ch_rname [new_string]
Example: ch_rname 'The plains of Darkon Mae'
BAD EXAMPLE: ch_rname The plains of pain
This last example will not work as planned, you need the single quotes.
See Also: ch_rdesc rclone

This command allows level 9 and above immorts to change the name
of a zone.
NOTE: You must put names of more than one word in single
quotes.
usage: ch_zname [zone_num] ['new name']
Example: ch_zname 10 'Dreaded Newbie Zone'
ch_zname 10 Newbania
See Also: zlist zenable zdisable zcreate

These are the classes and their corresponding numberrs:
OTHER_CLASS 0
WARRIOR 1
SAGE 2
WIZARD 3
RANGER 4
THIEF 5
ALCHEMIST 6
CLERIC 7
BARD 8
See Also: races

This command allows you to clear a keyword of a given index in your
current room. You can then use the ch_kdesc and add_kname commands
to make it how you want it. Hegemon has a GUI to do all this.
usage: clear_keyword [keyword_index]
See Also: rstat rm_keyword stat_keyword add_keyword ch_kdesc
See Also: add_kname

Delete all the names from a critter. This is most often done by
the Hegemon Client when it is updating a critter. (The new names
will be added back.)
Syntax: clear_mnames [mob num]
Example: clear_mnames 55
See Also: ch_rname ch_odesc add_oname add_mname rem_mname rem_oname

Delete all the names from an object. This is most often done by
the Hegemon Client when it is updating an object. (The new names
will be added back.)
Syntax: clear_onames [obj num]
Example: clear_onames 55
See Also: ch_rname ch_odesc add_oname add_mname rem_mname rem_oname

These commands are designed to be used in scripts to allow
conditional branching. Position options are:
stand, sit, rest, sleep, meditate, stun, dead, prone
You may compare these fields currently: MOV, MANA, HP, ALIGN,
BENEVOLENCE, HOMETOWN, NATIVEZONE, AGE, VISBIT, SEEBIT,
NAKED_WEIGHT, CHARISMA, HP_MAX, MANA_MAX, MOV_MAX, WIMPY,
LEVEL, CLASS, GOLD, RACE
Syntax: is_equal_to <i_th> [targ] [field]
Syntax: is_less_than <i_th> [targ] [field]
Syntax: is_greater_than <i_th> [targ] [field]
Syntax: is_in_posn [POSITION]
Syntax: does_own [obj# 1] ... <obj# 6>
Usage: is_equal_to 2.guard HP
Usage: is_less_than guard ALIGN
Usage: is_greater_than Fubar MANA
Usage: is_in_posn STAND
Usage: does_own 50 2 2 5 # TRUE if one owns these 4 objects.
See Also: add_mob_script

This command allows you to create a concoction. For example,
if you want a player to be able to find several components, and
then concoct them into some othe object, this is the command
to allow that. All objects you are dealing with must be created,
and you must have ownership of them (in OLC terms). You will get
appropriate errors if this is not the case.
This command does not check to see if the objects in question are
already part of a construction. An object can only be a component
of one construction or concoction. If you use this command on an
object that is part of another, it will become a part of the new one
you are creating, but the old one it was part of will be wierd, at
best.
There is not an easy way to fix a screwed up concoction, so you might
have to oclear objects if you can't get them fixed. First, though, ask
me (Grock, or your fellow IMP), I might can fix it up for you...
You must do an aosave in every zone that you modified objects in. Unless
you are working on several zones at once, it is most likely that you will
only have to do this in one zone, your current one.
Syntax: create_concoction [targ_obj_num] [comp1_num] ... [comp5_num]
Example: create_concoction 6 9 10 11 200 7
# Object number 6 can now be concocted if the player has the
# objects numbered 9, 10, 11, 200 and 7. (And has the
# concoct skill and paraphanalia.
Example: create_concoction 6 7 9
# Object number 6 can now be constructed if the player has
# the objects numbered 7 and 9 (only).
See Also: olist aolist create_construction construct concoct

This command allows you to create a construction. For example,
if you want a player to be able to find several components, and
then construct them into some othe object, this is the command
to allow that. All objects you are dealing with must be created,
and you must have ownership of them (in OLC terms). You will get
appropriate errors if this is not the case.
This command does not check to see if the objects in question are
already part of a construction. An object can only be a component
of one construction or concoction. If you use this command on an
object that is part of another, it will become a part of the new one
you are creating, but the old one it was part of will be wierd, at
best.
There is not an easy way to fix a screwed up concoction, so you might
have to oclear objects if you can't get them fixed. First, though, ask
me (Grock, or your fellow IMP), I might can fix it up for you...
You must do an aosave in every zone that you modified objects in. Unless
you are working on several zones at once, it is most likely that you will
only have to do this in one zone, your current one.
Syntax: create_construction [targ_obj_num] [comp1_num] ... [comp5_num]
Example: create_construction 6 9 10 11 200 7
# Object number 6 can now be constructed if the player has the
# objects numbered 9, 10, 11, 200 and 7. (And has the
# construct skill and paraphanalia.
Example: create_construction 6 7 9
# Object number 6 can now be constructed if the player has
# the objects numbered 7 and 9 (only).
See Also: olist aolist create_concoction construct concoct

This is similar to mclear, it delets a door_data (the thing you build with
OLC) from the database. Use adsave AND asave to make the changes permanent.
Syntax: dclear [door_num]
Example: dclear 17
See Also: delete_door adsave asavedstat dlist
NOTE: You must own this door (have built it) to destroy it.
NOTE: door_num refers to its index, ie the number by it in 'dlist'

This command deletes a door from a room. This does not destroy
the door in memory, it only deletes the pointed to it from the
current room. Also, it in NO WAY affects the other virtual side
of the door. In other words, you have to delete a door one side
at a time.
syntax: delete_door <n_th> [name of door]
example: delete_door east Deletes first door of name east.
delete_door 2.wooden Deletes the second door named
wooden.
See Also: olc flip_door replace_door door_to

This command lists doors in the database.
Syntax: dlist <first_door_num> <last_door_num>
Example: dlist 1 20 shows doors 1-20
See Also: olc olist mlist dstat

This useful command creates a door (an exit actually) from the current
room to one specified by number, exiting in a direction specified.
Distance is measured in battle_rounds. These of course last as long
as a battle round. This is a good way to slow down ppl or vehicles
when needed.
syntax: door_to [destination_door_num] [distance] [direction of exit]
example: door_to 35 north Creates an exit, to the north,
leading to room# 35.
Directions are: north, south, west, east, up, down, northwest,
southwest, southeast, northeast.
You man NOT abbreviate directions in this case.
See Also: olc flip_door replace_door delete_door dstat

Dset is a command that allows you to set specific values on a door.
It produces changes that can be permanent if one does a adsave AND
an asave afterwords.
Syntax: dset [door_name] [field_to_change] [new_value]
Example: dset // Lists all fields that can be set
dset north key_num 5 //keynum is now 5
See Also: mset oset rset ch_rname ch_rdesc adsave asave
NOTE: You must own the underlying door structure (ie have built it)
in order to change it. However, if you are uncertain,
it won't hurt to try!

This function returns a great deal of information about a given door.
Syntax: dstat <i_th> [door]
Example: dstat 30 Stat door# 30
dstat east Stat east
See Also: ostat mstat olc rstat dset

Displays some low level information dealing with the actual server
code. Used for trouble-shooting code problems mostly.
It now will display the definitions for most of the flags used
in ScryMUD, especially those relating to Objects, Critters, Rooms
and Doors.
Entity types are: doors, objects, rooms, and critters.
Syntax: dsys # Shows memory usage and debugging info.
Syntax: dsys flags [for-entity] # Shows the flags defined.
Syntax: dsys dump_logs # Force a flush of the logging system, this
# will produce a ./log/onDemand.log file.
Syntax: dsys debug_proc_action_mobs # prints out some debug info
See Also: who sockets ldwho uptime mset oset dset rset

List all doors with a given name.
Syntax: dvnum <starting_number> [name]
Example: dvnum east list all exits to the east
(and many west)
dvnum 20 east list all exits from vnum 20 on
See Also: ovnum mvnum dstat dlist

This is an unstoppable 'charm'. The monster in question starts
following you and is your pet. Mostly used for bug testing groups
and moving mobs in OLC.
syntax: enslave <i_th> [mob_name]
See Also: order follow force possess

This command, written with scripting in mind, exacts a certain
amount of damage from the caller. It also causes the caller to
emote a message, if one is specified.
NOTE: Need single quotes around the message.
Syntax: exact_damage [dice_count] [dice_sides] <'command'>
Example: exact_damage 5 6 # Does 5d6 damage to caller, no msg is emoted.
Example: exact_damage 4 4 'is consumed in a flash of white heat.'
See Also: add_mob_script hit slay

The internal door code is a bit messy for efficiency's sake. For
this reason when you create a door, it may exit to the OPPOSITE side
that you want it to exit to. If this is the case, you can
'flip_door' to reverse it. This is quite strange, because it only
flips one side of the door, the other side (in another room) remains
the same. For you coders: the side of a door which faces a given
room is determined by the sign of the destination room's number.
syntax: flip_door <n_th> [direction_of_door]
example: flip_door 1.oaken Flips first door of name 'oaken'.
See Also: olc delete_door replace_door door_to dstat

This is similar to 'order', but it is unconditional if your level
is high enough with respect to your target. It will be as if your
target typed in whatever you force them to do. Use this with
some restraint or it will be more closely monitored. Also, it
shows the target what they have been forced to do, and by whom.
Syntax: force [target] [action]
Example: force levander gecho I will write a GUI client for this MUD!!
force grock gecho Rock on brother Levander!
force newbie gossip What's a GUI?
See Also: force_all order enslave
NOTE: PC's do NOT have to be in the same room as yourself.

Similar to force, except with this you specify no target. Your force
will go out to every PC that is not linkdead. Of course, you will not
be able to bother those of higher levels than yourself. Once again,
do not abuse this command..
Syntax: force_all [action]
Example: force_all gossip All hail Dagath!!
force_all gossip Aww hell, Grock!!
See Also: force enslave order freeze
NOTE: you cannot abbreviate this command.

Similar to gag, but it renders a person helpless to affect the MUD,
including him/her self. This is a severe punishment and should be
treated accordingly.
Syntax: freeze [target]
Example: freeze HoseYerMom
See Also: gag thaw
Note: You cannot abbreviate this command

This command makes one unable to communicate. Good for bothersome
twerps.
Syntax: gag <i_th> [target]
Example: gag devilchild If devilchild is logged on or
linkdead it will be gagged.
See Also: ungag siteban freeze

GECHO, RECHO, ZECHO:
These commands echo a string to a range of players. Please use with
care so you don't mess up the Java Client or other trigger mechanisms
in the player's clients. It is tagged, for higher level immorts, and
you will be diciplined if you abuse these commands.
Syntax: gecho [string to be displayed to all players logged in]
recho [String to be displayed to your current room]
zecho [String to be displayed to your current zone]
Example: gecho TESTING TESTING and only TESTING is displayed.
See Also: recho channels gag freeze

This command is used to goto any mob detectable by the pc, or any room.
Going to a mob in this fashion is CPU intensive so don't use it
frivously.
synopsis: goto [room_number] //very effecient
goto <n_th> [mob_name] //not so effecient
examples: goto 1 Takes you to room numbered 1, Garland Temple
goto 3.guard Takes you to the 3rd mob named guard.
Note: For mobs, the rooms are searched from the first to last.

Transport mobs or pc's in your CURRENT room to any valid room. You
can trans any pc, who is not linkdead (which can be easily changed
if need appears), to any valid room.
Syntax: itrans <i_th> [target] <rm_num>
Example: itrans dagath //trans dagath to your CURRENT room
itrans shade 666 //trans shade to room 666
Note: You can only trans someone to room#1 if you are IN this room.
This is due to parser peculiarities.

A keyword is a way for you to put a description into a
room for the sole purpose of displaying information to the player.
For example, you might want a sign that reads 'Keep Out'. You
could create a sign object, and place it in the room, but then
other players might be able to move the sign around. Keywords
can only be accessed by mortals through the 'look' command. If,
for instance, you mention a sign in your room desc, the player
might decide to 'look sign'. If you added such a keyword to this
room, then the player could see your text. If, on the other hand,
the player types 'get sign', it will be as though the sign does
not exist in the game.
See Also: rstat rm_keyword stat_keyword clear_keyword ch_kdesc
See Also: add_kname add_keyword asave

Displays a list of all the characters on the linkdead_list.
syntax: ldwho
See Also: who sockets

List every script that an object has. It only shows headers, so you have to
do a stat_obj_script command to get a verbose description of each.
usage: list_obj_scripts [obj_num]
Example: list_obj_scripts 69 // List scripts for object 69
See Also: stat_obj_script add_mob_script rm_obj_script

This will list the path cells for a given room. If you don't specify a
room (vehicle) number, then your current room will be used.
Syntax: list_paths
Example: list_paths 25 List paths for vehicle number 25
list_paths List paths for your current location.
See Also: rstat ch_path_desc set_path_dir rem_path add_path
See Also: tog_veh_stop list_paths

List every script that a room has. It only shows headers, so you have to
do a stat_room_script command to get a verbose description of each.
usage: list_room_scripts <rm_num>
Example: list_room_scripts 69 // List scripts for room 69
Example: list_room_scripts // List the scripts for current room
See Also: stat_room_script add_room_script rm_room_script list_scripts

List every script that a mob has. It only shows headers, so you have to
do a stat_script command to get a verbose description of each.
usage: list_scripts [mob_num]
Example: list_scripts 69 // List scripts for mob 69
See Also: stat_script add_mob_script rm_script list_room_scripts

Lists the current banned sites. See: 'help siteban' for more
information on how to decode the information.
Syntax: list_site_bans
Example: list_site_bans
See Also: ungag siteban freeze gag siteban

Allows you to list the active zones. Active zones mean that
by default they will be zunlocked and ready for mortal players
when the mud starts up.
Syntax: list_zones
Examples: list_zones # Shows active zones.
See Also: rem_zone add_zone

Sets the logging level for the primary log stream. The values are as follows,
add them together to get the desired level. Only level 9 and 10 immorts can
do this command. If you enter log_level by itself, then you can see the current
level. To set the level to 1, you must enter a -1. Other than that, things
are normal!
DIS = 1, //disasters
ERR = 2, //errors
WRN = 4, //warnings
INF = 8, //info
TRC = 16, //function trace
DBG = 32, //debug
SEC = 64, // log security violations
DB = 128, // READ or WRITE from the world files
XMT = 256 // WRITE to PC's descriptor (ie output to player)
SCRIPT = 1024, //Scripting specific stuff
PARSE = 2048, //PARSE specific
ALL = 65535
Syntax: log_level <new_level>
Example: log_level 7 # Set level to 7
Example: log_level # Show current logging level.
See Also: quit save write_zone

Advance a pc to builder status.
Syntax: make_builder <i_th> [target_name]
Example: make_builder whirlwind
See Also: zcreate olc zenable zdisable

This allows you to make a regular shopkeeper into a player-run
shop keeper. You must be the owner of the mob to do this. Also,
you will probably want to use mset to set the manager eventually,
though only high level (9+) imms can do this.
Syntax: make_pso <i_th> [shopkeeper_name]
Example: make_pso 2.shopkeeper
See Also: mset

Delete a mob from the online Data Base. You SHOULD do an amsave after
this command, but at the time it isn't forced by the code. See help on
oclear for a better explanation.
Syntax: mclear [mob_num]
Example: mclear 50
See Also: amsave oclear rclear mset mstat

This function clones mobiles. Excelent when combined with mset,
tog_mflag, ch_mdesc and other commands for expanding a zone.
syntax: mclone [mob_num] Clones mob numbered [mob_num]
mclone <i_th> [name] Clones mob in current room
example: mclone 25
mclone 2.guard
See Also: oclone rclone olc mset tog_mflag ch_mdesc mstat
Note: mobiles appear in your current room.

This command lists mobiles currently loaded into memory. If someone
has just created an mob, and not done an amsave, then it will not be
in the database, but will show up with an 'mlist' command. However,
for the most part, what you see with mlist is what is in the database.
Syntax: mlist <starting_number> <ending_number>
Example: mlist 20 45 shows mobs from 20 to 45
See Also: amlist olc mstat

Loads a mob into your current room.
Syntax: mload [mob_num]
Example: mload 3 load mob number 3, if it exists
See Also: amlist mlist mclone oload

This function reloads all the MOBs for a particular zone. Any random
read in values (ie inventory in a bag) may be updated.
It affects the CURRENT zone of the player only.
Syntax: mreload
See Also: oreload rezone

Used to set values on a mob or pc. They must be in your current room.
This can be used in conjunction with 'amsave' to permanently change
the data base. Note that some changes are restricted to only the
highest players. No immortal can change a higher-level immortal's
stats, and no immortal below level 9 can change a pc's stats.
If you wish to modify the database directly, without worrying about
whether or not your target is a MOB or SMOB, then use DB for the
mob name, and make i_th the mob number. See NOTE at bottom.
Syntax: mset // shows what you can set
mset <i_th> [mob] [thing_to_set] [new_value]
mset <i_th> DB [thing_to_set] [new_value]
Example: mset
mset 2.warrior max_hp 365 //set warrior's max_hp to 365
mset 195 DB max_hp 365 //set mob number 195's max_hp to 365
See Also: oset rset amsave tog_mflag SMOB mstat
NOTE: If your target is a MOB as apposed to a SMOB
(mstat will tell you)
then you will be changing the database, otherwise, only that
particular target will be affected, not the database.
You still must do an amsave to make changes to DB permanent.

This function returns a great deal of information about a given PC
or mobile.
Syntax: mstat <i_th> [person]
Example: mstat 21 Stat mob# 21.
mstat 2.guard Stat second guard in the room.
See Also: rstat ostat olc mload mset tog_mflag

List all mobs with a given name.
Syntax: mvnum <starting_number> [name]
Example: mvnum 50 guard list all guards from
vnum 50 and up
See Also: ovnum dvnum mlist amlist mload

This command deletes an object from the database. You SHOULD do an
aosave to make these changes permanent, but it is not forced by the
code at this time. The only problem would be if you cleared, then
rebuilt it with olc without aosave-ing in between. This might make
things kinda funky!
Syntax: oclear [obj_num]
Example: oclear 66
See Also: rclear mclear aosave olc tog_oflag

This function clones objects, it does not copy SOBJs, it just puts
a pointer to its base object in your inventory.
syntax: oclone [object_number]
oclone <i_th> [obj_name] object must be in inventory here
example: oclone 54 object numbered 54 is now in your inv
oclone 2.sword assuming you have 2.sword, you now have
another in your inventory.
See Also: mclone rclone olc SOBJ

On Line Coding!
Olc allows you to expand the mud while playing it.
To enter olc type: olc
From there it should be pretty self explanatory. Some
restrictions are built in, but you still have a lot of leeway.
Please build with game balance in mind.
When you create a room, door, object, or critter it is
automatically placed in your OLC directory on the server's hard
drive.
NOTE: You can temporarily exit out any time with quit_olc. If you
re-enter OLC with the 'olc' command, you will be back where you
started.
NOTE: You can 'escape' olc to gossip, tell, and say (only) with
the ':' command. For example, you are in olc and want to ask a
question. The following command might be useful:
: gossip What does a complete sentance look like?
Some other commands that might be useful for building are:
RESET_OLC, zlock, zunlock, flip_door, delete_door, write_zone,
door_to, mgoto, rclear, olist, objlist, rlist, roomlist, mlist,
moblist, tog_rflag, tog_oflag, tog_mflag, replace_door, see_all.
NOTE: If you wish to build/alter rooms you MUST first LOCK the zone.
YOU MUST BE THE OWNER OF THE ZONE TO WRITE IT OUT TO DISK!
NOTE: If you can run Java, try out the Java Client, with a GUI
interface
to OLC!!

These functions give the names of their respective objects as stored in
memory. Useful for olc and general data-base exploration.
synopsis: olist [first item] [second item]
examples: olist Will show objects 1 - 21
olist 14 Will show objects 14 - 34
olist 14 20 Will show objects 14 - 20
See Also: olc ostat mlist rlist dlist oload

Loads an object into your inventory.
Syntax: oload [obj_num]
Example: oload 33 load object number 3, if it exists
See Also: aolist olist oclone mload

Deletes an object from a room. It does not affect the object in any
permanent way, but if you save the room somehow (asave) then the room
will no longer have the object in it, and it will not 'repop'.
Syntax: opurge <ith> [object]
See Also: junk donate asave

Reloads all the objects in your zone. Changes random things like
inventory in bags.
Syntax: oreload
See Also: mreload rezone total_rezone

Used to set values on an object. This object can either be in your
current room or in your inventory. It checks your inventory first.
This can be used in conjunction with 'aosave' to permanently change
the data base. This DOES NOT turn the target into a SOBJ.
Syntax: oset // shows what you can set
oset <i_th> [object] [thing_to_set] [new_value]
Example: oset
oset wand charges 50 //set wand's charges to 50
See Also: mset rset aosave tog_oflag sobj
NOTE: If your object is a OBJ as apposed to an SOBJ
(ostat will tell you)
then you will be changing the database, otherwise, only that
particular object will be affected, not the database.

This function returns a great deal of information about a given object.
Syntax: ostat <i_th> [object]
Example: ostat 2.sword Stat second sword in inventory.
ostat 32 Stat object# 32
See Also: rstat mstat olc

List all objects with a given name.
Syntax: ovnum <starting_number> [name]
See Also: olist dvnum mvnum olist aolist

Change your poofin description. It must be less than 79 characters long.
It will be shown with you 'goto' a room. Your poofout description will
be shown when you poofout of a room. Might extend it to other entries/exits
as well.
Syntax: poofin <your new poofin>
Syntax: poofout <your new poofout>
Example: poofin Grock steps out of a pillar of flames.
Example: poofout Grock bursts into flames and is consumed!
See Also: title

This is similar to charm. Basically, every input you enter
acts as input that the MOB you are possessing entered. You will
be limited to the normal restrictions placed on that MOB.
The only way to give commands to your own character is to unpossess
your current victim, or to proceed each command with 'self'.
You are restricted to possessing NPC's only, and you must be at
least level 5 immortal.
syntax: possess <i_th> [mob_name]
example: possess 2.guard
After possession:
example: gos This is the one I'm possessing.
example: self gos This is my real character.
See Also: order force unpossess snoop

This function clears a room, virtually deletes it from the game. It
will not be permanent unless you also 'write_zone' sometime after you
delete it. This is a very powerful and destructive command, so IMPS
may choose to greatly restrict the use of it.
synopsis: rclear [room_number]
example: rclear This clears the current room, all pc's
are transported away first.
rclear 50 This would clear room # 50.
Bugs: 'rclear 1' will not work unless the caller is in room # 1.
This should be the only exception.
See Also: olc rlist rstat rclone

This function clones rooms. It does not copy pc's or doors, but
every thing else should transfer over with ease. This is a very
productive method of building zones when combined with ch_rdesc,
tog_rflags, mstat and other methods of modifying rooms.
syntax: rclone [direction_of_exit_to_new_room] Clones current room
rclone <number_of_room_to_clone> [dir_of_exit]
example: rclone north Clones current room to the north
rclone 85.north Clones room# 85 to the north.
Directions are: north, south, west, east, up, down,
northwest, southwest, southeast, northeast.
You man NOT abbreviate directions in this case.
See Also: oclone mclone olc door_to
Bugs: cannot clone room# 1 unless you use first method while in it.
Also, the new room will have few exits, so you may have to add
them with 'door_to'.

There are several commands that let you add or delete names from
a mobile or object. The syntax for rem_mname is:
Syntax: rem_mname [mob_num] [name to be removed]
Example: rem_mname 55 guard
See Also: ch_rname ch_odesc add_oname add_mname rem_oname

There are several commands that let you add or delete names from
a mobile or object. The syntax for rem_oname is:
Syntax: rem_oname [obj num] [name to be removed]
Example: rem_oname 55 sword
See Also: ch_rname ch_odesc add_oname add_mname rem_mname

Removes the specified path cell from the specified vehicle.
Syntax: rem_path [vehicle_num] [path_cell_num]
Example: rem_path 25 2 Remove the second path.
See Also: rstat stat_path ch_path_desc set_path_dir rem_path add_path
See Also: tog_veh_stop list_paths set_path_pointer

This is used to remove permanent inventory to Shopkeepers.
You probably want to use the 'DB' method to directly affect the
database. Don't forget to do an amsave to make your changes
permanent.
Syntax: rem_perm_inv <i_th> [object] <j_th> [shopkeeper]
Syntax: rem_perm_inv <i_th> [object] [VNUM] DB
Example: rem_perm_inv bread 2.baker
rem_perm_inv 3.sword blacksmith
rem_perm_inv 3.sword 55 DB # Remove 3rd sword from MOB 55.
See Also: aosave mstat olist aolist buy list add_perm_inv

Allows you to remove a zone from the 'active' database.
Syntax: rem_zone [i_th]
Examples: rem_zone 5 # remove zone 5 from the playable zones.
See Also: add_zone list_zones

Replace an existing door in your current room with another. This is the
tool you use to make rooms with unique (hand made) doors.
syntax: replace_door [new_door_num] [name_of_door_replacing]
example: replace_door 12 east
See Also: olc flip_door delete_door door_to dlist
Note: You will probably want to flip the door from the view of the
destination room.

This function clears anything you may have in progress in OLC.
You may re-enter OLC by typing olc, but beware, all you had
started before will be gone, at least your last uncompleted
project. Completed mobs, objs, doors and rooms will remain
intact.
Syntax: reset_olc
See Also: olc rclear ch_rdesc
Note: In order to use this command, you must NOT be in OLC-MODE, to
get out of OLC, type 'quit_olc'.

Loads your current zone just as an automatic zone reset would. Good for
bug checking and other things. Beware that not all may load every time,
based on load probabilities.
Syntax: rezone
See Also: total_rezone zlock write_zone olc mreload oreload

This function clones rooms. It does not copy pc's or doors, but every
thing else should transfer over with ease. This is a very productive method
of building zones when combined with ch_rdesc, tog_rflags, mstat and other
methods of modifying rooms.
syntax: rinit <src_room_num> [dest_room_num]
example: rinit 5 545 #make 545 like room 5 (you must own 545)
rinit 545 #make 545 like current room
See Also: rclone rclear door_to

This function lists a range of rooms.
Syntax: arlist [start_num] [end_num]
Example: rlist 2 50 Shows rooms 2 through 50.
See Also: amlist aolist arlist olc goto

Removes a bow proc from a mob. You must save the objects in the zone
before the changes will be permanent:
Syntax: rm_bow_proc [mob_num]
See Also: rm_give_proc add_proc aosave

This function allows you to delete a single 'casts spell' from an object.
You will need to do an 'aosave' in the zone to which the object
belongs in order to make the changes permanent. The spell_to_remove
is the second number of the pair, which can be seen through ostat.
CASTS SPELL Relates to staffs, scrolls, and potions, currently.
usage: rm_casts_spell [mob_num] [spell_to_remove]
Example:
rm_casts_spell 65 7 // remove casts spell 7 from mob 65
See Also: add_stat_affect ostat add_casts_spell

There are several ways to make a room communicate in a script.
neighbor_echo: Echo's a string to another room, shows all in the room.
Syntax: neighbor_echo <j_th> [direction] [Message text]
other_room_echo: Similar to neighbor echo, but based on VNUM.
Syntax: neighbor_echo [ROOM VNUM] [Message text]
tell: Shows the player the EXACT STRING that is passed to it.
Syntax: tell <i_th> [player] [Message Text]
Example: tell 2.guard "The room trembles as you enter."
recho: Show all in the room a message.
Syntax: recho [Message Text]
zecho: Show all in zone a message.
Syntax: zecho [Message Text]
wizchat: Show message to all listening on the wizchat channel.
Syntax: wizchat [Message Text]
Example: wizchat "Enjoy this, %M has just entered the dragon's lair!!"
See Also: add_mob_script channels

Removes a curse proc from a mob.
Syntax: rm_curse_proc [mob_num]
See Also: rm_give_proc add_proc

This function removes ALL discuss procs from a mob.
Syntax: rm_discuss_proc [mob_num]
See Also: rm_give_proc add_proc
NOTE: Must asave to make changes permanent.

This removes a give proc from any mob which has it.
Syntax: rm_give_proc [mob_num]
See Also: rm_bow_proc rm_discuss_proc rm_curse_proc add_proc

This command allows you to remove a keyword with a certain index
from your current room. You should do an asave to make the change
permanent.
NOTE: You can get the keyword index from rstat.
usage: rm_keyword [keyword_index]
Example:
rm_keyword 2 //Remove the keyword with index 2
See Also: rstat add_keyword stat_keyword

Script command that allows a room to forcefully move a player out
a certain exit. Can chose the player by name, or be several
special features:
__RANDOM__ Choose a random player.
__TOP__ Choose the first.
__BOTTOM__ Chose the last.
A similar command: rm_transport is also available. It lets you
specify the destination room by VNUM: No doors are needed.
usage: rm_move <i_th> [player/selection] <j_th> [direction]
usage: rm_move <i_th> [player/selection] [DEST_ROOM_NUM]
Example: rm_move __RANDOM__ east // Move a random character east
Example: rm_move 2.guard 2.west // Move the second guard out the
// second west exit.
Example: rm_transport 2.guard 455 // Move guard to room 455
See Also: rm_move_all add_mob_script rm_omove neighbor_echo rm_otransport

Script command that allows a room to forcefully move all players out
a certain exit. It does not matter what state the player is in,
and it does not matter if the exit is closed or not.
A similar command: rm_transport_all is also available. It lets you
specify the destination room by VNUM: No doors are needed.
usage: rm_move_all <i_th> [direction]
usage: rm_transport_all [DEST_ROOM_NUM]
Example: rm_move_all east // Move all players to the east.
Example: rm_transport_all 21 // Move all players to room 21.
See Also: rm_move rm_omove rm_omove_all add_mob_script neighbor_echo
See Also: rm_otransport_all

This function allows you to delete a single script. You will need to
do an 'aosave' in the zone to which the object belongs in order to make the
changes permanent.
usage: rm_obj_script [obj_num] [trigger_name] <i_th trigger>
Example:
rm_obj_script 50 say // remove that script from object# 50
rm_obj_script 50 say 3 // remove the third say script
See Also: list_room_scripts add_room_script stat_room_script asaverm_script

Script command that allows a room to forcefully move an object out
a certain exit. Can chose the object by name, or be several
special features:
__RANDOM__ Choose a random object.
__TOP__ Choose the first.
__BOTTOM__ Chose the last.
A similar command: rm_otransport is also available. It lets you
specify the destination room by VNUM: No doors are needed.
usage: rm_omove <i_th> [object/selection] <j_th> [direction]
usage: rm_otransport <i_th> [object/selection] [DEST_ROOM_NUM]
Example: rm_omove __RANDOM__ east // Move a random object east
Example: rm_omove 2.sword 2.west // Move the second sword out the
// second west exit.
Example: rm_otransport 2.sword 455 // Move the sword to room 455
See Also: rm_move_all add_mob_script rm_move rm_omove_all neighbor_echo
See Also: rm_transport

Script command that allows a room to forcefully move all objects out
a certain exit. It does not matter what state the object is in,
and it does not matter if the exit is closed or not.
A similar command: rm_otransport_all is also available. It lets you
specify the destination room by VNUM: No doors are needed.
usage: rm_omove_all <i_th> [direction]
usage: rm_otransport_all [DEST_ROOM_NUM]
Example: rm_omove_all east // Move all objects to the east.
Example: rm_otransport_all 300 // Move all objects to rom 300
See Also: rm_omove rm_move_all add_mob_script neighbor_echo rm_transport_all

This function allows you to delete a single script. You will need to
do an 'asave' in the zone to which the room belongs in order to make the
changes permanent.
usage: rm_room_script [rm_num] [trigger_name] <i_th trigger>
Example:
rm_room_script 50 say // remove that script from room# 50
rm_room_script 50 say 3 // remove the third say script
See Also: list_room_scripts add_room_script stat_room_script asaverm_script

This function allows you to delete a single script. You will need to
do an 'amsave' in the zone to which the mob belongs in order to make the
changes permanent.
usage: rm_script [mob_num] [trigger_name] <i_th trigger>
Example:
rm_script 50 say // remove that script on mob# 50
rm_script 50 say 3 // remove the third say script
See Also: list_scripts add_mob_script stat_script amsave rm_room_script

This function allows you to delete a single stat affect from an object.
You will need to do an 'aosave' in the zone to which the object
belongs in order to make the changes permanent. The stat_to_remove
is the first number of the pair, which can be seen through ostat.
usage: rm_stat_affect [obj_num] [stat_to_remove]
Example:
rm_stat_affect 65 7 // remove stat affecting stat 7 from obj 65
See Also: add_stat_affect ostat

Used to set values on your current room. You must be the owner of the
room. Changes will not be saved in the database unless you use 'asave'.
Syntax: rset // shows what you can set
rset [thing_to_set] [new_value]
Example: rset
rset movement 3 //set movement to 3 in current room
See Also: oset mset asavetog_rflag

This function returns a great deal of information about a given
room. If you are using the Java Client, then this will capture
some information for easy editing of the room.
BUGS: you can only use this method of editing a room if you are
in that room. Be careful not to rstat another room, then use the
Java Client to make changes, as it will change your current room
instead.
Syntax: rstat <i_th>
Example: rstat 30 Stat room# 30
rstat Stat current room.
See Also: ostat mstat olc ch_rdesc tog_rflag
See Also: list_paths stat_path

This command is strange and powerful. It will allow you to change a
SMOB (a modified Mobile) back into a MOB (unmodified). It isn't always
perfect, but it's a good way to give an already built mob another
piece of EQ for example. You must do an asave to make it permanent.
Syntax: save_mob <i_th> [mob_name]
Example: save_mob 2.guard
See Also: mset give mstat amsave

This command is strange and powerful. It will allow you to change a
SOBJ (a modified Object) back into an Object (unmodified). It isn't always
perfect, but it's a good way to give an already built object another
piece of inventory for example. You must do an aosave to make it permanent.
For example, you want to have a bag load with a sword in it. Currently
it doesnt, so you oload the bag, oload the sword, put the sword in the bag,
and do a save_obj on the bag. Do an aosave (in the home zone of the bag object
of course), and it should work. You can test by oloading the bag and seeing
what is in it...
Syntax: save_obj <i_th> [obj_name]
Example: save_obj 2.bag
See Also: oset put ostat aosave

This command allows immortals to see all but the highest gods. This
includes any mortal and link-dead players.
syntax: see_all
See Also: visible wizinvis

Changes the direction of exit from a certain path cell in a vehicle.
Syntax: set_path_dir [vehicle_num] [path_cell_num] [i_th_exit] [exit_name]
Example: set_path_dir 25 2 1 north Exit to the first north exit.
See Also: rstat stat_path ch_path_desc set_path_dir rem_path add_path
See Also: tog_veh_stop list_paths set_path_pointer

Vehicles (non-player-guided ones at least) have an array of PathCells that
the vehicle goes through in order to know where to go next. This command
lets you explicitly set the current PathCell to a given index number.
I would imagine this will only prove useful while you are building or
modifying the route for some vehicle. This could be pretty tricky,
so be sure to ask your IMP if you have troubles. Please read the
related help pages first though.
Syntax: set_path_pointer [vehicle_num] [new_index]
Example: set_path_pointer 25 2 The vehicle is now at the path cell
at index 2.
See Also: rstat stat_path ch_path_desc set_path_dir rem_path add_path
See Also: tog_veh_stop list_paths set_path_pointer
