Help on commands for ScryMUD

Help Topics
active_zones add_casts_spell add_keyword add_kname add_mname add_mob_script
add_oname add_path add_perm_inv add_proc add_rem_names add_stat_affect
add_zone adlist adsave affect_hp affect_mana affect_mov
amlist amsave aolist aosave arlist ch_ddesc
ch_kdesc ch_mdesc ch_mndesc ch_msdesc ch_odesc ch_ondesc
ch_osdesc ch_path_desc ch_rdesc ch_rname ch_zname classes
clear_keyword clear_mnames clear_onames comparators create_conct create_constrct
dclear delete_door dlist door_to dset dstat
dsys dvnum enslave exact_damage flip_door force
force_all freeze gag gecho goto itrans
keyword ldwho list_obj_scripts list_paths list_room_scripts list_scripts
list_site_bans list_zones log_level make_builder make_pso mclear
mclone mlist mload mreload mset mstat
mvnum oclear oclone olc olist oload
opurge oreload oset ostat ovnum poofin
possess rclear rclone rem_mname rem_oname rem_path
rem_perm_inv rem_zone replace_door reset_olc rezone rinit
rlist rm_bow_proc rm_casts_spell rm_comm rm_curse_proc rm_discuss_proc
rm_give_proc rm_keyword rm_move rm_move_all rm_obj_script rm_omove
rm_omove_all rm_room_script rm_script rm_stat_affect rset rstat
save_mob save_obj see_all set_path_dir set_path_pointer set_veh_stop
set_zflag shutdown siteban slay slist smob
snoop sockets stat_keyword stat_obj_script stat_path stat_room_script
stat_script teach thaw tog_mflag tog_oflag tog_rflag
tog_veh_stop tog_vflag total_rezone ungag unpossess unpost
unsiteban unsnoop update_CIG update_cig uptime visible
wizhelp wizinvis write_world write_zone zcreate zdisable
zenable zgoto zlist zlock zunlock


Help Command: active_zones


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 


Help Command: add_casts_spell


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 


Help Command: add_keyword


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


Help Command: add_kname


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 


Help Command: add_mname


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 


Help Command: add_mob_script


