Section 3:    #MOBILES

Here's how a mobile is formatted:

  1. #[vnum]
  2. name list~
  3. short description~
  4. long description
    ~
  5. look description
    ~
  6. race~
  7. [act flags] [affect flags] [alignment] [mobile group]
  8. [level] [+ to hit] [hit dice] [mana dice] [damage] [damage type]
  9. [pierce ac] [bash ac] [slash ac] [magic ac]
  10. [offensive flags] [immunities] [resistances] [vulnerabilities]
  11. [start position] [default position] [sex] [treasure]
  12. [form flags] [part flags] [size] [material]
  13. T [trigger] [program vnum] [argument]~
  14. C [clanname]
  15. str|qui|dex|int|wis|con|cha|app [value]
  16. D [deathmessage]~
  17. R [religion]~
  18. profession [professions name]
  19. career [career name]

Items XIII. through XIX. are optional. You might wish to have a look at the appendices at the end of this document, Appendix A: Recommended Values for Mobiles and Appendix B: Removing Flags. There's also a list of hints for created mobiles you might want to read.

Below is an example of a mobile we'll use throughout this document:

#1
shamrock halfling male humanoid~
Shamrock~
Shamrock is here keeping watch over things.
~
Short even for a halfling, Shamrock is a cheerful fellow, always smiling
and greeting old and new friends (and customers) alike. He is not a terribly
attractive fellow, possessing a connecting pair of hairy brows, a bulbous 
nose, pock-marked cheeks, and a pair of unkempt muttonchops to match the
rest of his dark, dirty curls. Still, his looks do not seem to bother him,
and he's quick to greet even the most pretentious of clients.
~
halfling~
BGSVci V -300 0
15 0 3d9+208 3d9+208 2d6+3 punch
-2 -2 -2 -2
FKp A 0 0
stand stand male 50
0 0 medium 0
T act mShamrockCafeShamrockRub hands together in greedy anticipation~
T greet mShamrockCafeShamrockGreet 100~
T hour mShamrockCafeShamrockBedtime 23~
T hour mShamrockCafeShamrockSleep 3~
T hour mShamrockCafeShamrockWakeup 7~
qui 100
D #yShamrock yells 'Arrrrgh!!'#n~
R Sscis~
profession rogue
career assassin

