Common code

These codes are common to all types of mobs, although they may appear in different places.

Virtual Number (VNUM)
The mob's vnum starts with the zone number and ends with a unique number. Mobs are listed in the mob file in order. So ... for zone #99,  the first mob is #9900, the second is #9901, etc. (See sample mob file)

 WB01570_.gif (184 bytes) A type - S type - Overview - Top


WB00852_.GIF (317 bytes)
Alias List
 
list of keywords, separated by spaces, used to interact with the mob, as in
"kill <alias>". Example:

       fido beastly~  

 

WB00782_.gif (814 bytes)  
make sure the spelling matches the room description.
don't put "a" or " an" or "the" in the alias list
don't add a common alias for every mob in your zonet

 

 WB01570_.gif (184 bytes) A type - S type - Overview - Top


WB00852_.GIF (317 bytes)
Short Description

This is the description that the mud uses when the mob DOES something
(e.g. attacks you.) It should start with a capital and end with a ~

Example:
 
            The beastly fido~
     Harold~

 

 WB01570_.gif (184 bytes) A type - S type - Overview - Top

WB00852_.GIF (317 bytes)
Room Description

This is the "room description" of the mob. It should end with a period
and be followed by a ~ ON THE NEXT LINE.

WB00782_.gif (814 bytes)
DO NOT use " is here" in any way shape or form. You will be asked to rewrite your mob if you do. "The bloodthirsty vampire is here." is overused and not nearly as interesting as " The bloodthirsty vampire looks yearningly at your neck."
Descriptions must fit on one line, about 72 characters (not including color codes.) This helps keep the room from looking cluttered.  An occasional exception to this rule is ok.

If your mob is HIDDEN, the long description won't be seen unless it is attacked and the attacker flees ...

A discrete use of color can add some excitement. For example, dark red is the color of tell. Coding it into the long description makes it seem as if the mob is speaking directly to the player, for example:
 
The vampire tells you, 'Mmmm! Fresh blood! You look tasty!'

 WB01570_.gif (184 bytes) A type - S type - Overview - Top

WB00852_.GIF (317 bytes)
Long Description

When a player looks at your mob, this is what they see.

General rules:

WB00782_.gif (814 bytes)
Three lines minimum.
Show details about the mob such as its age, what clothes it is wearing. You can use the description to hint about the difficulty.
Follow the long description with a tilde (~) ON A SEPARATE LINE.
 
Example:
The king is the ruler of this land. You are to obey him without
question, for he has got a lot of power. As he looks at you with his
icecold gaze, you get the feeling you shouldn't be here at all.
~

 

 WB01570_.gif (184 bytes) A type - S type - Overview - Top

WB00852_.GIF (317 bytes)
Races

0 undefined 5 bearbeast 10 illusion 15 water
1 humanoid 6 bird 11 mount_fly 16 earth
2 undead 7 mount 12 demon 17 air
3 catbeast 8 giant 13 flybeast 18 dragon
4 hound 9 dwarf 14 fire


The mob's race affects its resistances and the type of attack..
Undead mobs are resistant to piercing. Fire and water mobs are resistant to fireball, and demons are resistant to fear.
Animals (mounts) bite, dragons whip, etc.


WB01570_.gif (184 bytes) A type - S type - Overview - Top

WB00852_.GIF (317 bytes)
Classes

This will affect the default skills list for the mob, and the default may not be what you expect!

0 Normal
1 Magic User
2 Cleric
3 Thief
4 Warrior

 
Warriors get 2nd, 3rd and 4th attack at 100%, track and scout at 95%, kick and bash at 60% and disarm foe at 75%.
Thieves just get 2nd attack at 100% and track and scout at 95% (no other skills).
All others get 2-4th attack, tumble, parry, dodge, and martial arts at 100%, track and scout at 95%.
So why code anything other than " Normal" ?
So to avoid local lag you should try to make the mob Warrior if you intend to have the mob use the skills kick, bash and/or disarm as an attack.
WB01570_.gif (184 bytes) A type - S type - Overview - Top

WB00852_.GIF (317 bytes)
Action

Simply code the letters and let the mud do the work. For example, to make a mob sentinel, scavenger and a helper, code bcm

