A Guideline for Building Mobs ----------------------------- This is intended as a set of guidelines to those who are just beginning as Builders. Nothing here is written in stone, this file is based on my experience and the online help files. (Herne the Hunter) Remember that most important command: SAVEAREA Populating Your World --------------------- Mob making isn't an exact science, I've been told. There are no hard and fast rules for making mobs, one must use what resources s/he has to find a good balance. Using equal amounts of research into existing mobs, imagination, and common sense, one can come up with some pretty decent mobs that will provide hours of enjoyment and adventure. You can't go at mob-making by thinking things like "I'm gonna murder those Av's!", those kind of mobs hardly ever work and more often than not, you will be asked to downgrade them to something sensible. Mob strength should be based on the level of the area, and the theme of the area, keeping in mind what kind of damage a player of the same level could inflict on the mob. A "Newbie Area" type mob may have only 100 HPs and do only 5-10 HPs of damage per attack, while a "Super Av" type mob may have 30000 HPs and do 75-100 points of damage, the trick is to find a nice balance. Where to Start -------------- As with objects, it is a good idea to keep a scratch list of the vnums you've been assigned so that you can cross off those numbers that you've already used. The MUD won't let you create a new mob over an existing vnumber, but you can completely modify a mob once you've created it. To begin making mobs, you should read and understand the following three help files; MCREATE, MSET, and MSTAT. Once you have read these files and understand the workings of them, you are ready to create your first mob and begin populating your areas. Step 1: Making a Mob. --------------------- MCREATE (Shortform: MCR) Syntax: mcreate <vnum> <keywords> Syntax: mcreate <vnum> [cvnum] <keywords> Creates a new mobile. A prototype monster will be created with the selected vnum, and set up with the plainest of default values. A material image of the magical prototype will appear before you, for you to futher modify with MSET. You can also use MCREATE to copy an existing mob to a new vnumber. Example: mcr 1001 1000 man guard kings This will create a new mob with the vnumber of 1001 with the same stats as the mob with the vnum 1000, and the keywords of 'man guard kings'. Step 2: Modifying Your Mob. --------------------------- MSET Syntax: mset <victim> <field> <value> Field being one of: str int wis dex con cha lck sex class gold hp mana move practice align race hitroll damroll armor affected level thirst drunk full blood flags pos defpos part (see BODYPARTS) sav1 sav2 sav4 sav4 sav5 (see SAVINGTHROWS) resistant immune susceptible (see RIS) attack defense numattacks speaking speaks (see LANGUAGES) name short long description title spec clan council quest qp qpa favor deity For editing index/prototype mobiles: hitnumdie hitsizedie hitplus (hit points) damnumdie damsizedie damplus (damage roll) To toggle area flag: aloaded To toggle pkill flag: pkill MSET sets the properties of mobiles. If a mobile has the PROTOTYPE flag, modifying an instance of the mobile will also modify the index mobile, which all other instances of the mobile are based on. (In other words, if a mob is prototype, anything you do to one copy will affect all other copies with the same vnum.) [Help Files follow...don't be afraid!] Step 3: Checking up on your Mobs -------------------------------- MSTAT Syntax : mstat <mob or mobvnum> Example: mstat stag mstat 1000 MSTAT shows you statistics on a character or mobile. If a copy of the mobile is present in the game, you can access it using its vnum. MSTAT defaults to the mob in the room with you (assuming it matches the mob you're searching for). MLIST (Shortform: MLI) Syntax: mlist Syntax: mlist <first mob> Example: mlist 1000 Syntax: mlist <first mob> <last mob> Example: mlist 1000 1025 This command will list all of the prototype mobs in your area, when used with no arguments. When used with a single argument it will list all mobs including and after the argument, and when used with two arguments, it will list all mobs including and between the two. The Advanced Way of Mob Making ------------------------------ When I make mobs, I take the template that follows and make an ASCII file for each mob I create. Then I can upload the file 1 line at a time with an ASCII uploading-type terminal program or a cut-and-paste will work. There is no need to send the entire template every time you make a mob, only send the parts of the mob that you wish to modify. (I've included a sample mob-file at the end of this file.) -----TEMPLATE START----- mcr (vnum) (keywords) [Try to include at least 1 unique keyword] mset (keyword) short (short desc) mset (keyword) long (long desc) mset (keyword) sex # [0 Neutral/1 Male/2 Female] mset (keyword) level # [Based on your area] mset (keyword) class # [See NPC_CLASS] mset (keyword) race (race) [See NPC_RACES] mset (keyword) str 13 [Default Value] mset (keyword) int 13 [Default Value] mset (keyword) wis 13 [Default Value] mset (keyword) dex 13 [Default Value] mset (keyword) con 13 [Default Value] mset (keyword) cha 13 [Default Value] mset (keyword) lck 13 [Default Value] mset (keyword) gold # [Based on Area Level] mset (keyword) align # [>-350=E, -350-+350=N, +350<=G] mset (keyword) hitroll # [+/- Mob's HR] mset (keyword) damroll # [+/- Mob's DR] mset (keyword) hitdie #d#+# [Mob's HPs - See HP_GUIDELINES] mset (keyword) damdie #d#+# [Dmg Mob does - See DMG_GUIDELINES] mset (keyword) numattacks # [Number of attacks/round] mset (keyword) sav1 0 [See SAVINGTHROWS] mset (keyword) sav2 0 [See SAVINGTHROWS] mset (keyword) sav3 0 [See SAVINGTHROWS] mset (keyword) sav4 0 [See SAVINGTHROWS] mset (keyword) sav5 0 [See SAVINGTHROWS] mset (keyword) flags (act flags) [See ACTFLAGS] mset (keyword) spec (specfuncs) [See SPEC_FUNCTIONS] mset (keyword) affected (affects) [See AFFECTED_BY] mset (keyword) speaks (languages spoken) [See LANG_GUIDELINES] mset (keyword) speaking (language speaking) [See LANG_GUIDELINES] mset (keyword) part head arms legs heart guts hands feet [See BODYPARTS] mset (keyword) resistant (resists) [See RESISTANCES] mset (keyword) immune (immunes) [See IMMUNES] mset (keyword) susceptible (suscepts) [See SUSCEPTS] mset (keyword) attack (attacks) [See ATTACKS] mset (keyword) defense (defenses) [See DEFENSES] mset (keyword) armor (AC) [Mob's AC without Armor] mset (keyword) description [Mob's Description] 01234567890123456789012345678901234567890123456789012345678901234567890 +---------+---------+---------+---------+---------+---------+---------+ (The above 2 lines are intended as a guide for line length when making up a mob description. Delete before sending.) -----END OF TEMPLATE----- The Help Files -------------- NPC_CLASS Classes are represented by their numerical value when using MSET. Value | Class Value | Special NPC Class ------+------------- ------+------------------ 0 | Mage 20 | Baker 1 | Cleric 21 | Butcher 2 | Thief 22 | Blacksmith 3 | Warrior 23 | Mayor 4 | Vampire 24 | King 5 | Druid 25 | Queen 6 | Ranger 7 | Augurer 8 | Paladin* * Not yet fully implemented HP_GUIDELINES One of the hardest decisions when making a mob. A mob can have as many or as few HPs as you want it to, depending on what you're trying to accomplish with it. The following table is what *I* use as a guideline when I'm making mobs (Thanks to Brittany for this): Mob Level | HPs/Lvl HPs are expressed as a #d#+# value so that when ----------+-------- the mob repops, the MUD can generate a random 1-10 | 10 level of HPs. What this means is; 11-20 | 25 "(number of dice) x (dice size) + (number)" 21-30 | 50 So a L1 mob might have 1d10+90 HPs or a range 31-40 | 100 of 91-100 HPs depending on how it repops. 41-50 | 200+ If you wish to generate a SPECIFIC level of HPs, say 500 HPs, it would translate to: 1d1+499. DMG_GUIDELINES This is the amount of damage a mob will do when it's fighting unarmed. Much like HPs, the amount of damage a mob can do will vary greatly depending on what you're trying to accomplish. Your main goal is to keep the mob's damage "believable" while at the same time, you want to inflict some sort of damage on players within the Mob's level range. I usually try to make the damage done by a mob comparable to that done by a warrior of the same level (how you do it is up to you). Damage is generated the same way as HPs; (numdice)x(dicesize)+(number). So a mob doing 5d8+12 damage will generate a range of 17-52 points of damage each time it lands a blow. NPCRACES NPC_RACES A mobile may be any of the following races: human elf dwarf halfling pixie vampire half-ogre half-orc half-troll half-elf gith ant ape baboon bat bear bee beetle boar bugbear cat dog dragon ferret fly gargoyle gelatin ghoul gnoll gnome goblin golem gorgon harpy hobgoblin kobold lizardman locust lycanthrope minotaur mold mule neanderthal ooze orc rat rustmonster shadow shapeshifter shrew shrieker skeleton slime snake spider stirge thoul troglodyte undead wight wolf worm zombie bovine canine feline porcine mammal rodent avis reptile amphibian fish crustacean insect spirit magical horse animal humanoid monster god ** Try to match your Mob's race as close as you can so we don't have mobs like, 'a small horse' with a race of Halfling. LANG_GUIDELINES A mob might speak more than one language for whatever reason you have. All mobs know "common" and "clan" as defaults and it's up to you to set whatever other language(s) the mob will speak. Here's a list of the languages currently available; Common, Elvish, Dwarven, Pixie, Ogre, Orcish, Trollese, Rodent, Insectoid, Mammal, Reptile, Dragon, Spiritual, Magical, Goblin, God, Ancient, Halfling, Clan, Gith. If you wish for your mob to KNOW more than one language, simply; mset (mob) speaks (language) (language) (language) To force a mob to be speaking a certain tongue when it repops, simply; mset (mob) speaking (language) Examples; mset horse speaks mammal mset horse speaking mammal Try to match the language your mob is speaking to it's race, IE: A 'horse' shouldn't repop speaking common. ** NOTE: Anything your mob 'says' or 'emotes' will be shown to players in the language the mob is SPEAKING. SAVINGTHROWS Saving throws: sav1 - Saving vs. poison or death sav2 - Saving vs. wands sav3 - Saving vs. paralysis or petrification sav4 - Saving vs. breath (dragon breath) sav5 - Saving vs. spells or staves ACTFLAGS Flag | Description -------------+--------------------------------------- sentinel | Mobile always stays at its post. scavenger | Mobile picks up items of value. aggressive | Mobile attacks players. stayarea | Mobile does not leave its home area. wimpy | Mobile flees when low in hits. practice | Players can "practice" at this mobile. immortal | Mobile is immortal (not implemented). deadly | Mobile has a deadly poison (not implemented). meta_aggr | Mobile is VERY aggressive (not implemented). nowander | Mobile doesn't wander unless attacked. mountable | Mobile can be mounted. prototype | Mobile is under construction. running | Mobile is running (Moves twice as fast). noassist | Mobile won't assist other mobs in a fight. SPECFUNCS These special functions are available to assign to mobiles. Use them sparingly: To add spec: mset <mob> spec <function> (ex. mset guard spec spec_guard) To remove: mset <mob> spec none Special Function | Description ----------------------+---------------------------------------------- spec_breath_any | Mobiles breathes 1 of the 5 breaths randomly. spec_breath_acid | Mobile has breath of acid. spec_breath_fire | Mobile has breath of fire. spec_breath_frost | Mobile has breath of frost. spec_breath_gas | Mobile has breath of gas. spec_breath_lightning | Mobile has breath of lightning. spec_cast_adept | Mobile casts helpful spells. spec_cast_cleric | Mobile casts healing spells. spec_cast_mage | Mobile casts offensive spells during battle. spec_cast_undead | Mobile casts offensive spells during battle. | (Mob will also summon those who flee.) spec_guard | Mobile attacks KILLERS and THIEVES. spec_executioner | Same as above except summons guards to help. spec_fido | Mobile eats corpses. spec_janitor | Mobile picks up trash. spec_mayor | Reserved for the mayor... don't use. spec_poison | Mobile poisons during battle. spec_thief | Mobile steals gold from players. AFFECTEDBY AFFECTED_BY The following are affect flags that can be used when osetting an item (with oset <item> affect affected <affect flag>). These flags can also be used when msetting a mobile (mset <mob name> affected <affect flag>). They may additionally be used to mset players if your level allows it. Blind Invisible Detect_evil Detect_invis Detect_magic Detect_hidden **Hold** Sanctuary Faerie_fire Infrared Curse **Flaming** Poison Protect Paralysis Sneak Hide Sleep Charm Flying Pass_door Floating Truesight Detect_traps Scrying Fireshield Shockshield Iceshield Aqua_breath Possess Note - Hold and Flaming are current not in use. PART BODYPARTS XFLAGS Misc body parts: Head Arms Legs Heart Brains Guts Hands Fingers Ear Eye Long_Tongue Eyestalks Tentacles Fins Wings Tail Scales Hooves Haunches Forelegs Feet Used for attacking: Claws Horns Tusks Tailattack Sharpscales RIS RESISTANT IMMUNE SUSCEPTIBLE Players and mobiles may have resistance, suceptibility or immunity to certain types of attack: Fire Cold Electricity Energy Blunt Pierce Slash Acid Poison Drain Sleep Charm Hold Nonmagic Plus1 Plus2 Plus3 Plus4 Plus5 Plus6 Magic Paralysis ATTACKS [These are in ADDITION to numattacks.] Bite Claws Tail Sting Punch Kick Trip Bash Stun Gouge Backstab Feed Drain Firebreath Frostbreath Acidbreath Lightnbreath Gasbreath Poison Nastypoison Gaze Blindness Causeserious Earthquake Causecritical Curse Flamestrike Harm Fireball Colorspray Weaken ** (Some are not implemented). DEFENSES Parry Dodge Heal Curelight Cureserious Curecritical Dispelmagic Dispelevil Sanctuary Fireshield Shockshield Shield Bless Stoneskin Teleport Monsum1 Monsum2 Monsum3 Monsum4 Disarm (Some are not implemented). Special Mobs - Shops! --------------------- Shops and Repairshops are SPECIAL functions that Mobs do. A mob must be specifically set as a shop before it will sell the items in its inventory or repair an item. The following help files explain how to make a shop. MAKESHOP Syntax: makeshop <mobile vnum> Creates a new shop and assigns it to a mobile. The levels of the items in the shop are picked randomly based on item type and the level of the area: Item Type | Level Range ----------+----------------------- default | 0 pill | 0 to 10 potion | 0 to 10 scroll | value[0] of the scroll wand | 10 to 20 staff | 15 to 25 armor | 5 to 15 weapon | 5 to 15 SHOPSET Lets you set certain stats on a shop. Syntax : shopset <mobile vnum> <field> <value> Example: shopset 1000 buy1 armor [Shop will buy armor ] shopset 1000 open 8 [Shop opens at 8am ] shopset 1000 close 21 [Shop closes at 9pm ] shopset 1000 buy 90 [Shop pays 90% of value to BUY] shopset 1000 sell 130 [Shop makes 30% profit on SELL] Fields | Meaning -------+--------------------------------------------------- buy# | Types of items the keeper will buy buy | Percentage of item's value mob will pay for an obj sell | Percentage of item's value mob will sell an obj at open | Hour shop opens close | Hour shop closes keeper | Vnum of shop keeper SHOPSTAT Syntax: shopstat <mobile vnum> Shows statistics on a specific mobile's shop. SHOPS Syntax: shops Displays statistics on all the shops in the MUD. SHOPVALUES Syntax : shopset <mobile vnum> buy# <value> Example: shopset 1000 buy1 8 [Mob will buy Treasures] shopset 1000 buy1 treasure [Either form works ] 1 - light 21 - pen 41 - rune 2 - scroll 22 - boat 42 - runepouch 3 - wand 23 - corpse 43 - match 4 - staff 24 - corpse_pc 44 - trap 5 - weapon 25 - fountain 45 - map 6 - _fireweapon 26 - pill 46 - portal 7 - _missile 27 - blood 47 - paper 8 - treasure 28 - bloodstain 48 - tinder 9 - armor 29 - scraps 49 - lockpick 10 - potion 30 - pipe 50 - spike 11 - _worn 31 - herbcon 51 - disease 12 - furniture 32 - herb 52 - oil 13 - trash 33 - incense 53 - fuel 14 - _oldtrap 34 - fire 54 - shortbow 15 - container 35 - book 55 - longbow 16 - _note 36 - switch 56 - crossbow 17 - drinkcon 37 - lever 57 - projectile 18 - key 38 - pullchain 58 - quiver 19 - food 39 - button 59 - shovel 20 - money 40 - dial 60 - salve ** (Not all are implemented) Repair Shops ------------ When equipment gets damaged, it needs to be repaired, and (so far) only special repair mobs can do that job. Currently, repairshops can only repair armor OR recharge wands/staves, they can't do both. MAKEREPAIR Syntax: makerepair <mobvnum> Automatically gives the mobile the ability to repair damaged equipment. Use 'repairset' to set the parameters by which the shop will function. See REPAIRSET, REPAIRSTAT, REPAIRSHOPS REPAIRSET Syntax : repairset <mobile vnum> <field> <value> Example: repairset 1000 fix1 armor [Mob will repair armor ] repairset 1000 profit 125 [Mob charges 25% more than usual] repairset 1000 type 1 [Mob is a standard repair shop ] repairset 1000 open 13 [Mob opens shop at 1pm ] repairset 1000 close 0 [Mob closes shop at 12am ] This command allows you to set the following fields for repair shops: Fields | Meaning -------+---------------------------------------------- fix# | Types of items the keeper will fix | (armor, weapon, wand, staff - see SHOPVALUES) profit | Profit on fixing items type | Repair shop type | [type 1 = standard] | [type 2 = recharge] open | Hour shop opens close | Hour shop closes keeper | Vnum of repair shop keeper REPAIRSHOPS Syntax: repairshops Displays statistics on all the repair shops in the MUD. REPAIRSTAT Syntax: repairstat <mobile vnum> Shows statistics on a specific mobile's repair shop. A Sample Mob File: ------------------ -----START FILE----- mcr 8442 stag deer dun dark mset stag short A dun coloured stag mset stag long A dark stag patrols the forest, watching for predators. mset stag sex 1 mset stag level 20 mset stag class 3 mset stag race mammal mset stag gold 1000 mset stag align 0 mset stag hitdie 5d10+450 mset stag damdie 2d10+5 mset stag numattacks 2 mset stag flags stayarea wimpy noassist mset stag affected hide detect_hidden mset stag speaks mammal mset stag speaking mammal mset stag part head heart guts horns forelegs hooves haunches mset stag resistant charm mset stag attack kick bash mset stag defense dodge mset stag description A proud dun coloured stag regards you with some trepidation, as it's ever-twitching nose tests the air in an attempt to catch your scent, and determine if you're friend or foe. /s -----END OF FILE-----