Here's the breakdown of the format:

  1. #vnum

    The vnum is the number used to reference your mobile. There may only be one mobile of any given vnum at one time. On Dawn of the Ages, you may use any natural number for a vnum (1, 2, 3, ...), but we ask that you keep them in order. (see our previous discussion of vnums.)

  2. name list~

    This is a list of names by which the mobile can be referenced. In our example above, Shamrock has a name list of:

    shamrock halfling male humanoid~

    It's best to have more than one name per mobile. Please do not use capitalizations of any kind in this line. Don't forget the tilde (~) at the end of the line.

  3. short description~

    The short description is seen when the mobile fights or performs actions, e.g. "Shamrock" or "the goblin scout". It should be kept fairly short, preferably 20 characters or less. Also, the line should begin with a lowercase letter ("the goblin scout", not "The goblin scout"), unless this is a mobile with a proper name (e.g. "Shamrock", not "shamrock"). Don't forget the tilde (~) at the end of the line.

  4. long description~

    The long description is seen whenever a character looks at the room a mobile is in (provided, of course, that they can see the mobile.) Looking at the example above, we write

    Shamrock is here keeping watch over things.
    ~
    

    Ideally it should be one line in length, but in some cases descriptions longer than two lines are justified. Unlike the short description, this line should always begin with a capital letter (e.g. "T", not "t"). Be sure to put a tilde (~) BELOW the description (not at the end of the line).

  5. look description~

    This is the equivalent of a character's description, and is seen when a player looks at a mobile. It can be as long as you like, but one to five (1-5) lines is probably best. Try and make it at least a little descriptive -- players should feel rewarded for looking at a mobile. Be sure to put a tilde (~) BELOW the description (not at the end of the line). The look description of Shamrock above is:

    Short even for a halfling, Shamrock is a cheerful fellow, always smiling
    and greeting old and new friends (and customers) alike. He is not a terribly
    attractive fellow, possessing a connecting pair of hairy brows, a bulbous 
    nose, pock-marked cheeks, and a pair of unkempt muttonchops to match the
    rest of his dark, dirty curls. Still, his looks do not seem to bother him,
    and he's quick to greet even the most pretentious of clients.
    ~
    
  6. race~

    Every mobile should have a race, whether it is goblin, modron, troll, or whatever. See the list below for common races that already exist on Dawn of the Ages. If you feel your race is sufficiently distinct to merit creation of a new one, include a note to the implementor containing the abilities of the race. Do not forget to put a tilde (~) at the end of the line.

    The following is a list of available races on Dawn of the Ages:

    antarialavatarbat
    bearbeetlebirdblob
    buffalocamelcatcentipede
    cowdarkelfdeerdemon
    dinosaurdjinndogdoll
    dolphindragondrowduergar
    dwarfelementalelephantelf
    eyefaeriefalconfido
    fishflyfowlfox
    froggiantgoatgoblin
    godgolemharpyhobgoblin
    horsehumanimpjaette
    koboldlionlizardmaggot
    mimicmodronmoluskmonkey
    mousemulemultidragonmutation
    nymphorcpegasuspig
    plantpseudodragonrabbitrat
    reptileschool monsterscorpionsnake
    song birdspiderturtletroll
    undeadunicornuniquewasp
    water fowlwolfwormwyvern

    Click here to see the expanded list of races, including their abilities and vulnerabilities. In the resistances and vulnerabilities, we distinguish between small (s), medium (m) and high (h), which is close to an invulnerability.

    Note: you CAN use player races (not described above) as a mob race. However, if you do so, please make sure the mob IS that race, that is, no "high elf" goblins, please.

  7. [act flags] [affect flags] [alignment] [mobile group]

    [act flags]

    Act flags (short for "action flags") determine the in-game behavior of your mobile. Input all of the flags you have chosen into the proper mobile section (as shown in the example above). Click here for a listing of act flags.

    [affect flags]

    Affect flags are used to assign various spell and spell-like effects to a mobile, such as sanctuary, hidden, or detections. Click here for list containing all usable affect flags.

    [alignment]

    Alignment is a number between -1000 and 1000, meant to represent the ethos of your creature. -1000 is irredeemably evil, 1000 is saintly. All but the most extreme monsters should fall between -500 and 500, and in particular it is hard to justify any low-level mobiles having extreme alignment.

    [mobile group]

    The builder uses this slot to band mobiles into allied groups. The builder assigns a natural number (1, 2, 3, ...) to this slot; the mobile thereafter will assist other mobiles that have the same number in this slot. For example, suppose we had a mobile called a "vermicious knid" with a group number of "2". If it happens to be in the same room with a different mobile (or another knid) with the same mobile group number, i.e. "2", it will assist that mobile in combat. If you do not want to make your mobile part of any mobile group, just insert zero (0) in this slot, like we did with Shamrock.

  8. [level] [+ to hit] [hit dice] [mana dice] [damage] [damage type]

    (See the appendix at the end of this section for details on recommended values depending on the mobile level.)

    [level]

    This is a very important statistic, as it determines the recommended values for your mobile's combat abilities. Try and make the level choice reasonable to believe. Just as a level 2 Ancient Blue Wyrm makes no sense, neither does a level 50 snail. Look over the recommended values for the level and please try to stay fairly close to them, otherwise your mobile may well be out of balance with the others in the game.

    [+ to hit]

    This statistic is normally zero (0), but in mobiles with exceptional (and I do mean exceptional) combat abilities it may be higher. Clumsy mobiles may deserve a -1 or -2.

    [hit dice]

    Hit dice are expressed as ndn+n (so many d-sided dice + a bonus, where "n" is a non-negative number). Consult the recommended mobile values to get a rough idea how many hit points your mobile should have. The hit points will determine how much raw damage your monster can take before expiring. For a fixed quantity of hit points enter it as 1d1+x: i.e., for 100 hps, 1d1+99. Do not forget that all values must be set: this means 1d100 is not sufficient, you must write it as 1d100+0.

    [mana dice]

    Mana dice are expressed as ndn+n (so many d-sided dice + a bonus, where "n" is a non-negative number). Consult the recommended mobile values to get a rough idea how much mana your mobile should have. This value will determine how many spells your mobile can cast in a combat (non-spellcasters have a mana value as well). Note that the mana value is not currently used, but mobiles WILL in the future use it (and therefore will be able to run out of it), so don't forget to define this section.

    [damage]

    The damaging power of a mobile is expressed as ndn+n, just like hit points and mana. It is very important to stay close to the values recommended, in particular where the damage bonus is concerned, or the mobile's balance will be skewed.

    [damage type]

    A mobile's damage type defines three things: what message is seen when it attacks in combat, what armor class is used to defend against the attack, and what type of resistance or vulnerability affects the damage received from the attack. The following damage types are supported, listed by the type of attack and the damage message sent (if a name follows the damage message, you should use that name in your area file, otherwise just use the message itself). If you can't find a damage type that fits your mobiles, by all means make a new one (but be sure to note that a new damage type was added and how it should be defined, or your mobile will not function properly!).

    piercing attacks (pierce ac):
    bite | chomp | gnash
    gouge | hit | jab
    lunge | peck | pierce
    rupture | scratch | stab
    sting | strike | thrust
    bashing attacks (bash ac):
    bash | bone crush (bcrush) | beating
    blast | blow | bone smash (bsmash)
    crushing blow (cblow) | charge | crush
    peck (peckb) | poke | pound
    punch | slap | smash
    smite | strike | thwack
    slashing attacks (slash ac):
    chop | claw | cleave
    cleft | cut | flogging (flog)
    grasp | grep | rending (rend)
    serration (serrate) | slash | slice
    swipe | thrash | whip
    acid attacks (magic ac):
    acidic bite (acbite) | corrosive bite (cbite) | digestion
    slime | spit | squirt | vomit
    air attacks (magic ac):
    air blast (ablast) | gale
    storms (storm) | thundrous blow (thunder)
    cold attacks (magic ac):
    chill | freezing bite (frbite)
    glacial blow (glacier)
    dark attacks (magic ac):
    dark aura (dark) | darkness
    earth attacks (magic ac):
    entangle | shards | pierce (spierce)
    suction | tremors
    energy attacks (magic ac):
    energy | magic | trauma | wrath
    fire attacks (magic ac):
    blaze | flame | fire
    flaming bite (flbite)
    holy attacks (magic ac):
    divine power (divine) | golden aura (gaura)
    shimmering nimbus (shimmer)
    light attacks (magic ac):
    light beam (lbeam) | ray of light (light)
    lightning attacks (magic ac):
    crackling blow (crackle)
    shock | shocking bite (shbite)
    poison attacks (magic ac):
    caustic spit (cspit) | envenoms (venom)
    poisonous bite (pbite)
    psionic attacks (magic ac):
    gaze | mental blast (mental)
    psychic crush (pcrush)
    sound attacks (magic ac):
    dirge | scream
    soundwave (swave) | wail
    unholy attacks (magic ac):
    curse | life drain (drain)
    unholy essence (unholy)
    water attacks (magic ac):
    drowning | steaming bite (steam)
    vapor | water
    The acceptable kinds of damage (some with no damage messages as yet) are:
    charm | disease
    harm | lightning

    Harm, disease, and poison are generally used only on spells, but are included here on the outside chance that a mobile might need them. This list is by no means exhaustive, so please feel free to expand it as you write your area.

  9. [pierce ac] [bash ac] [slash ac] [magic ac]

    In order, the four armor class values for a mobile are piercing (i.e. daggers and spears), bashing (i.e. clubs, rocks), slashing (swords and axes), and magical (everything else). Usually the first three will be fairly close to each other (it's nice to have them be a little different, however), and the magical AC will be considerably weaker. Please adhere to the AC guidelines set out in the appendix dealing with recommended values for such.

  10. [offensive flags] [immunities] [resistances] [vulnerabilities]

    [offensive flags]

    Offensive flags control mobile behavior in combat -- allowing some variety in how your mobiles fight back against players. A typical mobile should have a few (2-3) attack abilities and one or zero defensive abilities; more skilled mobiles may have more, but try not to make them too flexible. Click here for a listing of offensive flags.

    [immunities] [resistances] [vulnerabilities]

    Mobiles have differing immunities, resistances, and vulnerabilites both to better explain certain creatures (e.g. dragons) and to make fighting them take a little more strategy than just mindlessly pumping out damage. Most normal mobiles probably won't have much in the way of these flags, so don't add flags without sound reason. It's important to make shopkeeper-type mobiles (as well as guild masters, healers, et cetera) immune to summon, charm, magic, and weapons (immunity flag ABCD) just to insure that they cannot be killed. Similarly, weak, low-level mobiles (goblins, for example) might be made vulnerable to magic just to accent their weakness. All three flags share the same fields, which are found here.

  11. [start position] [default position] [sex] [treasure]

    [start position] [default position]

    The start position is the position a mobile will be in when first loaded; the default position is the position it returns to after a fight. These are often the same, but a sleeping mobile (for example) is not likely to go back to sleep. The acceptable positions are stand, sit, rest, and sleep.

    [sex]

    Mobile sex (as in gender, mobiles don't reproduce) can be none, male, female, or either (either will be set randomly for each mobile of that type which is loaded). It has no real game effects, but does add color. It's a good idea to make generic mobiles (i.e. rabbits) sex 'either', just for variety.

    [treasure]

    The average treasure carried by the mobile, in silver pieces. Most mobiles should carry no more than 100 coins per level, and usually much less unless they are supposed to be wealthy. Non-intelligent mobiles should usually have no treasure.

  12. [form flags] [part flags] [size] [material]

    [form flags]

    Builders use the form flags to define a body form for their mobiles, and related data like what happens to its corpse when it dies, and whether it is edible. Much of the forms code is not yet implemented, but please be as thorough as possible when defining your mobile, as it will all be used at some future point in time. The acceptable flags for body form are found here.

    [part flags]

    The body parts flag is used to detail what limbs and organs a creature has, and determines two things: what hits the ground when a mobile dies, and what items a mobile can wear. In the future body parts will also determine the special attacks the mobile can have (e.g. tail whip), so please try to be thorough when describing your mobile's body parts. The following body parts are defined here.

    [size]

    The size of the mobile has many game effects, and should be chosen carefully. The acceptable sizes are as follows:

    tinysmall birds and anything smaller
    smalllarge birds (ducks and up) to halflings
    mediumelves and dwarves to humans
    largeogres, gnolls, and other large humanoids
    hugegiants, small dragons, and wyverns
    giantfor VERY large critters, i.e. dragons, titans, and the biggest giants

    [material]

    The material type for mobiles is currently unsupported. It should be left blank (0) for flesh-and-blood creatures, or spirits, but golems and other animated beings should have a material appropriate to their body construction (i.e. stone, iron, diamond). Put the material in single quotes if it is longer than one word.

  13. T [trigger] [program vnum] [argument]~

    First a word on mobprograms as a whole: mobprograms provide a kind of artificial intelligence for mobiles in Dawn of the Ages. We like the idea of having mobs that are not just providers of experience and equipment; they should also add to the atmosphere of Dawn. Because of this need, there are mobprograms. We hope they are so easy to use, even for area writers not experienced in coding, that every author can generate intelligent mobiles without having to find someone to code a complicated special function.

    There are two sections in this documentation dealing with the mobprograms. Here, in the #MOBILES-section, the triggers for activating the mobprograms must be set. The programs themselves are detailed in the #MOBPROGS-section. Now, without any further ado, the syntax of mob triggers goes like this:

    T [trigger] [program_name] [argument]~

    Explanation:

    The TRIGGER is a single word, see below for explanations.
    The PROGRAM_NAME is the MOBprogram called.
    The ARGUMENT is the argument that triggers the event.

    To use an example from Shamrock above:

    T hour mShamrockCafeShamrockBedtime 23~

    In the above example, an HOUR trigger is defined. When the appropriate hour (i.e., 11:00 pm) is reached, the mobile will perform the program specified, that is, "mShamrockCafeShamrockBedtime" (defined in the #MOBPROGS section).

    NOTE: Several mobiles can use the same MOBprogram, i.e. MOBprograms can be SHARED with several mobiles. The keyword and trigger argument can be different for each mobile even if they share the same MOBprogram code.

    Here is a brief overview of the available triggers:

    TriggerArgumentWhat must happen to activate trigger
    actSTRINGto match from act() to mobile
    bribeINTEGERmiminum amount of silver coins given to mobile
    deathPERCENTchance to check after mobile has been slain
    delayPERCENTchance to activate the program after the delay has passed
    enterEXIT NUMBERprogram is started when visible char enters mobile's room from the named direction
    enterallEXIT NUMBERprogram is started when any char enters mobile's room from the named direction
    entryPERCENTchance to check when mobile moves to a new room
    exitEXIT NUMBERa visible char tries to exit mobile's room
    exallEXIT NUMBERany char tries to exit mobile's room
    fightPERCENTchance to check at fight_pulse if mobile is fighting
    giveOBJECT NAME, OBJECT VNUM or ALLto match when obj given to mobile
    greetPERCENTchance to check if visible char enters mobile's room
    grallPERCENTchance to check when any char enters mobile's room
    hourTIMEtrigger is released on the hour in the argument
    hpcntPERCENTlower than mobile's hit/max_hit if mobile is fighting
    killPERCENTchance to check when the mobile begins fighting
    kill_enemyPERCENTchance to activate the program when the mobile kills someone
    randomPERCENTchance to check whenever a PC is in the mobiles zone
    speechSTRINGto match in dialogue (say, tell) to mobile
    transferPERCENTchance to activate the program after the mobile is transferred
    transferallPERCENTchance to activate the program after the mobile is transferred

    Below is more detailed information of each trigger:

    ACT
    Keyword: 'act'
    Argument: string

    The argument is a phrase, a text string. The trigger is activated whenever the phrase is contained in the act() message.

    NOTE: Most general trigger. Applies to almost every event which happens in the mud. Anytime the function act() is called with a message to be delivered TO_CHAR,TO_VICT,TO_ROOM,etc. the act can be triggered. Basically this will trigger on almost everything you'll ever want. Output of "say", "shout" and "emote" do not trigger this event.

    BRIBE
    Keyword: 'bribe'
    Argument: number

    The argument is any positive integer number.

    NOTE: This trigger is activated whenever money is given to the mobile. If the amount given exceeds the number, then process the commands. Note again, that an argument of '1' would act as a default response. Also note that if the script is not triggered (because of too little money having been given), the mobile still keeps the money...

    Since Dawn of the Ages has two different types of currency (gold and silver coins), for bribe trigger the amount to be given is converted to silver coins with the rate of 1 gold = 100 silver. Thus, the number in the argument should be the expected amount in silver coins.

    DEATH
    Keyword: 'death'
    Argument: number

    The argument is a percent once again.

    NOTE: When the mobile dies, if the random percentage is less than the argument the mobile performs the MOBprogram commands rather than the usual death_cry() sequence. This is done before the corpse is made, so the commands can be considered the mobiles last gasp. It could perhaps destroy the items it was holding (see MOB REMOVE and MOB JUNK), or create some (see MOB OLOAD), or cast a spell (see MOB CAST) on the killer and the room, or even goto a new location (see MOB GOTO) and die there (with a text message, the corpse would seem to vanish) The position of the mobile is set to STANDING, and so it can do all the normal commands, without worrying about being DEAD. However, even if the mobile restores itself to full hitpoints, it will still die.

    This is not a way to immortal mobiles. However, the last thing this mobile does could be to goto some vacant room, load a fresh version of itself, drop all its items, force the new mobile to get all the items and wear them, send the new mobile back to the character who killed it and force the new mobile to attack that character. Along with a text message which said the mobile restored itself, this might be a convincing effect. (Note that your kitten could turn into a dragon this way too).

    DELAY
    Keyword: 'delay'
    Argument: number

    The argument is a percentage chance.

    NOTE: This trigger activates when the delay of a mobile (set with the MOB DELAY command) expires. This trigger can be used to create staged mobile behavior, for example, a guardian could see a player entering a room, give a warning and activate a delay. If the player is still present when the delay expires, the guard would attack the player. (See also MOB REMEMBER). A mobile can have several delay triggers, but every time the delay timer expires, all the triggers are checked and the first successful one executed.

    ENTRY
    Keyword: 'entry'
    Argument: number

    Again a percentage argument.

    NOTE: The opposite of greet trigger. Whenver the mobile itself enters a new room, this can be triggered. Useful for looking around, or waving or other things that real PCs do when they arrive at a crowded room.

    IMPORTANT: In an entry program, the mobile can only refer to a random pc ($r in if-checks) -- there's no way to know how many PCs exist in the room the mobile enters! Also, you must check visibility of the target in your program.

    EXIT/EXIT ALL
    Keyword: 'exit'
    Argument: number

    Argument is the exit number (0:north, 1:east, 2:south 3:west etc.)

    NOTE: The opposite of entry trigger. This is activated when PC tries to leave a room through an exit indicated by the argument, and the mobile sees the person leave. Useful for having a single guardian to watch several exits. An exit trigger works better than an entry trigger, since you can refer to a specific PC instead of a random PC.

    IMPORTANT: If this event is triggered, the victim will not move through the exit. If necessary, you must move the character yourself in your program (see MOB TRANSFER/MOB GTRANSFER). Also, this event is not triggered when a character flees from combat or the mobile is not in its default position.

    Keyword: 'exall'
    Argument: number

    Argument is the exit number (0 = north etc.) The same as exit trigger, but it can be triggered even if the mobile cannot see the person trying to leave the room or if the mobile is busy.

    FIGHT
    Keyword: 'fight'
    Argument: number

    The argument is a percentage.

    NOTE: Useful for giving mobiles combat attitude. It is checked every PULSE_VIOLENCE when the mobile is fighting. Can be used to cast spells (see MOB CAST), curse at the opponent, or whatever. Only the first successful one will be processed to save time. Also, this means that the mobile wont get lucky and 1. curse, cast a fireball and 2. spit on the player, cast another fireball in the same pulse.

    GIVE
    Keyword: 'give'
    Argument: string or object vnum

    The argument is either the a string containing words to be matched against the keywords of the object, or the word "all"; e.g. argument "long sword" will match to objects "long bow" and "small sword".

    Alternatively, the argument can be the virtual number of a single object.

    NOTE: This is triggered whenever something is given to the mobile. Best used for quests. Since the first successful trigger is the only one of this type which is processed, having an "all" argument in the script at the end of the MOBprogram list is essentially a default response.

    GREET/GREET ALL/ENTER/ENTERALL
    Keyword: 'greet'
    Argument: number

    Again a percentage argument.

    NOTE: Whenever someone enters the room with the mobile, and the mobile saw the person enter, this is checked. Good for shopkeepers who want to welcome customers, or for pseudo-aggressive mobiles which need to discriminate on who they attack.

    Greet trigger activates only when the mobile is not busy (fighting, sitting, sleeping etc.). If you want to be sure to catch all players, use grall.

    Keyword: 'grall'
    Argument: number

    Again a percentage argument.

    NOTE: Like greet, but it can be triggered even if the mobile didn't see the arrival (i.e. sneak, invis, etc) or is busy. Most useful for faking teleport rooms or for impassable guardians.

    Keyword: 'enter'
    Argument: number

    The argument is the exit direction. The trigger is released when a visible char enters the room of the mobile from this direction.

    NOTE: It works like greet, but only on chars entering from the specified direction. Note that there is no percentage chance in this trigger, just the exit direction. Unlike greet/grall, this trigger is only checked when a char enters the mobile's room from the specified direction.

    Keyword: 'enterall'
    Argument: number

    The argument is the exit direction. The trigger is released when ANY char enters the room of the mobile from this direction, even if the mobile cannot see the char.

    NOTE: Like enter, but it can be triggered even if the mobile didn't see the arrival (i.e. sneak, invis, etc) or is busy. Note that there is no percentage chance in this trigger, just the exit direction. Unlike greet/grall, this trigger is only checked when a char enters the mobile's room from the specified direction.

    HIT POINT PERCENTAGE
    Keyword: 'hpcnt'
    Argument: number

    The argument is a percentage.

    NOTE: Is activated at each PULSE_VIOLENCE when the mobile is fighting. It checks to see if the hitpoints of the mobile are below the given percentage. Multiple hpcnt triggers should be listed in increasing order of percent since a 40% will always be activated before a 20% and, only the first successful trigger is performed. (See also MOB FLEE).

    HOUR
    Keyword: 'hour'
    Argument: number

    The argument is the time, when the trigger will be released. This will happen every day at the same time.

    KILL
    Keyword: 'kill'
    Argument: number

    The argument is a percent once again.

    NOTE: This trigger is checked whenever a PC attacks the mobile. The check occurs only ONCE, in the beginning of combat. Useful for summoning assistance etc. (See MOB MLOAD).

    KILL_ENEMY
    Keyword: 'kill_enemy'
    Argument: number

    The argument is a percentage chance.

    With the chance provided in the argument, this trigger is released when the mobile kills another character. This can be a pc or a npc.

    GENERAL NOTE: No MOBprograms will be successful when the mobile is charmed (since it has no self volition, it should act like it has none) to protect mobiles which are given special powers from being implemented by a player.

    RANDOM
    Keyword: 'random'
    Argument: number

    The argument is a number betweeen 0 and 99 inclusive.

    NOTE: This trigger is checked at each PULSE_MOBILE and if the argument is greater than a percentage roll the trigger is activated. This will happen even if there is no PC in the room with the mob, but there must be players in the same area. It is useful to give mobiles a bit of a personality. For instance a janitor who stops to spit tobacco, or complain about the hours, or wonder why there are no woman janitors on muds, or a fido which barks or growls or pees on the curb is much more alive than one which just sits there scavenging. Note that this trigger is checked only when there are players in the area. If you want this event to be triggered always, you must set the ACT_UPDATE_ALWAYS flag of the mobile.

    SPEECH
    Keyword: 'speech'
    Argument: string

    NOTE: This is only triggered when the phrase is contained in a message which has been said by a PC in the same room as the mob. The PC restriction is not necessary, but makes infinite loops between two talking mobiles impossible. It also makes it impossible for two NPC's to stand and discuss the weather however. Note also that you do not need to put the string in quotes.

    TRANSFER / TRANSFERALL
    Keyword: 'transfer' 'transferall'
    Argument: number

    The argument is another percent.

    NOTE: the difference between 'transfer' and 'transferall' is that, if you use 'transfer', the mobile must be able to see the actor in order to carry out the trigger. 'transferall' does not require this.

  14. C [clanname]

    To set the clan for a specific mobile, simply write

    C [clanname]

    at the end of the mobile. Note that this key generally is used only for clan guardians. Trying to imbalance an area by making a mobile clanned then aggressive to all not in its clan (using an offensive flag) is frowned on.

  15. str|qui|dex|int|wis|con|cha|app [value]

    Mobiles can have their attributes set. For example, if a mobile has an appearance value set in the area file, then an appropriate message will be shown when the mobile is looked at, just as it is when a player looks at another player. If there is no such value defined, then there will be no message. To set the appearance value, or any other attribute, for a specific mobile, simply add the line

    app [appearance value]

    where the appearance value (or other value) can range from 0 to 100. To give a further example, Shamrock has his quickness set by using this key-value pair:

    qui 100
  16. D [deathmessage]~

    If you want to set a specific death message for your mob, just write

    D [deathmessage]~

    Don't forget the tilde (~) at the end.

  17. R [religion]~

    The religion setting of a mob merely sets the messages of a mob when it does something like blesses a player. In the future. this setting will allow builders, for example, to disallow training by religious mobiles towards players of different faiths. To set the religion of the mobile, type:

    R [religion]~

    The religion needs to be capitalized (e.g. "Sscis"). Don't forget the tilde (~) at the end.

  18. profession [profession name]

    A mobile can have a profession, as a player does. You merely need write this in the mobile's settings:

    profession [profession name]~

    Thus a mobile can be a ranger, or a necromancer, e.g. 'profession ranger'. To use this you MUST set the offensive flag 'p', and you must set a career for the mobile (see below). You also do not need a tilde at the end.

  19. career [career name]

    A mobile also can have a career as players do. You merely need write this in the mobile's settings:

    career [career name]~

    It is therefore possible for a mobile to be a cleric of Morruin, i.e. "career 'cleric of morruin' ". To use this setting you MUST set the offensive flag 'p', and you must also set the mobile's profession. You do not need a tilde at the end.

    Shamrock above has both his profession and career set:

    profession rogue
    career assassin
    

Appendix A: Recommended Values

    The following values should be followed closely for all mobiles -- try not to go more than 1 level away from the recommended values unless you are absolutely sure you want your mobile to be harder or easier than a default monster. In particular, avoid making them easier. Certain action flags (namely the 4 class-related flags) can modify the recommendations, they are explained in detail at the end of this section.

    LevelHit pointsACDamageLevelHit pointsACDamage
    12d6+1091d4+0316d12+928-104d6+9
    22d7+2181d5+03210d10+1000-106d4+9
    32d6+3571d6+03310d10+1100-116d4+10
    42d7+4661d5+13410d10+1200-114d7+10
    52d6+6051d6+13510d10+1300-114d7+11
    62d7+7141d7+13610d10+1400-123d10+11
    72d6+8541d8+13710d10+1500-123d10+12
    82d7+9631d7+23810d10+1600-135d6+12
    92d6+11021d8+23915d10+1700-135d6+13
    102d7+12112d4+24015d10+1850-134d8+13
    112d8+13411d10+24125d10+2000-144d8+14
    122d10+15001d10+34225d10+2250-143d12+14
    132d10+170-12d5+34325d10+2500-153d12+15
    142d10+190-11d12+34425d10+2750-158d4+15
    153d9+208-22d6+34525d10+3000-158d4+16
    163d9+233-22d6+44625d10+3250-166d6+16
    173d9+258-33d4+44725d10+3500-176d6+17
    183d9+283-32d7+44825d10+3750-186d6+18
    193d9+308-42d7+54950d10+4000-194d10+18
    203d9+333-42d8+55050d10+4500-205d8+19
    214d10+360-54d4+55150d10+5000-215d8+20
    225d10+400-54d4+65250d10+5500-226d7+20
    235d10+450-63d6+65350d10+6000-236d7+21
    245d10+500-62d10+65450d10+6500-247d6+22
    255d10+550-72d10+75550d10+7000-2510d4+23
    265d10+600-73d7+75650d10+7500-2610d4+23
    275d10+650-85d4+75750d10+8000-276d8+24
    286d12+703-82d12+75850d10+8500-285d10+25
    296d12+778-92d12+85950d10+9000-298d6+26
    306d12+853-94d6+86050d10+10000-308d6+28

    Thief* mobiles should read their hp, ac, and damage at one level lower.

    Mage mobiles read hp and ac at one level lower, and damage three levels lower.

    Cleric mobiles read damage at two levels lower.

    Warrior mobiles read hit points one level higher.

    Remember, +hit should only be given to very exceptional mobiles.

    * a thief mobile either has ACT_THIEF set or is decidedly thief-like in nature. The same holds true for the other modifiers.

Appendix B: Removing Flags

    There are times when a mobile will clearly belong to a certain race, but for whatever reason you will not it to have certain flags belonging to that race. For examples, dragons may normally be resistant to fire, but you may wish to make a white dragon that is vulnerable to fire and immune to cold. To remove flags from the mobile, add flag removal commands at the end of the entry (below the form/parts/size/material line).

    The base syntax is:

    F [flag type] [flags]

    Flag type may be either action, affect, offensive, immunity, resistance, vulnerability, form, or parts (usually just written as act, aff, off, imm, res, vul, for, and par).

    For example, to make a dragon that is not vulnerable to cold or resistant to fire, use:

    F res H
    F vul I
    

    More than one flag can be removed on the same line, as long as they are all part of the same flag group. So to remove fast and dodge from a wolf, you would type:

    F off FH

    Don't be afraid to move flags if you have to, and absolutely do NOT define a new race just because a few of the default flags don't agree with you.

Hints for creating mobiles