Building Guidelines
ARMOR
Value0 is the "armorclass" of the armor. Use "oset <armor> armor <armorclass>" to set it when building online.
The various wear locations can be seen here. The armor value of pieces worn on body is multiplied by 3. Head, Legs, Arms, and About are multipled by 2.
Use the following to figure out the proper AC value of a piece of armor you are building.
WEAR LOCATION
MATERIAL QUALITY
LEVEL Rank
*
This is the BASE ARMORCLASS of the item. To add more armor protection (perhaps because its magically enhanced that way, for example), add an "affect armor <AMOUNT>".
* Unlike standard SMAUG, armorclass is better as it goes up.
THINGS TO CONSIDER
Cloth, Leather, Bone : Organic flag?
Chainmail: 15% susceptible to pierce?
Platemail: +5% susceptable to electricity?
Heavy Armor on Head/Face/Ears/Eyes: negative to perception?
Stiff Armor: negative to stamina and/or dexterity?
MOBS
LEVEL HPS* DAM** # ATKS HITROLL AC 1 25 1 1 -2 4 10 2 50 3 1 -2 6 15 3 75 4 1 -2 8 20 4 100 5 1 -2 10 25 5 125 6 1 -2 12 30 10 250 13 1 -3 22 55 20 500 25 1 -4 42 105 25 625 31 1 -4 52 130 30 750 38 1 -4 62 155 40 1000 50 1 -4 82 205 50 1250 63 1 -4 102 255 60 1500 75 2 - 5 122 305 70 1750 88 2 - 5 142 355 75 1875 94 2 - 5 152 380 80 2000 100 2 - 5 162 405 90 2250 113 3 -5 182 455 95 2375 119 3 -6 192 480 99 2475 124 3 - 6 200 500 100 3000 150 4 - 7 225 600 101 3500 200 5 - 8 250 700 102 4000 250 6 - 9 275 800 103 4500 300 7 - 10 300 900 104 5000 350 8 - 11 325 950 105 6000 450 9 - 12 350 1000 Make sure mobs are balanced in such a way that if you give a mob double the hps than is typical for its level, then it should do some combination of less damage, be easier to hit, and not hit as often, in order to make it still "of that level".
*HP'S are figured in three parts: "hitnumdice"(A), "hitsizedice"(B) and "hitplus". In the formula AdB+C or "roll A B-sided dice and then add C to it. For simplicity and uniformity, leave the variable parts (A and B) very small, no more than 10% of the total. A good value is hitnumdice=1 and hitsizedice=10, and then use hitplus value from above table. Keep in mind that "warrior" class mobs would generally have more hps than a caster class mob.
**DAMAGE is figured in three parts: "damnumdice"(A), "damsizedice"(B) and "damroll". In the formula AdB+C or "roll A B-sided dice and then add C to it. For simplicity and uniformity, leave the variable parts (A and B) very small, no more than 10% of the total. A good value is damnumdice=1 and damsizedice=10, and then use damroll value from above table. Keep in mind that "warrior" class mobs would generally more phyical damage than a caster class mob. If a mob is wielding a weapon, the damage of the weapon is used instead of these values for determining damage.
OBJECTS
Weapons: see guidelines above.
Armor: see guidelines here.
In general, keep stats on items down, especially damage/damroll/hitroll. There are many many skills now that amplify damage so the base damage of players needs to be kept low so things dont get out of hand. Limit number of affects per item to 3 (hitroll and damroll can be considered together as one). You can have more as long as you have others to offset it. For example, if there is +6 str affect on an item, it had better have at least have -3 dex or something.
Consider making things realistic. Chainmail, while giving excellent protection, would most assuredly have some penalty to stopping "pierce" damage ("oset chainmail affect resistant pierce -15"). Heavy platemail boots would certainly have negative to dexterity and/or stamina and/or stamina regeneration.
The chart below gives a rough idea of the "power" of certain affects, and thus the range of acceptable values for them. It is intended as a guideline, and not an absolute. If you have any questions ask another builder, a main port immortal, or an implementor. In general though, if you find yourself asking "I wonder if this is too much...." it probably is, so go ahead and tone it down.
Attribute RANGE STR/DEX/INT 1 - 3 CON/WIS 1 - 2 PRC/CHA 1 - 4 HPS/MANA 5 - 75 STAMINA 10 - 100 HITROLL 1 - 20 DAMROLL 1 - 12 AC(affect) 1 - 30 RESISTANCE 1 - 10 IMMUNITY 1 - 10 SKILL 2 - 15 WEAPONSPEED* 2 - 20 * Non-weapon items that affect weaponspeed affect both hands so are doubly powerful. Acceptable range would be 1 - 10.
PETS/MOUNTS
Pets can be given abilities which they gain over time. Therefore, pets should start out at low level and gain abilties over time. Pets should only be available in "pet stores".
To make a pet store:
Give the shop room a "petshop" flag (redit flags petshop).
Put the pets for sale in room with next vnum. (if petshop is vnum 1234 then the pet storage should be 1235)
Use "instaroom" to make the mobs reset here.
Pet storage room should not have any exits and should not be normally accessible.
There is no need to have a "shopkeeper" mob in the petshop but it looks better if you have one.
The cost of the pet will be "10 * pet_level2" ( level 4 pet will then cost 10*4*4= 160 gold). This is automatic formula for standard pets with no abilities. If pet has special abilities, then you can set the price for it by setting the "gold" of the mob (pets are given to masters with 0 gold when bought, so this is OK). This setting a pet to 10,000 gold will make it cost 10,000.
To give a pet abilities:
Make sure pet has "pet" and "prototype" flag ("mset <mob> flags pet prototype" if it doesnt already).
Set the pets abiltiy. "mset <pet> ability <spell or skill name> (start level) (start amount) (max amount) (flag)"
Remeber to put multi-word spell or skill names in single quotes.
Option value defaults: start level = pet level, start amount = 10, max amount = 95, and flag = none.
Only current ability flag is "noautolearn". This means that the ability is not learned automatically when pet reaches start level. Rather is is enabled by a program (mpgainab and mpability) under some other conditions.
To make a mob mountable (rideable):
Give it "mount" flag. ("mset <mob> flags mount")
Do NOT give it "mountED" flag. This means mob is already being ridden by someone and will cause bug messages and other wacky problems.
ROOMS
A "room" is the general name give to it. It can be a general location which the builder feels warrents its own description. Room are different from mobs and objects in that only one instance of a room ever exists. The room description gives the general "feel" and "ambiance" of an area. A few guideline on writing good room descriptions:
A good minimum length for room descriptions is 3 lines/sentences. For complicated and/or important rooms it's not unusual to have a while screen-ful of description.
Do not use phrases like "You see..." or "You notice...". Just describe what is there.
Do not write a description assuming that person has just entered the room. Think to yourself "If I stand in the room for 2 hours and then type 'look', will the room description still make sense?". Avoid phrases like "Upon entering the room..." or "As you come in..."
Avoid use of "left" and "right". Instead use absolute directions (north/south/east/up/...). There is no way to assume that you know how the person entered the room. If the only enterance to the room is from the west and there is something on the north wall, it cannot be assumed that it is on the "left" (What if person backed into the room while leaping away from a fight in the next room?)
Consider the use of "extra descriptions". If you mention a particular pillar that has some writing on it, there had better be an "extra description" in the room with keyword "pillar writing" that has a description of it.
Use functional static items whenever possible. It is a very powerful tool we have here so USE IT. If you would normally describe a bookshelf in the room. Why not make an actual bookcase (heck make some real readable books and put them in it!), make it static, and then let it leave its impression on the room desc that way.
Room descriptions should be (for beginners) complete sentances with proper spelling and grammar structure. Once you are a master, you can experiment with creative room descriptions.
How to set room flags: "redit flags <flag 1> (flag2) (flag3) ..."
How to make static objects:
Make the item as you normally would. A bookshelf would be a no-takeable container. A table would be fully functional furniture you can sit "at", or a container with a "flat" container flag. The possibilities are endless.
Give the item a static flag (oset <object> flags static). The "long" desc of the object will now be attached on to the room desc so that it blends in with the background.
If its a takeable item, considering also giving it a "*static" extra description. The game will use this description for when it resets in the room. Once it is picked up, it will revert back to the "long" desc as normal and the static flag will be stripped.
Consider adding a "wrap" flag to room. This causes the text in the room desc to be streamlined and automatically wrapped at 80 characters wide. This helps the static object blend in to room desc. If the "long desc" of the static item is very long, it will stick out past the end of the screen and be obvious.
How to add an "extra description" to a room:
Use "redit ed <keyword list>" to set the list of keywords that can be used to "look" at it.
This will kick you into an editing buffer. From here, type out what will be show to the player when they look at this "extra".
Use "/s" to save the buffer.
To remove the "extra description", use "redit rmed <one of the keywords>". This will remove the entire extra description so make sure your list of keywords is right so you wont have to do it over.
SECTOR TYPES
TYPE NAME STAM LOSS WEATHER? DIG/BURY? NOTES inside 1 NO NO city 2 YES NO field 2 YES YES forest 3 YES YES hills 4 YES YES mountain 6 YES YES swim 4 YES NO noswim 1 YES NO Need boat, float, or fly underwater* 6 NO NO Need aquabreath. Fire and lightning do half damage. air 1 YES NO Need fly desert** 6 YES YES tundra 5 YES YES oceanfloor* 5 NO YES Need aquabreath. Fire and lightning do half damage. underground 4 NO YES * 50% less thirst
** 3 x thirst
WEAPONS
Damage for weapons is done using a dice formula "roll a <size>-sided dice <number> times. Where SIZE is value1 and NUMBER is value2. These can be set online with "oset <weapon> damage <number> <size>".
The average damage of a weapon should be equivalent to half its level and its maximum damage should be equivalent to its level.
WEAPON POWER Item Flags: Level Weight: Cost: Damage: D AVG:MAX: Affects:
Weapon Flags: See section on objects for additional guidelines.
WEATHER
VALUE TEMPERATURE WIND PRECIPITATION 0 cold still arid 1 cool calm dry 2 normal normal normal 3 warm breezy damp 4 hot windy wet To set for area, use "climate" command, syntax:
climate temp <cold/cool/normal/warm/hot>
climate wind <still/calm/normal/breezy/windy>
climate precip <arid/dry/normal/damp/wet>Also, one can set the name of the areas which are neighbors to the area. This allows weather patterns to flow more normally between them.