/
com/planet_ink/coffee_mud/Abilities/Common/
com/planet_ink/coffee_mud/Abilities/Diseases/
com/planet_ink/coffee_mud/Abilities/Druid/
com/planet_ink/coffee_mud/Abilities/Fighter/
com/planet_ink/coffee_mud/Abilities/Languages/
com/planet_ink/coffee_mud/Abilities/Misc/
com/planet_ink/coffee_mud/Abilities/Prayers/
com/planet_ink/coffee_mud/Abilities/Properties/
com/planet_ink/coffee_mud/Abilities/Skills/
com/planet_ink/coffee_mud/Abilities/Songs/
com/planet_ink/coffee_mud/Abilities/Spells/
com/planet_ink/coffee_mud/Abilities/Thief/
com/planet_ink/coffee_mud/Abilities/Traps/
com/planet_ink/coffee_mud/Behaviors/
com/planet_ink/coffee_mud/CharClasses/interfaces/
com/planet_ink/coffee_mud/Commands/
com/planet_ink/coffee_mud/Commands/interfaces/
com/planet_ink/coffee_mud/Common/
com/planet_ink/coffee_mud/Common/interfaces/
com/planet_ink/coffee_mud/Exits/interfaces/
com/planet_ink/coffee_mud/Items/Armor/
com/planet_ink/coffee_mud/Items/Basic/
com/planet_ink/coffee_mud/Items/CompTech/
com/planet_ink/coffee_mud/Items/MiscMagic/
com/planet_ink/coffee_mud/Items/Weapons/
com/planet_ink/coffee_mud/Items/interfaces/
com/planet_ink/coffee_mud/Libraries/
com/planet_ink/coffee_mud/Libraries/interfaces/
com/planet_ink/coffee_mud/Locales/
com/planet_ink/coffee_mud/MOBS/
com/planet_ink/coffee_mud/Races/
com/planet_ink/coffee_mud/Races/interfaces/
com/planet_ink/coffee_mud/WebMacros/
com/planet_ink/coffee_mud/WebMacros/interfaces/
com/planet_ink/coffee_mud/core/
com/planet_ink/coffee_mud/core/collections/
com/planet_ink/coffee_mud/core/interfaces/
com/planet_ink/coffee_mud/core/intermud/
com/planet_ink/coffee_mud/core/intermud/i3/
com/planet_ink/coffee_web/server/
com/planet_ink/siplet/applet/
lib/
resources/factions/
resources/fakedb/
resources/progs/autoplayer/
resources/quests/holidays/
web/
web/admin.templates/
web/admin/grinder/
web/admin/images/
web/clan.templates/
web/pub.templates/
web/pub/images/mxp/
web/pub/sounds/
web/pub/textedit/
BEHAVIOR_ACTIVETICKER=\
Behavior   : ActiveTicker\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
A base class for mobile type behaviors.  Do not use.

BEHAVIOR_CORPSELOOTER=\
Behavior   : CorpseLooter\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
This behavior makes a mob loot the corpses killed by it of items only.  \
It does this by turning on the mobs AUTOLOOT flag.

BEHAVIOR_CONQUERABLE=\
Behavior   : Conquerable\n\r\
Targets    : AREAs\n\r\
Parameters : (JOURNAL="[JOURNAL NAME]") (LAW=(TRUE/FALSE))\n\r\
Example    : \n\r\
Example    : JOURNAL="The Conquest Times" LAW=FALSE\n\r\
Description: \n\r\
This behavior makes the area conquerable by clans using items put together \
using ClanCraft.  See the general help on CONQUEST for more information on \
what this means and how it works.  The JOURNAL entry, if given, will log \
conquest events to a journal of that name.  The LAW entry is required in order \
to allow an area to be set up by conquering clans with a system of law.

BEHAVIOR_GOLDLOOTER=\
Behavior   : GoldLooter\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
This behavior makes a mob loot the gold from corpses killed by it.  \
It does this by turning on the mobs AUTOGOLD flag.

BEHAVIOR_FASTERRECOVERY=\
Behavior   : FasterRecovery\n\r\
Targets    : Rooms, Areas, Items, MOBs\n\r\
Parameters : (HEALTH=[NUM BURST TICKS]) (BURST=[NUM]) (HITS=[NUM]) (MOVE=[NUM]) (MANA=[NUM])\n\r\
Example    : burst=2\n\r\
Example    : health=5\n\r\
Example    : hits=2\n\r\
Example    : mana=5 hits=10\n\r\
Example    : burst=2 health=5\n\r\
Description: \n\r\
This allows the room, possessed item, or ridden mob or item to give an \
extra burst of speed to all affected mobs. The parameters are all optional.  \
If the "health" parameter is given, then the mob will get a number of regen \
ticks equal to the number given.  For instance, if the value is 2, then the \
mob will regen twice per tick, a value of 3 means 3 times per tick, etc.  \
Values of 1 or less mean no extra regen ticks.  The "burst" parameter refers \
to bursts of extra speed to the benefiting mobs equal to the number given. \
For instance, if the value is 2, the mob will move twice as fast per tick, \
a value of 3 means 3 times as fast, etc.  Values of 1 or less mean normal \
ticking applies.  Values for hits, move, and mana are similar to health, but will \
only give a burst or rejuvenation to that particular stat.

BEHAVIOR_AGGRESSIVE=\
Behavior   : Aggressive\n\r\
Targets    : MOBs\n\r\
Parameters : aggression flags (MESSAGE=[msg]) aggression masks\n\r\
Example    : +elf -fighter\n\r\
Example    : message="All must die!!" -elf +fighter\n\r\
Example    : MOBKILL MISBEHAVE +elf -fighter\n\r\
Description: \n\r\
Makes the mob attack any player mob it can detect in the same room, from \
the moment the new mob enters.  Horribly wounded mobs are not aggressive. \
Mobs will also not be aggressive towards Archons and builders with the CMDMOBS \
security flag.\
If no other parameters are given, the mob will attack anyone. \n\r\
Valid aggressive masks include:  \n\r\
message=[msg] something for the mob to say whenever he's fixing to attack\n\r\
delay=x (makes the mob delay x ticks before looking for a victim) \n\r\
mobkill (makes this behavior attack mobs as well as players) \n\r\
misbehave (makes this mob attack even when wounded or a follower) \n\r\
checklevel (makes this mob attack only those within 5 levels below him) \n\r\
<ZAP=spare> 
 
BEHAVIOR_ALIGNHELPER=\
Behavior   : AlignHelper\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
Joins a fight on the side of anyone who is the same alignment as the mob. 

BEHAVIOR_ANTIVAGRANT=\
Behavior   : AntiVagrant\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, a percent chance, anywhere and/or kickout flag\n\r\
Example    : min=2 max=3 chance=99\n\r\
Example    : min=2 max=3 chance=99 KICKOUT\n\r\
Example    : min=2 max=3 chance=75 ANYWHERE\n\r\
Example    : min=2 max=3 chance=75 ANYWHERE KICKOUT\n\r\
Description: \n\r\
Wakes up any MOB that is sleeping on a CityStreet type locale.  Will also stand up \
anyone sitting on a city street.  The locale type can be overridden by including \
the ANYWHERE flag.  You may also get the person kicked out of the current room \
by using the KICKOUT flag.  All of the parameters are optional.

BEHAVIOR_ARREST=\
Behavior   : Arrest\n\r\
Targets    : Areas\n\r\
Parameters : (/CUSTOM/[FILENAME])(;[LAW KEY]=[LAW VALUE] ...)\n\r\
Example    : \n\r\
Example    : custom\n\r\
Example    : laws_mycity.ini\n\r\
Example    : custom;JUDGE="justice judge" OFFICERS="cityguard police"\n\r\
Description: \n\r\
This powerful behavior allows you to set up the enforcement of laws inside of a city. \
The only parameter is the name of an ini file in the resources directory.  If left \
blank, the default laws.ini file will be used.  The ini file specifies the judges, \
enforcement mobs, the laws and their punishments, and the location of jails.  The \
messages seen by the criminals is also contained therein.  The word custom may \
also be placed in the parameters in order to make the area laws changable using \
either a StdLawBook or a GenLawBook.

BEHAVIOR_BEGGAR=\
Behavior   : Beggar\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
The mob with this behavior will beg for money from players, and say thank you when rewarded.

BEHAVIOR_BRIBEGATEGUARD=\
Behavior   : BribeGateGuard\n\r\
Targets    : MOBs\n\r\
Parameters : Price of entry, Gate System\n\r\
Example    : price=5 gates=Avalon\n\r\
Description: \n\r\
The mob will work akin to a gate guard, but you have to have at least the \
price on your tab for the guard to open it (or let you open it from that side) \
Any payment made over the price is retained, in a manner akin to a bank chain, \
so if any other guards are in the same Gate System, they will all use the same \
tab.  DO NOT put one on each side - unlike Gate Guards, these guys don't play \
well with others. If you want players to be able to sneak by them, merely make \
sure they can't see sneaking or invis - whichever.  The hiding player will have \
to wait for another player to get the door open to sneak through.

BEHAVIOR_BROTHERHELPER=\
Behavior   : BrotherHelper\n\r\
Targets    : MOBs\n\r\
Parameters : optional max fighters, nameonly flag\n\r\
Example    : \n\r\
Example    : 5\n\r\
Example    : 5 nameonly\n\r\
Description: \n\r\
Joins a fight on the side of an identical mob, or a mob from the same \
starting room.  You may optionally specify the maximum number of brothers \
who may assault a single target.  You may also put the word nameonly to \
not utilize the "same starting room" criteria.  \n\r\
\n\r\
This behavior works differently on official legal enforcers specified \
by an Arrest or Conquerable behavior.  Legal enforcers will only trigger this \
behavior if he is coming to the aid of another legal official, or if he is \
sure that he is not coming to the aid of an aggressive mob.

BEHAVIOR_CLANHELPER=\
Behavior   : ClanHelper\n\r\
Targets    : MOBs\n\r\
Parameters : Clan to make this mob a member of\n\r\
Example    : McElvy\n\r\
Description: \n\r\
Joins a fight on the side of a mob of the same clan as specified in the parameters.

BEHAVIOR_NANNY=\
Behavior   : Nanny\n\r\
Targets    : MOBs\n\r\
Parameters : RATE=[PRICE] NAME="[PLACE NAME]" WATCHES="[CODES]" (|~| [XML])\n\r\
Example    : rate=2.5 name="The Stables" watches="mounts,wagons"\n\r\
Description: \n\r\
Makes the mob a protector and watcher of mobs and items of various sorts, for money. \
The rate parameter describes the base gold value he charges for each thing dropped \
off, per hour.  The name is a description of the type of place he runs.  The watches \
parameter contains one or more comma-delimeted words (no spaces!) describing the kinds of things \
he will charge people to watch and protect, and may include one or more of the following: \n\r\
babies - baby items born from mud breeding\n\r\
children - child mobs (after babies grow up)\n\r\
mounts - rideable mobs of all sorts\n\r\
cars - land-rideable items that aren't wagons\n\r\
aircars - air-rideable items\n\r\
wagons - rideable land items that are wagons\n\r\
followers - mobs that aren't children, mounts, etc.\n\r\
boats - rideable items of the sea\n\r\
\n\r\
This behavior will automatically save the items and mobs in the room he is watching over, and \
prevent items from decay.  Combat against himself or mobs under protection is forbidden, as is \
removing any mob or item that has not been paid for.  The first mud-hour is free, and protection \
will not begin until the owner leaves.\n\r\
\n\r\
NOTE - due to the way this behavior stores records, do not place this behavior on a mob that is \
cataloged in the CATALOG system.

BEHAVIOR_RACEHELPER=\
Behavior   : RaceHelper\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
Joins a fight on the side of an identical mob, or one of the same race.

BEHAVIOR_FAITHHELPER=\
Behavior   : FaithHelper\n\r\
Targets    : MOBs\n\r\
Parameters : Faith to make this mob a member of\n\r\
Example    : Odin\n\r\
Description: \n\r\
Joins a fight on the side of a mob of the same faith as specified in the parameters.

BEHAVIOR_CLERICNESS=\
Behavior   : Clericness\n\r\
Targets    : MOBs\n\r\
Parameters : (SUBCLASS NAME) (PROFICIENT) (NOSTATS) (NOCOMBATSTAT)\n\r\
Parameters : (OFFENSIVE,DEFENSIVE,MIXEDOFFENSIVE,MIXEDDEFENSIVE)\n\r\
Example    : \n\r\
Example    : Templar\n\r\
Example    : Doomsayer OFFENSIVE\n\r\
Description: \n\r\
An extension of CombatAbilities, this behavior makes the mob a Cleric by class, \
and gives the mob clerical prayers appropriate to its alignment and level.  After \
this behavior has triggered, it will often require a RESET for any alignment or \
level changes to the mob to take over. \n\r\
Use the proficient flag to make all skills at 100% instead of level-based. Use \
the offensive/.../mixeddefensive flags to influence skill choices. \
This behavior should not be used WITH any of the other CombatAbilities behaviors, \
such as Fighterness, Thiefness, Mageness, Clericness, Druidness, or CombatAbilities. \
It should be used alone on a mob. \n\r\
Also, be aware that this behavior will modify the mobs stats to better reflect the class, \
so any additions or removals of this behavior should be accompanied by a room reset after \
saving, and manually checking to make sure the combat stats are as desired.

BEHAVIOR_COMBATABILITIES=\
Behavior   : CombatAbilities\n\r\
Targets    : MOBs\n\r\
Parameters : (as derived class) and +SKILLID -SKILLID\n\r\
Example    : (as derived class) -Spell_Sleep\n\r\
Description: \n\r\
Gives the mob the urge to use their skills, spells, prayers, songs, and other \
abilities during combat. \n\r\
This behavior should not be used WITH any of the other CombatAbilities behaviors, \
such as Fighterness, Thiefness, Mageness, Clericness, Druidness, or CombatAbilities. \
It should be used alone on a mob.\n\r\
\n\r\
The parameters are as described in one of the \
derived classes, but in addition, you can also specify the IDs of certain skills \
that the behavior will either be allowed to be used in combat even if it is not \
normally allowed, or be disallowed to be used in combat even if the mob has the skill \
and it would normally be allowed, depending on whether the ID is preceded by + or -.


BEHAVIOR_CONCIERGE=\
Behavior   : Conceirge\n\r\
Targets    : MOBs, Items, Rooms, Areas\n\r\
Parameters : [ALL PRICE]/[AREA/ROOM]=[PRICE]/[PARAM]=[VALUE]; ... ; \n\r\
Example    : 1.5\n\r\
Example    : Midgaard#3001=1.5; Smurfville=2.0; 70 ; AREAONLY=true\n\r\
Example    : Midgaard#3032; 100 ; AREAONLY=false; MAXRANGE=100\n\r\
Description: \n\r\
This behavior makes the mob a deliverer of information to players, specifically the \
directions to rooms or areas.  The mob will charge for his services if you specify \
a price in the parameters, or he will do it for free if you don't, or if the last price \
specified was 0.  The parameters can include a comma delimited set of room IDs, area names, \
or even short title descriptions for quickly entering rooms within short range of the mob. \n\r\
\n\r\
The parameters may also include certain other variables as part of the \
parameter list.  These include AREAONLY = true or false, to specify whether the concierge \
knows anything about places outside his area.  MAXRANGE=number for the maximum number of \
rooms away from the concierge that is known.  GREETING=message will give a special concierge \
greeting message for all players who enter the room its in. ENTERMSG will give a message \
to players who mount the concierge (rideables only).  TALKERNAME=name will change the apparent \
name of the speaker. PERROOM=number will set a per-room price for the distance from the \
current room to the one sought.  NOWATER=true to prevent trails over water. NOAIR=true, to \
prevent trails through the air. NOLOCKS=true to prevent trails through locked doors. \
NOHOMES=true to prevent trails through private homes. NOINDOOR=true to prevent finding or trailing \
through indoor rooms. NOCLIMB to prevent trails through climbable exits. \
NOCRAWL to prevent trails through crawlable exits.

BEHAVIOR_CORPSEEATER=\
Behavior   : CorpseEater\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, a percent chance, eatitems flag, corpse masks\n\r\
Example    : min=10 max=20 chance=75\n\r\
Example    : min=10 max=20 chance=75 -LEVEL +<17\n\r\
Example    : min=10 max=20 chance=75 -RACE +Elf\n\r\
Description: \n\r\
The mob will appear to eat any corpse it comes across.  It will not eat the \
item contents of the corpse unless the EATITEMS flag is given. It will also \
ignore player corpses unless the +PLAYER flag is included.  You may also \
specify masks to give the mob a more specific diet.  The following \
are valid masks: \n\r\
<ZAP=dont eat> 

BEHAVIOR_DECAY=\
Behavior   : Decay\n\r\
Targets    : MOBs, Items\n\r\
Parameters : min, max ticks, a percent chance, trigger masks\n\r\
Example    : min=10 max=20 chance=75 answer=" goes poof!"\n\r\
Example    : min=10 max=20 chance=75 -LEVEL +<17\n\r\
Example    : notrigger answer=" "\n\r\
Example    : min=10 max=20 chance=75 -CLASS +Paladin\n\r\
Description: \n\r\
According to the timing and percent chance described by the parameters, the \
mob or item with this behavior will vanish at the expired time.  MOBs do not \
begin their countdown until attacked, items when they are picked up, \
weapons when they are first wielded, or armor when it is first worn.  The \
countdown may also depend on whether the mob or player triggering the countdown \
meets any masks specified.   You may force the object to decay immediately by \
placing the NOTRIGGER mask inside your parameter string.  The message seen when \
the object decays can also be modified by changing the ANSWER parameter. \
Value masks to determine whether a countdown begins include: \n\r\
<ZAP=ignore> 

BEHAVIOR_DOORWAYGUARDIAN=\
Behavior   : DoorwayGuardian\n\r\
Targets    : MOBs\n\r\
Parameters : NOSNEAK, ALWAYS, a doorway direction, followed by an optional list \n\r\
Parameters : of masking parameters described below, followed by an optional\n\r\
Parameters : semicolon and an override of the rejection message to the user.\n\r\
  Example  : always north\n\r\
  Example  : nosneak east -class +mage -race +elf -evil\n\r\
  Example  : east north;<S-NAME> smack(s) <T-NAME> and push(es) <T-HIM-HER> back!\n\r\
Description: \n\r\
The mob will not allow any other mob or player to open or move through a doored \
exit.  The mob must be killed to get by!  If a direction is not specified, the \
mob will protect all exits, otherwise only the one in the direction specified. \
The guard will also behave according to whether the player trying to move meets \
the other parameter mask requirements.  If no masks are given, the guard \
will always block the players. The guardian is subject to being sneaked by, \
unless the NOSNEAK string is included in the parameters.  The guardian can also \
be bypassed if in combat or badly hurt, unless the ALWAYS flag is included. \
\n\r\
\n\r\
Valid mask parameters include:  \n\r\
<ZAP=disallow>

BEHAVIOR_DROWNESS=\
Behavior   : Drowness\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
The behavior of the drow differs slightly between males and females.  This behavior is \
therefore an entire kit, including weapons, armor, spells, and combat behavior.  DO NOT \
(I repeat) DO NOT use this behavior with any CombatAbilities derivitive, unless you want \
an unfair and utterly deadly opponent.  Also, do NOT add any equipment to the mob with this \
behavior.  The kit will supply the mob with weapons and armor.