(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 


Help Command: add_oname


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 


Help Command: add_path


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 


Help Command: add_perm_inv


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 


Help Command: add_proc


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 


Help Command: add_rem_names


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 


Help Command: add_stat_affect


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 


Help Command: add_zone


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 


Help Command: adlist


This command lists all the doors created for your current zone.

Syntax:  adlist

Example:  adlist


 See Also: olist mlist dstat dlist dclear 


Help Command: adsave


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 


Help Command: affect_hp


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 



Help Command: affect_mana


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 



Help Command: affect_mov


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 



Help Command: amlist


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 


Help Command: amsave


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.


Help Command: aolist


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 


Help Command: aosave


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.


Help Command: arlist


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 


Help Command: ch_ddesc


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 


Help Command: ch_kdesc


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 


Help Command: ch_mdesc


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 


Help Command: ch_mndesc


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 


Help Command: ch_msdesc


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 


Help Command: ch_odesc


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 


Help Command: ch_ondesc


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 


Help Command: ch_osdesc


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 


Help Command: ch_path_desc


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 


Help Command: ch_rdesc


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 


Help Command: ch_rname


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 


Help Command: ch_zname


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 


Help Command: classes


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 


Help Command: clear_keyword


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 


Help Command: clear_mnames


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 


Help Command: clear_onames


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 


Help Command: comparators


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 


Help Command: create_conct


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 


Help Command: create_constrct


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 


Help Command: dclear


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'


Help Command: delete_door


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 


Help Command: dlist


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 


Help Command: door_to


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 


Help Command: dset


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!


Help Command: dstat


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 


Help Command: dsys


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 


Help Command: dvnum


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 


Help Command: enslave


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 


Help Command: exact_damage


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 


Help Command: flip_door


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 


Help Command: force


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.


Help Command: force_all


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.



Help Command: freeze


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


Help Command: gag


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 


Help Command: gecho


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 


Help Command: goto


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.


Help Command: itrans


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.


Help Command: keyword


	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




Help Command: ldwho


Displays a list of all the characters on the linkdead_list.

syntax:  ldwho

 See Also: who sockets 


Help Command: list_obj_scripts


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 


Help Command: list_paths


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 


Help Command: list_room_scripts


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 


Help Command: 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 


Help Command: list_site_bans


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 


Help Command: list_zones


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 


Help Command: log_level


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 


Help Command: make_builder


Advance a pc to builder status.

Syntax:  make_builder <i_th> [target_name]

Example:  make_builder whirlwind

 See Also: zcreate olc zenable zdisable 


Help Command: make_pso


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 


Help Command: mclear


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 


Help Command: mclone


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.


Help Command: mlist


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 


Help Command: mload


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 


Help Command: mreload


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 



Help Command: mset


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.


Help Command: mstat


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 


Help Command: mvnum


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 


Help Command: oclear


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 


Help Command: oclone


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 



Help Command: olc

		        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!!


Help Command: olist


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 


Help Command: 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 


Help Command: opurge


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


Help Command: oreload


Reloads all the objects in your zone.  Changes random things like
inventory in bags.  

Syntax:  oreload

 See Also: mreload rezone total_rezone 


Help Command: oset


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.


Help Command: ostat


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 


Help Command: ovnum


List all objects with a given name.

Syntax:   ovnum <starting_number> [name]

 See Also: olist dvnum mvnum olist aolist 


Help Command: poofin


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 


Help Command: possess


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 


Help Command: rclear


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 


Help Command: 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'.


Help Command: rem_mname


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 


Help Command: 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 


Help Command: rem_path


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 


Help Command: rem_perm_inv


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 


Help Command: rem_zone


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 


Help Command: replace_door


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.


Help Command: reset_olc


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'.


Help Command: rezone


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 


Help Command: rinit


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 



Help Command: rlist


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 


Help Command: rm_bow_proc


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 


Help Command: rm_casts_spell


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 


Help Command: rm_comm


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 


Help Command: rm_curse_proc


Removes a curse proc from a mob.

Syntax:  rm_curse_proc [mob_num]

 See Also: rm_give_proc add_proc 


Help Command: rm_discuss_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.


Help Command: rm_give_proc


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 


Help Command: rm_keyword


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 


Help Command: rm_move


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 


Help Command: rm_move_all


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 


Help Command: rm_obj_script


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 


Help Command: rm_omove


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 


Help Command: rm_omove_all


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 


Help Command: rm_room_script


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 


Help Command: rm_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 


Help Command: rm_stat_affect


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 


Help Command: rset


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 


Help Command: rstat


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 


Help Command: save_mob


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 


Help Command: save_obj


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 


Help Command: see_all


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 



Help Command: set_path_dir


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 


Help Command: 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 


Help Command: set_veh_stop


Sets the specified path cell to a stop or not.  Only two cases are valid:
'yes' and 'no'.  A vehicle will take on, and let off passengers at stops.

Syntax:  set_path_stop [vehicle_num] [path_cell_num] ['yes' or 'no']

Example:  set_path_stop 25 2 yes     //Make that path cell a vehicle stop.


 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 


Help Command: set_zflag


Used to set a room flag in every room in your CURRENT zone.

syntax:  set_zflag [flag_num] [on/off]

example:  set_zflag 3 on	Sets flag # 3 in current zone.
example:  set_zflag 4 off       Clears flag # 4 in current zone.

Bugs:  Some flags are (and should be) restricted from toggling.  As
       an Imp adds/deletes/changes flags, he/she should check this
       and similar functions for possible tweaking.


 See Also: olc tog_oflag tog_rflag tog_mflag rclone write_zone 


Help Command: shutdown


Takes the system down peacefully.  Pc's are all saved, but zones
are not, which shouldn't be a problem.  Before bringing it down,
make sure anyone doing OLC has saved their changes if necessary. 
If you add the complete argument, then the game will not come
back up automatically!! 

Syntax:  shutdown <complete>

Example:  shutdown         // reboot the game, back in 1-3 minutes
          shutdown complete// down untill someone logs into the
                           // server's account and starts
                           //   it with the 'startup' command.
***       shutdown NEW_DB  // Cause a new world to be loaded

***  The NEW_DB argument is very powerful.  It causes the startup
script to look for a gmud.new file in the same directory as the
gmud binary.  If found, it will be coppied over the gmud file.
This argument also causes the startup script to look for a
World/wrld.new.tar.gz file.  If that file is found, it will be
un-compressed and un-tarred, over-writing any World files already
in place.

This was written so that I could minimize downtime to the server.

Here are (roughly) the things I do to update my server:
  * Build the new server code. (cvs update, make clean, make)
  * Move the binary to the right place. (mv grrmud ~/mud/grrmud/gmud.new)
  * Build the core files. (make scry_dist_core)
  * Put core files in place. (cp XXX.tar.gz ~/mud/, un-tar it there)
  * Go to my development server and build the new world DB.
	(cd ~/mud_dev/grrmud/World, make new_db)
  * Move the new world db to the production server.
	(mv /wrld.new.tar.gz ~/mud/grrmud/World)
   
Now, the new world DB should be in place, the new server should be in
place, and I have just blasted the core files (ie help files) over the
old ones.  Now I will shutdown the server and tell it to use the new
files.

  * Log onto the server and type:  shutdown NEW_DB

NOTE: PLEASE BACK UP EVERYTHING BEFORE YOU TRY THIS!!!


 See Also: quit save write_zone update_cig 


Help Command: siteban


This command can be used to ban a given IP address, or an entire
subset of IP addresses.  It may also work on hostnames, but that is
dependent on how the code is written in grrmud.cc.  For now, it only
works on IP.  I'll illustrate by example.  If you wanted to ban
the IP address 127.0.0.1, you would simply:  siteban '127.0.0.1'

If instead you wanted to ban everyone from that site, you might do
something like:  siteban '127.0.0.'   (notice the trailing period.)

If you want to only ban newbies from a certain site, prepend N to the
first of the ip address, like:  siteban 'N166.66.66.'

Only level 8 and above immorts can use this command.  Please see
the 'See Also' section, as it has some other, less powerful methods
to dicipline ppl. 

NOTE:  You have to put the single quotes around the IP.

Syntax:  siteban '<N>[site_to_ban]'

Example:  siteban '207.68.178.'        #Ban an entire subnet or two.
Example:  siteban 'N207.68.178.'       #Ban all newbies from that subnet.


 See Also: ungag freeze gag list_site_bans unsiteban 


Help Command: slay


This kills any mob with one stroke.  Good for cleaning out a room when
you don't feel like fighting.  Used mostly for OLC.  These are logged,
so be careful you do not abuse this command.

syntax:  slay <i_th> [mob_name]

 See Also: olc mclone hit opurge junk abilities 


Help Command: slist


This function lists the spells and skills that may be learned. 
There should be a help file for each spell (fully specified, no
abbreviation here).

This also shows the pre-requisites and enables, as well as the
objects which are able to cast this spell (and how many there are
of them currently in the game).  Note that more and
more spells will have their power modified (inversly) by the
number of objects in the game that can cast them.  I am
implementing this to balance the ability to brew potions and
scribe scrolls.

Syntax:  slist <begin_number> <amount_to_list>
Syntax:  slist [skill/spell name]

Example:  slist 0 20		//  Will list first 20 spells/skills
Example:  slist heal


 See Also: teach practice abilities 


Help Command: smob


	A smob is a data construct.  It originally meant a
sub_mob but as I coded more and more this became meaningless. 
Currently a SMOB is any mobile that has been changed from the
static mob in the database.  The idea behind all this is memory
efficiency, but it makes for quite a headache sometimes in the
code.  If you write a function that changes a mob in any way, you
must test to see if it needs to be converted into a SMOB first. 
There are numerous examples of this in the code, and I imagine
most of you won't be needing to know the details anyway! 
	Almost any action you take on a mobile, especially if it
makes that mobile unique in any way (ie changing it's stats
through battle or spell casting) will convert it into a SMOB. 
This is important when doing OLC and write_zone, as SMOBS will
not be saved many times.  If they are, they will not be saved in
their modified form.  This can be circumvented with specific OLC
functions.  If you have any specific questions, post a question
on a board, or talk to me personally.  --Ben Greear aka Grock



Help Command: snoop


This command lets you (silently) observe every command a player
enters.  This is a considerable invasion of privacy, so do not
do this just for kicks.  All such activity is logged and will
be reviewed.

You are restricted to snooping PC's only, and you must be at
least level 8 immortal.  You may not snoop those of a higher
immort level than yourself.  You do not have to be in the same
room as your victim.

syntax:  snoop <i_th> [mob_name]

example:  snoop luser


 See Also: order force unpossess unsnoop 


Help Command: sockets


This command is a more detailed who.  It shows both link-dead and
playing players.  It also shows some extra detail, such as the
player's host. 

Syntax:  sockets

 See Also: who ldwho 


Help Command: stat_keyword


This command allows you to view a keyword with a certain index
in your current room.

NOTE:  You can get the keyword index from rstat.

usage:  stat_keyword [keyword_index]

Example:
	stat_keyword 2  //Stat the keyword with index 2



 See Also: rstat rm_keyword add_keyword clear_keyword add_kname 
 See Also: ch_kdesc stat_keyword keyword 


Help Command: stat_obj_script


This function allows you to list a single script in it's entirety.  The
client will be able to recognize this and have a menu specially designed to
help you edit the script.

usage:  stat_obj_script [obj_num] [script_index]

Example:
	stat_obj_script 89 0   // view script[0] in object 89
	stat_obj_script 99 5   // view script[5] in object 99



 See Also: list_obj_scripts  add_room_script rm_obj_script 


Help Command: stat_path


This function returns a great deal of information about the
i_th path in the vehicle numbered <veh_num>.

Syntax:  stat_path [veh_num] [path_cell_num]

Example:  stat_path 25 2                Stat the second cell in vehicle #25


 See Also: rstat ch_path_desc set_path_dir rem_path add_path 
 See Also: tog_veh_stop list_paths 


Help Command: stat_room_script


This function allows you to list a single script in it's entirety.  The
client will be able to recognize this and have a menu specially designed to
help you edit the script.

usage:  stat_room_script [rm_num] [script_index]

Example:
	stat_room_script 89 0   // view script[0] in room 89
	stat_room_script 99 5   // view script[5] in room 99



 See Also: list_room_scripts  add_room_script rm_room_script stat_script 


Help Command: stat_script


This function allows you to list a single script in it's entirety.  The
client will be able to recognize this and have a menu specially designed to
help you edit the script.

usage:  stat_script [mob_num] [script_index]

Example:
	stat_script 55 0        // view script[0] (The first one.)
	stat_script 404 5        // view script[5]



 See Also: list_scripts add_mob_script rm_script stat_room_script 


Help Command: teach


This command teaches a person a skill.  You must be level 5
immort or more to use this.  It may be further restricted in the
future.  It definately will if someone abuses it.  One should
never teach a mortal anything, except as prizes for quests, and
perhaps debugging if we're in beta still. 

Syntax:  teach <i_th> [target] <prcnt_lrnd> [skill_name]

Example:  teach shamu 50 'bodyslam'