Action code Effect
spec a spec-proc to be called if it exists
sentinel b prefers to stay in its room
scavenger  c pick up stuff lying around
isnpc d internal use only: don't set
nice_thief e set if thief should not be killed
aggressive f set if automatic attack on npc's. If a special aggressive on an alignment only is selected, then this needs to be selected too.
stay_zone g mob must stay inside its own zone
wimpy h mob will flee when injured. If it's aggressive, it will only attack sleeping players
aggressive_evil i attacks evil-alignment players IF "f" is also selected
aggressive_good j attacks good-alignment players IF "f" is also selected
aggressive_neutral k attacks neutral-alignment players IF "f" is also selected
memory l remembers if struck first and will hunt pc
helper m if a player is fighting a mob, the helper will join the attack against the player. 
hidden p The mob is hidden and will not be seen at all (no blankline no alignment etc). 
NoTrack q Mob can not be tracked. 

 

WB00782_.gif (814 bytes)
If you want your mob to attack evil or good players, you must also code "f", the "aggressive" flag
DO NOT code a or d
DO NOT make a shopkeeper or similarly difficult mob a scavenger.  This will make him grab corpses and will make corpse retrieval unnecessarily painful.
stay_zone is useful unless you wish your mob to be roaming nearby  zones. The midnight black wolf from the Elysium Faire, for example, frequently wanders the Northern Road, the zone at the entrance to the Faire. Aggro mobs should probably be stay_zone. Powerful aggro mobs should probably not have memory, or they are likely to kill innocent newbies in their efforts to track down their attacker. Recent example of this was the aquamarine dragon (who had to have a lobotomy).

 WB01570_.gif (184 bytes) A type - S type - Overview - Top
WB00852_.GIF (317 bytes)
Affection
 

Affections make a mob easier or harder to kill, and more or less dangerous.  Many (those marked in yellow) should NOT be used and are not included in the affection table on the cheat sheet.  Choose the letter symbol(s) you wish to use, or code a 0 if there are no affections.  Examples follow the table.

a BLIND Mob is blind.
b INVISIBLE Mob is invisible till it attacks.
c DETECT_ALIGN * No effect for mob - all can look for align
d DETECT_INVISIBLE Sees invisible chars and objects
e DETECT_MAGIC * No effect for mob
f SENSE_LIFE Sees hidden characters
g HOLD * Not Imped yet!
h SANCTUARY Halves all damage received
i GROUP INTERNAL USE ONLY: mob is grouped
j CURSE * Mob is cursed like spell
k LIGHT Mob sees in the dark
l POISON * Mob is poisoned like spell
m PROTECT_EVIL An extra AC point vs Evil players.
n PARALYSIS * Not Imped yet!
o INSANITY * Not Imped yet!
p FL_WPN Not Imped yet!
q SLEEP * Mob is slept like spell
r DODGE Mob can dodge like skill
s SNEAK Mob doesn't have entry/exit msg displayed
t HIDE Mob is hidden like skill
u FEAR Not Imped yet!
v CHARM INTERNAL USE ONLY: mob is charmed
w FOLLOWING INTERNAL USE ONLY: mob is following
x WIMPY INTERNAL USE ONLY: Wimpy set
y INFRARED Mob has infravision like spell
z BERZERK Mob is berserked like skill
A HOVER Mob is levitating like the spell Mob "hovers"
B FLY Mob flies (all flying creatures must have this flag on).
C BREATH_WATER The mob will not take damage from being underwater.
D REGENERATION Mob regenerates hit points like the spell

This is the gremlin in Ultima.  He can see in the dark, and when he flees, you don't see him leave the room, because he is sneaking.  Players tend to find this very annoying.

#2633
gremlin~
the gremlin~
This little creature sneaks around and steals your food.
~
He seems to be just a head with little hands and feet sticking
out of it. It does not seem like these things could hurt you,
but your money pouch seems much lighter.
~
12 3 ch ks -300 S
48 -4 -16 2d72+576
408 500 100 3d10+12 -1
-1
-1
0 225000 8 8 0

 

WB00782_.gif (814 bytes)
Wimpy+sneak = mobs like the ogres. They flee and you do not know where they fled to without scout.
All dragons, birds and other flying creatures should have the fly affection.
Shopkeepers who do not have " light" will not trade at night since they cannot "see" their customer. (so bring light to him/Eg.)
Don't overuse sanctuary.  

 WB01570_.gif (184 bytes) A type - S type - Overview - Top
WB00852_.GIF (317 bytes)
Alignment
A number from -1000 to 1000 representing the mob's alignment.
 