BEHAVIOR_SOUNDER=\
Behavior   : Sounder\n\r\
Targets    : Room, MOBs, Items, Areas\n\r\
Parameters : (Max/Min ticks;) ([EMOTE CODE] [EMOTE STRING];) \n\r\
Example    : sound 80 wiggles his bottom.;sound 60 smiles evilly.;sound 20 burps!\n\r\
Example    : min=20 max=20;wear $p looks good on you.;remove Now you don't look so good.;remove_room $n doesn't look so good.\n\r\
\n\r\
An alternative to the Emoter behavior, this allows you to create very simple \
emoting triggers based on percent chances every tick, or based on event triggers \
such as getting an item, or leaving a room.  Each emote trigger is semicolon (;) \
separated, and the first trigger may instead be a set of ticks.  Valid emote codes \
include the following:\n\r\
SOUND [PCT CHANCE] - every min/max ticks, this will be emoted % chance of the time.\n\r\
GET - if an item is gotten (or THE item), this will emote to the getter.\n\r\
GET_ROOM - if an item is gotten (or THE item), this will emote to the room (not the getter).\n\r\
DROP - if an item is dropped (or THE item), this will emote to the getter.\n\r\
DROP_ROOM - if an item is dropped (or THE item), this will emote to the room (not the getter).\n\r\
PUSH - if an item is pushed (or THE item), this will emote to the pusher.\n\r\
PUSH_ROOM - if an item is pushed (or THE item), this will emote to the room (not the pusher).\n\r\
PULL - if an item is pulled (or THE item), this will emote to the pulled.\n\r\
PULL_ROOM - if an item is pulled (or THE item), this will emote to the room (not the puller).\n\r\
EAT - if an item is eaten (or THE item), this will emote to the eater.\n\r\
EAT_ROOM - if an item is eaten (or THE item), this will emote to the room (not the getter).\n\r\
MOUNT - if an item is mounted (or THE item), this will emote to the mounter.\n\r\
MOUNT_ROOM - if an item is mounted (or THE item), this will emote to the room (not the getter).\n\r\
DRINK - if an item is drunk (or THE item), this will emote to the drinker.\n\r\
DRINK_ROOM - if an item is drunk (or THE item), this will emote to the room (not the getter).\n\r\
SIT - if an item is sat on (or THE item), this will emote to the sitter.\n\r\
SIT_ROOM - if an item is sat on (or THE item), this will emote to the room (not the getter).\n\r\
SLEEP - if an item is slept on (or THE item), this will emote to the sleeper.\n\r\
SLEEP_ROOM - if an item is slept on (or THE item), this will emote to the room (not the getter).\n\r\
WEAR - if an item is worn (or THE item), this will emote to the wearer.\n\r\
WEAR_ROOM - if an item is worn (or THE item), this will emote to the room (not the getter).\n\r\
OPEN - if an item is opened (or THE item), this will emote to the wearer.\n\r\
OPEN_ROOM - if an item is opened (or THE item), this will emote to the room (not the getter).\n\r\
CLOSE - if an item is closed (or THE item), this will emote to the wearer.\n\r\
CLOSE_ROOM - if an item is closed (or THE item), this will emote to the room (not the getter).\n\r\
HOLD - if an item is held (or THE item), this will emote to the wearer.\n\r\
HOLD_ROOM - if an item is held (or THE item), this will emote to the room (not the getter).\n\r\
WIELD - if an item is wielded (or THE item), this will emote to the wearer.\n\r\
WIELD_ROOM - if an item is wielded (or THE item), this will emote to the room (not the getter).\n\r\
REMOVE - if an item is removed (or THE item), this will emote to the remover.\n\r\
REMOVE_ROOM - if an item is removed (or THE item), this will emote to the room (not the getter).\n\r\
PORTAL_ENTER - if the room is entered, this will emote to the one entering.\n\r\
PORTAL_ENTER_ROOM - if the room is entered, this will emote to the others in the room.\n\r\
PORTAL_EXIT - if the room is left, this will emote to the one leaving.\n\r\
PORTAL_EXIT_ROOM - if the room is left, this will emote to the others in the room.\n\r\
DAMAGE - if the object is hurt, or used to hurt, this will emote to the one hurting.\n\r\
DAMAGE_ROOM - if the object is hurt, or used to hurt, this will emote to the others in the room.\n\r\
FIGHT - if the object is attacking, or used to attack, this will emote to the one attacking.\n\r\
FIGHT_ROOM - if the object is attacking, or used to attack, this will emote to the others in the room.\n\r\
\n\r\
The emote strings may be any text, and the following codes may be included:\n\r\
$p - the name of the item with the behavior.\n\r\
$n - the name of the source of the emote, or the source of the trigger.\n\r\
$e - the he/she of $n.\n\r\
$s - the his/her of $n.

BEHAVIOR_EMOTER=\
Behavior   : Emoter\n\r\
Targets    : Room, MOBs, Items, Areas\n\r\
Parameters : Flags, Max/Min ticks, pct chance, expires, emote strings, ';' separated.\n\r\
Example    : min=10 max=20 chance=25;wiggles his bottom.;smiles evilly.;burps!\n\r\
Example    : smell chance=25 expires=10;smells horrible!;is really stinky!\n\r\
Example    : chance=100 inroom="Here#1,Here#2";looks horrible!;is bad!\n\r\
Example    : broadcast sound chance=25;grumbles!;eeeks!\n\r\
Example    : min=1 max=2 chance=25;sound grumbles!;visual leers broadly.;social smile\n\r\
Description: \n\r\
This behavior defines a serious of random emotes.  All emote strings are separated \
by the semicolons shown above.  The first parameter can be empty for defaults, \
or may contain a setting for minimum ticks (min=10), maximum ticks (max=20), \
the percent chance of occurrence after the random number of ticks has expired \
(chance=25), a total number of occurrences before expiration (expires=0), \
a list of rooms where the emoter MUST be for the emoter to work (inroom=...), \
a tag to make the emote sound based (sound), a tag to make the \
emote smell based (smell), or a tag to make the emote broadcast to adjacent \
rooms (broadcast).  In the first example every 10-20 ticks, there is a 25% \
chance that the object with this property will select one of the emotes \
randomly and perform it for all those in the same room who can see it.  In the \
second example, a smell based emote will be performed 25% of the time, but will only \
emote 10 times before the behavior is removed from the object.  \
In the third example, there is a 100% chance that, if the object is in room \
Here#1 or Here#2, it will emote one of the two choices. In the \
fourth example, a sound based emote will be performed 25% of the time in the \
room of the behavior, and in any adjacent rooms.\n\r\
\n\r\
You can also mix and match the types of emotes by putting the keywords SIGHT, \
SMELL, NOISE, and SOCIAL as the first word in each emote string.  This denotes \
the type of emote for the rest of the string.  The last example shows how to \
enter a mixed emote.

BEHAVIOR_FIGHTERNESS=\
Behavior   : Fighterness\n\r\
Targets    : MOBs\n\r\
Parameters : (SUBCLASS NAME) (PROFICIENT) (NOSTATS) (NOCOMBATSTAT)\n\r\
Parameters : (OFFENSIVE,DEFENSIVE,MIXEDOFFENSIVE,MIXEDDEFENSIVE)\n\r\
Example    : Fighter\n\r\
Example    : Paladin\n\r\
Description: \n\r\
An extension of CombatAbilities, this behavior makes the mob a Fighter by class, \
and gives the mob fighter skills appropriate to its level.  After \
this behavior has triggered, it will often require a RESET for any \
level changes to the mob to take over. \n\r\
Use the proficient flag to make all skills at 100% instead of level-based. Use \
the offensive/.../mixeddefensive flags to influence skill choices. \
This behavior should not be used WITH any of the other CombatAbilities behaviors, \
such as Fighterness, Thiefness, Mageness, Clericness, Druidness, or CombatAbilities. \
It should be used alone on a mob.\n\r\
Also, be aware that this behavior will modify the mobs stats to better reflect the class, \
so any additions or removals of this behavior should be accompanied by a room reset after \
saving, and manually checking to make sure the combat stats are as desired.

BEHAVIOR_DRUIDNESS=\
Behavior   : Druidness\n\r\
Targets    : MOBs\n\r\
Parameters : (SUBCLASS NAME) (PROFICIENT) (NOSTATS) (NOCOMBATSTAT)\n\r\
Parameters : (OFFENSIVE,DEFENSIVE,MIXEDOFFENSIVE,MIXEDDEFENSIVE)\n\r\
Example    : \n\r\
Example    : Druid\n\r\
Example    : SkyWatcher DEFENSIVE\n\r\
Description: \n\r\
An extension of CombatAbilities, this behavior makes the mob a Druid by class, \
and gives the mob druid skills appropriate to its level.  After \
this behavior has triggered, it will often require a RESET for any \
level changes to the mob to take over. \n\r\
Use the proficient flag to make all skills at 100% instead of level-based. Use \
the offensive/.../mixeddefensive flags to influence skill choices. \
This behavior should not be used WITH any of the other CombatAbilities behaviors, \
such as Fighterness, Thiefness, Mageness, Clericness, Druidness, or CombatAbilities. \
It should be used alone on a mob.\n\r\
Also, be aware that this behavior will modify the mobs stats to better reflect the class, \
so any additions or removals of this behavior should be accompanied by a room reset after \
saving, and manually checking to make sure the combat stats are as desired.

BEHAVIOR_BARDNESS=\
Behavior   : Bardness\n\r\
Targets    : MOBs\n\r\
Parameters : (SUBCLASS NAME) (PROFICIENT) (NOSTATS) (NOCOMBATSTAT)\n\r\
Parameters : (OFFENSIVE,DEFENSIVE,MIXEDOFFENSIVE,MIXEDDEFENSIVE)\n\r\
Example    : \n\r\
Example    : Bard\n\r\
Example    : Dancer MIXEDOFFENSIVE\n\r\
Description: \n\r\
An extension of CombatAbilities, this behavior makes the mob a Bard by class, \
and gives the mob bard songs appropriate to its level.  After \
this behavior has triggered, it will often require a RESET for any \
level changes to the mob to take over. \n\r\
Use the proficient flag to make all skills at 100% instead of level-based. Use \
the offensive/.../mixeddefensive flags to influence skill choices. \
This behavior should not be used WITH any of the other CombatAbilities behaviors, \
such as Fighterness, Thiefness, Mageness, Clericness, Druidness, or CombatAbilities. \
It should be used alone on a mob.\n\r\
Also, be aware that this behavior will modify the mobs stats to better reflect the class, \
so any additions or removals of this behavior should be accompanied by a room reset after \
saving, and manually checking to make sure the combat stats are as desired.

BEHAVIOR_COMMONSPEAKER=\
Behavior   : CommonSpeaker\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
This behavior makes sure that a mob is always speaking Common, even if it should \
be a race other than Human, or it should be polymorphed.

BEHAVIOR_FIGHTFLEE=\
Behavior   : FightFlee\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, and a percent chance\n\r\
Example    : min=10 max=20 chance=75\n\r\
Description: \n\r\
According to the timing and percent chance described by the parameters, the \
mob or item with this behavior will flee during combat.

BEHAVIOR_FIERYROOM=\
Behavior   : FieryRoom\n\r\
Targets    : Rooms\n\r\
Parameters : min, max ticks, a percent chance, flags and strings\n\r\
Example    : min=5 max=10 chance=100;damage=77 Title="A Horribly \n\r\
             Blackened Spot" Description="This place was once just like \n\r\
             any part of the road.  Now it is nothing more than a sooty pit." \n\r\
             NOSTOP eqchance=50\n\r\
Description: \n\r\
This behavior makes a room operate like it is on fire.  This can include dealing direct \
damage to players, burning flammable equipment and making non-flammable equipment heat \
up (i.e. is dropped), emote that it is burning, and eventually turn into a burnt-out \
room. \n\r\
The first parameter can be empty for defaults, \
or may contain a setting for minimum ticks (min=10), maximum ticks (max=20), and \
the percept chance of occurrence after the random number of ticks has expired \
(chance=25).\n\r\
\n\r\
Additional Settings and Flags: \n\r\
DAMAGE=XXX         - The amount of damage dealt to inhabitants every behavior tick \n\r\
TITLE=[text]       - The Room Display to change the room to when done burning \n\r\
DESCRIPTION=[text] - The Room Desc to change the room to when done burning \n\r\
EQCHANCE=XXX       - The unlikeliness of EQ bursting into flames or heating up.\n\r\
BURNTICKS=XXX      - How many behavior ticks to keep burning (Moot with NOSTOP)\n\r\
NOSTOP             - Prevent the room from ever burning up.  TITLE, DESCRIPTION and \n\r\
                     BURNTICKS become irrelevant\n\r\
NONPC              - Don't deal damage or eq burn/drop to NPC's\n\r\
NOFIRETEXT         - Don't display burning emotes while the room is burning.\n\r\
\n\r\
All of the parameters are optional. Defaults are: \n\r\
DAMAGE=10 \n\r\
TITLE="A Charred Ruin" \n\r\
DESCRIPTION="Whatever was once here is now nothing more than ash." \n\r\
EQCHANCE=0  (no default Eq destruction) \n\r\
BURNTICKS=12

BEHAVIOR_EVILEXECUTIONER=\
Behavior   : EvilExecutioner\n\r\
Targets    : MOBs\n\r\
Parameters : PLAYERS\n\r\
Example    : \n\r\
Description: \n\r\
The mob with this behavior will attack any good or paladin non-player mob it \
detects.  With the Players parameter, it will even attack players as well.

BEHAVIOR_FOLLOWER=\
Behavior   : Follower\n\r\
Targets    : MOBs, Items\n\r\
Parameters : min, max, pct (inv) (group) (nofollowers) (wander)\n\r\
Parameters : (follow mask) (name=[name])\n\r\
Example    : \n\r\
Example    : min=1 max=1 chance=50 -race +elf\n\r\
Example    : group nofollowers -race +elf +gnome\n\r\
Example    : min=4 max=20 chance=100 inv -race +elf +gnome\n\r\
Description: \n\r\
The mob with this behavior will follow any other mob that leaves the room.  Following \
normally happens on the tick, but if minticks and maxticks are -1, it will be instant. A chance \
percentage (1-100) parameter may be given to better randomize the opportunity.  A \
GROUP flag may also be included to make the mob join the targets group instead of \
merely following them out of the room.  The rate of non-grouping following is \
dictated by the min and max ticks.  The NOFOLLOWERS flag will make sure that \
this behavior does not trigger when the mob has someone following him/her. \
The WANDER flag may be added to allow the mob to leave their home area.\n\r\
\n\r\
An item with this behavior will also follow mobs around, depending upon \
whether the INVENTORY flag is in the parameters or not.  If it is, then \
the item will reappear in the inventory of the first person to pick it \
up whenever it is dispensed with.  If the INVENTORY flag is not used, it \
will always appear in the same room as the first it comes across.  The \
rate of reappearance is dictated by the min and max ticks. Items with \
this behavior can not be sold to shopkeepers.\n\r\
\n\r\
A NAME may be given to limit the person followed to only that name. \
A mask may also be given to define what sort of targets are elligible \
to be followed by the mob or item.  Valid masks include: \n\r\
<ZAP=ignore> 


