Henri's One Stop Shop for Area Builder Help Overview Each zone in gizmo is composed of five files. The zone file, the world file, the mobile file, the object file, and the special procedure file. The zone file (always ending with the three letter extension "zon") is the file that determines which mobiles (mobs) or objects load in each particular room. The zone file could be considered the master file for the area, and is sometimes referred to as the area file. The world file (ending in "wld") sets up the rooms of the area. The room descriptions and how the rooms are linked together are determined by this file. The mobile (ending with "mob") and object (ending with "obj") files determine the respective statistics of the mobs and items that you would like to add to your area. This help file will be illustrated with examples from the Welmar zone (number 89). The complete zone files can be found at the gizmo website. It is important that you use a text editor as some wordprocessor programs will add special characters to the beginning or end of the file that will corrupt it when Gizmo tries to read it. I.) The World File Probably the best place to begin coding your area is with the room file. Most of your story can be developed through rooms and it will give you a better idea of how many different mobs you will need to populate your zone. The wld file is simply a listing of certain properties of each room. WLD FILE Part A room number The room number is exactly the same as what an immortal sees after the room title. I doesn't what order you number you rooms in, as long as they appear in numerical order in the wld file. The first two (or perhaps three) digits of each room are your zone number. For instance, if you were assigned zone 89 you would start with room 8901 and could number all the way up to 8999. In front of each room number you must put a # sign to indicate the start of a new room. The first line of the wld file for zone 89 would be: #8901 WLD FILE B room name Simply enough, it is the name of the room you are creating. Make sure you capitalize appropriately. And directly after the room name you put a tilde (~). For zone 89 the first room in the file is called The King's Road so the second line of the file, right after the first room number would be: The King's Road~ WLD FILE C room description The room description needs to be indented by three spaces and no line should be longer than 75 characters. On the line after the last line of your room description should be a tilde. The next few lines of the zone 89 world file would be: You come out onto the great King's Road. The road is very well built, and goes in a straight line due east-west. To your west is a small forest. ~ WLD FILE D fourth entry The fourth entry into the world file starts on the line directly after the line with the tilde from the room description. The first entry is the zone number in our case 89. The second entry contains the properties of the room. You can set weather the room is dark, a death trap, mobs are allowed, magic is allowed, or "private" (which restricts relocating abilities of players). This value is a bit vector which is made by just adding all the values for the specifications you want into a single integer. Let's say you wanted to make a room that was dark, nomob (though they could be loaded there), and nomagic. You would add up the values for each of these bits (1+4+128=133) (the values for these bits can be found in the quick reference section at the end of this file. and the second value on your line would be just 133. But in keeping with our example zone, the first room in the Welmar area is nomob so the second value of this line for the first room would be a 4. The third value of this line determines what the terrain of the room is like, and thus how many movement points it takes for players to walk out of the room. Our example room "The King's Road" is in a city so this value 1. (These values can also be found in the quick reference section at the end of the file.) The fourth entry for the first room of the Welmar zone would be: 89 4 1 WLD FILE E exits Next you must specify the directions of all possible exits, what rooms they lead to, and what players will see if they look in that direction. In the example room there is an exit east to room 8902 and an exit west to room 4852. Separate entries must be made for each exit. Look in the table (in the quick reference section) and find the lowest direction code and start with that exit. The direction "east" has a code of 1 and the direction "west" has a code of 3, so we begin with the exit to room 8902. The first line of an exit entry is a capital "D" followed by the direction code. For this exit it would be: D1 The next line contains the text that a player sees when he looks in that direction, with a tilde on the line following. If you look east from room 8901 you see "The King's Road continues in a straight line to the east." So the next two lines would be: The King's Road continues in a straight line to the east. ~ Note that exit descriptions are not required of area builders, in fact the person who built the Welmar castle did not use one for the western exit from room 8901. If you cannot think of a suitable exit description skip the line where the text would normally go, but you must include the line with the tilde. The next line of each exit description will contain the keywords if there is a door in that direction followed with a tilde on the same line. If you had a door called a cupboard that was supposed to look like a panel this line might be: cupboard panel door~ However there are no doors in the eastern direction from room 8901 so for out example this line looks like: ~ The last line of the exit entry contains the actual states of the door. The first value of this line specifies if the lock on the door can be picked (if there is a door there at all). Since there isn't a door to the east this value is 0 for room 8901. The second value of this line is the object number of the key that is used to open the door. If there is no door in that direction (or the door can only be opened by picking it) this value is -1. The last value on this line is the number of the room to which this exits leads. The last line of the first exit entry of room number 8901 is: 0 -1 8902 Then put the entries to other rooms in order by exit number. WLD FILE F extra descriptions This is where you would put the text of a sign or a plaque on the wall. Many area builders put one of these in a room that says who the area was created by. The first line of the extra description is just a capital "E." The second line of the extra description contains the keywords used to look at the description with a tilde at the end of the line. The second line(s) contain the text on the sign followed by a tilde on the line after the last line of the description. If you don't have an extra description for a room just leave all of this out. Room 8901 doesn't have an extra description but room 8904 does and it looks like: E whirls whirl moat~ You can't see much, but it seems that something beneath the surface is creating them. ~ WLD FILE G ending a room entry After you have entered all the exits and any extra descriptions you want have a line with a capital "S" and start the next room on the next line. After the "S" of your last room you always will have the next two lines (regardless of zone number or room number). #9999 $~ II.) The Monster File The monster file is probably the next part you should code. It contains specifications for mobiles. I will go in to much less detail for the next two files as they follow much of the same format as the world file. MOB FILE A mobile number Start with your zone followed by 01. For the first mob in the Welmar zone it is: #8901 MOB FILE B keywords Separate each keyword with a space and end the line with a tilde. For mob 8901 this is: king welmar~ MOB FILE C short description This is what the mud uses when the mobile does an action (like hits g ring lies here, barely touching the ground.~ OBJ FILE E action description Do not enter any text in this field, but make sure you mark its place with a tilde. For all items this line should be: ~ OBJ FILE F type, properties, body location It would be easiest to show the example and explain afterwards. 9 1024 3 Since the item can be worn the first value is 9. (These values are found in a table in appendix 3.) The next value is a bit vector that describes what the item is affected by. The only thing that affects the ethereal ring is anti- evil so this value is 1024. Since this value is a bit vector just add up all the attributes you want and place it in the second value of this line. The third value is the bit vector of where the item can be worn or if it can be taken. In this instance a value of 3 means the item can be worn on a finger (2) and that is can be picked up off the ground (1). OBJ FILE G item values The importance of each of the four values in the next value depends on what type of item you set it to be in part F. For an item of type 9 (armor) the first value is the armor content field. A positive value will increase the armor of the player, a negative value will decrease a player's AC. In the case of object type 9 the other 3 values are meaningless. Since object 8901 has no armor content this line would look like: 0 0 0 0 The different importance each of tht the following command DIRECTLY after Ariel. E 1 5006 99 13 To recap, the forth, fifth, and sixth lines of our zone file would be: M 0 5010 1 5004 G 1 5001 99 E 1 5006 99 13 O (load an object): Format: 'O' Load an object and place it in a room. If we wanted to place object number 5033 in room 5014 the line of code would be: O 0 5033 1 5014 P (put object in object): Format: 'P' So to put object number 5010 inside object number 5033 (make sure 5033 is a container!) Like in loading objects on mobs make sure this line directly follows the object you would like to place something into. P 1 5010 99 5033 D (set state of door) Format: 'D' The door state can be 0 for open at reset, 1 for close at reset, or 2 for closed and locked at reset. The exit numbers are 0 for north, 1 for east, 2 for south, 3 for west, 4 for up, and 5 for down. To set the door as closed, but not locked, that leads north from room 5077 to 5078 we would use the two lines: D 0 5077 0 1 D 0 5078 2 1 R (remove object from room) Format: 'R' ZON FILE C closing After you have finished setting all the mobs, door, and objects in you body the closing is very simple. Always use the following three lines (regardless of your zone number). S #999 $~ ZONE FILE D remark statements Remark stata death trap. (Make sure death traps are always lighted-so players can see the room name when they use the "exit" command.) NO_MOB 4 No monsters may walk around in here INDOORS 8 Doesn't have any effect that I know of. LAWFUL 16 not defined yet-don't use it NEUTRAL 32 not defined yet-don't use it CHAOTIC 64 not defined yet-don't use it NO_MAGIC 128 Magic of any sort will be absorbed. TUNNEL 256 not defined yet-don't use it PRIVATE 512 places several restrictions on ethereal passage, relocation, and lower level god cannot "goto" the room if two or more SUP+ gods are present. ARENA 4096 Players can kill each other for exp without getting a killer flag. CLUB 8192 A resting room, gives extra regeneration. CLAN 16384 This is reserved for use in clan houses. These are the possible values for the room type. (WLD FILE D) SECT_INSIDE 0 Walking indoors SECT_CITY 1 Walking in a city SECT_FIELD 2 Walking in a field SECT_FOREST 3 Walking in a forest SECT_HILLS 4 Walking in hills SECT_MOUNTAIN 5 Climbing in mountains SECT_WATER_SWIM 6 Swimming SECT_WATER_NOSWIM 7 Can't swim here, players must use a boat Direction codes (WLD FILE E) north 0 east 1 south 2 west 3 up 4 down 5 door attributes (WLD FILE E) no door 0 (players just walk through) can be picked 1 cannot be picked 2 Appendix II. MOB FILE Quick Reference Guide Mobile action values for the behavior bitvector. (MOB FILE F) ACT_SPEC 1 The monster has a special procedure that is defined in the special procedure file. ACT_SENTINEL 2 The monster will not move around in the world. ACT_SCAVENGER 4 The monster will pick up things lying on the ground. It will pick up the most expensive items first. ACT_ISNPC 8 Don't use this. ACT_NICE_THIEF 16 The monster will not attack a thief which has been caught in the act of stealing from this monster. ACT_AGGRESSIVE 32 The monster will attack and attempt to kill any player it can get it's claws on. It will not attack players it can't see (for example dark rooms or when player is invisible, unless the monster can detect invisibility) ACT_STAY_ZONE 64 The monster will never move into another zone of the world (always use this for mobiles that you don't set as sentinels). ACT_WIMPY 128 When this bit is set, the monster will flee when it's getting percentwise low on hitpoints. If the monster is both aggressive and wimpy, then it will only attack players that are not awake. (suffering players) ACT_SUBDUE 256 The monster is subdued already. ACT_RIDE 512 Don't use ACT_MU 1024 The mobile user magic user spells, to it's best ability according to its level. ACT_CL 2048 The mobile uses cleric spells. ACT_TH 4096 The mobile uses thief skills, backstab, circle and dual ACT_WA 8192 The mobile punches, spin kicks, has dual and triple. ACT_MEMORY 16384 Monster will remember who attack it. ACT_ARM 131072 No one can disarm this monster's weapon. ACT_SWITCH 262144 The mobile will switch the target in midst of combat. Values for the "affected by" bitvector. Note that many of these should not be used on non-player characters. (MOB FILE F) AFF_BLIND 1 RESERVED PLAYERS AFF_INVISIBLE 2 The monster is invisible AFF_DETECT_EVIL 4 RESERVED PLAYERS AFF_DETECT_INVISIBLE 8 The monster can see invisible players AFF_DETECT_MAGIC 16 RESERVED PLAYERS AFF_SENCE_LIFE 32 RESERVED PLAYERS AFF_HOLD 64 DO NOT USE AFF_SANCTUARY 128 The monster has sanctuary AFF_GROUP 256 RESERVED PLAYERS AFF_CURSE 1024 DO NOT USE AFF_FLAMING 2048 DO NOT USE AFF_POISON 4096 RESERVED PLAYERS AFF_PROTECT_EVIL 8192 DO NOT USE AFF_PARALYSIS 16384 DO NOT USE AFF_MORDEN_SWORD 32768 DO NOT USE AFF_FLAMING_SWORD 65536 DO NOT USE AFF_SLEEP 131072 RESERVED PLAYERS AFF_DODGE 262144 DO NOT USE AFF_SNEAK 524288 The monster has sneak AFF_HIDE 1048576 The monster will be hidden, and can only be detected by a "sense life" spell AFF_FEAR 2097152 DO NOT USE AFF_CHARM 4194304 The monster will act as charmed when a "follow " is entered. Note that players can't force monsters to follow them. AFF_FOLLOW 8388608 RESERVED FOR PLAYERS AFF_FLY 16777216 The monster can fly. AFF_SUBDUE 33554432 The monsterroll for damage Value[3]: The weapon type. Type is one of: NUMBER CATEGORY Message type 2 : Slash "whip/whips" 3 : Slash "slash/slashes" 4 : Whip "whip/whips", 5 : Sting "sting/stings" 6 : Bludgeon "crush/crushes" 7 : Bludgeon "pound/pounds" 8 : Claw "claw/claws" 11 : Pierce "pierce/pierces" ITEM_FIREWEAPON (6) Value[0]: number of this gun. Value[1]: number of shoots left. Value[2]: Number of dice to roll for damage Value[3]: Size of dice to roll for damage ITEM_MISSILE (7) Value[0]: - Value[1]: - Value[2]: - Value[3]: - ITEM_TREASURE (8) Value[0]: - Value[1]: - Value[2]: - Value[3]: - ITEM_ARMOR (9) Value[0]: The effective AC. >0 enhances the armour class. <0 reduces the the armour class (cursed armour for example). Value[1]: - Value[2]: - Value[3]: - ITEM_POTION (10) Value[0]: Level of the spell in the potion. Value[1]: Which spell (Listed elsewhere in this file) Value[2]: Which spell Value[3]: Which spell The values(1-3) are three (or less) different spells, mixed in the potion. Unused spells should be set to -1. Eg. Value 0 : 30 (Level) Value 1 : 27 (Harm) Value 2 : 17 (Curse) Value 3 : 4 (Blindness) (* Don't drink this - It's bad for your health! *) ITEM_WORN (11) Value[0]: - Value[1]: - Value[2]: - Va maximum for drunkness/fullness/thirst. When hours are zero for any drunkness/fullness/thirst the person will be sober, hungry, or thirsty respectively. Value[3]: if this value is non-zero, then the drink is poisoned. ITEM_KEY (18) Value[0]: The key-type. This value must match the lock-type the door that the key can open. Value[1]: - Value[2]: - Value[3]: - ITEM_FOOD (19) Value[0]: The number of hours, that this food will fill the stomach Value[1]: - Value[2]: - Value[3]: If this value is non-zero, the food is poisoned. ITEM_MONEY (20) Value[0]: The number of gold coins "in the pile of coins". Value[1]: - Value[2]: - Value[3]: - ITEM_PEN (21) Value[0]: - Value[1]: - Value[2]: - Value[3]: - ITEM_BOAT (22) Value[0]: Value[1]: Value[2]: Value[3]: ITEM_BULLET (23) Value[0]: - Value[1]: - Value[2]: The # of the fireweapon for this bullet. Value[3]: The number of bullets. ITEM_MUSICAL (24) Value[0]: From which song Value[1]: To which song it can play Value[2]: - Value[3]: - Item affects codes. (OBJ FILE K) APPLY_NONE 0 DO NOT USE. APPLY_STR 1 APPLY_DEX 2 APPLY_INT 3 APPLY_WIS 4 APPLY_CON 5 APPLY_SEX 6 DO NOT USE. APPLY_CLASS 7 DO NOT USE. APPLY_LEVEL 8 DO NOT USE. APPLY_AGE 9 APPLY_CHAR_WEIGHT 10 APPLY_CHAR_HEIGHT 11 APPLY_MANA 12 APPLY_HIT 13 APPLY_MOVE 14 APPLY_GOLD 15 DO NOT USE. APPLY_EXP 16 DO NOT USE. APPLY_AC 17 APPLY_ARMOR 17 APPLY_HITROLL 18 APPLY_DAMROLL 19 APPLY_SAVING_PARA 20 These five are saving throws. APPLY_SAVING_ROD 21 APPLY_SAVING_PETRI 22 APPLY_SAVING_BREATH 23 APPLY_SAVING_SPELL 24 This is the most used saving throw. APPLY_SKILL_SNEAK 25 silly skill affects. APPLY_SKILL_HIDE 26 APPLY_SKILL_STEAL 27 APPLY_SKILL_BACKSTAB 28 APPLY_SKILL_PICK_LOCK 29 APPLY_SKILL_KICK 30 APPLY_SKILL_BASH 31 APPLY_SKILL_RESCUE 32 APPLY_SKILL_BLOCK 33 APPLY_SKILL_KNOCK 34 APPLY_SKILL_PUNCH 35 APPLY_SKILL_PARRY 36 APPLY_SKILL_DUAL 37 APPLY_SKILL_THROW 38 APPLY_SKILL_DODGE 39 APPLY_SKILL_PEEK 40 APPLY_SKILL_BUTCHER 41 APPLY_SKILL_TRAP 42 APPLY_SKILL_DISARM 43 APPLY_SKILL_SUBDUE 44 APPLY_SKILL_CIRCLE 45 APPLY_SKILL_TRIPLE 46 Appendix IV. ZON FILE Quick Reference Guide These are the codes for the body locations where you want to load an item on a mobile. (ZON FILE B) WEAR_LIGHT 0 WEAR_FINGER_R 1 WEAR_FINGER_L 2 WEAR_NECK_1 3 WEAR_NECK_2 4 WEAR_BODY 5 WEAR_HEAD 6 WEAR_LEGS 7 WEAR_FEET 8 WEAR_HANDS 9 WEAR_ARMS 10 WEAR_SHIELD 11 WEAR_ABOUT 12 WEAR_WAISTE 13 WEAR_WRIST_R 14 WEAR_WRIST_L 15 WIELD 16 HOLD 17