-1000 Evil -350
-349 Neutral 349
350 Good 1000

 

WB00782_.gif (814 bytes)
Players mob alignment to balance their own alignment and govern what they can wear.
Mobs play by the same rules as far as eq goes. A "good" mob cannot wear equipment that is "anti-good".
Alignment can be used to make a densely populated zone such as Tynstri or the new drow zone less easy to clear.

 WB01570_.gif (184 bytes) A type - S type - Overview - Top
WB00852_.GIF (317 bytes)
Level

For S type mobs, level affects:
default resistance to summon, charm and sleep
hitroll (see also thac0)
For A type mobs, level affects:
hitroll and thac0
AC (armor class)
hit points
experience points
gold
type of attack (bite, whip, stab)
how hard the mob hits
resistance to summon, charm and sleep

 WB01570_.gif (184 bytes) A type - S type - Overview - Top
WB00852_.GIF (317 bytes)
Gender

The gender (sex) of your mob will determine which pronouns (he/she/it him/her/it his/hers/its) the mud uses when referring to the mob.  Please make them logical ... i.e. a human named Bob should probably be coded as a male.

0 Neutral (it/its)
1 Male (he/him/his)
2 Female (she/her/hers)

 WB01570_.gif (184 bytes) A type - S type - Overview - Top
WB00852_.GIF (317 bytes)
Extra Descriptions

Extra descriptions are not required, but are a very nice addition.  They can give more information about the zone, the difficulty of the mob, hidden treasure, etc.   They are coded for mobs in the same way as for objects and room.  An E on a line by itself is followed by an alias list (a list of keywords) ending in a tilde ~   The description follows, starting on the next line, and is followed by a tilde on a line by itself.  Here is one example.  There are more in the sample mob file.

Have not gotten this to work at all - Glob.

E
hair~
The dryad's golden hair floats about her head like a giant halo.
~

 WB01570_.gif (184 bytes) A type - S type - Overview - Top
WB00852_.GIF (317 bytes)
Mob Actions

Mob action strings are an easy way to add more life to a mob. They are
specified as percentage chances, in the following way:

%%<percentage> <action>;%<percentage> <action>; ....~

Action strings may be any social or emote that a character can do. An
example of what a entry might look like is:

A
%%10 cackle;
%20 say Puny Mortals! Keep an eye on them, guards!;
%15 emote stares directly into your eyes. You feel a strong urge to
run.
~


WB00782_.gif (814 bytes) First entry begins with a double percent sign %%
Every entry except the last one ends with a semi-colon ;
The entire section ends with a tilde ~

WB01570_.gif (184 bytes) A type - S type - Overview - Top
WB00852_.GIF (317 bytes)
Zone Coding

The zone command to load a mob is:

M <if flag> <mob vnum > <max-existing> <load room>

if-flag - this is a 1 or a 0.  If the flag is set to 1, the mob will not load unless the previous command executed successfully.  This is normally a 0 for mobs.

max-existing - the maximum number of copies of this mob allowed to exist in the mud.  An immortal may continue to load more copies of the mob (for example for a quest), but the zone reset code will not load this mob if that would cause this number to be exceeded.

WB00782_.gif (814 bytes) Since the max-existing is a max-per- mud, not a max-per-room, the exact location a mob will be loaded is only predictable at reboot time.  Example:

M 0 4351 6 4310        Load #1 peasant in pub
M 0 4351 6 4310        Load #2 peasant in pub
M 0 4351 6 4320        Load #3 peasant in park
M 0 4351 6 4320        Load #4 peasant in park
M 0 4351 6 4330        Load #5 peasant in woods
M 0 4351 6 4330        Load #6 peasant in woods

If you load 2 peasants at the pub, two in the park, and two in the woods, that's a max-existing number of 6.  The zone commands are executed in the order given in the zone command file.  If the peasants in the park are killed (peasants #3 and #4), but not the ones in the pub, the next time the zone resets you will discover there are now 4 peasants in the pub and none in the woods.  This is particularly annoying for sentinel (stationery, non-wandering) mobs, and in zones which are not frequently cleared.

load room - the vnum of the room where the mob will pop.

A number of the newer zones have incorporated a concept called "mob chutes".  These are rooms with no entrances, only exits.   Non-sentinel mobs loaded into these rooms will wander randomly into one of the six possible exits.  This means not all mobs are in a room at zone reset time, and the room where the mob will first "pop"  is unpredictable.