BEHAVIOR_GATEGUARD=\
Behavior   : GateGuard\n\r\
Targets    : MOBs\n\r\
Parameters : a list of masking parameters described below\n\r\
Example    : -class +mage -race +elf -evil\n\r\
Description: \n\r\
When this mob is standing next to a doorway and a player enters, the mob will open \
the door for the player, and close it after them.  The guard will also lock the door \
at night, if the door has a lock.  The guard will behave according to whether \
any players in the room meet the parameters.  If no parameter is given, the \
guard will always follow the behavior. Valid parameters include:  \n\r\
keeplocked (if the door has a lock, the mob will make sure it remains so \n\r\
allnight (does not operate differently at night than the day)\n\r\
<ZAP=disallow> 

BEHAVIOR_GETSALLEQUIPPED=\
Behavior   : GetsAllEquipped\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
This is a deprecated behavior, but listed here in case someone can think of \
a new use for it.  This behavior causes the mob, on reset, to grab everything \
in its default room, and attempt to wear it.  He also does this whenever someone \
in the room dies, so its also good for making the mob autoloot.

BEHAVIOR_GOODEXECUTIONER=\
Behavior   : GoodExecutioner\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
The mob with this behavior will attack any evil or thief non-player mob it \
detects.    With the Players parameter, it will even attack players as well.

BEHAVIOR_GOODGUARDIAN=\
Behavior   : GoodGuardian\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
This is a very active behavior.  If the mob detects any evil mob attacking \
a good mob in the same room, or an adjacent room, it will attack the evil \
mob.  If evil mobs are fighting, it will do nothing.  If two good or neutral \
mobs are fighting, it will stop the fight.

BEHAVIOR_GUARD=\
Behavior   : Guard\n\r\
Targets    : MOBs\n\r\
Parameters : ([MOB Name])\n\r\
Example    : \n\r\
Example    : Bob\n\r\
Description: \n\r\
If ANY mob, player or non-player, is attacked in the same room as the mob with \
this behavior, this mob will come to the victim's defence.  However, if this behavior \
has a parameter, then they will only come to the aid of players/mobs with that name.

BEHAVIOR_HEALER=\
Behavior   : Healer\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, and a percent chance\n\r\
Example    : min=10 max=20 chance=75\n\r\
Description: \n\r\
The mob with this behavior gains Cure Disease, Cure Light Wounds, Cure \
Serious Wounds, Bless, and Sanctuary.  At random, the mob will cast these \
spells on any player-mobs in the room.

BEHAVIOR_HIRELING=\
Behavior   : Hireling\n\r\
Targets    : MOBs\n\r\
Parameters : price to hire;minutes of service\n\r\
Example    : 10000;30\n\r\
Description: \n\r\
Allows a mob to hire him or herself out for a given amount of time. \
The first parameter is the price to hire the mob, followed by a semicolon \
and the number of minutes that amount of money purchases.  Additional money \
may be given by the player to extend the time.  When the time expires, the \
mob returns to his or her start room.

BEHAVIOR_INSTANTDEATH=\
Behavior   : InstantDeath\n\r\
Targets    : MOBs, Items, Rooms, Areas\n\r\
Parameters : mask, min, max ticks, and a percent chance\n\r\
Example    : min=10 max=20 chance=75 mask="-RACE +ORC"\n\r\
Description: \n\r\
According to the timing and percent chance described by the parameters, the \
item owner with this behavior will be killed.  MOBs and Rooms with this \
behavior will kill all their inhabitants.  MOBs do not \
kill until attacked, food when eaten, drinks when sipped \
items when they are picked up, weapons when they are first wielded, \
or armor when it is first worn.  Rooms merely need to be entered. \n\r\
\n\r\
<ZAP=spare>

BEHAVIOR_ITEMGENERATOR=\
Behavior   : ItemGenerator\n\r\
Targets    : Areas, Rooms, Containers, Mobs\n\r\
Parameters : [min/max ticks] [% chance] [min/max items/dups] [enchanted=%][mobs] [locale mask]; [mask]\n\r\
Example    : min=10 max=20 chance=75 minitems=1 maxitems=10 maxdups=0;-LEVELS +>10\n\r\
Example    : minitems=10 maxitems=20 MOBS -ALL +CITY;-MATERIAL +IRON +BRONZE\n\r\
Example    : minitems=10 maxitems=20 enchanted=20;-NAME "+Short Sword"\n\r\
Description: \n\r\
This behavior will generate a list of items from the standard common skills. It \
will also add random enchantments and curses to items a percentage of the time \
dictated by the echanted parameter (default=10).  Items are selected from the \
list on a pseudo-random basis, with the chance weighted in favor of the least \
valuable items in favor of the most valueable.  This is to decrease the chances \
of a plethora of Spidersteel swords.\n\r\
\n\r\
The parameters \
before the semicolon describe the rate and amount of items generated.  \
The room or area will attempt to generate an item every (min) to (max) \
ticks, assuming the percent chance (chance) is made.  It will then generate \
at least the minimum (minitems) number of items from the list, but \
never more than the maximum (maxitems) number of monsters.  Duplicates \
are allowed unless (maxdups) is set to some value.  \
Items taken away will be replaced by this behavior, even if \
they are looted.  If the behavior is on a room, all \
items will be generated in that room.  If on an area, a random room in \
the area will be picked for the item. The TYPE of room in that area which \
will be selected for population may also be specified. \
-ALL to disallow all locales, followed by +AIR +CITY +JUNGLE (etc) to \
reallow certain locales.  -CITY -UNDERWATER and others may be used to \
restrict certain locales.  If no locale types are specified, then all rooms \
in an area will be populatable.  \
Valid locates include: "STONE",	"WOODEN", "CAVE", "MAGIC", "UNDERWATER", "AIR", \
"WATERSURFACE",	"METAL", "CITY", "WOODS", "ROCKY", "PLAINS", "UNDERWATER", \
"AIR", "WATERSURFACE", "JUNGLE", "SWAMP", "DESERT", "HILLS", "MOUNTAINS". \
If the behavior is on a mob, or the MOBS flag is given in the parameters, then \
the item will be placed on a mob IF POSSIBLE (if the behavior is on an area, and \
a room with no mobs is randomly selected, it may not happen).  Items places on \
mobs will be automatically worn if possible. \n\r\
\n\r\
The parameters after the semicolon are a mask to help select what kind of items \
are generated for the several rooms or whatever.  The mask uses the following \
flags:\n\r\
<ZAP=disallow> 

BEHAVIOR_ITEMMENDER=\
Behavior   : ItemMender\n\r\
Targets    : MOBs\n\r\
Parameters : (COST="[FORMULA]")\n\r\
Example    : COST="100+@x1"\n\r\
Description: \n\r\
For a price, this mob will repair damaged weapons and armor.  \
The mender will NOT work for Archons, however. \
\n\r\
The optional COST parameter can be used to change the pricing \
formula.  Variables are: @x1=level, @x2=value, @x3=condition(0-100), \
@x4=magical=1.0/non-magical=0.0. 

BEHAVIOR_ITEMREFITTER=\
Behavior   : ItemRefitter\n\r\
Targets    : MOBs\n\r\
Parameters : (COST="[FORMULA]")\n\r\
Example    : COST="100+@x1"\n\r\
Description: \n\r\
For a price, this mob will resize armor to fit the mob.  \
The mender will NOT work for Archons, however.\
\n\r\
The optional COST parameter can be used to change the pricing \
formula.  Variables are: @x1=level, @x2=value, @x3=condition(0-100), \
@x4=magical=1.0/non-magical=0.0. 


BEHAVIOR_ITEMIDENTIFIER=\
Behavior   : ItemIdentifier\n\r\
Targets    : MOBs\n\r\
Parameters : (COST="[FORMULA]")\n\r\
Example    : COST="100+@x1"\n\r\
Description: \n\r\
For a price, this mob will identify items.  \
They will NOT work for Archons, however.\
\n\r\
The optional COST parameter can be used to change the pricing \
formula.  Variables are: @x1=level, @x2=value, @x3=condition(0-100), \
@x4=magical=1.0/non-magical=0.0. 


BEHAVIOR_MAGENESS=\
Behavior   : Mageness\n\r\
Targets    : MOBs\n\r\
Parameters : (SUBCLASS NAME) (PROFICIENT) (NOSTATS) (NOCOMBATSTAT)\n\r\
Parameters : (OFFENSIVE,DEFENSIVE,MIXEDOFFENSIVE,MIXEDDEFENSIVE)\n\r\
Example    : \n\r\
Example    : Mage\n\r\
Example    : Illusionist MIXEDDEFENSIVE\n\r\
Description: \n\r\
An extension of CombatAbilities, this behavior makes the mob a Mage by class, \
and gives the mob mage spells appropriate to its level.  After \
this behavior has triggered, it will often require a RESET for any \
level changes to the mob to take over.\n\r\
Use the proficient flag to make all skills at 100% instead of level-based. Use \
the offensive/.../mixeddefensive flags to influence skill choices. \
This behavior should not be used WITH any of the other CombatAbilities behaviors, \
such as Fighterness, Thiefness, Mageness, Clericness, Druidness, or CombatAbilities. \
It should be used alone on a mob.\n\r\
Also, be aware that this behavior will modify the mobs stats to better reflect the class, \
so any additions or removals of this behavior should be accompanied by a room reset after \
saving, and manually checking to make sure the combat stats are as desired.

BEHAVIOR_LINKEDWEATHER=\
Behavior   : LinkedWeather\n\r\
Targets    : Areas\n\r\
Parameters : [Area Name](;ROLLING)\n\r\
Example    : My Area\n\r\
Example    : My Area;ROLLING\n\r\
Description: \n\r\
This behavior forces the area to always mimic the weather of another area \
on your map.  That area is determined by the parameters.  The normal behavior \
is for the weather of the given area to always be the same as the linked area. \
If the area name in the parameters is followed by a semicolon and the word \
ROLLING, then the area instead will always take on the weather of the linked \
area on its next weather change, meaning that the linked area's weather will \
seem to "roll" into this area on every weather change.

BEHAVIOR_MIME=\
Behavior   : Mime\n\r\
Targets    : MOBs, Items, Exits, Rooms\n\r\
Parameters : min, max ticks, and a percent chance\n\r\
Example    : min=10 max=20 chance=75\n\r\
Description: \n\r\
This amazingly annoying Behavior makes the thing mimic any emotes or socials \
done by a player in the same room, back to that player.

BEHAVIOR_MOBEATER=\
Behavior   : MOBEater\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, and a percent chance to occur, and pct of hp acid dmg does\n\r\
Example    : min=4 max=8 chance=5 acidpct=50\n\r\
Description: \n\r\
This behavior allows a mob to eat other mobs or players, and digest them!  Great for dragons! \
You can set how often this occurs, and what % of the players hp is taken from when when being \
digested in the stomach.  Another player must kill the mob with this behavior to free those \
being digested.  This behavior will not work at ALL unless the mob with this behavior is twice \
the weight of the target.

BEHAVIOR_MOBHELPER=\
Behavior   : MOBHelper\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
The mob with this behavior will come to the defence of any non-player mob \
which is attacked in its presence.

BEHAVIOR_COMBATASSISTER=\
Behavior   : CombatAssister\n\r\
Targets    : MOBs\n\r\
Parameters : mask of mobs to assist\n\r\
Example    : -RACE +Elf\n\r\
Example    : -NAME "+My Buddies"\n\r\
Example    : -CLANS "+My Clan"\n\r\
Description: \n\r\
The mob with this behavior will come to the defence of any other mob \
which is attacked in its presence and meets the mask defined above.  \n\r\
Valid masks include: \n\r\
<ZAP=ignore>


BEHAVIOR_MOBHUNTER=\
Behavior   : MOBHunter\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, room radius, a percent chance, mask of mobs to hunt\n\r\
Example    : min=600 max=1200 chance=99 radius=50 -RACE +Human\n\r\
Example    : min=50 max=1200 chance=75 -NAME "+Evil Wizards"\n\r\
Description: \n\r\
This behavior will cause the mob to seek out a victim within the RADIUS \
number of rooms from where he is.  The mob will then hunt down and \
assassinate the victim.  The mob will begin the hunt according to the \
frequency defined by the parameters.  The MIN and MAX parms decide \
the minimum number of ticks to wait between hunts, and the CHANCE parm \
determines the chance the hunt will begin at that time.  The RADIUS \
is the number of rooms away from the mobs current room in which a \
victim will be sought.  The rest of the parameters are a mask to \
determine who would make a good victim.  Valid masks include: \n\r\
<ZAP=spare>

BEHAVIOR_MOBILE=\
Behavior   : Mobile\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, a percent chance, flags, locale parms\n\r\
Example    : min=10 max=20 chance=75 wander -air -underwater\n\r\
Example    : min=10 max=20 chance=75 opendoors\n\r\
Example    : min=10 max=20 chance=75 leash=3 opendoors\n\r\
Description: \n\r\
According to the timing and percent chance described by the parameters, the \
mob with this behavior will travel in a random available direction. \
Mobs will not leave rooms containing visible Archons and builders with the CMDMOBS \
security flag. \
The \
wander flag is required if the mob is allowed to leave his or her area. \
The opendoors flag will allow the mob to open closed doors when walking \
around, or to unlock locked doors if the mob has the key. \
The leash parameter will prevent the mob from getting too far from home. \
The TYPE of room from which the mob is restricted may also be entered. \
-ALL to disallow all locales, followed by +AIR +CITY +JUNGLE (etc) to \
reallow certain locales.  -CITY -UNDERWATER and others may be used to \
restrict certain locales.  The full locale list is: STONE, WOODEN, CAVE, \
MAGIC, UNDERWATER, AIR, WATERSURFACE, METAL , CITY, WOODS, ROCKY, \
PLAINS, JUNGLE, SWAMP, DESERT, HILLS, MOUNTAINS, SPACEPORT, SEAPORT

BEHAVIOR_MOBILEAGGRESSIVE=\
Behavior   : MobileAggressive\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, a percent chance, flags, message=[msg], and masks\n\r\
Example    : min=10 max=20 chance=75 -underwater -thief +elf\n\r\
Example    : min=10 max=20 chance=75 wander -air -elf\n\r\
Example    : min=10 max=20 chance=75 message="aha!" -air -elf\n\r\
Example    : min=10 max=20 chance=75 mobkill misbehave\n\r\
Description: \n\r\
According to the timing and percent chance described by the parameters, the \
mob with this behavior will travel in a random available direction. The mob \
will attack any player mob it comes across. They will be especially aggressive \
towards players within 16 levels of themselves in adjacent rooms. If no other parameters are given, \
the mob will attack anyone, anywhere. The wander flag is required if the \
mob is allowed to leave his or her area. The TYPE of room from which the \
mob is restricted may also be entered. -ALL to disallow all locales, \
followed by +AIR +CITY +JUNGLE (etc) to reallow certain locales.  \
-CITY -UNDERWATER and others may be used to restrict certain locales. \
The full locale list is: STONE, WOODEN, CAVE, \
MAGIC, UNDERWATER, AIR, WATERSURFACE, METAL , CITY, WOODS, ROCKY, \
PLAINS, JUNGLE, SWAMP, DESERT, HILLS, MOUNTAINS, SPACEPORT, SEAPORT. \n\r\
\n\r\
Masks may also be used to specify who the mob is likely to attack.  \
Mobs will not be mobile or aggressive towards Archons and builders with the CMDMOBS \
security flag. \
If no other masks are given, the mob will attack anyone within 8 levels. \n\r\
Valid aggressive masks include:  \n\r\
message=[msg] something for the mob to say whenever he's fixing to attack\n\r\
delay=x (makes the mob delay x ticks before looking for a victim) \n\r\
mobkill (makes this behavior attack mobs as well as players) \n\r\
misbehave (makes this mob attack even when wounded or a follower) \n\r\
checklevel (makes this mob attack only those within 5 levels below him) \n\r\
<ZAP=spare> 

BEHAVIOR_MOBILEGOODGUARDIAN=\
Behavior   : MobileGoodGuardian\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, a percent chance, flags, locale parms\n\r\
Example    : min=10 max=20 chance=75 wander -air -underwater\n\r\
Description: \n\r\
This is a very active behavior.  If the mob detects any evil mob attacking \
a good mob in the same room, or an adjacent room, it will attack the evil \
mob.  If evil mobs are fighting, it will do nothing.  If two good or neutral \
mobs are fighting, it will stop the fight. This mob is also mobile, which \
means the mob will move around the area. The wander flag is required if the \
mob is allowed to leave his or her area. The TYPE of room from which the \
mob is restricted may also be entered. -ALL to disallow all locales, \
followed by +AIR +CITY +JUNGLE (etc) to reallow certain locales.  \
-CITY -UNDERWATER and others may be used to restrict certain locales. \
The full locale list is: STONE, WOODEN, CAVE, \
MAGIC, UNDERWATER, AIR, WATERSURFACE, METAL , CITY, WOODS, ROCKY, \
PLAINS, JUNGLE, SWAMP, DESERT, HILLS, MOUNTAINS, SPACEPORT, SEAPORT.  \
Mobs will not leave rooms containing visible Archons and builders with the CMDMOBS \
security flag.

BEHAVIOR_MOBRESAVE=\
Behavior   : MOBReSave\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, a percent chance\n\r\
Example    : min=140 max=140 chance=100\n\r\
Description: \n\r\
This behavior allows the mob with it to be updated in the CoffeeMud database \
according to the frequency defined by min, max ticks.  This behavior is tricky \
to set up the first time. When you know you are going to want an updating mob in \
a room, you should first go to the room and create a GenMob with this behavior \
(no parameters needed).  Wait a few seconds, and you will see the GenMob that you \
created has disappeared.  Now you are free to add this behavior to one or more \
other mobs at your leisure.  Don't forget to resave the room when you are done!


BEHAVIOR_MOBTEACHER=\
Behavior   : MOBTeacher\n\r\
Targets    : MOBs\n\r\
Parameters : Char class name(s), ability name(s), expertise name(s), \n\r\
Parameters : percentages, nocommon flag, noedus flag, or empty to teach all.\n\r\
Example    : mage evoker illusionist transmuter\n\r\
Example    : 100% mage 10% Thief_Steal NOCOMMON\n\r\
Example    : Spell_Sleep 5% Spell_Wish\n\r\
Example    : Spell_BurningHands\n\r\
Description: \n\r\
This behavior makes the mob suitable to teach skills, spells, prayers, \
songs, or expertises as specified in the parameters.  If the parameter is empty, the \
mob will be able to teach all abilities.  If the parameter contains the \
name of a character class, the mob will only teach abilities of that class. \
*Any* class may always practice with a MOBTeacher, but the mob may only \
teach those abilities for the character class the parameters describe.  \
The classes listed by mob teacher are NOT base classes.  To have a teacher \
able to teach skills from an entire base class, all sub-classes must be \
listed. \n\r\
Percentages may be included inside the parameters as well.  The percentage \
will always apply only to the character classes or spells listed after the \
percentage, not before.  Encountering another percentage entry will override \
the previous.  A percentage will dictate the chance that a given spell will \
be known by the teacher, or the chance that a particular spell in a given \
character class will be known. \n\r\
Two flags can also modify your list.  The NOCOMMON flag prevents the teacher \
from teaching common skills, even if they would normally be on his list.  The \
NOEXPS flag prevents the teacher from teaching expertises, even if he would \
normally qualify for them.\n\r\
If this behavior has NO parameters whatsoever, the mob will teach all basic \
skills. Expertises will only be taught if the mob otherwise qualifies for them \
himself, and Character Class changes will only be taught if the mob is that class. 

BEHAVIOR_MONEYCHANGER=\
Behavior   : MoneyChanger\n\r\
Targets    : MOBs\n\r\
Parameters : (CUT=[NUM]) (DEFAULT=[NUM]) ([CURRENCY]=[NUM])\n\r\
Parameters : (CUT=[NUM]) (SPACEMAXCUT=[NUM]) (SPACEMAXDISTANCE=[PCT])\n\r\
Example    : \n\r\
Example    : cut=5\n\r\
Example    : default=0 GOLD=5 INGITS=10\n\r\
Example    : cut=5 spacemaxcut=90 spacemaxdistance=35\n\r\
Description: \n\r\
Whenever a player gives the money changer coins, the money changer will give back to \
the player a bag containing an equivalent amount of money in the money changers \
native currency.  The "cut" that the money changer takes, in general, can be defined \
with the CUT parameter, by making CUT equal to a percentage.  If you wish, you can \
also define exchange rates for the several currencies in your system by setting each \
currency name equal to a percentage.\n\r\
\n\r\
When dealing with intersteller currencies, there are two other parameters, which can \
be used to automatically calculate a scaled "cut" of the exchange based on how \
far away the exchanged currencies planet is from the money changers.  To do this, \
you can add spacemaxcut to denote the percentage to take when the currency is from \
an unknown or maximum distance, and spacemaxdistance to denote a percentage of the entire \
galactic radius to use as a maximum.

BEHAVIOR_MUDCHAT=\
Behavior   : MudChat\n\r\
Targets    : MOBs\n\r\
Parameters : optional or additional chat data file name and/or chat-mob-type\n\r\
Example    : smurf\n\r\
Example    : chat.dat=smurf\n\r\
Example    : mychat.dat=cityguard\n\r\
Example    : mychat.dat=\n\r\
Example    : +(here there);9neither;5well, where?;1nowhere\n\r\
Description: \n\r\
Allows the mobs to speak and respond to speech.  The chat.dat file, from which \
speech behavior is derived, contains many "templates" for different speech \
behaviors.  MudChat will attempt to choose the correct speech behavior for \
the mob based on the mobs name.  This may be overridden by specifying a \
speech behavior in the parameters.  Speech patterns in the chat.dat at \
present include:\n\r\
default\n\r\
dog fido beastly fido_dog\n\r\
cat kitten lion\n\r\
pig boar\n\r\
doll toy\n\r\
papa_smurf smurf\n\r\
monster\n\r\
smurfette\n\r\
healer cleric doctor\n\r\
\n\r\
If the first character in the parameters is a plus-sign, then a semi-colon \
delimited list of chat data is expected, in the same format as is found in chat.dat.\n\r\


BEHAVIOR_QUESTCHAT=\
Behavior   : QuestChat\n\r\
Targets    : MOBs\n\r\
Parameters : optional or additional chat data, or filenames ,or chat-mob-type\n\r\
Example    : smurf\n\r\
Example    : +(here there);9neither;5well, where?;1nowhere\n\r\
Example    : chat.dat=smurf\n\r\
Example    : mychat.dat=cityguard\n\r\
Example    : mychat.dat=\n\r\
Example    : +(speak | talk | words::DONE_SPEAKING);9only said this to YOU once.\n\r\
Description: \n\r\
An extension of the MudChat behavior, with a special feature for Quests. \
Allows the mobs to speak and respond to speech.  The chat.dat file, from which \
speech behavior is derived, contains many "templates" for different speech \
behaviors.  MudChat will attempt to choose the correct speech behavior for \
the mob based on the mobs name.  This may be overridden by specifying a \
speech behavior in the parameters.  This behavior extends the basic functionality \
of MudChat in the following ways:\n\r\
\n\r\
1. If the first character in the parameters is a plus-sign, then a semi-colon \
delimited list of chat data is expected, in the same format as is found in chat.dat.\n\r\
\n\r\
2. If format#1 is used, the trigger pattern may be followed by a double-colon, and then \
immediately by a variable string.   This string will designate \
that the given pattern is only responded to for a given player ONCE.  The string \
will also be added to a list of strings under the players name in any Quest object. \
This list will then be available through a Scriptable QVAR function.

BEHAVIOR_MOVINGROOM=\
Behavior   : Mover\n\r\
Targets    : Rooms\n\r\
Parameters : min=3 max=3 chance=100;[xmlsection];[ticks at stops];[ticks between stops] \n\r\
Example    : min=3 max=3 chance=100;SUBWAY;3;10\n\r\
Description: \n\r\
The above example would set the room's parameters to the ones listed in the SUBWAY \
section of the file resources/moving.xml.  There is a subway example already there. \n\r\
NOTE!      : The follow conditions -must- be met before setting the room to this behaviour. \n\r\
1. \n\r\
The rooms that you want this room to open out to -must- already be defined before \
you make the XML section. \n\r\
2. \n\r\
The XML document -must- be writen before you set this behaviour. \n\r\
3. \n\r\
You -cannot- have the moving room override an exit, ie. if room A links south to Room B \n\r\
you cannot have the mover link north to room A.\n\r\
******************* \n\r\
XML DOCUMENT NOTES: \n\r\
******************* \n\r\
You can use the following strings in the XML document to be translated on the fly \n\r\
$disproom  : if mover is at a stop this is the room it is opened to otherwise \n\r\
. Example  : this is the next room that this room will open too. \n\r\
$inopendir : this is the direction the door on the inside (the mover) opens. \n\r\
$outopendir: this is the direction the door on the outside (where the mover stoped) opens. \n\r\
$traveldir : this is the current direction that the room is moving in. \n\r\
 \n\r\
<STOPS> here you would list the ROOMID of each room the mover will stop at example.\n\r\
<STOP1>[first stop]</STOP1>n\r\
 \n\r\
<NORMALDIRECTION> and <REVERSEDIRECTION> \n\r\
-in these tags you define the parameters for the mover while is is going back and forth. \n\r\
-normal is stop1 to stopwhatever and reverse is stopwhatever to stop1. \n\r\
-TRAVELDIRECTION = the direction it is traveling from point a to point b. \n\r\
-DOORSDIRECTION = the direction the doors open out of the mover. \n\r\
--<INSIDE> and <OUTSIDE> \n\r\
---in these tags you define what is echoed to the client in the mover and outside. \n\r\
---ARRIVALINFO = what is echoed when the room gets to the stop \n\r\
---DEPARTINFO = what is echoed when the room leaves the stop \n\r\
<ROOMDESCRIPTIONS> \n\r\
-here you define what is appended to the end of the room descriptions. \n\r\
-<NORMALDIRECTION> and <REVERSEDIRECTION> \n\r\
--<INSIDE> and <OUTSIDE> \n\r\
---DOOROPENED = if the door is opened append this.\n\r\
---DOORCLOSED = if the door is closed append this.\n\r\
 \n\r\
There are two examples in the XML document you can look at for further info. \n\r\
 \n\r\
Ideas for this would be, subways, busses, wagon trains (caravans) spaceships, \
stargates, everchanging paths in mazes, elevators, ect.

BEHAVIOR_NASTYABILITIES=\
Behavior   : NastyAbilities\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, and a percent chance (optional fightok string)\n\r\
Example    : min=10 max=20 chance=75\n\r\
Example    : min=10 max=20 chance=75 fightok\n\r\
Description: \n\r\
According to the timing and percent chance described by the parameters, the \
mob with this behavior will use any of its malicious abilities, including \
spells, prayers, songs, or others, to the detriment of random player mobs in the \
same room.  These spells will not automatically cause combat unless the FIGHTOK \
string is included in the parameters.

BEHAVIOR_NICEABILITIES=\
Behavior   : NiceAbilities\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, and a percent chance\n\r\
Example    : min=10 max=20 chance=75\n\r\
Description: \n\r\
According to the timing and percent chance described by the parameters, the \
mob with this behavior will use any of its benevolent abilities, including \
spells, prayers, songs, or others, for the benefit of player mobs in the \
same room.

BEHAVIOR_NOCOMBATASSIST=\
Behavior   : NoCombatAssist\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
This behavior makes sure that a mob does not assist in combat when following \
a player or another mob.

BEHAVIOR_OBJECTGUARDIAN=\
Behavior   : ObjectGuardian\n\r\
Targets    : MOBs\n\r\
Parameters : SENTINAL\n\r\
Example    : SENTINAL\n\r\
Description: \n\r\
This will cause a mob to explicitly prevent any other mob from taking or \
removing any object in the same room as the mob. You have to kill him! By \
adding SENTINAL to the parameters, the mob will be even more vigilant and \
steadfast, not letting combat or even severe damage deter him from his duty.

BEHAVIOR_PATROLLER=\
Behavior   : Patroller\n\r\
Targets    : MOBs, Items\n\r\
Parameters : min, max ticks, % chance, rideok flag, diameter; room ids or directions\n\r\
Example    : min=10 max=20 chance=75 rideok=true;Midgaard#3001;#3002;#3003;RESTART\n\r\
Example    : min=10 max=20 chance=99 rideok=only;Midgaard#3001;#3002;#3003;RESTART\n\r\
Example    : min=10 max=20 chance=15;east;.;north;north;east\n\r\
Example    : min=10 max=20 chance=15 diameter=100;Midgaard#1;New Thalos#10;.;.;restart\n\r\
Description: \n\r\
According to the timing and percent chance described by the parameters, the \
mob or item with this behavior will travel the path assigned in the parameters.  \
Cardinal directions and room numbers are all valid entries, though the \
cardinal directions must always be valid from the objects current position to \
work.  The 'RESTART' parameter may be placed in the path to force the object \
to start the path from the beginning.  If no 'RESTART' parameter is given, \
the object will by default retrace their steps back to the beginning of the \
path.  The '.' parameter (a period) in the path will direct the patroller to \
pause one step at that point.  If any doors are encountered along the \
patrol route, they will be unlocked and opened by a mob.  Items will ignore doors. \
If a route of room ids is given, the patroller will automatically "track" from their \
current position to the next room on their patrol list, even if it is not adjacent. \
The diameter parameter should be enlarged when it is possible for the patroller to \
become more that 20 rooms "off track".\n\r\
\n\r\
By default, rideable mobs and items will stop patrolling when they are ridden.  \
Setting rideok to true will make it so that they continue their patrol even when \
ridden, though they can still be driven by passengers.  Setting rideok to only \
will keep the rideable on track, and prevent driving by passengers.\n\r\
\n\r\
See Prop_StayAboard for a helpful support property for patrollers with riders. 

BEHAVIOR_PLAYERHELPER=\
Behavior   : PlayerHelper\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
The mob with this behavior will come to the defence of any player mob \
against any non-player mob.

BEHAVIOR_POKERDEALER=\
Behavior   : PokerDealer\n\r\
Targets    : MOBs, Rooms\n\r\
Parameters : (GAME=[gameint]) (MINPLAYERS=[numplayers]) (ANTI=[antiamount])\n\r\
Example    : game=2 minplayer=4 anti=5.0\n\r\
Description: \n\r\
This behavior makes the mob or room a dealer of poker games.  The behavior will manage \
not only the players hands, but their betting, card draws, and other aspects.  The \
variety of poker defaults to straight poker, but may be set to one of the following: \
STRAIGHTPOKER=0, 5CARDSTUD=1, 7CARDSTUD, DRAWPOKER=3.\n\r\
As of this version, the dealer can not play, so numplayers must be 2 or more.

BEHAVIOR_PUDDLEMAKER=\
Behavior   : PuddleMaker\n\r\
Targets    : Rooms, Areas\n\r\
Parameters : [PCT CHANCE]\n\r\
Example    : 34\n\r\
Description: \n\r\
The room or area with this behavior will, on the given pct chance, \
generate a puddle or some snow following an appropriate rain, sleet, \
thunderstorm, or similar weather event.  The generated snow or puddle \
will disappear (evaporate) after a time.

BEHAVIOR_RANDOMITEMS=\
Behavior   : RandomItems\n\r\
Targets    : Areas, Rooms, Containers, Mobs\n\r\
Parameters : [min/max ticks] [% chance] [min/max items] [mobs] [locale mask]; [xml/filename]\n\r\
Example    : min=10 max=20 chance=75 minitems=1 maxitems=10;myitems.cmare\n\r\
Example    : minitems=10 maxitems=20 MOBS -ALL +CITY;stuff.cmare\n\r\
Example    : minitems=10 maxitems=20 ;<ITEMS><ITEM>..etc..\n\r\
Description: \n\r\
This behavior will read a list of items from a CMARE file of items generated \
using the "EXPORT AREA ITEMS" or "EXPORT ROOM ITEMS" command.  The path to this \
file should be the last parameter, following a semicolon.  The path is considered \
relative to the CoffeeMud resources directory.  The xml from such \
a file may also be pasted in as the last parameter instead. \n\r\
\n\r\
The parameters \
before the semicolon describe the rate and amount of items generated.  \
The room or area will attempt to generate an item every (min) to (max) \
ticks, assuming the percent chance (chance) is made.  It will then generate \
at least the minimum (minitems) number of items from the list, but \
never more than the maximum (maxitems) number of monsters.  Duplicates \
are allowed.  Items taken away will be replaced by this behavior, even if \
they are looted.  If the behavior is on a room, all \
items will be generated in that room.  If on an area, a random room in \
the area will be picked for the item. The TYPE of room in that area which \
will be selected for population may also be specified. \
-ALL to disallow all locales, followed by +AIR +CITY +JUNGLE (etc) to \
reallow certain locales.  -CITY -UNDERWATER and others may be used to \
restrict certain locales.  If no locale types are specified, then all rooms \
in an area will be populatable.  \
Valid locates include: "STONE",	"WOODEN", "CAVE", "MAGIC", "UNDERWATER", "AIR", \
"WATERSURFACE",	"METAL", "CITY", "WOODS", "ROCKY", "PLAINS", "UNDERWATER", \
"AIR", "WATERSURFACE", "JUNGLE", "SWAMP", "DESERT", "HILLS", "MOUNTAINS". \
If the behavior is on a mob, or the MOBS flag is given in the parameters, then \
the item will be placed on a mob IF POSSIBLE (if the behavior is on an area, and \
a room with no mobs is randomly selected, it may not happen).  Items places on \
mobs will be automatically worn if possible.   If the behavior is on a shopkeeper, \
it will put the items up for sale.

BEHAVIOR_RANDOMMONSTERS=\
Behavior   : RandomMonsters\n\r\
Targets    : Areas, Rooms\n\r\
Parameters : [min/max ticks] [% chance] [min/max monsters] [locale mask]; [xml/filename]\n\r\
Example    : min=10 max=20 chance=75 minmonsters=1 maxmonsters=10;monsters.cmare\n\r\
Example    : minmonsters=10 maxmonsters=20 -ALL +CITY;criminals.cmare\n\r\
Example    : minmonsters=10 maxmonsters=20 ;<MOBS><MOB>..etc..\n\r\
Description: \n\r\
This behavior will read a list of monsters from a CMARE file of mobs generated \
using the "EXPORT AREA MOBS" or "EXPORT ROOM MOBS" command.  The path to this \
file should be the last parameter, following a semicolon.  The path is considered \
relative to the CoffeeMud resources directory.  The xml from such \
a file may also be pasted in as the last parameter instead. \n\r\
\n\r\
The parameters \
before the semicolon describe the rate and amount of monsters generated.  \
The room or area will attempt to generate a monster every (min) to (max) \
ticks, assuming the percent chance (chance) is made.  It will then generate \
at least the minimum (minmonsters) number of monsters from the list, but \
never more than the maximum (maxmonsters) number of monsters.  Duplicates \
are allowed.  Monsters who die will be replaced by this behavior, even if \
they wander out of the room or area.  If the behavior is on a room, all \
monsters will be generated in that room.  If on an area, a random room in \
the area will be picked for the monster. The TYPE of room in that area which \
will be selected for population may also be specified. \
-ALL to disallow all locales, followed by +AIR +CITY +JUNGLE (etc) to \
reallow certain locales.  -CITY -UNDERWATER and others may be used to \
restrict certain locales.  If no locale types are specified, then all rooms \
in an area will be populatable.  By default, non-flying mobs will never be \
generated in air rooms, nor will non-swimming mobs be generated underwater. \
Valid locates include: "STONE",	"WOODEN", "CAVE", "MAGIC", "UNDERWATER", "AIR", \
"WATERSURFACE",	"METAL", "CITY", "WOODS", "ROCKY", "PLAINS", "UNDERWATER", \
"AIR", "WATERSURFACE", "JUNGLE", "SWAMP", "DESERT", "HILLS", "MOUNTAINS".


BEHAVIOR_RANDOMTELEPORTER=\
Behavior   : RandomTeleporter\n\r\
Targets    : Mobs\n\r\
Parameters : min, max ticks, a percent chance, (nowander) locale parms\n\r\
Example    : min=10 max=20 chance=75 -air -underwater\n\r\
Example    : min=10 max=20 chance=75 nowander\n\r\
Description: \n\r\
This behavior makes a mob which will transport himself to a random room \
on the map.  Locale parms may be given to restrict the types of rooms he \
will transport too.  A randomtransport will, by default, transport all over \
the world.  Use the nowander flag to keep him in his area.

BEHAVIOR_RESETWHOLE=\
Behavior   : ResetWhole\n\r\
Targets    : Rooms, Areas\n\r\
Parameters : # of ticks of inactivity before reset\n\r\
Example    : 4000\n\r\
Description: \n\r\
This behavior provides an alterative means of resetting your rooms and areas.  \
The system will total reset a room (mobs and items) which has not been visited \
by a player in the given amount of ticks.  Remember that a tick is about 4 seconds. \
An Area with this behavior will skip over any rooms which also have this behavior, \
allowing you to have different total reset times for certain rooms.  Of course, \
this behavior does not override the existing REJUV system for mobs and items, so \
if you would like to use the ResetWhole system exclusively, you should set the \
rejuv rate on all the mobs and items in your game to 0, which disables their \
internal rejuvenation.

BEHAVIOR_RESOURCEOVERRIDE=\
Behavior   : ResourceOverride\n\r\
Targets    : Rooms, Areas\n\r\
Parameters : min, max ticks, a percent chance, resources and (for areas) room types\n\r\
Example    : MIN=5 MAX=5 CHANCE=100 CORN WHEAT RICE\n\r\
Example    : CORN WHEAT RICE ROCKY MOUNTAINS PLAINS\n\r\
Description: \n\r\
This class allows one to override the normal resources generated by \
rooms for many common skills.  This skill will randomly select from \
the list enumerated in the parameters instead of the normal list. \
If this behavior is added to an area, you can add to the parameters \
a list of room types to apply the new resources to.  Room types include: \
STONE, WOODEN, CAVE, MAGIC, UNDERWATER, AIR, \
WATERSURFACE,	METAL, CITY, WOODS, ROCKY, PLAINS, UNDERWATER", \
AIR, WATERSURFACE, JUNGLE, SWAMP, DESERT, HILLS, MOUNTAINS\n\r\
\n\r\
When changing the parameters of an existing ResourceOverride on an area, \
be sure to use RESET AREA to change back any rooms previously affected. 

BEHAVIOR_ROMGANGMEMBER=\
Behavior   : ROMGangMember\n\r\
Targets    : MOBs\n\r\
Parameters : The name of the gang\n\r\
Example    : Troll\n\r\
Description: \n\r\
A silly behavior to better support ROM area files.  The mob with this behavior will attack any other \
mob which also has this behavior, but is in a different gang.  This behavior is not active when \
a mob with the ROMPatrolman is in the room.

BEHAVIOR_ROMPATROLMAN=\
Behavior   : ROMPatrolman\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
A silly behavior to better support ROM area files.  The mob with this behavior will complain whenever \
there is a fight going on in the same room.  The mob may do nothing, join the fight, or break it up.

BEHAVIOR_SCAVENGER=\
Behavior   : Scavenger\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, a percent chance, optional trash room id\n\r\
Example    : min=10 max=20 chance=75\n\r\
Example    : min=10 max=20 chance=75 trash="no"\n\r\
Example    : min=10 max=20 chance=75 trash="Midgaard#3021"\n\r\
Description: \n\r\
According to the timing and percent chance described by the parameters, the \
mob with this behavior will attempt to pick up and take away random objects \
in the same room as the mob.  Scavengers will not do their work when a PC is \
in the room, however.  If they get "filled up" on items, they will destroy \
them, unless the trash flag is present.  If it is set to NO, they will do nothing.  \
If it is set to a roomid, the mob will track to that room and put the things \
in any ungettable container therein, or on the ground if that is not an option.

BEHAVIOR_SCRIPTABLE=\
Behavior   : Scriptable\n\r\
Targets    : MOBs, Items, Rooms\n\r\
Parameters : (see below)\n\r\
Example    : LOAD=progs/mrinfo.script~\n\r\
Description: \n\r\
This behavior allows the reactions and behaviors of the mob to be scripted. \
The parameter may be complete scripts, and/or LOAD commands as specified below. \
If you choose to use a file for your script, then each script command line \
must be terminated by a linefeed or a semicolon.  If you choose to put your entire \
script into the parameters, you must terminate EVERY line with a semicolon (;). \
\n\r\
Multiple scripts with multiple triggers may be included.  Each script and trigger \
must be separated by the ~ character.  See examples in the resources/progs directory! \
\n\r\
Now to the script itself:\n\r\
The first line must be a trigger word followed by any parameters.  Valid \
triggers and parameters are as follows:\n\r\
LOAD=[SCRIPT PATH] - insert a new script from another file.  Ex: LOAD=progs/my.script~ \n\r\
GREET_PROG [PCT CHANCE] - When players enter the room, given the chance.\n\r\
ARRIVE_PROG [PCT CHANCE] - When the mob enters a new room, or enters the game.\n\r\
ALL_GREET_PROG [PCT CHANCE] - Same as GREET_PROG, but works with sneakers too.\n\r\
LOGIN_PROG [PCT CHANCE] - When players logs into the game, given the chance.\n\r\
LOGOFF_PROG [PCT CHANCE] - When players log out of the game, given the chance.\n\r\
LEVEL_PROG [PCT CHANCE] - When a player anywhere gains a level, given the chance.\n\r\
SPEECH_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When someone says the words.\n\r\
BRIBE_PROG [AMOUNT OF GOLD] - When the amount or better is given to the monster.\n\r\
GIVE_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When something is given to the monster.\n\r\
RAND_PROG [PCT CHANCE] - Triggers at random, given the chance.\n\r\
ONCE_PROG - Triggers on the first occurrence, but never again (until reset).\n\r\
FIGHT_PROG [PCT CHANCE] - Triggers during combat, given the chance.\n\r\
ENTRY_PROG [PCT CHANCE] - Triggers whenever the monster enters a new room.\n\r\
EXIT_PROG [PCT CHANCE] - Triggers whenever anyone exits the room of the monster.\n\r\
DEATH_PROG - When the monster dies.\n\r\
KILL_PROG - When the monster kills.\n\r\
HITPRCNT_PROG [HP PCT] - When the monster reaches the hit points % remaining.\n\r\
MASK_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When a mob performs an action with these words.\n\r\
IMASK_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When this mob performs an action with these words.\n\r\
REGMASK_PROG (P) [EXACT PHRASE]/[REGULAR EXPRESSION] - When a mob performs an action matching.\n\r\
ACT_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When a mob performs an action with these words.\n\r\
SOCIAL_PROG [SOCIAL NAME] - When a mob performs the given social.\n\r\
CHANNEL_PROG [CHNAME] (P) [A PHRASE]/[ONE OR MORE WORDS] - When channels a message with these words.\n\r\
QUEST_TIME_PROG [QUEST NAME] [TIME LEFT] - When the running quest reaches the number of minutes left.\n\r\
TIME_PROG [LIST OF HOURS] - Mob runs program at listed hours of the day.\n\r\
DAY_PROG [LIST OF DAYS] - Mob runs program at listed days of the month.\n\r\
DELAY_PROG [LOW TICKS] [HIGH TICKS] - Mob runs program at the given interval range.\n\r\
LOOK_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is looked at.\n\r\
LLOOK_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is llooked at.\n\r\
GET_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is gotten.\n\r\
OPEN_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is opened.\n\r\
CLOSE_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is closed.\n\r\
LOCK_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is locked.\n\r\
UNLOCK_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is unlocked.\n\r\
PUT_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is put in something.\n\r\
DROP_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is dropped.\n\r\
REMOVE_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is removed.\n\r\
CONSUME_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is ate/drank.\n\r\
WEAR_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is worn/wielded.\n\r\
DAMAGE_PROG - When damage taken by mob or given by item. Item#2 is the weapon. $g will have the amount.\n\r\
BUY_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is bought (items only).\n\r\
SELL_PROG (P) [A PHRASE]/[ONE OR MORE WORDS] - When matching something is sold.\n\r\
EXECMSG_PROG [MSG CODE] (P) [COMMAND WORDS] - When a msg of type msg code is executed. HELP MSG TYPES.\n\r\
CNCLMSG_PROG [MSG CODE] (P) [COMMAND WORDS] - Before a msg of type msg code is allowed. HELP MSG TYPES.\n\r\
FUNCTION_PROG [FUNCTION NAME] - declares a runnable function, with parms in $g, see MPCALLFUNC.\n\r\
*** NOTE Phrases for MASK_PROG, GIVE_PROG, GET_PROG, PUT_PROG, REMOVE_PROG, WEAR_PROG, BUY_PROG, SELL_PROG, \
and SPEECH_PROG must group words and phrases \
together using the "'" character, for instance 'a phrase' or 'multiple words'. \
The characteris unnecessary when put around single words 'word'.\n\r\
\n\r\
*** NOTE If Scriptable is placed on an Item, triggers such as GET_PROG, DROP_PROG, \
WEAR_PROG, and REMOVE_PROG will only trigger when the scripted item is involved. \n\r\
\n\r\
*** NOTE MASK_PROG and ACT_PROG will check commands as they appear to the mob with \
this behavior.  Consider perspective, vision, and word tense in light of this fact \
when wording your masks.  For instance, the purchase of a sword in a dark shop \
may be seen as 'Someone buys something from someone' instead of 'Bob buys a sword from Joe'.\n\r\
\n\r\
Following this line is your script itself.  The commands are as follows:\n\r\
IF/ENDIF/ELSE Conditional evaluations, separated by AND/OR.  The IF statement \
can group conditions with () and use the following functions as part of its \
evaluation:\n\r\
 - RAND([% CHANCE])    Random truth\n\r\
 - HAS([CODE] [ITEM NAME])  if the given mob has the specified item.\n\r\
 - HASNUM([CODE] [ITEM NAME] == [NUM])  the amount the given mob has of the item.\n\r\
 - HASTITLE([CODE] [TITLE STR])  if the given mob has the give title.\n\r\
 - WORN([CODE] [ITEM NAME])  if the given mob wears the specified item.\n\r\
 - ISNPC([CODE])  if the given mob is a non-player.\n\r\
 - ISPC([CODE])  if the given mob is a player.\n\r\
 - ISPKILL([CODE])  if the given mob has playerkill flag on.\n\r\
 - ISGOOD([CODE])  if the given mob is good.\n\r\
 - ISNAME([CODE] [WORDS])  if the given item is named with given words.\n\r\
 - CURRENCY([CODE] == [NAME])  if the native currency of the mob or coins is the name. Where == may be !=.\n\r\
 - NUMMOBSINAREA([MOB NAME] == [NUM]) if comparison of number of mobs of that name in area. Where == may be !=, >, <, <=, <=.\n\r\
 - NUMMOBS([MOB NAME] == [NUM]) if comparison of number of mobs of that name in world. Where == may be !=, >, <, <=, <=.\n\r\
 - NUMRACEINAREA([MOB NAME] == [NUM]) if comparison of number of mobs of that name in area. Where == may be !=, >, <, <=, <=.\n\r\
 - NUMRACES([MOB NAME] == [NUM]) if comparison of number of mobs of that name in world. Where == may be !=, >, <, <=, <=.\n\r\
 - ISEVIL([CODE])  if the given mob is evil.\n\r\
 - ISNEUTRAL([CODE])  if the given mob is neutral.\n\r\
 - ISFIGHT([CODE])  if the given mob is fighting.\n\r\
 - ISALIVE([CODE])  if the given mob is alive and available.\n\r\
 - ISIMMORT([CODE])  if the given mob is an archon.\n\r\
 - ISCHARMED([CODE])  if the given mob is charmed.\n\r\
 - STRCONTAINS([STRING] [CODED WORDS])  is string contains coded words.  May use "" & | > < ().\n\r\
 - STAT([CODE] [STAT] == [VALUE]) if the given mob/item has a stat of value, != is also valid.\n\r\
 - GSTAT([CODE] [STAT] == [VALUE]) like STAT, but player data accessible. See Generic.java.\n\r\
 - DATETIME([TIME/DAY/ETC] == [VALUE]) like STAT, but player data accessible. Where == may be >, <, !=, >=, or <=.\n\r\
 - AFFECTED([CODE] [SPELL CLASS]) if the mob is affected by spell.\n\r\
 - ISBEHAVE([CODE] [BEHAVIOR CLASS]) if the mob has a behavior.\n\r\
 - ISFOLLOW([CODE])  if the given mob is following someone in the room.\n\r\
 - ISSERVANT([CODE])  if the given mob is serving someone in the room.\n\r\
 - HITPRCNT([CODE] == [% HITS])  if the given mob has the pct chance hit points.  Where == may be >, <, !=, >=, or <=.\n\r\
 - HASTATTOO([CODE] [TATTOONAME]) whether the given mob has the given tattoo.\n\r\
 - INLOCALE([ROOM CLASS]) if the mob is in the given room type.\n\r\
 - ISBIRTHDAY([CODE]) if the mobs birthday is today.\n\r\
 - INROOM([ROOM ID/MOB NAME] == [ROOM ID/MOB NAME]) if the mob is in the given room.\n\r\
 - MOOD([MOB NAME] == [MOOD NAME]) if the mob has a mood, and it is the one specified.\n\r\
 - ISRECALL([MOB NAME]== [ROOM ID/MOB NAME]) is the mob is from the given room.\n\r\
 - ISHERE([CODE]) if the mob/item in the same room as the scripted one.\n\r\
 - INAREA([NAME]) if the scripted mob/item in room named by the parameters.\n\r\
 - ISLIKE([CODE] [MASK]) if the mob/item meets the given zapper mask.  See ZAPPERMASKS for mask syntax\n\r\
 - ISODD([AMT]) whether the given argument is an odd whole number\n\r\
 - VAR([CODE] [VAR NAME] == [VALUE]) if the var for the given mob has value.  Where == may be !=, >, <, >=, <=.\n\r\
 - FACTION([CODE] [FACT] == [VALUE]) if the faction for the given mob has value.  Where == may be !=, >, <, >=, <=.\n\r\
 - SEX([CODE] == [M/F/N]) evaluates sex.  Where == may also be !=.\n\r\
 - POSITION([CODE] == [SLEEPING/STANDING/SITTING] Evaluates position.\n\r\
 - LEVEL([CODE] == [LVL]) evaluates level.  Where == may be !=, <, >, >=, <=.\n\r\
 - MATH([EXPR] == [EXPR]) evaluates expression.  Where == may be !=, <, >, >=, <=.\n\r\
 - QUESTPOINTS([CODE] == [VAL]) evaluates questpoints.  Where == may be !=, <, >, >=, <=.\n\r\
 - QVAR([QUEST] [CODE] == [VAL]) evaluates temp quest vars.  Where == may be !=, <, >, >=, <=.\n\r\
 - TRAINS([CODE] == [VAL]) evaluates trains.  Where == may be !=, <, >, >=, <=.\n\r\
 - PRACS([CODE] == [VAL]) evaluates pracs.  Where == may be !=, <, >, >=, <=.\n\r\
 - CLASS([CODE] == [CLASS NAME]) evaluates class. Where == may be !=.\n\r\
 - BASECLASS([CODE] == [CLASS NAME]) evaluates base class. Where == may be !=.\n\r\
 - RACE([CODE] == [RACE NAME]) evaluates race. Where == may be !=.\n\r\
 - RACECAT([CODE] == [RACE CAT NAME]) evaluates racial category. Where == may be !=.\n\r\
 - GOLDAMT([CODE] == [AMT]) evaluates base gold or item value. Where == may be !=, >, <, >=, <=.\n\r\
 - EXP([CODE] == [AMT]) evaluates experience points. Where == may be !=, >, <, >=, <=.\n\r\
 - VALUE([CODE] [CURRENCY] == [AMT]) evaluates base value in given currency. Where == may be !=, >, <, >=, <=.\n\r\
 - IPADDRESS([CODE] == [ADDRESS]) evaluates ip address of player. Where == may be !=.\n\r\
 - QUESTSCRIPTED([CODE] [QUEST NAME]) returns whether the code of the given name has a script from the given quest.\n\r\
 - QUESTWINNER([CODE] [QUEST NAME]) returns whether the code of the given name has won the given quest.\n\r\
 - QUESTMOB([NAME] [QUEST NAME]) returns whether the mob of the given name is a mob designated in the given quest.\n\r\
 - QUESTOBJ([NAME] [QUEST NAME]) returns whether the item of the given name is an item designated in the given quest.\n\r\
 - QUESTROOM([ROOMID] [QUEST NAME]) returns whether the item of the given name is an item designated in the given quest.\n\r\
 - ISQUESTMOBALIVE([NAME/NUM] [QUEST NAME]) returns whether the mob, designated in the currently running quest, is alive.\n\r\
 - ISTIME([HOUR#/DAY/DAWN/DUSK/NIGHT]) returns the time of day, or time region.\n\r\
 - ISSEASON([WINTER/SPRING/SUMMER/FALL]) returns the season.\n\r\
 - ISWEATHER([CLEAR/RAIN/SNOW/WINDY/ETC..]) returns the weather\n\r\
 - ISMOON() returns whether the scriptor can see the moon\n\r\
 - ISMOON([NEW/WAXCRESCENT/WAXQUARTER/WAXGIBBOUS/FULL/WANEGIBBOUS/ETC..]) check the moon type\n\r\
 - ISDAY([DAY#]) returns the day of the month.\n\r\
 - EVAL([CODE] == [VALUE/CODE])  if the code has value.  Where == may be !=, >, <, >=, <=.\n\r\
 - NUMBER([VALUE/CODE]) whether the given code or value is a number.\n\r\
 - RANDNUM([VALUE] == [MAX VALUE]) how the 1st code compares to rand 1..max code.\n\r\
 - RAND0NUM([VALUE] == [MAX VALUE]) how the 1st code compares to rand 0..max code-1.\n\r\
 - ROOMMOB([NUM] [NAME]) whether the NUMth mob in the room is named NAME.\n\r\
 - ROOMITEM([NUM] [NAME]) whether the NUMth item in the room is named NAME.\n\r\
 - NUMMOBSROOM([*/NAME] == [NUMBER]) compares the # of named mobs in room.   Where == may be !=, >, <, >=, <=.\n\r\
 - NUMPCSAREA(== [NUMBER]) compares the number of pcs in the area.   Where == may be !=, >, <, >=, <=.\n\r\
 - NUMPCSROOM(== [NUMBER]) compares the number of pcs in the room.   Where == may be !=, >, <, >=, <=.\n\r\
 - EXPLORED([CODE] [AREA/WORLD] == [NUMBER]) check % explored of code mob.  Where == may be !=, >, <, >=, <=.\n\r\
 - NUMITEMSROOM(== [NUMBER]) compares the number of mobs in the room.   Where == may be !=, >, <, >=, <=.\n\r\
 - NUMITEMSMOB([NAME] == [NUMBER]) compares the number of items the mob has.   Where == may be !=, >, <, >=, <=.\n\r\
 - MOBITEM([MOBNAME] [NUM] [NAME]) whether the NUMth item owned by mob mobname is named NAME.\n\r\
 - INCONTAINER([CODE] [CONTAINER/MOUNT]) whether the item is in container or mount.\n\r\
 - ISABLE([CODE] [SKILL NAME]) whether the mob has the skill/ability.\n\r\
 - ISOPEN([CODE/DIRECTION]) whether the container item, or direction name is open.\n\r\
 - ISLOCKED([CODE/DIRECTION]) whether the container item, or direction name is locked.\n\r\
 - STRIN([STRING] [STRING]) whether the second string appears as a whole word in the first.\n\r\
 - CALLFUNC([FUNCTION] [PARM]..) returns whether the FUNCTION_PROG named returns a non-null.\n\r\
 - DEITY([CODE] == [CLASS NAME]) evaluates a mobs deity. Where == may be !=.\n\r\
 - CLAN([CODE] == [CLASS NAME]) evaluates a mobs clanid. Where == may be !=.\n\r\
 - CLANRANK([CODE] == [NUMBER]) evaluates mobs rank.  Where == may be !=, <, >, >=, <=.\n\r\
 - CLANDATA([CLAN] [VAR] == [STRING]) evaluates clan rank.  Where == may be !=, <, >, >=, <=.\n\r\
*** NOTES! The parenthesis are REQUIRED for the above!  The brackets should NOT \
be included, they are there to designate a parameter.  Where CODE above is one of \
the following: $n=source of the action, $i=scripted mob, $t=target, $o=item1, \
$p=item2, $w=owner of item1, $W=owner of item2.\n\r\
\n\r\
Now we get to the executed commands.  They are as follows:\n\r\
FOR $X = [START] to [FINISH] - loops. X must be 0-9.  End with NEXT by itself.\n\r\
SWITCH/CASE/ENDSWITCH - act as a multiple if/elseif/elseif....\n\r\
MPASOUND [TEXT] - a noisy emote that goes to all adjacent rooms.\n\r\
MPECHO [TEXT] - an emote\n\r\
MPSLAY [MOB NAME] - utterly kill the target.\n\r\
MPJUNK [ITEM] - destroy the given item from the monsters inventory.\n\r\
MPMLOAD [MOB NAME] - create an instance of the given mob name.\n\r\
MPOLOAD [ITEM NAME] - create an instanceof the given item, give it to the mob.\n\r\
MPOLOADROOM [ITEM NAME] - create an instanceof the given item, drop it in the room.\n\r\
MPMLOAD FROMFILE [CMARE FILE] [MOB NAME] - create a given mob name from a file.\n\r\
MPOLOAD FROMFILE [CMARE FILE] [ITEM NAME] - create an item from a file, give it to the mob.\n\r\
MPOLOADROOM FROMFILE [CMARE FILE]  [ITEM NAME] - create an item from a file, drop it in the room.\n\r\
MPECHOAT [MOB/ROOM/AREA/WORLD] [TEXT] - emote to the given target.\n\r\
MPECHOAROUND [TEXT] - emotes to everyone in room but the source of the trigger.\n\r\
MPCAST [SPELL] [MOB NAME] - casts the given spell at the given target.\n\r\
MPKILL [MOB NAME] - attack the given target.\n\r\
MPEXP [MOB NAME] [EXP or TNL%] - grants amount of exp to mob.\n\r\
MPQUESTPOINTS [MOB NAME] [QPS] - sets mobs amount of questpoints. Prefix QPS with ++ or -- to adjust only.\n\r\
MPTRAINS [MOB NAME] [TRAINS] - sets mobs amount of trains. Prefix TRAINS with ++ or -- to adjust only.\n\r\
MPPRACS [MOB NAME] [PRACS] - sets mobs amount of pracs. Prefix PRACS with ++ or -- to adjust only.\n\r\
MPPURGE [ITEM/MOB NAME] - destroy the given target item or mob.\n\r\
MPUNAFFECT [MOB NAME] [ALL/SKILL NAME]- removes given affects from the mob.\n\r\
MPGOTO [ROOM ID/NAME/DESC] - take the monster to the given room.\n\r\
MPAT [ROOM ID/NAME/DESC] [COMMAND] - do a command at the given room.\n\r\
MPSET [MOB/ITEM] [VAR NAME] [VALUE] - use with care! sets a stat for a mob or item.\n\r\
MPGSET [MOB/ITEM] [VAR NAME] [VALUE] - like MPSET but player data accessible. See GSTAT.\n\r\
MPTRANSFER [ALL/MOB NAME] [ROOM ID/NAME/DESC] - transfer mobs to the given room.\n\r\
MPBEACON [ROOM ID/NAME/DESC] [ALL/MOB NAME] - Makes given room start room for players.\n\r\
MPFORCE [MOB NAME] [COMMAND] - force the given mob to do the given command.\n\r\
MPPROMPT [PC NAME] [VARIABLE NAME] [PROMPT].  Store user entered value in variable.  See Guide.\n\r\
MPCONFIRM [PC NAME] [VARIABLE NAME] [DEFAULT VALUE] [PROMPT].  Y or N.  See Guide.\n\r\
MPCHOOSE [PC NAME] [VARIABLE NAME] [CHOICES] [DEFAULT VALUE] [PROMPT].  Hotkey choices.  See Guide.\n\r\
MPSCRIPT [MOB/ITEM] ([FLAGS]) [SCRIPT] - adds a quest Scriptable to the target, flags GLOBAL INDIVIDUAL SAVABLE EXECUTE.\n\r\
MPSETVAR [MOB NAME] [VAR NAME] [VALUE] - set a variable for the given mob.  Value may be ++, --, or preceded by +,-,*,or /.\n\r\
MPENDQUEST [QUEST NAME/MOB NAME] - this command will shutdown the given quest, or remove quest scripts from given mob.\n\r\
MPSTARTQUEST [QUEST NAME] - this command will start the quest of the given name.\n\r\
MPQUESTWIN [MOB NAME] [QUEST NAME] - declares the mob a winner of the given quest.\n\r\
MPSTOP [MOB NAME] - forces mob to stop fighting, or performing common skills.\n\r\
MPCALLFUNC [FUNC NAME] [PARMS...] - executes a FUNCTON_PROG already declared.\n\r\
MPALARM [TICKTIME] [COMMAND] - executes COMMAND after time has elapsed.\n\r\
MPNOTRIGGER [TRIGGER NAME] [MILISECS]- this command will prevent given trigger for given miliseconds.\n\r\
MPFACTION [MOB] [FACTION] [VALUE] - changes faction value for given mob. Value is number, range, or +NUM, --NUM.\n\r\
MPWHILE ([IF CONDITION]) [COMMAND] - repeatedly executes commmand.\n\r\
MPDAMAGE [MOB/ITEM] [MIN] [MAX] (KILL)- does random damage to the target. Kills only when KILL parm given.\n\r\
MPREJUV AREA/ROOM/[ROOMID]/[AREAID] (ITEMS/MOBS) - rejuv dead mobs, lost items from area or room\n\r\
MPRESET AREA/ROOM/[ROOMID]/[AREAID] - reload an area or room from the database\n\r\
MPLOG ERROR/INFO/DEBUG HEADER MESSAGE - add an entry to the coffeemud server log\n\r\
MPCHANNEL (!)[CHANNEL] MESSAGE - send a message to a channel\n\r\
MPTRACKTO [MOB NAME] - forces the mob to track down the given mob.\n\r\
MPWALKTO [MOB NAME] - forces the mob to track down the given mob, land surface only.\n\r\
MPAFFECT [SPELL] [MOB NAME] [PARMS] - automatically casts a spell on a mob.\n\r\
MPBEHAVE [BEHAVIOR] [MOB NAME] [PARMS] - adds a behavior to the mob.\n\r\
MPUNBEHAVE [BEHAVIOR] [MOB NAME] - removes a behavior from a  mob. \n\r\
MPTATTOO [MOB] (-)[TATTOONAME] - adds or removes the given tattoo for the mob. \n\r\
MPPLAYERCLASS [MOB] [CCLASS ID] ([LVL])... - changes current char class & optionally level.\n\r\
MPTITLE [MOB] (-) [TITLE] - adds or removes the given title string from the mob.\n\r\
MPENABLE [MOB] [ABILITY NAME] [PROF] [STR] - adds a new skill to the mob, or mods prof. w/++,--.\n\r\
MPDISABLE [MOB] [ABILITY NAME] - removes a skill from the mob.\n\r\
MPSAVEVAR [MOB NAME] [VAR NAME] - saves the variable set using MPSETVAR to the database.\n\r\
MPLOADVAR [MOB NAME] [VAR NAME] - loads the variable from the database.\n\r\
MPM2I2M [MOB/ITEM] - this strange command turns a mob into an item and back into a mob\n\r\
MPHIDE [MOB/ITEM/EXIT] - makes the target undetectable by any means.\n\r\
MPUNHIDE [MOB/ITEM/EXIT] - reverses the affects of MPHIDE -- does not affect Hide or other skills.\n\r\
MPOPEN [ITEM/EXIT] - opens a closed container or door.\n\r\
MPCLOSE [ITEM/EXIT] - closes an open container or door.\n\r\
MPLOCK [ITEM/EXIT] - closes and locks a lockable container or door.\n\r\
MPUNLOCK [ITEM/EXIT] - unlocks a locked container or door, but does not open.\n\r\
MPSETCLANDATA [CLAN] [VAR] [VALUE] - changes a datum about the given clan.\n\r\
MPARGSET [$VAR] [VALUE] - changes internal $(i,n,t,0,1,..9) object to one specified by value.\n\r\
MPLOADQUESTOBJ [QUEST] [QVARNAME] [$VAR] - loads quest obj into internal $(i,n,t,0,1,..9) object.\n\r\
MPUNLOADSCRIPT [SCRIPT FILE NAME] - unloads a file script from the resources cache for refreshing\n\r\
MPQSET [QUEST] [QVARNAME] [VALUE] - set temp quest var to given value.\n\r\
BREAK -- return/break out of the current if condition or program script. \n\r\
RETURN [OPTIONAL STRING] - exits the existing script, returning the string given.\n\r\
<SCRIPT> - embed Javascript in Scriptable event.  Must be closed with </SCRIPT>.\n\r\
[COMMAND] [PARMS]- any valid coffee mud command!\n\r\
** NOTES! For those commands which have multiple parameters (specifically \
MPAT, MPFORCE, MPCAST, MPECHOAT, you must use "'" characters in order to \
group any words in the first parameter of those commands.  Inside \
your command parameters, whether it be text, or even when specifying MOB \
or ITEM names, you may use any of the following freely:\n\r\
$a - name of the area the monsters in\n\r\
$b - name of last item/mob loaded w/mmpload/mpoload\n\r\
$B - display text of last item/mob loaded w/mmpload/mpoload\n\r\
$c - random npc/pc inhabitants name\n\r\
$C - random npc/pc inhabitants name\n\r\
$i - monsters name\n\r\
$I - monsters display text\n\r\
$n - source of triggers name\n\r\
$N - source of triggers name\n\r\
$t - target of triggers name\n\r\
$T - target of triggers name\n\r\
$r - random pc inhabitants name\n\r\
$R - random pc inhabitants name\n\r\
$j - he/she of the monster\n\r\
$e - he/she of the trigger source\n\r\
$d - title of monsters room location\n\r\
$D - long desc of monsters room location\n\r\
$f - name of the person monster follows\n\r\
$E - he/she of the trigger target\n\r\
$F - he/she of the person monster follows\n\r\
$g - lowercase form of the message from a MPCALLFUNC, MASK_PROG or SPEECH_PROG.\n\r\
$G - uppercase form of the message from a MPCALLFUNC, MASK_PROG or SPEECH_PROG.\n\r\
$J - he/she of a random pc inhabitant\n\r\
$k - his/her of the monster\n\r\
$l - list of all mobs (excluding monster). See "." syntax below.\n\r\
$L - list of all Items in room. See "." syntax below.\n\r\
$m - his/her of the trigger source\n\r\
$M - his/her of the trigger target\n\r\
$K - his/her of a random pc inhabitant\n\r\
$y - sir/madam of the trigger source\n\r\
$Y - sir/madam of the trigger target\n\r\
$o - item1 name\n\r\
$O - item1 name\n\r\
$p - item2 name\n\r\
$P - item2 name\n\r\
$w - owner of item1s name\n\r\
$W - owner of item2s name\n\r\
$x - random valid exit's direction\n\r\
$X - random valid exit's name\n\r\
$xN- north exit's name\n\r\
$0..$9- temporary variables set by other commands.\n\r\
\n\r\
$<[CODE] [VAR NAME]> - the variable of the given name, of the given \
code.  Where code is $i, $n, $t, $o, or $p.  See MPSETVAR.\n\r\
\n\r\
${[NUM] [QUEST NAME]} - a mob name from the given quest, if the quest is running. \
The number corresponds to the order in which mobs were designated in the quest script. \
Counting starts at 1.\n\r\
\n\r\
$[[NUM] [QUEST NAME]] - an item name from the given quest, if the quest is running. \
The number corresponds to the order in which items were designated in the quest script. \
Counting starts at 1.\n\r\
\n\r\
$%FUNCTION(PARM1 PARM2..)% - replace this code with a value from one of the internal \
functions.  While the names are the same as the eval functions above, their \
parameters will be slightly different.  The functions which may be included in \
this code include the following:\n\r\
 - RAND() random number between 1 and 100.\n\r\
 - HAS([CODE])  name of a random item in given mobs inventory.\n\r\
 - HASNUM([CODE] [ITEM])  number of the given items in given mobs inventory.\n\r\
 - WORN([CODE])  name of a random worn item in given mobs inventory.\n\r\
 - ISNPC([CODE])  not implemented.\n\r\
 - ISPC([CODE])  not implemented.\n\r\
 - ISGOOD([CODE])  returns the alignment string of the given mob.\n\r\
 - ISNAME([CODE])  Returns the real/full name of the given object.\n\r\
 - CURRENCY([CODE])  Returns the native currency of the given object.\n\r\
 - MATH([EXPR]) returns evaluated mathematical expressions. +-*\\\n\r\
 - MOOD([MOB NAME]) the given mobs mood.\n\r\
 - NUMMOBSINAREA([MOB NAME]) number of mobs in area matching mask.\n\r\
 - NUMMOBS([MOB NAME]) number of mobs in world matching mask.\n\r\
 - NUMRACEINAREA([MOB NAME]) number of mobs in area matching race.\n\r\
 - NUMRACES([MOB NAME]) number of mobs in world matching race.\n\r\
 - ISEVIL([CODE])  alignment number of the given mob.\n\r\
 - ISNEUTRAL([CODE])  short alignment string of the given mob.\n\r\
 - ISFIGHT([CODE])  name of the mob the given mob is fighting.\n\r\
 - ISALIVE([CODE])  health of the given mob.\n\r\
 - ISIMMORT([CODE])  not implemented.\n\r\
 - ISBIRTHDAY([CODE]) returns birthday of the mob\n\r\
 - ISCHARMED([CODE])  name of the charm spell the mob is under.\n\r\
 - STAT([CODE] [STAT]) value of the given stat for the given object.\n\r\
 - DATETIME(DAY/TIME/MONTH/YEAR) displays the appropriate numberic value.\n\r\
 - GSTAT([CODE] [STAT]) like STAT, but player data accessible. See Generic.java.\n\r\
 - AFFECTED([CODE]) name of a random spell affect on the object.\n\r\
 - FACTION([CODE] [FACTION]) name of the range the mob has in given faction.\n\r\
 - ISBEHAVE([CODE]) class ids of the behaviors on the object.\n\r\
 - ISFOLLOW([CODE])  name of the mob the given mob is following.\n\r\
 - ISSERVANT([CODE])  name of the mob the given mob is serving.\n\r\
 - HITPRCNT([CODE])  % of hit points remaining for given mob.\n\r\
 - INLOCALE() name of the room type the monster is in.\n\r\
 - INROOM() raw id of the room the monster is in.\n\r\
 - ISODD([AMT]) echos AMT if AMT is an odd, whole number.\n\r\
 - ISRECALL([CODE]) start room of the given mob.\n\r\
 - INAREA() name of the area the monster is in.\n\r\
 - ISHERE() name of the area the monster is in.\n\r\
 - VAR([CODE] [VAR NAME]) Value of the given variable.\n\r\
 - SEX([CODE]) sex of the given mob.\n\r\
 - POSITION([CODE]) position name of the given mob.\n\r\
 - LEVEL([CODE]) level of the given mob.\n\r\
 - QUESTPOINTS([CODE]) questpoints of the given mob.\n\r\
 - PRACS([CODE]) practices of the given mob.\n\r\
 - TRAINS([CODE]) trains of the given mob.\n\r\
 - CLASS([CODE]) class of the given mob.\n\r\
 - BASECLASS([CODE]) base class of the given mob.\n\r\
 - RACE([CODE]) race of the given mob.\n\r\
 - RACECAT([CODE]) racial category of the given mob.\n\r\
 - GOLDAMT([CODE]) number of gold coins the given mob has.\n\r\
 - EXP([CODE]) number of experience points the given mob has.\n\r\
 - VALUE([CODE] [CURRENCY]) base value the given mob has in given currency.\n\r\
 - QUESTWINNER([CODE]) returns a list of all the quests the mob was won.\n\r\
 - QUESTSCRIPTED([CODE]) returns a list of all the quests the mob is scripted for.\n\r\
 - QUESTMOB([QUEST NAME]) returns a list of all the mobs desigated by this quest.\n\r\
 - QUESTOBJ([QUEST NAME])  returns a list of all the items desigated by this quest.\n\r\
 - QUESTROOM([QUEST NAME])  returns a list of all rooms desigated by this quest.\n\r\
 - ISQUESTMOBALIVE([QUEST NAME]) returns a list of all live mobs desigated by this quest.\n\r\
 - ISTIME() returns the approx time of day in words.\n\r\
 - ISSEASON() returns the season.\n\r\
 - ISWEATHER() returns the weather\n\r\
 - ISMOON() returns the moon phase\n\r\
 - ISDAY() returns word day or evening.\n\r\
 - EVAL()  not implemented.\n\r\
 - NUMBER([VALUE/CODE]) Returns the numberic value of the given argument.\n\r\
 - RANDNUM([VALUE/CODE]) returns random number from 1..value/code.\n\r\
 - RAND0NUM([VALUE/CODE]) returns random number from 0..value/code-1.\n\r\
 - ROOMMOB([NUM]) returns the NUMth mob in the room's name.\n\r\
 - ROOMITEM([NUM]) whether the NUMth item in the room's NAME.\n\r\
 - NUMMOBSROOM([*/NAME]) returns the number of named mobs in the room.\n\r\
 - NUMPCSAREA() returns the number of pcs in the area.\n\r\
 - NUMPCSROOM() returns the number of pcs in the room.\n\r\
 - EXPLORED([CODE] [AREA/WORLD]) displays % explored of code mob.\n\r\
 - NUMITEMSROOM() returns the number of items in the room.\n\r\
 - NUMITEMSMOB([NAME]) returns the number of items the mob has.\n\r\
 - MOBITEM([MOBNAME] [NUM]) returns the NUMth item owned by mob mobname.\n\r\
 - INCONTAINER([CODE]) returns container of an item, or the mount of a mob.\n\r\
 - ISABLE([CODE] [SKILL NAME]) the mobs proficiency in the given skill/ability.\n\r\
 - ISOPEN([CODE/DIRECTION]) "true" if the container item, or direction name is open.\n\r\
 - ISLOCKED([CODE/DIRECTION]) the key name if the container, or direction has a lock.\n\r\
 - STRIN([STRING] [STRING]) word number of the second string if it appears in the first.\n\r\
 - CALLFUNC([FUNCTION] [PARM]..) the value returned by the FUNCTION_PROG named.\n\r\
 - DEITY([CODE]) returns a mobs deity.\n\r\
 - CLAN([CODE]) returns a mobs clan.\n\r\
 - CLANRANK([CODE]) returns mobs clan role/rank as a number.\n\r\
 - CLANDATA([CLAN] [VAR]) returns the given clans data based on var.\n\r\
 - IPADDRESS([CODE]) return ip address of player.\n\r\
 - QVAR([QUEST] [CODE]) returns temp quest vars.\n\r\
 \n\r\
Any of the $ codes may be followed by a period and a literal number to \
designate a particular word inside a string of many words.  For instance \
if $o evaluates to "a magic wand", $o.1 would evalulate to "magic".  If \
$l evaluated to "orc bob hassan", $l.2 would give "hassan".  This syntax \
can also be followed by ".." to grab substrings.  For instance, if $o \
evaluates to "a magic wand", $o.1.. would evaluate to "magic wand".\n\r\

BEHAVIOR_SCRIPTABLEEVERYMOB=\
Behavior   : ScriptableEverymob\n\r\
Targets    : Areas, Rooms\n\r\
Parameters : Same as BEHAVIOR_SCRIPTABLE\n\r\
Example    : LOAD=progs/mrinfo.script~\n\r\
Description: \n\r\
This behavior will cause all mobs native to the area or room to be automatically given \
a particular Scriptable script to run.  Mobs that already have scriptable behaviors \
will be unaffected.

QUESTS=\
Quests are defined as a definable tasks which are completed by players for prizes. \
These tasks, the monitoring of their completion and status, as well as their \
availability, can all be automated by CoffeeMud.\n\r\
\n\r\
A quest is created using the CREATE QUEST [SCRIPT] command.  Where [SCRIPT] is a \
either a complete quest script, where each command line is terminated by a \
semicolon (;), or a load command of the form LOAD=[SCRIPT PATH].  An example of a \
create script using a load command is as follows: CREATE QUEST LOAD=/resources/quests/myquest.txt. \
To load one of the built-in quests, for instance, use CREATE \
QUEST LOAD=quests/robbed/robbed.quest.\n\r\
\n\r\
Quests may be started manually, or by making them autoquests using the SET WAIT and \
SET INTERVAL commands below.  Quests may be started manually by using the \
MODIFY QUEST [QUEST NAME] command.  Quests can be listed, to see their status, \
using the LIST QUESTS command.  Quests can be removed from the list using the \
DESTROY QUEST [QUEST NAME] command.  Quests can be saved using the SAVE QUESTS \
command.  Quests saved this way will be restored during the next CoffeeMud reboot. \n\r\
\n\r\
When creating a new quest using the CREATE QUEST [SCRIPT] command, \
whether you use the load command to specify an external script, or include the \
script directly into the create command, the quest script commands are as follows:\n\r\
\n\r\
SET NAME [QUEST NAME] - the *unique* name of your quest. This is a required command!\n\r\
\n\r\
SET DURATION [#TICKS] - # of ticks (4 second periods) the quest will last once started. 0=eternal. This is a required command!\n\r\
\n\r\
SET WAIT [#TICKS] - minimum # ticks to wait between auto-starts of the quest. Required for auto-quests only!\n\r\
\n\r\
SET DATE [#DAY]-[#MONTH] - The real-life start-date of the quest. This is a valid substitute for the SET WAIT requirement.\n\r\
\n\r\
SET MUDDAY [#DAY]-[#MONTH] - The start mud-date of the quest, according to the default global mud calendar. This is a valid substitute for the SET WAIT requirement.\n\r\
\n\r\
SET INTERVAL [#TICKS] - random # ticks (1-#TICKS) to wait between auto-starting the quest, AFTER the WAIT period (see above) is over. Required for auto-quests!\n\r\
\n\r\
SET MINPLAYERS [#PLAYERS] - Minimum number of players who must be online for a timed quest to automatically start. See SET PLAYERMASK.\n\r\
\n\r\
SET PLAYERMASK [MASKSTRING] - If this string is empty or not specified, then anyone is considered a player for the purposes of the MINPLAYERS setting above. However, you can specify a "zapper mask" to narrow down the definition of a player.  See HELP ZAPPERMASKS for the list of valid mask values to put here.\n\r\
\n\r\
SET RUNLEVEL [#LEVEL] - Normally, a timed quest will always run when its time comes up.  Setting a value above -1 will prevent this quest from running when its time comes up if another quest is also running at the same or LOWER run level.\n\r\
\n\r\
IMPORT MOBS [XML FILE PATH] - this will import a list of custom mobs from a .CMARE file generated using the EXPORT ROOM MOBS command. The parameter must be the path and file name of the file, using the same format as the LOAD= command mentioned above.  This list can then be accessed with the LOAD MOB, or LOAD MOBGROUP command.\n\r\
\n\r\
IMPORT ITEMS [XML FILE PATH] - this will import a list of custom items from a .CMARE file generated using the EXPORT ROOM ITEMS command. The parameter must be the path and file name of the file, using the same format as the LOAD= command mentioned above.  This list can then be accessed with the LOAD ITEM or LOAD ITEMGROUP command.\n\r\
\n\r\
SET AREA ([AREA NAME OR NAMES]) - will set the current designated area to the area specified. Although this does nothing in itself, it is important for the several commands which load mobs and items. The area name ANY may be given to choose a random area. Several area names may be specified as choices by setting the first area name as ANY, followed by your other area name choices, separated by spaces. If no area name is given, this will CLEAR the area designation. This can have a profound impact on how subsequent mob or item loading, or room setting commands work.\n\r\
\n\r\
SET AREA [OBJECT] - serves the same purpose as the above command of the same name, but the argument is an object specifier.  See Object Specifiers below this command listing.  If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET AREAGROUP ([AREA NAME OR NAMES]) - will set the current designated ROOMGROUP to the areas specified. Although this does nothing in itself, it is important for the several commands which load mobs and items. The area name ANY may be given to choose a random area. The area name ALL may be given to choose all world areas. Several area names may be specified as choices by setting the first area name as ANY, followed by your other area name choices, separated by spaces. If no area name is given, this will CLEAR the ROOMGROUP designation. This can have a profound impact on how subsequent mob or item loading, or room setting commands work.\n\r\
\n\r\
SET ROOMGROUP ([ROOM NAME]) - will set the ROOMGROUP to the set specified. If an area has been previously designated, and not cleared (see SET ROOMGROUP), then the rooms will be selected from the designated area according to the room name criteria. Otherwise, rooms from the whole map will be chosen. If a room name of ANY is given, then the rooms will be chosen randomly from the world, or the area if designated.  The room name of ALL will choose all rooms.  Several room names may be specified as choices by setting the first room name as ANY, followed by your other room name choices, separated by spaces.  If no room name is given, this will effectly clear the ROOMGROUP designation (but it will not clear the area designation!).  Valid room names include map room IDs such as MyArea#123, or key words from the titles or descriptions of rooms.\n\r\
\n\r\
SET ROOMGROUP [OBJECT] - serves the same purpose as the above command of the same name, but the argument is an object specifier.  See Object Specifiers below this command listing.\n\r\
\n\r\
SET ROOM ([ROOM NAME]) - will set the current designated room to the set specified. If a room or area has been previously designated, and not cleared (see SET AREA), then the room will be selected from the designated area according to the room name criteria. Otherwise, a room from the whole map will be chosen. If a room name of ANY is given, then the room will be chosen randomly from the world, or the area if designated.  Several room names may be specified as choices by setting the first room name as ANY, followed by your other room name choices, separated by spaces.  If no room name is given, this will effectly clear the room designation (but it will not clear the area designation!).   Valid room names include map room IDs such as MyArea#123, or key words from the titles or descriptions of rooms.\n\r\
\n\r\
SET ROOM [OBJECT] - serves the same purpose as the above command of the same name, but the argument is an object specifier.  See Object Specifiers below this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET ROOMGROUPAROUND [#RADIUS] ([ROOM NAME])- will set the ROOMGROUP to the set of rooms up to RADIUS rooms from the previously set ROOM. The rooms will be selected from the set of rooms which are up to RADIUS rooms away from the currently set ROOM (see SET ROOM/SET LOCALE). The radius must then be greater than 0.  If the following room name of ANY is given, then all rooms in the radius are grouped.  Several room names may be specified as choices by setting the first room name as ANY, followed by your other room name choices, separated by spaces.  If no room name is given, this will effectly clear the ROOMGROUP designation (but it will not clear the area designation!).     Valid room names include map room IDs such as MyArea#123, or key words from the titles or descriptions of rooms.\n\r\
\n\r\
SET LOCALEGROUP ([LOCALE]) - will set the ROOMGROUP to the ones with the specified class name. If an area has been previously designated, and not cleared (see SET AREA), then the rooms will be selected from the designated area according to the locale criteria. Otherwise, rooms from the whole map will be chosen. If a locale name of ANY is given, then the rooms will be chosen randomly from the world, or the area if designated.  Several locale types may be specified as choices by setting the first locale type as ANY, followed by your other locale type choices, separated by spaces.  If no locale is given, this will effectly clear the ROOMGROUP designation (but it will not clear the area designation!).  Valid locale names may be Locale class names such as MountainSurface, StdRoom, etc, or they may be locale types such as stone, wooden, underwater, mountains, etc.\n\r\
\n\r\
SET LOCALEGROUP [OBJECT] - serves the same purpose as the above command of the same name, but the argument is an object specifier.  See Object Specifiers below this command listing.\n\r\
\n\r\
SET LOCALEGROUPAROUND ([#RADIUS] [LOCALE]) - will set the ROOMGROUP to the ones with the specified class name. The rooms will be selected from the set of rooms which areup to RADIUS rooms away from the currently set ROOM (see SET LOCALE/SET ROOM). The radius must then be greater than 0.  If the following locale name of ANY is given, then all rooms in the radius are grouped.  Several room names may be specified as choices by setting the first locale name as ANY, followed by your other locale name choices, separated by spaces.  If no locale name is given, this will effectly clear the ROOMGROUP designation (but it will not clear the area designation!).   Valid locale names may be Locale class names such as MountainSurface, StdRoom, etc, or they may be locale types such as stone, wooden, underwater, mountains, etc.\n\r\
\n\r\
SET LOCALE ([LOCALE]) - will set the current designated room to the one with the specified class name. If a room or area has been previously designated, and not cleared (see SET AREA), then the room will be selected from the designated area according to the locale criteria. Otherwise, a room from the whole map will be chosen. If a locale of ANY is given, then the room will be chosen randomly from the world, or the area if designated.  Several locale types may be specified as choices by setting the first locale type as ANY, followed by your other locale type choices, separated by spaces.  If no locale is given, this will effectly clear the room designation (but it will not clear the area designation!).   Valid locale names may be Locale class names such as MountainSurface, StdRoom, etc, or they may be locale types such as stone, wooden, underwater, mountains, etc.\n\r\
\n\r\
SET LOCALE [OBJECT] - serves the same purpose as the above command of the same name, but the argument is an object specifier.  See Object Specifiers below this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET MOBGROUP (RESELECT) ([MOB NAME]) - will designate a set of mobs with the given name. If the name ends with MASK=..., then a mask as described by the help entry for ZAPPERMASKS will apply in addition to the name mask entered before the MASK= string.  A mob name of ALL will select all appropriate mobs. The mobs chosen will be selected from those in the designated ROOMGROUP (if one is designated),  AREA (if one is designated) or the world. The mobs must exist somewhere in the map for this command to work.  Normally a mob will not be placed in the mobgroup if the mob has been previously set with SET MOB, or SET MOBTYPE.  The RESELECT flag is an optional first flag which, if specified, designates that  mobs may be placed in the mobgroup even if previously set, so long as the RESELECT flag was also used in the previous SET MOB or SET MOBTYPE command.\n\r\
\n\r\
SET MOBGROUP [OBJECT] - serves the same purpose as the above command of the same name, but the argument is an object specifier.  See Object Specifiers below this command listing\n\r\
\n\r\
SET MOB  (RESELECT)  ([MOB NAME]) - will set the current mob to one with the given mob name. If the name ends with MASK=..., then a mask as described by the help entry for ZAPPERMASKS will apply in addition to the mob name entered before the MASK= string. Ths mob chosen will be selected from a MOBGROUP if one has been set. Otherwise, the mob chosen will be selected from those in the designated ROOMGROUP (if one is designated), or the AREA (if one is designated) or finally the world. The mob must exist somewhere one of those groups for this command to work. If a room has been previously designated, then this command will bring the chosen mob to that room. If a room or area has not been designated (or was cleared), then this command will designate a new room and area.  Normally a mob will not be chosen by this command if the mob has been previously set with SET MOB, or SET MOBTYPE.  The RESELECT flag is an optional first flag which, if specified, designates that a mob may be chosen if previously chosen, so long as the RESELECT flag was also used in the previous SET MOB or SET MOBTYPE command.\n\r\
\n\r\
SET MOB [OBJECT] - serves the same purpose as the above command of the same name, but the argument is an object specifier.  See Object Specifiers below this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET MOBTYPE (RESELECT) ([CLASS]) - will set the current mob to one with the given class name. Ths mob chosen will be selected from a MOBGROUP if one has been set. Otherwise, the mob chosen will be selected from those in the designated ROOMGROUP (if one is designated), AREA (if one is designated) or the world. The mob must exist somewhere in the map for this command to work. If a room has been previously designated, then this command will bring the mob to that room. If a room or area has not been designated (or was cleared), then this command will designate a new room and area.  Normally a mob will not be chosen by this command if the mob has been previously set with SET MOB, or SET MOBTYPE.  The RESELECT flag is an optional first flag which, if specified, designates that a mob may be chosen if previously chosen, so long as the RESELECT flag was also used in the previous SET MOB or SET MOBTYPE command.\n\r\
\n\r\
SET MOBTYPE [OBJECT] - serves the same purpose as the above command of the same name, but the argument is an object specifier.  See Object Specifiers below this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET ITEMGROUP (RESELECT)  ([ITEM NAME]) - will designate a set of items with the given name. If the name ends with MASK=..., then a mask as described by the help entry for ZAPPERMASKS will apply in addition to the item name entered before the MASK= string. A mob name of ALL will select all appropriate mobs. The items chosen will be selected from those in the designated ROOMGROUP (if one is designated), the AREA (if one is designated) or the world. The items must exist somewhere in the map for this command to work.  Normally an item will not be placed in the itemgroup if the item has been previously set with SET ITEM, or SET ITEMTYPE.  The RESELECT flag is an optional first flag which, if specified, designates that items may be placed in the itemgroup even if previously set, so long as the RESELECT flag was also used in the previous SET ITEM or SET ITEMTYPE command.\n\r\
\n\r\
SET ITEMGROUP [OBJECT] - serves the same purpose as the above command of the same name, but the argument is an object specifier.  See Object Specifiers below this command listing\n\r\
\n\r\
SET ITEM (RESELECT) ([ITEM NAME]) - will set the current item to one with the given name. The item chosen will be selected from those in the designated ROOMGROUP (if one is designated), AREA (if one is designated) or the world. The item must exist somewhere in a room on the map for this command to work. If a room has been previously designated, then this command will bring the item to that room. If a room or area has not been designated (or was cleared), then this command will designate a new room and area.  Normally an item will not be chosen by this command if the item has been previously set with SET ITEM, or SET ITEMTYPE.  The RESELECT flag is an optional first flag which, if specified, designates that an item may be chosen if previously chosen, so long as the RESELECT flag was also used in the previous SET ITEM or SET ITEMTYPE command.\n\r\
\n\r\
SET ITEM [OBJECT] - serves the same purpose as the above command of the same name, but the argument is an object specifier.  See Object Specifiers below this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET ITEMTYPE (RESELECT) ([CLASS]) - will set the current item to one with the given class name. The item chosen will be selected from those in the designated ROOMGROUP (if one is designated), AREA (if one is designated) or the world. The item must exist somewhere in a room on the map for this command to work. If a room has been previously designated, then this command will bring the item to that room. If a room or area has not been designated (or was cleared), then this command will designate a new room and area.  Normally an item will not be chosen by this command if the item has been previously set with SET ITEM, or SET ITEMTYPE.  The RESELECT flag is an optional first flag which, if specified, designates that an item may be chosen if previously chosen, so long as the RESELECT flag was also used in the previous SET ITEM or SET ITEMTYPE command.\n\r\
\n\r\
LOAD MOBGROUP ([#NUMBER]) [MOB NAME] - will instantiate all (or optionally, the given number) mobs of the given name from the set of mobs imported using the IMPORT MOBS command above. If the mob name ends with MASK=..., then a mask as described by the help entry for ZAPPERMASKS will apply in addition to the mob name entered before MASK= string. This selected mobs will be set as the current MOBGROUP. If a room, roomgroup, or area has been previously designated, then this command will create each mob in that room or random room in the area. If a room or area has not been designated (or was cleared), then this command will designate a random room and area.  This command will also designate the current mob to the last one loaded.\n\r\
\n\r\
LOAD MOB [MOB NAME] - will instantiate a mob of the given name from the list of mobs imported using the IMPORT MOBS command above. If the name ends with MASK=..., then a mask as described by the help entry for ZAPPERMASKS will apply in addition to the name mask entered. This selected mob will be set as the current mob. If a room, roomgroup, or area has been previously designated, then this command will create the mob in that room. If a room or area has not been designated (or was cleared), then this command will designate a random room and area.\n\r\
\n\r\
LOAD ITEMGROUP ([#NUMBER]) [ITEM NAME] - will instantiate all (or optionally, the given number) items of the given name from the list of items imported using the IMPORT ITEMS command above. This items will be set as the current ITEMGROUP. If a room, roomgroup, or area has been previously designated, then this command will create the item in that room. If a room or area has not been designated (or was cleared), then this command will designate a random room and area.  This command will also designate the current item to the last one loaded.\n\r\
\n\r\
LOAD ITEM [ITEM NAME] - will instantiate an item of the given name from the list of items imported using the IMPORT ITEMS command above. This item will be set as the current item. If a room, roomgroup, or area has been previously designated, then this command will create the item in that room. If a room or area has not been designated (or was cleared), then this command will designate a random room and area. \n\r\
\n\r\
GIVE ITEM - will give the currently designated item (designated using the SET ITEM, or LOAD ITEM command) to the last designated mob or mobs (designated using the SET MOB, SET MOBGROUP, LOAD MOBGROUP, or LOAD MOB commands).\n\r\
\n\r\
GIVE ITEMS - will give all currently designated items (designated using the SET/LOAD ITEM/ITEMGROUP command) to the last designated mob or mobs (designated using the SET MOB, SET MOBGROUP, LOAD MOBGROUP, or LOAD MOB commands).\n\r\
\n\r\
GIVE BEHAVIOR [BEHAVIOR ID] ([PARAMETERS]) - The behavior ID must be a valid behavior class name. The parameters are any parameters you wish to pass to the behavior. This command will give the most recently designated mob, item, area, room or mobgroup (designated using the set or load commands), itemgroup, or roomgroup the above behavior.  The parameters above are optional, and include any text that would be valid for the behavior id specified.  The text may also optionally include embedded references to other quest objects.  See below Object Specifiers in Parameters below for more information on using this feature.\n\r\
\n\r\
GIVE ABILITY [ABILITY ID] ([PARAMETERS]) - The ability ID must be a valid ability class name. The parameters are any parameters you wish to pass to the ability. This command will give the currently designated mob, or mobgroup (designated using the set or load commands) the above ability. The parameters above are optional, and include any text that would be valid for the ability id specified.  The text may also optionally include embedded references to other quest objects.  See below Object Specifiers in Parameters below for more information on using this feature.\n\r\
\n\r\
GIVE AFFECT [ABILITY ID] ([PARAMETERS]) - The ability ID must be a valid ability class name. The parameters are any parameters you wish to pass to the ability. This command will give the currently designated mob, item, room, area, or mobgroup (designated using the set or load commands), itemgroup, or roomgroup the above affect. The parameters above are optional, and include any text that would be valid for the ability id specified.  The text may also optionally include embedded references to other quest objects.  See below Object Specifiers in Parameters below for more information on using this feature.\n\r\
\n\r\
GIVE FOLLOWER [MOB NAME] - The mob name is a mob which will be selected from the list of previously designated mobs (designated using the LOAD MOB, SET MOB, or SET MOBTYPE commands). This mob will be made into a follower of the mob most recently designated using the SET MOB, SET MOBTYPE, or LOAD MOB command. This command does not change the current mob designation, nor does it change the location of either mob.\n\r\
\n\r\
TAKE BEHAVIOR [BEHAVIOR ID] - The behavior ID must be a valid behavior class name. This command will take from the most recently designated mob, item, area, room or mobgroup (designated using the set or load commands), itemgroup, or roomgroup the above behavior.\n\r\
\n\r\
TAKE ABILITY [ABILITY ID] - The ability ID must be a valid ability class name. This command will take from the currently designated mob, or mobgroup (designated using the set or load commands) the above ability. The parameters above are optional, and include any text that would be valid for the ability id specified.\n\r\
\n\r\
TAKE AFFECT [ABILITY ID] - The ability ID must be a valid ability class name. This command will take from the currently designated mob, item, room, area, or mobgroup (designated using the set or load commands), itemgroup, or roomgroup the above affect. \n\r\
\n\r\
RESET- If a ROOM has been designated using SET ROOM, or by any other previously described method, this command will cause that room to reset, or re-load from the database.  If a ROOM is not currently set (or has been unset), but a ROOMGROUP or an AREA has been set, this command will cause all rooms in that set (respectively) to reload from the database.  Doing either can be somewhat time consuming, and may disrupt any players in the rooms affected, as it will cause items to vanish from the floor, and make players and mobs unable to move until the process is completed.\n\r\
\n\r\
<SCRIPT> - This designates the beginning of embedded Javascript in your quest script.  The end is designated by a corresponding </SCRIPT> tag on its own line.  See the next section for more details.\n\r\
\n\r\
LOAD= ([QUEST FILE]) ([ARGUMENT] ... [ARGUMENT])  - This command will cause the specified external quest script file to be loaded and executed as if it were  embedded at the current point in the script.  The  quest  filename is of the same format mentioned above.  When LOAD= is used as a command inside a script, you can also specify one or more space-delimited arguments which will be accessible inside the target quest script as Object Specifiers.  The first argument given, whether it is itself an Object Specifier, or a simple string, will be accessible inside the target quest script as ARG1, the second as ARG2, and so forth.  A special case exists, however, if one of the arguments evaluates to an Object Specifier which represents a group of objects (such as MOBGROUP or ITEMGROUP).  If that case occurs, the LOAD= command will execute once for every object inside the group! See the discussion of Object Specifiers and Object Spcifiers in Parameters for more information.\n\r\
\n\r\
<OPTION> ([QUEST SCRIPT COMMANDS]) </OPTION> - Putting quest script commands inside of <OPTION> tags means that, for every execution of the quest script, only ONE of the <OPTION> tags will be have their script commands executed.  The one chosen will be selected at random.  If only one <OPTION> tag exists, it will be chosen every time, of course.\n\r\
\n\r\
* Note About #.  In a quest script, anywhere the # sign is used above (such as [#TICKS] or [#PLAYERS], you may enter a normal old every day number (34) or you may enter a valid arithmetic expression using real or integer numbers and any of the following operators: + - * \ () ?\n\r\
\n\r\
* Object Specifiers.  Many of the SET ... commands, such as SET MOBGROUP, SET MOB, SET ITEMGROUP, SET ROOM, etc, have forms which allow you to designate their value using an [OBJECT] string.  An [OBJECT] string is one of the following basic quest-script values: "LOADEDMOBS", "LOADEDITEMS", "AREA", "ROOM", "MOBGROUP", "ITEMGROUP", "ROOMGROUP", "ITEM", "ENVOBJ", "STUFF", "MOB", or one of the following mystery quest-script values:  "FACTION", "FACTIONGROUP", "AGENT", "AGENTGROUP", "ACTION", "ACTIONGROUP", "TARGET", "TARGETGROUP", "MOTIVE", "MOTIVEGROUP", "WHEREHAPPENED", "WHEREHAPPENEDGROUP", "WHEREAT", "WHEREATGROUP", "WHENHAPPENED", "WHENHAPPENEDGROUP", "WHENAT", "WHENATGROUP", "TOOL", "TOOLGROUP".  Using the SET command in this way allows you to either COPY an objects value, or re-designate it for the purposes of one of the GIVE ... commands.  If the quest script was executed from inside of another using the LOAD= script command, and arguments were specified from the above objects, you may also have access to argument object specifiers, such as ARG1, ARG2, ... ARGN.  There will be one such object specifier available for each argument passed to the script.  Please note that some object specifiers return single objects (such as MOB, ITEM, ROOM) and some return collections of objects (such as ROOMGROUP, MOBGROUP, ITEMGROUP).  Object specifiers can also be combined using + and - characters.  For instance, MOBGROUP-MOB would return the group of mobs in the MOBGROUP minus the specified MOB while the specifier MOB+ITEM would refer to an object group containing both the specified MOB and the specified ITEM.\n\r\
\n\r\
* Object Specifiers in Parameters. When specifing parameters for the GIVE BEHAVIOR, GIVE ABILITY, or GIVE AFFECT command, you may embed the names of one or more of the Object Specifiers by prefixing the Object Specifier code string with a $ character, and concluding it with a space or other non-alphanumeric character.  For instance, the command: "give script GREET_PROG 100\; say I love $MOB!!!\;~\;" would embed the name string for the MOB object specifier inside the in-line script.   In addition to this capability, you may also put a special character after the $ and before the object specifier to manipulate how the name of the object is generated.  Special characters are: '_' (to make the name in uppercase), '&' to remove any prefixed english article words from the name, or '|' to replace all spaces in the name with | characters (which is very useful for QuestChat parameters).\n\r\
\n\r\
Mystery Objects in Quest scripts:\n\r\
\n\r\
In addition to the normal quest objects mentioned above, such as MOB, ITEM, ROOM and so forth, there are also extranous objects and groups intended for use when building logic problem mysteries.  The commands for setting these are as follows:\n\r\
\n\r\
SET AGENT [OBJECT] - Sets the AGENT variable to the [OBJECT].  Will also set the MOB object.  See Object Specifiers above this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET AGENTGROUP [OBJECT] - Sets the AGENTGROUP variable to the [OBJECT].  Will also set the MOBGROUP object to the same, as well as designate one random mob from the group as the AGENT and the MOB.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET AGENTGROUP [#NUMBER] - Sets the AGENTGROUP variable to the currently set MOBGROUP, selecting at most NUMBER mobs randomly from that list.  Will also set the MOBGROUP object to the same, as well as designate one random mob from the group as the AGENT and the MOB.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET WHEREHAPPENED [OBJECT] - Sets the WHEREHAPPENED variable to the [OBJECT].  Will also set the ROOM object.  See Object Specifiers above this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET WHEREHAPPENEDGROUP [OBJECT] - Sets the WHEREHAPPENEDGROUP variable to the [OBJECT].  Will also set the ROOMGROUP object to the same, as well as designate one random room from the group as the WHEREHAPPENED and the ROOM.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET WHEREHAPPENEDGROUP [#NUMBER] - Sets the WHEREHAPPENEDGROUP variable to the currently set ROOMGROUP, selecting at most NUMBER rooms randomly from that list.  Will also set the ROOMGROUP object to the same, as well as designate one random room from the group as the WHEREHAPPENED and the ROOM.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET WHEREAT [OBJECT] - Sets the WHEREAT variable to the [OBJECT].  Will also set the ROOM object.  See Object Specifiers above this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET WHEREATGROUP [OBJECT] - Sets the WHEREATGROUP variable to the [OBJECT].  Will also set the ROOMGROUP object to the same, as well as designate one random room from the group as the WHEREAT and the ROOM.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET WHEREATGROUP [#NUMBER] - Sets the WHEREATGROUP variable to the currently set ROOMGROUP, selecting at most NUMBER rooms randomly from that list.  Will also set the ROOMGROUP object to the same, as well as designate one random room from the group as the WHEREAT and the ROOM.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET WHENHAPPENED [OBJECT] - Sets the WHENHAPPENED variable to the timeclock [OBJECT].  See Object Specifiers above this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET WHENHAPPENED [#HOURS-DIFFERENCE] - Sets the WHENHAPPENED variable to the current time plus or minus the hours difference specified.  See Object Specifiers above this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET WHENHAPPENEDGROUP [OBJECT] - Sets the WHENHAPPENEDGROUP variable to the [OBJECT].  Will also designate one random time from the group as the WHENHAPPENED.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET WHENHAPPENEDGROUP [#HOURS-DIFFERENCE] ... [#HOURS-DIFFERENCE] - Sets the WHENHAPPENEDGROUP list to the current time plus or minus the list of hours-differences given.  Will also designate one random time from the group as the WHENHAPPENED.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET WHENAT [OBJECT] - Sets the WHENHAPPENED variable to the timeclock [OBJECT].  See Object Specifiers above this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET WHENAT [#HOURS-DIFFERENCE] - Sets the WHENAT variable to the current time plus or minus the hours difference specified.  See Object Specifiers above this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET WHENATGROUP [OBJECT] - Sets the WHENATGROUP variable to the [OBJECT].  Will also designate one random time from the group as the WHENAT.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET WHENATGROUP [#HOURS-DIFFERENCE] ... [#HOURS-DIFFERENCE] - Sets the WHENATGROUP list to the current time plus or minus the list of hours-differences given.  Will also designate one random time from the group as the WHENAT.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET FACTION [OBJECT] - Sets the FACTION variable to the faction string [OBJECT].  See Object Specifiers above this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET FACTION [FACTION NAME] - Sets the FACTION variable to one of the given name or ANY to choose a random one.\n\r\
\n\r\
SET FACTIONGROUP [OBJECT] - Sets the FACTIONGROUP variable to the [OBJECT].  Will also designate one random faction from the group as the FACTION.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET FACTIONGROUP [#NUMBER] - Sets the FACTIONGROUP variable to NUMBER random factions, or ALL to set it to all of them.  Will also designate one random faction from the group as the FACTION.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET FACTIONGROUP [FACTION NAME] ... [FACTION NAME] - Sets the FACTIONGROUP variable to the set of factions designated by the faction names.  Will also designate one random faction from the group as the FACTION.  The faction names are space delimited, and names grouped with double-quotes. \n\r\
\n\r\
SET TARGET [OBJECT] - Sets the TARGET variable to the [OBJECT].  Will also set the MOB or ITEM object depending on what gets designated.  See Object Specifiers above this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET TARGETGROUP [OBJECT] - Sets the TARGETGROUP variable to the [OBJECT].  Will also set the MOBGROUP or ITEMGROUP object to the same (depending on what type of group is designated), as well as designate one random object from the group as the TARGET, and either the MOB or ITEM.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET TARGETGROUP [#NUMBER] - Sets the TARGETGROUP variable to the currently set MOBGROUP (if one is currently set) or ITEMGROUP if not.  It will select at most NUMBER objects randomly from that list.  Will also re-set the MOBGROUP or ITEMGROUP object to the same, as well as designate one random mob or item from the group as the TARGET and either the MOB or ITEM.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET TOOL [OBJECT] - Sets the TOOL variable to the [OBJECT].  Will also set the MOB or ITEM object depending on what gets designated.  See Object Specifiers above this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET TOOLGROUP [OBJECT] - Sets the TOOLGROUP variable to the [OBJECT].  Will also set the MOBGROUP or ITEMGROUP object to the same (depending on what type of group is designated), as well as designate one random object from the group as the TOOL, and either the MOB or ITEM.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET TOOLGROUP [#NUMBER] - Sets the TOOLGROUP variable to the currently set MOBGROUP (if one is currently set) or ITEMGROUP if not.  It will select at most NUMBER objects randomly from that list.  Will also re-set the MOBGROUP or ITEMGROUP object to the same, as well as designate one random mob or item from the group as the TOOL and either the MOB or ITEM.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET MOTIVE [OBJECT] - Sets the MOTIVE variable to the string [OBJECT].  See Object Specifiers above this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET MOTIVE [STRING] - Sets the MOTIVE variable to the string.\n\r\
\n\r\
SET MOTIVEGROUP [OBJECT] - Sets the MOTIVEGROUP variable to the [OBJECT].  Will also designate one random string from the group as the MOTIVE.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET MOTIVEGROUP [STRING] .. [STRING] - Sets the MOTIVEGROUP to the set of strings specified.  Will also designate one random string from the group as the MOTIVE.  The strings are space delimited, and words grouped with double-quotes.\n\r\
\n\r\
SET ACTION [OBJECT] - Sets the ACTION variable to the string [OBJECT].  See Object Specifiers above this command listing.   If the object resolves to a group of objects, a random one from the group will be chosen.\n\r\
\n\r\
SET ACTION [STRING] - Sets the ACTION variable to the string.\n\r\
\n\r\
SET ACTIONGROUP [OBJECT] - Sets the ACTIONGROUP variable to the [OBJECT].  Will also designate one random string from the group as the ACTION.  See Object Specifiers above this command listing.\n\r\
\n\r\
SET ACTIONGROUP [STRING] .. [STRING] - Sets the ACTIONGROUP to the set of strings specified.  Will also designate one random string from the group as the ACTION.  The strings are space delimited, and words grouped with double-quotes.\n\r\
\n\r\
Final notes: This stuff may seem complicated, but just make sure you carefully \
examine the sample quests found in the CoffeeMud resources directory!  Also, \
remember that quest script errors are always sent out to your mud.log, so \
check their often when starting up a new quest!. \n\r\
\n\r

BEHAVIOR_PROTECTEDCITIZEN=\
Behavior   : ProtectedCitizen\n\r\
Targets    : MOBs\n\r\
Parameters : Max/Min ticks, pct chance, rooms radius, max#assists;guardian mask; yell strings, ';' separated.\n\r\
Example    : min=1 max=5 chance=25 radius=7 maxassists=1;-NAME +cityguard;HELP ME!!!;Save me!\n\r\
Example    : WANDER radius=20;-NAME +cityguard;HELP ME!!!;,screams for his life!\n\r\
Description: \n\r\
This behavior allows a mob to scream for help during combat, given the \
conditions described by the parameters.  MIN and MAX describe the range \
of ticks (3 second periods) between screams.  MAXASSISTS describes the \
maximum number of mobs who will assist the citizen.  CHANCE describes the PERCENT \
chance the mob has of screaming after the period.  Whenever the mob screams \
the system will check RADIUS rooms deep around the mob for ANOTHER mob \
that matches the mask check after the first semicolon.  In this example, \
mobs with the word "citiguard" in their name.  If such a mob is found, and \
that mob has one of the "Mobile" behaviors, it will be moved one room \
closer to the screaming mob.  \
An optional WANDER flag allows mobs from adjacent areas to be drawn in. \
When the guardian mob arrives to the same \
room as the screaming mob, it will join the screaming mob in defence. \
All of the semicolon-separated strings at the end of the parameter \
list will denote the random things which the screaming mob will yell out. \
Once a mob has come to the screamers defence, it will stop screaming. \
If a comma prefixes the scream message, it will be emoted instead.\n\r\
The valid masks for the assisting mobs are as follows: \n\r\
<ZAP=disallow>

BEHAVIOR_PROTECTEDCITIZENS=\
Behavior   : ProtectedCitizens\n\r\
Targets    : MOBs, ROOMs, and AREAs\n\r\
Parameters : Max/Min ticks, pct chance, rooms radius, max#assists;\n\r\
Parm (cont): protected citizen mask;guardian mask; yell strings, ';' separated.\n\r\
Example    : radius=5 maxassists=7;-NAME +citizen;-NAME +cityguard;HELP ME!!!;Save me!\n\r\
Example    : radius=10 maxassists=2;-NAME +citizen;HELP ME!!!;,screams for his life!\n\r\
Description: \n\r\
This behavior allows a mob described by the citizen mask (the first string \
after the first semicolon) to scream for help during combat, given the \
conditions described by the parameters.  MIN and MAX describe the range \
of ticks (3 second periods) between screams.  MAXASSISTS describes the \
maximum number of guardians who will assist the citizen.  CHANCE describes the PERCENT \
chance the mob has of screaming after the period.  Whenever the mob screams \
the system will check RADIUS rooms deep around the mob for a guardian mob \
that matches the mask check after the second semicolon.  In this example, \
mobs with the word "cityguard" in their name.  If such a mob is found, and \
that mob has one of the "Mobile" behaviors, it will be moved one room \
closer to the screaming mob.  When the guardian mob arrives to the same \
room as the screaming mob, it will join the screaming mob in defence. \
All of the semicolon-separated strings at the end of the parameter \
list will denote the random things which the screaming mob will yell out. \
Once a mob has come to the screamers defence, it will stop screaming. \
If a comma prefixes the scream message, it will be emoted instead.\n\r\
The valid masks for the citizen and guardian mobs are as follows: \n\r\
<ZAP=disallow>

BEHAVIOR_THIEFNESS=\
Behavior   : Thiefness\n\r\
Targets    : MOBs\n\r\
Parameters : (SUBCLASS NAME) (PROFICIENT) (NOSTATS) (NOCOMBATSTAT)\n\r\
Parameters : (OFFENSIVE,DEFENSIVE,MIXEDOFFENSIVE,MIXEDDEFENSIVE)\n\r\
Example    : \n\r\
Example    : Thief\n\r\
Example    : Assassin MIXEDOFFENSIVE\n\r\
Description: \n\r\
An extension of CombatAbilities, this behavior makes the mob a Thief by class, \
and gives the mob thief skills appropriate to its level.  After \
this behavior has triggered, it will often require a RESET for any \
level changes to the mob to take over. The Thiefness behavior also \
includes many non-combat abilities, including sneaking and hiding, \
backstabbing, picking pockets, and even stealing at high levels!\n\r\
Use the proficient flag to make all skills at 100% instead of level-based. Use \
the offensive/.../mixeddefensive flags to influence skill choices. \
This behavior should not be used WITH any of the other CombatAbilities behaviors, \
such as Fighterness, Thiefness, Mageness, Clericness, Druidness, or CombatAbilities. \
It should be used alone on a mob.\n\r\
Also, be aware that this behavior will modify the mobs stats to better reflect the class, \
so any additions or removals of this behavior should be accompanied by a room reset after \
saving, and manually checking to make sure the combat stats are as desired.

BEHAVIOR_DELAYEDTRANSPORTER=\
Behavior   : Delayed Transporter\n\r\
Targets    : Rooms, Mobs, Items\n\r\
Parameters : Max and min ticks, pct chance, room ids separated by ';'.\n\r\
Example    : min=10 max=20 chance=25;Midgaard#3001;Sewers#6020;Midgaard#3020\n\r\
Description: \n\r\
This behavior defines a serious of random rooms.  All rooms are separated \
by the semicolons shown above.  The first parameter can me empty for defaults, \
or may contain a setting for minimum ticks, maximum ticks, and the percept chance \
of occurrence after the random number of ticks has expired.  In the above example \
every 10-20 ticks, there is a 25% chance that every mob in the same room as the \
behaving object will be teleported to one of the three listed rooms (at random).

BEHAVIOR_RANDOMTRAPS=\
Behavior   : Random Traps\n\r\
Targets    : Rooms, Areas\n\r\
Parameters : Max and min ticks, pct chance, min and max traps, locale and other flags.\n\r\
Example    : min=10 max=20 chance=25 mintraps=1 maxtraps=10 EXITS="YES" ITEMS="YES" ROOMS="YES"\n\r\
Example    : min=10 max=20 chance=25 ROOMS="YES" ITEMS="NO" -ALL +CityStreet\n\r\
Description: \n\r\
This behavior will generate traps in a room or area.  \n\r\
Frequency Parameters: \n\r\
The frequency and chance that the traps will be generated is determined by \
the min, max, and chance parameters.  \n\r\
\n\r\
Number of traps parameters: \n\r\
The number of traps generated is determined by mintraps and \
maxtraps. \n\r\
\n\r\
Types of items trapped parameters: \n\r\
You may also dictate the types of things which can be trapped. \
By default, only closed, locked doors will get trapped.  To allow other \
things to be trapped, other parameters must be included.\n\r\
The ROOMS parameter may be made equal to YES to allow trapping of rooms, or \
NO to not allow this. \n\r\
The EXITS parameter may be made equal to DOORS to allow trapping of all \
doors, LOCKED to allow only trapping of locked doors, or NO to not allow \
exits to be trapped at all.\n\r\
The ITEMS parameter may be equal to YES to allow trapping of any items, \
CONT to allow trapping only of containers, LID to trap only the \
containers with lids, LOCK to trap only containers with locks, or \
NO to never trap items. \n\r\
\n\r\
The locale parameters:\n\r\
The TYPE of room in that area which will be checked for trappable things \
may also be specified. \
Use -ALL to disallow all locales, followed by +AIR +CITY +JUNGLE (etc) to \
reallow certain locales.  -CITY -UNDERWATER and others may be used to \
restrict certain locales.  If no locale types are specified, then all rooms \
in an area will be elligible.

BEHAVIOR_TARGETPLAYER=\
Behavior   : TargetPlayer\n\r\
Targets    : MOBs\n\r\
Parameters : min, max ticks, a percent chance\n\r\
Example    : min=2 max=3 chance=99\n\r\
Description: \n\r\
This behavior makes the MOB, in combat, target the weakest player in their \
enemies' group.
 
BEHAVIOR_TAXCOLLECTOR=\
Behavior   : TaxCollector\n\r\
Targets    : MOBs\n\r\
Parameters : (WAIT=[TIME]) (GRACE=[TIME])\n\r\
Example    : \n\r\
Example    : WAIT=60000 GRACE=600000\n\r\
Description: \n\r\
This behavior makes the mob a very annoying and somewhat dangerous collector of \
money from both players and mobs.  The TaxCollector will, by default, demand 10% \
of any money by a random person it comes across in the form of a "citizens tax".  \
That person has [WAIT] milliseconds to give over the money before the tax collector \
either charges them with tax evasion, or attacks.  If the taxcollector is \
paid (mobs will always pay), then the person has [GRACE] amount of time before \
money is demanded again.  The TaxCollector will never demand money from a \
member of its own clan, if it has one.  Also, in areas with law, the tax collector will \
charge the rate defined as the Citizens Tax instead of the flat 10%, as well as charging \
for any back property taxes if applicable.

BEHAVIOR_TAXIBEHAVIOR=\
Behavior   : TaxiBehavior\n\r\
Targets    : MOBs, Items, Rideables\n\r\
Parameters : [ALL PRICE]/[AREA/ROOM]=[PRICE]/[PARAM]=[VALUE]; ... ; \n\r\
Example    : 1.5\n\r\
Example    : Midgaard#3001=1.5; Smurfville=2.0; 70 ; AREAONLY=true\n\r\
Example    : Midgaard#3032; 100 ; INDOOROK=false; MAXRANGE=100\n\r\
Description: \n\r\
This behavior makes the mob a carrier of players to places.  The mob will charge for his services if you specify \
a price in the parameters, or he will do it for free if you don't, or if the last price \
specified was 0.  The parameters can include a comma delimited set of room IDs, area names, \
or even short title descriptions for quickly entering rooms within short range of the mob. \n\r\
\n\r\
The parameters may also include certain other variables as part of the \
parameter list.  These include AREAONLY = true or false, to specify whether the taxi \
knows anything about places outside his area.  MAXRANGE=number for the maximum number of \
rooms away from the taxi that is known.  GREETING=message will give a special taxi \
greeting message for all players who enter the room its in. ENTERMSG will give a message \
to players after they mount the taxi.  TALKERNAME=name will change the apparent \
name of the speaker, allowing you to turn a mounted mob into a "driver" if you wish. \
PERROOM=number will set a per-room price for the distance from the current room to the one sought. \
INDOOROK=true will allow the taxi to traverse indoor rooms if convenient. NOWATER=true to prevent trails over water. NOAIR=true, to \
prevent trails through the air. NOLOCKS=true to prevent trails through locked doors. \
NOHOMES=true to prevent trails through private homes. NOCLIMB to prevent trails through climbable exits. \
NOCRAWL to prevent trails through crawlable exits.

BEHAVIOR_VAGRANT=\
Behavior   : Vagrant\n\r\
Targets    : MOBs\n\r\
Parameters : \n\r\
Example    : \n\r\
Description: \n\r\
The mob will spontaneously decide to go to sleep wherever the mob is currently at.  After awhile \
the mob will wake up.

BEHAVIOR_VERYAGGRESSIVE=\
Behavior   : VeryAggressive\n\r\
Targets    : MOBs\n\r\
Parameters : aggression flags (message=[msg]) aggression masks\n\r\
Example    : -race +elf message="die! You!"\n\r\
Example    : -race +elf \n\r\
Example    : mobkill misbehave -race +elf\n\r\
Description: \n\r\
Makes the mob attack any player mob it can detect in the same room, from \
the moment the new mob enters.  In addition, this behavior will detect any \
mobs in adjacent rooms, and move to attack those as well, but only if those \
players meet all the other criteria, and are within 16 levels of the mob. \
Mobs will not be aggressive towards Archons and builders with the CMDMOBS \
security flag. \
Horribly wounded mobs are not aggressive. If no other parameters are given, \
the mob will attack anyone within 8 levels. Valid aggressive masks include:  \n\r\
message=[msg] something for the mob to say whenever he's fixing to attack\n\r\
delay=x (makes the mob delay x ticks before looking for a victim) \n\r\
mobkill (makes this behavior attack mobs as well as players) \n\r\
misbehave (makes this mob attack even when wounded or a follower) \n\r\
<ZAP=spare> 

BEHAVIOR_WATERCURRENTS=\
Behavior   : WaterCurrents\n\r\
Targets    : Areas, Rooms\n\r\
Parameters : min, max ticks, % chance, [DIRECTION] [DIRECTION] [etc..]\n\r\
Example    : min=1 max=3 chance=99 east south\n\r\
Example    : east south\n\r\
Description: \n\r\
The mob will be drawn along in the directions specified by the parameters.  If \
an exit is available in the first direction, it will be chosen, otherwise \
the second one, etc.  The min, max, and chance dictate how often the currents \
will strike.

BEHAVIOR_WEATHERAFFECTS=\
Behavior   : WeatherAffects\n\r\
Targets    : Rooms, Areas\n\r\
Parameters : (windsheer=%chance) (puddlepct=%chance) (rainslipchance=%chance)\n\r\
Parameters : (snowSlipChance=%chance) (sleetSlipChance=%chance) (freezeOverChance=%chance)\n\r\
Parameters : (droughtFireChance=%chance) (botherticks=#ticks) (diseaseticks=#ticks)\n\r\
Parameters : (rustticks=#ticks) (lightningticks=#ticks) (rumbleticks=#ticks)\n\r\
Parameters : (gustticks=#ticks) (tornadoticks=#ticks) (hailticks=#ticks)\n\r\
Parameters : (dustticks=#ticks)\n\r\
Example    : windsheer=10 puddlepct=20\n\r\
Description: \n\r\
The amazingly powerful behavior handles almost all of the effects of weather upon \
players and the environment.  By changing the parameters listed above, the frequency \
of certain negative effects of weather can be tweeked, modified, enhanced, or eliminated.\n\r\
The parameters and their meaning are as follows:\n\r\
windsheer - percent chance that a ranged attack or thrown item will be blown off coarse.\n\r\
puddlepct - percent chance, following wet weather, that puddles or snow piles will form.\n\r\
rainslipchance - percent chance, during wet weather, that someone will slip while moving.\n\r\
snowSlipChance - percent chance, during snowy weather, that someone will slip while moving.\n\r\
sleetSlipChance - percent chance, during sleety weather, that someone will slip while moving.\n\r\
freezeOverChance - percent chance, during cold weather, following cold weather, that a given\n\r\
   available water surface will freeze over for a time.\n\r\
droughtFireChance - percent chance, during a drought, that a random item will be selected \n\r\
   from all available rooms to be spontaneously ignited.\n\r\
botherticks - how often, in ticks, players will be reminded of current weather conditions.\n\r\
diseaseticks - how often, in ticks, players will suffer a small chance, depending on weather \n\r\
   conditions, of catching a weather related disease, such as cold, flu, frostbite, heat.\n\r\
rustticks - how often, in ticks, players in wet weather or conditions will suffer a chance\n\r\
   of one of their items rusting and therefore taking damage.\n\r\
lightningticks - how often, in ticks, during thunderstorms, an available player will suffer\n\r\
   a chance of someone in the same room being struck by lightning.\n\r\
rumbleticks - how often, in ticks, players are given slightly more personal reminders of \n\r\
   current weather conditions than they get from botherticks.\n\r\
gustticks - how often, in ticks, during windy conditions, an available player will suffer\n\r\
   a chance of someone in the same room being buffeted by a gust of wind.\n\r\
hailticks - how often, in ticks, during hail storms, an available player will suffer\n\r\
   a chance of someone in the same room being buffeted by hail.\n\r\
dustticks - how often, in ticks, during dust storms, an available player will suffer\n\r\
   a chance of someone in the same room being hit in the eye with dirt.\n\r\
tornadoticks - how often, in ticks, during thunderstorms and windy conditions, an available\n\r\
   player will suffer the chance of a tornado touching down in their room.


BEHAVIOR_WIMPY=\
Behavior   : Wimpy\n\r\
Targets    : MOBs\n\r\
Parameters : wimpy masks\n\r\
Example    : -race +elf \n\r\
Description: \n\r\
Makes the mob flee any player mob it can detect in the same room. \
If no other parameters are given, \
the mob will flee anyone. Valid masks include:  \n\r\
delay=x (makes the mob delay x ticks before looking for someone to fear) \n\r\
very=1 (makes the mob flee even if not in combat) \n\r\
<ZAP=fear> 

BEHAVIOR_WIMPYAGGRESSIVE=\
Behavior   : WimpyAggressive\n\r\
Targets    : MOBs\n\r\
Parameters : aggression flags (message=[msg]) aggression masks\n\r\
Example    : -race +elf \n\r\
Example    : -race +elf misbehave mobkill\n\r\
Description: \n\r\
Makes the mob attack any sleeping player mob it can detect in the same room. \
Mobs will not be aggressive towards Archons and builders with the CMDMOBS \
security flag. \
If no other parameters are given, \
the mob will attack anyone. Valid aggressive masks include:  \n\r\
message=[msg] something for the mob to say whenever he's fixing to attack\n\r\
delay=x (makes the mob delay x ticks before looking for a victim) \n\r\
mobkill (makes this behavior attack mobs as well as players) \n\r\
misbehave (makes this mob attack even when wounded or a follower) \n\r\
<ZAP=spare>