End of Time Guide to Online Creation (OLC) Version 1.0 This will be divided into numerous sections, each detailing a different aspect of what it takes in order to create areas for the MUD. I. The Basics - Details basic concepts and terms necessary to know for the rest of the guide................ read basics II. Starting Out - This will detail the beginning steps in having become a newly created immortal character and will instruct you on some of the basics of what you should do to prepare building your area. It will also include information on some of the new abilities you have as an immortal. A. Preparing Your Immortal ...... read start01 B. Preparing Your Area .......... read start03 C. Your New Abilities ........... read wizhelp III. Room Editing and Creation - This will detail the specifics of editing, creating, describing, and linking rooms, including all of the specifics of setting flags. A. Linking and Exits ............ read redit01 B. The Visuals .................. read redit03 C. Room Attributes .............. read redit04 IV. Mobile Editing and Creation - This will detail the specifics of editing, creating, describing, resetting, and customizing mobs. A. Creation .................... read medit01 B. Customization ............... read medit05 V. Object Editing and Creation - This will detail the specifics of editing, creating, describing, and customizing objects. A. Creation .................... read oedit01 B. Customization ............... read oedit09 VI. Resets - This will detail the specifics of resetting objects and mobiles into areas. A. Placing Resets .............. read resets01 VII. Programs - This will detail the basics of mob, object, and room programs along with a few basic examples. A. Creating Programs ........... read prog01 B. Example Programs ............ read prog02 VIII. Other Editors - The editors discussed in this section are generally for advanced builders at higher levels and while most builders will have no need of these, they are detailed anyhow. A. Area Editing ................ read aedit01 B. Help File Editing ........... read hedit01 C. Social Editing .............. read sedit01 -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- I. The Basics - Details basic concepts and terms necessary to know for the rest of the guide. (read basics) VNUMS - Everything within an area is based on a series of virtual numbers, always abbreviated as VNUM. Every NPC, aka mobile (or mob for short), every object, every room, and every mob/room/obj program has a VNUM. Since each of the six categories are separate entities, they can each share the same VNUM with no conflict. No single item can have more than one VNUM, nor can one VNUM of a single category can have more than one thing assigned to it. Each VNUM for each category is a unique and single thing. EDIT MODE - There are several different kinds of edit mode, each corresponding to the different categories of VNUMS listed above. -REDIT: This is short for room edit and is the method through which rooms are created and edited. -MEDIT: This is short for mobile edit and is the method through which mobs are created and edited. -OEDIT: This is short for object edit and is the method through which objs are created and edited. -MPEDIT: This is short for mobprog edit and is the method through which mprogs are created and edited. -OPEDIT: This is short for objprog edit and is the method through which oprogs are created and edited. -RPEDIT: This is short for roomprog edit and is the method through which rprogs are created and edited. While in redit mode, you have available to you a handful of 'list' commands that will allow you to see what all of the particular type is in the area. -RLIST: This requires no arguments, and will display the vnum and the first bit of the room title of every room in the area. -MLIST: This requires either a 'name' or 'all' as an argument. Listing all will allow you to see the 'name' and vnum of every mob in the area. Using a name argument will let you 'filter' the results to anything matching the specified name. -OLIST: This works just like MLIST, but allows an item_type to be supplied in place of the name. -PROGRAMS: When in mpedit, rpedit, or opedit for any program, you may type LIST in order to see the vnums of all of the programs of that type in that area. -OPLIST: -RPLIST: -MPLIST: This requires either a 'name' or 'all' as an argument. Listing all will allow you to see the 'name' and vnum of every prog in the area. Using a name argument will let you 'filter' the results to anything matching the specified name. Other types: -AEDIT: This is short for area edit and is the method through which areas are created and edited. -HEDIT: This is short for help edit and is the method through which help files are created and edited. -SEDIT: This is short for social edit and is the method through which socials are created and edited. ?: Most of the values throughout OLC can be changed into a predetermined set of flags. Most of these values can be used by typing "? " to bring up the valid set of options. II. Starting Out - This will detail the beginning steps in having become a newly created immortal character and will instruct you on some of the basics of what you should do to prepare building your area. It will also include information on some of the new abilities you have as an immortal. A. Preparing Your Immortal ...... read start01 B. Preparing Your Area .......... read start03 C. Your New Abilities ........... read wizhelp Preparing Your Immortal LAWS: It is always important for everyone to be familiar with the rules, but additionally there are a set of laws (always viewable through help laws) that help government appropriate immortal behavior. Taken directly from the helpfile: These are the basic rules for immortal conduct. Please note that all of the rules listed in help rules also apply to immortals. 1. Do not kill mortals. Exceptions may be granted, but only an implementor may grant such an exception. Slay is ONLY to be used in serious punishment of a player, or only with the player's permission in testing purposes. 2. Do not cheat. This includes, but is not limited to transfering mobs or players, loading objects for a mortal, giving a mortal ANYTHING, etc. and especially using any power, skill, or privelage granted to you as an immortal to help your mortal character in anyway. This very well may result in the deletion of both characters. 3. Only Quest Immortals and higher may run quests. 4. Do not attempt to undermine the authority of any other immortal. 5. Do not leave your area unless you are of appropriate level. Help Immortals, and any rank at or above Veteran Builder are the only ones that are allowed to leave their area. The code enforces this by not allowing goto to work outside of the current area. Taking measures to bypass this will be considered a breach of this rule. If an immortal is found outside of their area, it will likely be assumed that wasting time or cheating is the reason. 6. Any areas, descriptions, mobs, objects, code, or any other contribution made to the MUD becomes the property of the MUD. Requests for copies of said contributions may be granted, but are at the sole discretion of the Implementors. Please also note that the higher level an immortal gets, the more privileges will be granted. For example, Quest Imm or higher may be found. on occasion, to have both a mortal and an immortal character connected at the same time. Immortal level is both a reflection of skill and trust, and with greater trust comes greater freedom. The limits placed on the goto command are another example of this. Veteran Builders have the freedom to leave their area while a Trainee, New Builder, or Builder do not. Good work and trustworthy behavior will be rewarded. [continued start02] Preparing Your Immortal PROMPT: As an immortal, most things in your prompt will really no longer be necessary to know, so we have a special immortal prompt coded in. To set this prompt, type 'prompt imm' and it will automatically be generated. What you will see are two sets of brackets, the first of which will always have something filled, while the second set will start out blank, but will fill out when you are editing something. The first value, in bright red, is the name of the area you are currently in, while the second value, in dark red, is the VNUM of the room you are in. When you are in an edit mode, the first value of the second bracket, in bright green, is the editor you are currently in, while the second value, in dark green, is the VNUM you are editing. You are free to customize your prompt however you see fit, but this is the most popular and generally most helpful setup to have. HOLYLIGHT: Holylight is a toggle that is by default off. With holylight, your immortal character can see many things and interact with the world in many ways that a mortal character can not. For example, all hidden, sneaking, invisible, or otherwise obfuscated mortal characters are visible to you, along with any other cloaked immortals of the same or lower level. Additionally, room and obj vnums are visible when you are looking in the room. Also, sectors that normally can't be passed over (such as rock mountains and no swim water) along with no_enter rooms are able to be entered with holylight toggled on. Basically, this is intended to be a way for an immortal to toggle whether they see and interact with the world as an immortal or a mortal. CUSTOMIZATION: Once you are past level 111, three of the commands available to you are the GOTO, POOFIN, and POOFOUT commands. GOTO allows you immediately travel to the location of something you specify, but at lower immortal levels, it only works within your own area. An example of usage would be "goto Diablos" or "goto 5450" or "goto citizen". You may use the POOFIN and POOFOUT commands to set a custom message on arriving and leaving a room. You must use your name somewhere in the message, but otherwise it allows you full freedom on what you can set. OTHER COMMANDS: Some other commands that may be useful to know that either don't relate to building, specifically, or you need to know before beginning: -ASAVE: Probably your most important command. This is how you save your work! The two arguments for asave you need to be concerned with are 'asave changed' and 'asave area'. Changed will save everything in the MUD that has been edited since the last save, while area will save specifically the area you are working in. The MUD automatically saves areas that have been edited every 15 minutes, and there are other instances (such as when append mode is exited) that automatically saves an area, but it is a very good habit to be in to save your area often. Not every MUD has automatic saving of areas, so its important to get into the habit. -WIZINVIS: This allows you to cloak yourself so that no one on the MUD below your level will be able to detect your presence. You may also supply a numerical argument to set it to a specific level. -INCOGNITO: Like wizinvis, but it cloaks you from anyone that you are not in the same room with. -IMMTALK: This is the immortal only chat channel. A colon : may be used in place of the channel name to use this channel. -MYAREAS: This will show you every area that you have assigned to you as a builder on. If you have appropriate security to edit other areas, these will not show. -PURGE: Purge will destroy every mob and obj in the room. You may also target a specific mob or object. -READY: This will clear your daze/wait state. -WIZHELP: This will show you, by level, what all immortal only commands you have access to. There will be a breakdown of each command and what they do later in this guide. (look wizhelp) -COPY: While in edit mode for Rooms, Mobiles or Objects, you have the copy command available. This will copy ALL of the information from another vnum to the one you are currently editing. For example, if you have made a Cityguard with the vnum 1003 and need a duplicate, you may create mob 1005 and while in medit for the new mob, type 'copy 1003' and all of the values for 1003 will be copied into the new vnum. You may edit the new mob afterwards and any new changes will remain. Any changes made before a copy will be overwritten by the new values. While certainly a useful command, it is best not to use this command too much with rooms since we strive to have most of the rooms in any given area contain unique descriptions. An area with a ton of copied rooms are the hallmark of a lazy or sloppy builder. Preparing Your Area MAPPING YOUR AREA: Most of the areas in End of Time are based very specifically upon the games within our theme. This usually means that most people are working based on screenshots of the areas directly from the games. It is good to be familiar with the area before beginning work and to have a pretty good sense of layout and how many rooms that will be needed. Many people choose to work on graph paper in order to map their areas, while others may sketch the details out or even draw boxes on the screenshots themselves in a program like MS Paint in order to have a definite layout down. Once you have your area mapped, count the total number of rooms you will need. Generally when an area is being assigned, they are assigned in increments of 50, so most of the vnum ranges in most of our areas are 50, 100, 150, or 200. If possible, keep this in mind when planning your area. If for example, you count 52 rooms, try to reduce down to 50 to keep from needing to basically waste 48 vnums based on the way they are assigned. It's also very useful to be familiar with the way things are typically mapped out in other areas. A lot of times, a large empty space with nothing of any real interest can simply be described as being large and not have a bunch of rooms actually built to represent this. Being familiar with other areas in the game should make judgment calls like this much easier. OTHER TIPS: -Be sure you are aware of where your area falls in the place with the rest of the world along with the level range. -Be familiar with the mobs that should go in the area and how many of each. -A general idea of the background of the area may be helpful in later filling out other details of the area. Your New Abilities WIZHELP: Level 111: -ASAVE: Probably your most important command. This is how you save your work! The two arguments for asave you need to be concerned with are 'asave changed' and 'asave area'. Changed will save everything in the MUD that has been edited since the last save, while area will save specifically the area you are working in. The MUD automatically saves areas that have been edited every 15 minutes, and there are other instances (such as when append mode is exited) that automatically saves an area, but it is a very good habit to be in to save your area often. Not every MUD has automatic saving of areas, so its important to get into the habit. -GOTO: Allows you immediately travel to the location of something you specify, but at lower immortal levels, it only works within your own area. An example of usage would be "goto Diablos" or "goto 5450" or "goto citizen". -HOLYLIGHT: Holylight is a toggle that is by default off. With holylight, your immortal character can see many things and interact with the world in many ways that a mortal character can not. For example, all hidden, sneaking, invisible, or otherwise obfuscated mortal characters are visible to you, along with any other cloaked immortals of the same or lower level. Additionally, room and obj vnums are visible when you are looking in the room. Also, sectors that normally can't be passed over (such as rock mountains and no swim water) along with no_enter rooms are able to be entered with holylight toggled on. Basically, this is intended to be a way for an immortal to toggle whether they see and interact with the world as an immortal or a mortal. -IMMTALK: This is the immortal only chat channel. A colon : may be used in place of the channel name to use this channel. -WIZINVIS: This allows you to cloak yourself so that no one on the MUD below your level will be able to detect your presence. You may also supply a numerical argument to set it to a specific level. -INCOGNITO: Like wizinvis, but it cloaks you from anyone that you are not in the same room with. -MEDIT: The command to edit mobiles. -MPEDIT: The command to edit mobprogs. -MYAREAS: This will show you every area that you have assigned to you as a builder on. If you have appropriate security to edit other areas, these will not show. -OEDIT: The command to edit objects. -OPEDIT: The command to edit objprogs. -PURGE: Purge will destroy every mob and obj in the room. You may also target a specific mob or object. -READY: This will clear your daze/wait state. -REDIT: The command to edit rooms. -RPEDIT: The command to edit roomprogs. -RESETS: This will show the "resets" in the room. Resetting mobs/objs into this list is the mechanism in which predetermined mobs/objs are loaded when the area loads. -WIZHELP: This will show you, by level, what all immortal only commands you have access to. There will be a breakdown of each command and what they do later in this guide. Level 112: -ALIST: This will show all of the areas in numerical order. You may supply 'vnums' as an argument to sort by vnum. -POOFIN: Allows you to customize your goto entrance message. -POOFOUT: Allows you to customize your goto exit message. Level 113: (more on room flags and sectors later) -SETFLAG: Will set every room in a given area with a specified room flag. For example, if you type "setflag indoors" then it will set every room in that area with the room flag indoors. Typing this twice will not toggle it, it will make sure EVERY room has the specified flag. -REMFLAG: Will remove the specified room flag in every room in a given area. Typing this twice will not toggle it, it will make sure EVERY room does not have the specified flag. -TOGFLAG: Will toggle the specified room flag in every room in a given area. Typing this twice will switch it back to how it originally was. If you have half of the area indoors, then use this once, it will pretty much switch which are indoor and which are outdoors. -SETSECTOR will set a sector value for the every room within a given area. Level 114: -AUTODIG: Will enter you into a state to where any direction you move will automatically create a new room and move you into said room. Be careful when using this, as it would be very easy to mangle your area layout. -VNUM: Using this with an argument will display the vnum of all objects or mobs in the game matching the name supplied. -WIZNET: This is an information toggle that will display numerous events in the game to the immortal. There will be a section for this later. (read wiznet) Level 115: -LOAD: This will immediately load an object or mobile with the specific vnum. -MWHERE: This will search the MUD for any loaded mobiles with the specified name. -SLAY: This will immediately kill any mob or player targeted. III. Room Editing and Creation - This will detail the specifics of editing, creating, describing, and linking rooms, including all of the specifics of setting flags. A. Linking and Exits ........ read redit01 B. The Visuals .............. read redit03 C. Room Attributes .......... read redit04 Linking and Exits REDIT: This is the basic tool upon which most of OLC begins. Editing rooms and setting their descriptions is generally the bulk of the work on building an area. When you type 'redit' with no argument, you will enter into redit mode and will be editing the room you are currently in. Hitting 'enter' at the prompt with no arguments will bring up all of the values of the room: --------------------------------------------------------- Description: Night Description: Name: [] Area: [ ] Vnum: [ ] Sector: [inside] Floors: fno[] fne[] fea[] fse[] fso[] fsw[] fwe[] fnw[] floors[] Walls: wno[] wne[] wea[] wse[] wso[] wsw[] wwe[] wnw[] walls[|] Empties: no[] ne[] ea[] se[] so[] sw[] we[] nw[] empty[] Room flags: [none] Characters: [ ] Objects: [none] - to [ ] Key: [ 0] Exit flags: [none] --------------------------------------------------------- Each of these values will be detailed in the following pages of the guide. Redit with an argument will edit the specific room and move you into the room you are editing. Additionally, the commands 'next' and 'prev' can move you and your editor to the next and previous rooms (according to vnum). [continued redit02] CREATING ROOMS: -REDIT CREATE: The syntax for creating a room from scratch with a specific vnum is "redit create ". Using redit create with no argument will create a room at the next available vnum for the area. Most of the time, however, rooms will be created using the dig method. SYNTAX: redit create -CLEAR: This will clear all values from the room. SYNTAX: redit clear -DIG: This is how you create a new room automatically linked to the room you are currently in, which will be a two-way exit. For example, north dig 1001 will create a room with the vnum 1001 in the room north of you. You may not dig in a direction that already exists. Using dig with no vnum will automatically create a room with the next available vnum. SYNTAX: dig -LINK: This will create a two way link/exit between the room you are in toward an already existing room with the vnum specified in the direction specified. This is particularly useful when linking something like a large grid where digging toward already existing rooms isn't possible. SYNTAX: link -ROOM: This will create a one way link/exit between the room you are in toward an already existing room with the vnum specified in the direction specified. There are numerous reasons why a one way exit may be created, just be careful to keep track of how rooms are linked, because this can get confusing and create a mangled area layout. SYNTAX: -DELETE: You can also delete exits between rooms that are linked. Doing so will delete both directions in the link. SYNTAX: delete -EXIT FLAGS: Once two rooms are linked, you can modify the properties of the exit by setting various flags. You may type '? exit' to see the available exit flags. A brief description of what they do: -DOOR: This will make the exit a door. By default, a door flagged exit will still be open unless flagged as closed, and will be closeable unless flagged noclose. -CLOSED: The door will default to being closed on load or reset. ONLY ever flag exits that are doors to be closed. -LOCKED: The door will be locked. -EASY/HARD/INFURIATING/PICKPROOF: This is the difficulty of picking the lock on a locked door. -NOPASS: Ghosts or characters with pass door will be unable to pass through this door/exit. -NOCLOSE: The door will be unable to be closed. -NOLOCK: A locked door will be unable to be relocked with the key. -JUMP/CLIMB/CRAWL: This changes an exit from a regular exit to one requiring the additional movement commands. -HIDDEN: The exit will not display in the exits list of a room. -AUTO_CLOSE/AUTO_LOCK: These will automatically close or lock when a player passes through. -SILENT: The opening and closing of the door, and/or the locking/unlocking of a door will not present an echo to the room. -DAM_TRAP: Opening the door will cause damage to the player unless disarmed. -POISON_TRAP: Opening the door will cause poison to the player unless disarmed. -ELEM_TRAP: Opening the door will cause elemental damage equal to the greatest concentration of mana to the player unless disarmed. -BLIND_TRAP: Opening the door will cause blind to the player unless disarmed. -BLOCKED: This makes an exit as good as not even there. Mostly used alongside programs that will "open" a hidden exit when a button is pushed or similar. -EATKEYS: Consumes a key when used to unlock. SYNTAX: east -EXIT NAMES: By default, you may only open an exit by the direction, but you may also 'name' your exits, which will change the keyword that is necessary to open it. For example, naming an exit 'hatch' will require the player to 'open hatch' in order for the exit to be opened. This can make for some clever ways to hide nonobvious exits. SYNTAX: name -EXIT DESCRIPTIONS: Like with extra descriptions, you can set a description for any of your exits. SYNTAX: desc -KEYS: An item must be flagged as a key (this will be detailed in the objects section) to be set as the key for a lockable exit. It is important to note that when setting a key to an exit, you must also go to the otherside of the door and flag that side as having the key as well. SYNTAX: east key 5020 (use 0 in place of vnum to clear the key) -HEAL RATES: This does not show up in redit by default, but you may also modify the rate at which a room bonuses HP and MP. You may use a negative value to have a room actually damage a player, or a positive value to modify the rate of healing. The default rate is 100, so any number lower than this will lower the heal rate, while any number higher will increase. It works as a percentage, so a heal rate of 50 will half the heal rate will 200 will double. SYNTAX: heal SYNTAX: mana The Visuals -NAME: This is the first thing that is useful to set. It's good to title the room something that is relatively short and indicative of either the area itself or a notable feature of the room. They should be capitalized like book titles. Examples: bad: within the courtyard of figaro castle bad: Within The Courtyard Of Figaro Castle bad: within the courtyard of Figaro Castle good: Within the Courtyard of Figaro Castle SYNTAX: name -DESCRIPTION: This is the meat of building here. Generally speaking, it is best to describe rooms with at least 4 lines. Try to make each description in every room vary. It is understandable that many rooms look exactly the same, but do try to vary. Using you the word "you" and otherwise dictating things about the character's actions are a bad thing. Examples are dictating that a character is disturbed by some gruesome sight, but that may not be the case if the character likes gruesome sights. Rather, attempt to describe the scene objectively. Also using things such as dictating a character "standing" a certain place, or "under your feet" are also considered bad because if the character sits down, it then makes that room description inaccurate. Another way for a room description to be inaccurate is to dictate which side of a two way area is the entrance, and which is the exit, or otherwise dictating which direction the character has entered the room from. Such as "The path continues north, or back to the south." If the person entered that room from the north, then the room description is inaccurate. Also avoid referng to mobs in a room description. "A town full of citizens" is made rather invalid if a person goes through and kills all of them. Also since almost every area in the game is considered to be at least 30-50 years AFTER any events in the video games, please avoid making any references to specific people, places, or occurrences from the games. There is a good chance that such references will be considered "outdated." Color is a good thing, so long as it is used properly. Using too much color is an improper use of color. One color for the title is sufficient. It is considered an annoying and improper use of color to use alternating colors in a title. Other than the main color of the room description, an additional one color, two max is considered a proper use of color. Using color simply for the sake of using color is improper. Proper use of color is used to help develop the mood of an area, or represent some of the colors in the area. If you were in a dark cave, using {D for the room description would be proper, or using the two shades of green in a forest would be proper. Using no color in your room descriptions is not frowned upon, but developing proper use of color is a good tool to help develop an area. SYNTAX: description (this enters into append mode, the same tool used for writing notes and your character description) -NIGHT DESCRIPTION: This is the same as description, but is optional. During the hours of darkness, this description will show in place of the original. When no night description is written, the default description will always show. SYNTAX: nightdesc (this enters into append mode) -EXTRA DESCRIPTIONS: You may add description keywords into a room for things that may not actually be there. This is useful for adding flavor into a room when you might mention something and want the player to be able to look at it for more information. SYNTAX: ed add [keyword] ed edit [keyword] ed delete [keyword] ed format [keyword] ed rename [keyword] Using the 'ed' command for both add or edit will enter you into append mode which will behave as normal. Format will allow you an alternative way to formatting the description rather than using the append mode .f format command. The rest should be obvious as to what they do. Room Attributes There are a handful of other options available for rooms that will affect the way that certain aspects of the room behave, without it being immediately obvious to the player or without it being a visible aspect. -ROOM FLAGS: Values that determine various things about the room. -DARK: This makes it so that the description, characters, and items in the room cannot be seen because it is too dark. -WILDERNESS: This converts the room to a "world map" view. -NO_MOB: Mobs are unable to enter these rooms. -INDOORS: The room is treated as being indoors. This is important to always set because this governs many of the weather related messages, and nothing says poor building than seeing the sun rise or the clouds overhead while indoors. -BANK: These rooms are able to have bank transactions performed. A 'changer' mob is also required (see below in MEDIT section). -PRIVATE: Only two people are able to enter this type of room. -SAFE: No combat or hostile actions are able to be performed. -SOLITARY: Only one person (PC or NPC) is able to enter this type of room. -PC_SOLITARY: Only one PC, but infinite NPCs, are able to enter this room. -PET_SHOP: This is a special condition that will be explained in depth further down. -NO_RECALL: Players may not recall from this room. -NOWHERE: The where command displays nothing in this room, nor will it show any results to any other rooms in the area. Also, area wide echos (such as the yell channel) will not carry into or out of the room. This is very useful in isolating one room from the rest of an area. -NO_ENTER: Players may not enter this room. -NO_GATE_TO/NO_GATE_FROM: The gate spell will not work from or to this room, respectively. -RECALL: This room can be set as a 'recallhere' recall point. -ARENA: This room will treat combat and deaths differently. Notable, PK Safe does not apply in this room, but neither do ANY ill effects from dying, including corpse dropping or penalties. -BLACK/GREEN/RED/WHITE/YELLOW/BLUE: This will predispose a room's mana field to the specified color. Using multiple colors will NOT work, so use only one at a time. -RENT: This will flag a room to be able to be rented as an Inn. See notes about Inns further below. -SILENT: Speech does not work in this room, nor will spell casting. -NOCAST: Casting spells is disabled in these rooms. -NOWEATHER: While still considered outdoors, the automatic weather messages will not display in these rooms. -MAGICAL: All magic is more powerful in these rooms. -NOFIGHT: Combat can still take place, but the automatic combat rounds do not. -UNDERWATER: Will deal damage to player unless affected by "aqualung". -NO_MOVE: Players may not move from this room. -NO_QUIT: Players may not quit from this room. -SLOW_MOVE: Players experience slower movement to/from this room. -AGG_ANYWAY: Aggro reduction effects, skills, and relics are ignored. -NO_PC_RESET: Room won't reset if a PC is present. SYNTAX: room <flag> Room flags may be cleared by using 'room clear'. -SECTOR FLAGS: Sector flags basically determine the "terrain" of a given room. This affects a few things, mostly the visual aspect of the room on "wilderness" flagged rooms/areas, and a handful of skills such as dirt kick and moogle dance. It is considered pretty important to set the most appropriate sector type for the room, as a result. Most sector types should be self explanatory, however a few will be listed for clarification: -CITY: Most towns should be flagged with this. One notable effect of the city sector flag is that it also considered a "lawful" area and so there is a chance that mobs attacked in these areas will call out for help, and any mobs nearby that are flagged with the guard special function will come help the attacked mob. -INSIDE: This is the "default" sector type and should generally not be used. This differs from "indoor" and most places should have a more appropriate terrain. -SWIM/NOSWIM: Swim is used for water rooms that players can enter, while noswim will not allow a player to enter the water. -ENTER: This is typically used for the entrance of an area. Generally a higher level immortal will determine the appropriate sector for the entrance of an area based on the world map symbol it creates. -MOUNTAINs: Mountain, Snow Mountain, and Red Mountain are all sectors that a player can pass over, while Rock Mountains are too high. -WLAND1: Is a wasteland sector, used or dying terrain. -DTRAIL: Stands for dirt trail. -TRACKS: These are for chocoobo tracks, which right now is mostly used as a world map symbol. SYNTAX: sector <flag> Sector flags may be cleared by using 'sector clear'. -FLOORS/WALLS/EMPTIES/SPACE: These do not show until one has been set. This determines what the mini-map looks like, and they override area values. SYNTAX: symbol [floors|fno|fne|fea|fse|fso|fsw|fwe|fnw|mid] [symbol|none] symbol [walls |wno|wne|wea|wse|wso|wsw|wwe|wnw] [symbol|none] symbol [empty | no| ne| ea| se| so| sw| we| nw] [symbol|none] symbol [space] [symbol|none] The "f" stands for floor, the "w" for wall" & empties have no letter prefix. no = north, ne = northeast, ea = east, etc. SPECIAL CASES: -PET SHOPS: These will be different than the other types of shops that will be detailed later in another section. Knowledge of resetting mobs will be necessary to complete a pet shop, but the basics of setting one up are in the way the rooms are tied together. Firstly, you need to make sure you have two rooms whose vnums are in sequential order. For example, if you have the rooms 1000 and 1001, you would flag the lower room, 1000, with the pet shop flag. We will call room 1001 the "storage room" for the sake of this tutorial. After setting vnum 1000 to pet shop, you will make a shopkeeper mob (more on this later) to put into room 1000. Next, you will have the storage room unlinked from any other rooms, and all of the pets you make will reset into this room. Shops and pets themselves will be detailed later. -INNS: Inns are rather simple. As a general rule, we like to have within an area that has an Inn, a building that contains no less than 3 different rooms that will be designated as Inns. It is good to have a mob that will direct players toward a hall that has the rooms available, and each room that should be able to be rented will be flagged as 'rent'. A simple "greet" program (which will be explained later) is handy in directing a player toward the appropriate rooms. Familiarity with the MUD should help in determining how most Inns are setup. IV. Mobile Editing and Creation - This will detail the specifics of editing, creating, describing, resetting, and customizing mobs. A. Creation ............... read medit01 B. Customization .......... read medit05 Creating Mobs It is best to start out with a basic concept of your mobile. Many of the mobs in the game will come from some of the monsters encountered in the areas from the game of the area you are working on. Once you have a basic idea of your mob, including the name, what it looks like, and maybe even the type of attacks it may use, you are ready to create the mob. Note that once you understand what each of these values do, most of the work of filling out these values are handled by the MUD by setting a race on the mob and setting it's level and using the autoset command, both of which are detailed further in the guide. -MEDIT: To create a mob from scratch, you can type 'medit create <vnum>'. Remember that while in redit, you may use mlist to see the mobs already created in the area. If the area has no mobs, then you will use the first vnum assigned to your area, and if there are mobs, use the next free vnum. You may also just type 'medit create' to automatically use the next free vnum, but since many MUDs don't have this feature coded, it is good to be in the habit of typing the vnum. To later edit any mob you have created, you may do so using 'medit <vnum>'. You may also use the 'next' and 'prev' commands to edit the next and previous mob (according to the vnum). When you have created a mob, you will notice your prompt will have changed to showing that you are in MEDIT and it will display the vnum you are editing. While at the prompt and in medit, you may hit 'return' with no arguments and the details of the mob will be shown. MEDIT CLEAR will clear a mobile of all values. These are the details of a newly created, blank mob. Name: [no name] Area: [ 0] <area name> Act: [npc] Vnum: [<vnum>] Sex: [neutral] Race: [Human] Clan: [] Level: [ 0] Align: [ 0] Hitroll: [ 0] Dam Type: [none] Hit dice: [0d0+0] Damage dice: [ 0d0 + 0] Mana dice: [ 0d0 + 0] Affected by: [none] Armor: [pierce: 0 bash: 0 slash: 0 magic: 0] Parts: [none] Elem1: [12-random] Elem2: [12-random] Imm: [none] Absorb: [none] Res: [none] Vuln: [none] Off: [none] Size: [medium] Start pos. [standing] Default pos [standing] Wealth: [ 0] Short descr: (no short description) Long descr: (no long description) Description: [continued medit02] Mob Values: -NAME: This value indicates the keywords through which the player may interact with a mob. As an example, if you are making a mob that is "a citizen of Termina" then the appropriate name for this mob may be "citizen termina". Another example would be "Bruno, the Nikeah Bartender" might have the name of "bruno bartender". The player will never see this value, these are simply the keywords for interaction. Including the word "utilitymob" in the name will handle much of what helps make a utility mob invisible to players. Typing the word 'utility' while in medit will set ALL values for this. SYNTAX: name <keywords> -SHORT DESCR: The short description of a mob is one of two name values that the player will actually see. This displays in places such as when a player scans, talks to the mob, fights the mob, etc. In the above examples, an appropriate short description would be "a citizen of Termina" and "Bruno, the Nikeah Bartender". Familiarity with the game should be a good indicator on the do-s and don't-s of short description writing. SYNTAX: short <name> -LONG DESCR: The long description of a mob is what the player will see when they enter a room or 'look' and see it there. It is generally best to have a good indicator of some of the 'keywords' here, and they should -always- be a complete sentence with end punctuation. Using the above examples, appropriate long descriptions might be "A citizen of Termina walks about the city." or "A burley bartender is here, tending to the Nikeah Pub." In both examples, a significant part of the long description includes some of the 'name' keywords. Generally speaking, these are the first three values that are handy to go ahead and set. There is a special variable $L that may be used in the long desc of a mob that will print whatever the name of the area that the mob is in. A good use for this may be similar to "A man walks about $L." so that way the long desc is always accurate. SYNTAX: long <description> -DESCRIPTION: This value is what players will see when they look at a mob. If the value is blank, the look command will default to the long description. As with describing rooms, it is best to describe only what can be seen, rather than dictating the opinions or assumptions of the onlooker (or in anyway dictating action on behalf of the onlooker). It is acceptable to occasionally dictate the action of the mob, although mobs may also be scripted using mprogs to behave in nearly anyway you may want to describe. SYNTAX: desc (enters into append mode) -ACT FLAGS: As with almost anywhere else in the game, in order to view the flags for this value, type '? act' and you will be provided a list. -SENTINEL: By default, mobs will simply wander around an area. With this set, they stand in one spot. -STAY_AREA: If your mob isn't sentient and you don't want it wandering into other areas, then that is what this flag does. -SCAVENGER: Mobs set with this flag will walk about and picking up items left on the ground. -NOWHERE: These mobs will not show up when a player uses the 'where' command. -AGGRESSIVE: Aggressive mobs will automatically attack any player in the room. -AGGROALL: These mobs are aggressive toward players AND other mobs. -WIMPY: These mobs will attempt to flee when their HP is low. -PET: This will flag a mob as a pet, for use in resetting a pet shop. -STATUE: These mobs will not respond to players (such as responding to a player social), they cannot be attacked, but will otherwise behave normally (such as being able to be scripted with mprogs and such). These are useful in many ways, such as the name might suggest behaving as statues, or being included for scripting purposes only since out of all three program types, mob progs are the most versatile. -SYNTHESIST: This will allow a mob to act as a synthesist shop. This will be details in the shops section later on. -NOSHOW: An empty wear slot on this mob will not show the slot at all. -NO_EXP: Players will not gain experience points from this mob, which includes exp from killing the mob or from skill use related to the mob. -KNIGHT/THIEF/WARRIOR/MAGE: These give stat and skill bonuses to the mob according to the class specified. These can stack for a particularly difficult or skilled mob. The stat bonuses equal an additional 20% of their normal stat. Knight: VIT/WIL; Thief: AGI/PWR; Warrior: PWR/VIT; Mage: WIL/AGI -NOPURGE: These mobs can not be destroyed using the 'purge' command. This is mostly for particularly essential mobs within the game. -BOSS: Boss mobs have a few tweaks made to them, including slower HP regen (since a builder will normally tweak a boss to have much higher HP and it will normally take players a few tries to kill it), immunity to instant death attacks and others. Mobs flagged with this are encouraged to be built to be harder, including higher than normal hp, more offense and affect flags, etc. Boss mobs can give up to triple the normal exp cap, have a coded minimum on HP and MP and get a 20% bonus to their PWR/VIT/WIL/AGI. -MIDBOSS: Same as boss mobs, except no coded HP modification or exp bonus. -HEALER: These mobs provide the 'healer' services that players may access through the 'heal' command. -UPDATE_ALWAYS: These mobs will be updated more frequently than others. -CHANGER: This is necessary for a 'bank' room to function properly. -NOFIGHT: These mobs can be engaged in combat, but they will not actively fight in the automated combat rounds. This is similar to the state players and mobs are in while casting a spell or afflicted with the stop status affect, or when in a no-fight flagged room. -NOATTACK: These mobs CAN NOT be engaged in combat, but are otherwise treated as other mobs. Other things make a mob not be able to be engaged in combat as well, such as being flagged as a shopkeeper, a healer, changer, etc. This flag should be set on all shop keepers or otherwise "essential" mobs, or mobs that can be abused such as quest mobs, mobs with a substantial amount of gil, mobs that are given gil for any reason, etc. -NOFLEE: Players are unable to flee while in combat with these mobs. SYNTAX: act <flag> -SEX: This is the gender of the mob. The available options are MALE, FEMALE, NEUTRAL/NONE or RANDOM. This is an aesthetic choice, and affects nothing in game other than messaging. SYNTAX: sex <flag> -RACE: Unlike other flags, you must type 'race ?' in order to view the available NPC races. In some instances, this is an aesthetic choice, but these flags will also set some other values such as: Affected by, parts, immunity, absorb, resist, vulnerability, offense, and size. Most of the races should be self explanatory, and for anything not listed, you are welcome to set unique and customize the other values. SYNTAX: race <flag> [continued medit03] -CLAN: Mobs may be set into one of the PC clans, which has two main uses. The primary is that any gil the mob receives (by being a shop or being given money) will have a percentage deposited into the clan bank account. The second is that clan mobs who witness combat will automatically assist anyone flagged as a part of their clan. SYNTAX: clan <name> -LEVEL: This will determine the level of the mob. Generally speaking, areas are assigned a level range of about 5 levels, and most mobs in the area will fall in the lower range of that. It is acceptable to go outside of this range, but it is recommended that the majority of mobs fall within that range. This must be set in order to use the AUTOSET feature detailed further in the guide. Because level determines a number of things about the mob, such as how much experience it will give, it is highly recommended to keep the level of a mob near it's autoset values. SYNTAX: level <number> -ALIGN: Alignment is a value between -1000 (evil) and 1000 (good) with 0 being considered neutral. This value affects a handful of things such as experience gained and in some instances damage dealt. A good number of the mobs in the game are neutral, but feel free to be liberal with this number when appropriate. SYNTAX: align <number> -HITROLL: This is equivalent to a player's Accuracy stat and helps determine how often the mob is able to hit. This is one of the values that will automatically be determined using AUTOSET detailed further in the guide. SYNTAX: hitroll <number> -DAM TYPE: This determines the default damage type when the mob in unarmed. Much of this is just for flavor text, but it does also determine the type of damage. For example, pound and crush are both "Bash" damage, but they show different verbs while in damage. You may view the available by typing '? weapon'. The types of damage and the ones falling under the category are as follows: -SLASH: slice, slash, claw, grep, cleave, chop -PIERCE: stab, bite, pierce, scratch, peck, sting, chomp, thrust -WHIP: whip, wsting, wlash -BASH: bash, pound, cruch, suction, beating, charge, slap, punch, peckb, smash, thwack -ACID: digestion, acbite, slime, acid -ENERGY: wrath, magic, beam -WHITE: divine -LIGHTING: shbite, shock -RED: flbite, flame -BLIZZARD: frbite, chill -BLACK: drain, darkness -SHADOW: shadow -PHOTON: searing light -BLUE: splash -YELLOW: earthen strike -GREEN: gust -GRAVITY: pull -MAGMA: molten splash -LIMIT: attack (these attacks ignore all defense) -ALL: all (these attacks ignore all defense) SYNTAX: damtype <noun> *DICE: There are various calculations that are reliant on the concept of dice, a throwback to the Dungeons and Dragons inspired origins of many MUD codebases. There are three parts to the calculation as it relates to dice. The first is how many dice are being rolled, the second is how many sides on the dice there are, while the last number is a bonus applied to that roll. For example, 5d4+10 equates to rolling a quantity of 5 dice that are 4 sided, with a 10 point bonus applied. This creates a range betwen 15 and 30 that the value can be. This works out as the worst possible roll is to roll a 1 on all 5 of the dice, which gives a base number of 5 and when combined with the 10 point bonus, equals 15. On the other hand, rolling a 4 on all 5 dice will equal 20, which equals 30 when combined with the bonus. All players have access to the 'droll' command for playing around with dice totals, in which this case you could type 'droll 5d4' to see some of the rolls. -HIT DICE: This is the calculation that determines how many Hit Points the mob has. This is one of the values that will automatically be determined using AUTOSET detailed further in the guide. SYNTAX: hitdice <number> d <type> + <bonus> (ie: hitdice 5 4 10) Use 1 for number and type to make the final HP equal the bonus + 1. -DAMAGE DICE: This is the calculation that determines how much damage the mob will do unarmed. This is one of the values that will automatically be determined using AUTOSET detailed further in the guide. SYNTAX: damdice <number> d <type> + <bonus> (ie: damdice 5 4 10) -MANA DICE: This is the calculation that determines how many Mana Points the mob has. This is one of the values that will automatically be determined using AUTOSET detailed further in the guide. SYNTAX: manadice <number> d <type> + <bonus> (ie: manadice 5 4 10) Use 1 for number and type to make the final MP equal the bonus + 1. -AFFECT: These are status affects that the mob has permanently. There are both positive and negative affects. Generally speaking, use these sparingly as stacking too many things (particularly things like sanctuary, fast, etc.) can vastly overpower a mobile. This is one of the values that is automatically set when you select the race of a mob, although more may be added or removed at the builder's discretion. What they do is as follows: -DARKNESS: The mob is blinded and will have a higher miss change -INVISIBLE: The mob will be invisible to all players that don't have detect invisible. -DETECT_CHAOS: This presents a flag for "chaotic" aligned characters. Useless on a mob, really. -DETECT_INVIS: The mob will be able to see invisible players and objects. This is useful for shop keepers, gatekeeper mobs, and others that should be able to detect all players. -ZOMBIE: Effectively renders the mobile Undead, which will reverse things such as cure hurting the zombie, poison acting as a regenerative spell, etc. -DETECT_HIDDEN: The mob will be able to see hidden players and objects. This is useful for shop keepers, gatekeeper mobs, and others that should be able to detect all players. -DETECT_ORDER: This presents a flag for "orderly" aligned characters. Useless on a mob, really. -SANCTUARY: The mob will take half damage it normally would. Not recommended for most mobs because of the strength. -FAERIE_FIRE: The mob will be surrounded in a pink aura and have a large defense penalty. -FLOAT: The mob will be floating and less susceptible to trip, earth based attacks and other similar attacks. -CURSE: The mob's saves and hitroll will be negatively affected. -POISON: The mob will suffer periodic poison damage. -PROTECT_CHAOS: Will take less damage from chaotic sources. -PROTECT_ORDER: Will take less damage from orderly sources. -SNEAK: The mob will be sneaking and their entrance/exit messages will not display. -HIDE: Only characters with detect hidden be will able to see the mob. -SLEEP: If the mob is put to sleep, they won't be able to wake up. -CHARM: The mob will be considered charmed. Useless for mobs. -FLYING: The mob will be flying and thus immune to many earth based attacks, trip, and other similar attacks. -PASS_DOOR: The mob will be able to wander through doors. -FAST: Afflicted with fast, the mob will have more attacks and less wait time. -CALM: The mob will be immune to berserk. -PLAGUE: The mob will be a disease carrier, capable of spreading the plague. -WEAKEN: The mob will have lower PWR as a result of the spell. -IMBUE: This will do nothing on a mob. -BERSERK: The mob will be unable to flee, use potions, etc. -MUTE: The mob will be unable to speak or cast spells. -REGENERATION: The mob will gain periodic hit points. -SLOW: The mob's actions will be delayed. SYNTAX: affect <flag> [continued medit04] -ARMOR: This is the mob's defense value. Setup in the traditional and stock system of Armor Class, a higher value is worse but a while a lower (negative) value is better. Each type listed (bash/slash/pierce/magic) is the mob's base defense against damage of each of those types. This is one of the values that will automatically be determined using AUTOSET detailed further in the guide. SYTNAX: ac <number> <number> <number> <number> -PART: These are the pieces of a mob that will drop when they are killed and are mostly an aesthetic choice. If the part "edible" is set, all of the body parts will be able to be eaten by a character. "Poison" will make all of the parts poisonous if eaten, while "instant_decay" will make the corpse immediately decay upon death rather than dropping anything. This is one of the values that is automatically set when you select the race of a mob, although more may be added or removed at the builder's discretion. Other "part" flags include "ghost_vis" which will make a mob only visible if the PC is a ghost, and "double_exp" which will make a mob give twice the amount of experience earned to the player when it dies. SYNTAX: part <flag> -ELEM: This will determine the primary and secondary innate element of a mob. By default, the mob is set to '12' for random for variety upon loading. 0: Black 1: Green 2: Red 3: White 4: Yellow 5: Blue 12: Random SYNTAX: elem1 [number] | elem2 [number] -IMM/ABSORB/RES/VULN: These flags all determine modifications to how much a character takes damage from a particular source. Imm means the mob is immune to that type of damage and will not receive any damage from this source. Absorb means they will gain the amount of damage that would otherwise be inflicted as positive HP gain. Resistance will halve the amount of damage the character would take, while vuln will double the amount. Note that it is good practice to set "imm all" on mobs that are also noattack, just for double insurance. These are some of the values that are automatically set when you select the race of a mob, although more may be added or removed at the builder's discretion. SYNTAX: imm <flag> | absorb <flag> | res <flag> | vuln <flag> -AIRV: Alternate system for Absorb, Imm, etc. Allows more options as to what can be added and what isn't limited by flags. SYNTAX: addairv <type> <class> <thing> Type: absorb|immunity|resistance|vulnerability Class: material|wclass|damtype Thing: wood, silver, sword, red, trip, etc -OFF: Offense flags are attacks that will automate while the mob is in combat. This is one of the values that is automatically set when you select the race of a mob, although more may be added or removed at the builder's discretion. -AREA_ATTACK: This mob's attacks will hit everyone in the room it is fighting. -BACKSTAB: The mob will backstab during combat. Make sure any mobs flagged with this are equipped with a dagger or it won't work. Also, note that this will filter through the "circle" skill, which is the in-battle backstab. -BASH: The mob will bash during combat. -BERSERK: The mob will berserk during combat. -DISARM: The mob will disarm during combat. -DODGE: The mob will have a higher dodge chance. -BLINK: The mob will have a chance to use the 'blink' evasion skill. -FAST: This will give the mob a bonus to AGI as well as keep them with the fast affect. -KICK: The mob will kick during combat. -DIRT_KICK: The mob will dirt kick during combat. -PARRY: The mob will have a higher parry chance. -RESCUE: -TAIL: The mob will use tail whip during combat. -TRIP: The mob will trip during combat. -ASSIST_ALL: The mob will assist anyone and everyone during combat. -ASSIST_ALIGN: The mob will assist characters matching its alignment. -ASSIST_RACE: The mob will assist characters matching its race. -ASSIST_PLAYERS: The mob will assist player characters. -ASSIST_GUARD: The mob will assist characters flagged as a guard. -ASSIST_VNUM: The mob will assist other mobs that are the same vnum as it. -SLOW: The mob is affected by 'slow' and suffers an AGI penalty. -TRACK: The mob will 'track' players that attack it and flee, looking for revenge. SYNTAX: off <flag> -SIZE: This determines the size of the mob, and will affect mostly things such as certain skills. From smallest to larget, the sizes are: tiny, small, medium, large, huge, giant. SYNTAX: size <flag> -POSITION: This is the default and starting position that a mob loads in. Default is what the mob will reset or default to, while the starting position is the position it will be in when loaded. SYNTAX: pos <default|start> <flag> -WEALTH: This determines how much money (gil) the mob is carrying. This will affect how much a character will gain upon killing the mobile along with, if the mob is a shopkeeper (more on that later), how much money it has to purchase items from a player. Customization There are numerous ways to customize your mobile to make them different from the preset values. Among these include setting many of their values through the autoset command, setting them up as a shop, making use of the several "special functions", making them a pet, or creating your own set of behaviors through "programs", aka mobprogs or mprogs for short. Putting equipment on mobs is another customization option, although this will be discussed in the weapon & armor section of the guide, along with the resets section. -AUTOSET: Autoset is a command used to automatically set the core stats of a mob in order to ease the work load on the builder in addition to setting a standard across the MUD to help maintain balance. The values set are based on the level of the mob, and while builders are free to deviate from these values, it is best to stay close to the values set by the command. There is some built variation also included, with options to set for easier or harder mobs than the standard as well. If you flag a mob as a boss mob, further deviation (usually by increasing things, such as hit points) is acceptable since they are supposed to be harder than normal. Autoset will automatically set the following: hitroll, hit dice, damage dice, mana dice, armor values, and wealth. SYNTAX: autoset (the standard difficulty for the level) SYNTAX: autoeasy (an easier mob for the level) SYNTAX: autohard (a harder mob for the level) -SHOPS: Shops are how mobs sell items to players. Players may interact with your shop by using commands such as list, buy, sell, etc. Shops may be customized in a variety of ways as well. The first thing to do when making a shop is to use the 'shop assign' command, which will flag the mob as a shop and add the following default values to the bottom of your mob: SYNTAX: shop assign SYNTAX: shop remove (will remove all shop data from a mob) Shop data for [ 1000]: Markup for purchaser: 100% Markdown for seller: 100% Hours: 0 to 23. The "1000" listed is the vnum of the mob, which will change from mob to mob. Markup for purchaser is how much the mob will sell an item for in relation to the 'cost' marked in the object itself (more on objects later). Markdown for seller is how much less a mob will buy back an item from a player who is selling it to the shop. Hours are what time during the day/night the shop is open. Note that by default, the mob does not allow any items to be sold to it, as this is a value you must set yourself. -SHOP PROFIT: This is how you set the markup and markdown. The default standard across the game is to have a markup of 100% and a markdown of 75% so that shops will always sell for list price and buy back at a 75% markdown. These values may be toyed with based on a builder's discretion, but the vast majority of the shops in the game are based on a 100/75 setting and it is recommended not to deviate very far or often from this. SYNTAX: shop profit <markup> <markdown> (ie: shop profit 100 75) -SHOP HOURS: This is how you set the hours. By default, a shop is open 24/7 and most of the shops in the game follow this standard. It is up to the discretion of the builder as to whether or not to change this value. SYNTAX: shop hours <open> <close> (ie: shop hours 0 23) -SHOP TYPE: This is how you determine whether or not a shop will buy back items and what kind of items they will buy back. Generally speaking, most shops should be set to buy back any type of items they sell, but what types of items a shop will buy, and whatever additional item types, are up to the discretion of the builder. Also note that a shop type number starts at 0 and goes up from there, and that a new, higher number must be supplied for each additional type or it will simply overwrite what is already there. Item types will be detailed in the object section, but the most common types of items that are bought back are weapons, armor, containers and potions. Item is an available type that is a catch-all for wand, staff, potion, container, drink_con, food, pill, tent, or light. Randitem, randweap, and/or randarmor can be used to have a shopkeeper load several randomly generated objects. SYNTAX: shop type # <item type> (ie: shop type 0 armor | shop type 1 weapon) The items that are sold in a shop are determined by whatever objects are reset into the mob's inventory, which will be detailed in the resets section of the guide. It is also recommended that a Shop Keeper be set with at least 10000 in his wealth value to be sure he has the money to buy items from players. -PETS: Pet Shops are setup in a similar way, except nothing will be reset into the mob's inventory and the shop type values can be left blank. After the pet shopkeeper is reset into the room, the rest is handled by resetting the pets into the pet shop "storage" room (referenced in the redit section of the guide). Creating a pet is no different from creating any other mob other than supplying the pet act flag. It is advised to not deviate from the autoset values of a mob and to use good judgment on setting other values. Pets are considered more of a novelty than a useful aid in combat, so it is good to set their levels relatively low and to avoid many of the useful act flags such as Fighter, Thief, etc. and to avoid special functions, immunities, absorbs, etc. It is best to set their wealth to 0 as the code automatically generaltes a cost for the pet based on its level. -SPECIAL FUNCTIONS: These are preprogrammed sets of behaviors and in some instances combat actions that a mob will perform when a special function is assigned. This is an easy to way to give a mob more personality or an additional edge in combat. Mobs may only have one special function at a time. -BREATH_ANY: Runs a check to use any of the five following breath attacks. -BREATH_ACID/FIRE/FROST/GAS/LIGHTNING: Will use a powerful, elemental based breath attack during combat. -CAST_ADEPT: These mobs will cast positive spells on players up to level 10 and those with the blessed merit. -CAST_MAGE_RAND: These mobs will cast any of the traditional elemental spells during combat. -CAST_MAGE_INNATE: These mobs will cast any of the elemental spells that match its primary or secondary innate element. This is good for elemental themed mobs. -CAST_FIGHT_DEBUFF: These mobs will run through randomly casting spells such as slow, poison, darkness and weaken. -CAST_UNDEAD: The spells cast here are a mix of various negative spells such as the fight_debuff along with some various attack spells that match an undead theme. -ASSASSIN/PIRATE/MONK/DARKKNIGHT/PALADIN/SAMURAI: These will enable the mob to use skills and spells that are drawn from the skill lists of the various classes. -FIDO: These mobs will tear up corpses that are lying around on the ground, spilling the contents on the ground. -GUARD: Guards will aid others in combat, based on which participant in a fight they seem the innocent. They will also find the source of death cries to avenge. -JANITOR: These mobs will pick up random assortments of item types that it may deem as trash. -POISON: These mobs will attempt to poison its victims in combat by biting. -THIEF: These mobs will steal money from others in the room. -NASTY: These mobs will initiate combat with backstab and during combat try to steal money and run away. -AGGR2MOB: These mobs will only aggro against other mobs. -CHARM: -POKER_PLAYER: -TEXAS_PLAYER: -PET: -LYCAN: -VAMPIRE: -BOMB: -BAD_BREATH: -CAST_COMBO: -CAST_CHAOS: -CAST_ORDER: SYNTAX: spec<name of function> (ie: spec fido) SYNTAX: spec none (to clear special function) -PRIMARY, SECONDARY, BOTHHANDS, HEAD, TORSO, LEGS, ARMS, RELIC1, RELIC2: Use these commands followed by an object vnum to have a mob automatically load with the item equipped. This is mostly for random mobs to load with EQ with out any additional progs required. V. Object Editing and Creation - This will detail the specifics of editing, creating, describing, and customizing objects. A. Creation ............... read oedit01 B. Customization .......... read oedit08 Creating Objects Objects contain a wide variety of various types. Two objects of different types can be very different one another with widely different uses and properties. This section will detail the values of every object type in available. -OEDIT: To create an object from scratch, you can type 'oedit create <vnum>'. Remember that while in redit, you may use olist to see the objs already created in the area. If the area has no objs, then you will use the first vnum assigned to your area, and if there are objs, use the next free vnum. You may also just type 'oedit create' to automatically use the next free vnum, but since many MUDs don't have this feature coded, it is good to be in the habit of typing the vnum. To later edit any mob you have created, you may do so using 'oedit <vnum>'. You may also use the 'next' and 'prev' commands to edit the next and previous obj (according to the vnum). When you have created a obj, you will notice your prompt will have changed to showing that you are in OEDIT and it will display the vnum you are editing. While at the prompt and in oedit, you may hit 'return' with no arguments and the details of the obj will be shown. OEDIT CLEAR will clear an object of all values. These are the details of a newly created, blank obj. Name: [no name] Area: [ 0] <area name> Vnum: [<vnum>] Type: [miscellaneous] Level: [ 0] Wear flags: [none] Extra flags: [none] Race flags: [none] Class: [all] Timer: [0] Link: [0] Material: [cloth] Weight: [ 0] Cost: [ 0] Short desc: (no short description) Long desc: (no description) Description: (null) [continued oedit02] Object Values: -NAME: This value indicates the keywords through which the player may interact with an obj. As an example, if you are making an obj that is "a dull and rusty steel sword" then the appropriate name for this obj may be "dull rusty steel sword". Another example would be "Ragnarok, the amazing sword of the gods" might have the name of "ragnarok sword". The player will never see this value, these are simply the keywords for interaction. SYNTAX: name <keywords> -SHORT DESCR: The short description of an obj is one of two name values that the player will actually see. This displays in places such as when a player picks up, equips, fights with or against, etc the object. In the above examples, an appropriate short description would be "a dull and rusty steel sword" and "Ragnarok, the amazing sword of the gods". Familiarity with the game should be a good indicator on the do-s and don't-s of short description writing. SYNTAX: short <name> -LONG DESCR: The long description of an obj is what the player will see when they enter a room or 'look' and see it there. It is generally best to have a good indicator of some of the 'keywords' here, and they should -always- be a complete sentence with end punctuation. Using the above examples, appropriate long descriptions might be "A dull and rusty sword lies here." or "An amazing looking, deadly sword lies here." In both examples, a significant part of the long description includes some of the 'name' keywords. Generally speaking, these are the first three values that are handy to go ahead and set. SYNTAX: long <description> -DESCRIPTION: This value is what players will see when they look at an object. If the value is blank, the look command will default to the long description. As with describing rooms or mobs, it is best to describe only what can be seen, rather than dictating the opinions or assumptions of the onlooker (or in anyway dictating action on behalf of the onlooker). SYNTAX: desc (enters into append mode) -LEVEL: This is the level of the object, which will determine whether a player can use or equip the object. Almost any item that can be used can be restricted to a level requirement using this value. Please note that the maximum level a player can normally use is 100, although Human characters can use up to level 110. This value is necessary for the autoarmor and autoweap commands detailed further in the guide. SYNTAX: level <number> -WEAR FLAGS: This determines whether or not the player can equip an item. Generally speaking, only weapons and armor need to have any value other than take set. Take is necessary in order for the obj to be able to be picked up. -TAKE: This allows an object to be picked up. -WIELD: This will allow an object to be held in a primary or secondary hand. -SHIELD: This will allow an object to be held in a primary or secondary hand. -HEAD/TORSO/ARMS/LEGS: These will allow an object to be worn in the specified spot. -RELIC: These will allow items to be used in the relic spot. In the case of relics, always remember to set the "relic" extra flag as well and to include relic as a keyword in the 'name' of the relic. -NOSAC: These items cannot be destroyed via 'send.' -STUCK: These items cannot be disarmed, stolen, or otherwise removed from a character without the character's consent, which makes it different from things like noremove or nogive. This is generally a quest flag and should not be used very often or on easily obtained items. -AREA_ROT: Item will decay if taken outside of home area. -DROP_ROT: Item will decay if dropped and not picked up after a certain time. -QUIT_ROT: Item will decay if on player who quits. -RESET_ROT: Item will decay on next reset. -NIGHT_VIS: Item is only visible at night. -DAY_VIS: Item is only visible during the day. -STOLEN: Flagged when an item is stolen. SYNTAX: wear <flag> -EXTRA FLAGS: These are additional flags that make the object behave differently than normal. -GLOW: This is mostly an aesthetic flag and a leftover from when there were dark rooms in the game. It will positively modify the chance of an enchant or temper, however. -HUM: This is purely an aesthetic flag when set by a builder, although it will be applied to items that are enchanted or tempered. -RELIC: This adds the (relic) flag to an item and governs a few other behaviors including not allowing the item to be sold, auctioned, dropped without dissolving or given away. This should be set on all items with the relic wear flag, but may be used in other instances as well. -EVIL: With weapons this flag makes them deal more damage to good characters, while with armor it has a chance to take less damage from a good character. -INVIS: This item is invisible to anyone unable to detect invisibility. -NODROP: These items may not be dropped. Remove curse will remove this flag. -BLESS: All items have a bonus against being frozen/burnt etc. and as weapons will deal more damage to evil characters and as armor will have a chance to take less damage from an evil character. -ANTIGOOD: Good aligned characters cannot use this item. -ANTIEVIL: Evil aligned characters cannot use this item. -ANTINEUTRAL: Neutrally aligned characters cannot use this item. -NOREMOVE: Once equipped, these items may not be unequipped except by death. Remove curse will remove this flag. -INVENTORY: These items will generally not accept being out of an inventory. For use particularly on items you don't want players to get from a mob, these items will disappear upon a mob's death and will disarm to their inventory. This is not recommended for use on items intended for players to access. -NOPURGE: When a room is purged these items will be skipped. -ROTDEATH: A small, random timer is placed on an object when its owner dies, after which it will rot and disappear. -VISDEATH: An invisible item will become visible upon its owner's death with this flag. -NOSTAT: These items cannot be identified using mortal methods. -NOLINK: This item cannot be used in conjunction with another specific item if they are "linked". See further for more information on linking items. -MELTDROP: These items will melt and disappear if dropped. -SELLEXTRACT: When this item is sold to a shopkeeper, it will disappear rather than being able to be sold back. -BURNPROOF: These items will not burn/freeze etc. -NOUNCURSE: These items cannot be uncursed to remove nodrop or noremove. -RETURN: Thrown objects with this flag will return to the owner's inventory rather than breaking. This isn't to be used very often or with very powerful objects as it is intended more as a perk for quest weapons. -HIDDEN: Characters without the means to detect hidden will not see these objects unless revealed through the 'search' command. -NOGIVE: These items may not be given to another. -CONCEALED: Only immortals with "holylight" toggled on can see these items in the room although they may still be interacted with. Good for hidden buttons, levers, and other things for programs when you don't want them to be obvious to the player. -UNIQUE: A character may not possess more than one of this item. SYNTAX: extra <flag> [continued oedit03] -RACE FLAGS: This value will determine what races of characters can wear or wield the item. The values are based on the PC races and may be viewed by using the '? race' command. SYNTAX: race <flag> -CLASS FLAGS: This will determine what classes of characters can wear or wield the item. The values are based on class names rather than flags. The valid entries are as follows: Fighter, Thief, Knight, Mage, Monk, AFighter, Samurai, Pirate, AThief, Assassin, Paladin, AKnight, DarkKnight, WhiteWizard, AMage, BlackWizard, Priest, Berserker, MFighter, Dragoon, Engineer, BeastM, MThief, Hunter, Ninja, CelestialKnight, PhoenixKnight, MKnight, HellKnight, Seraph, Sage, MMage, Magus A clan's name may be used in place of class name to restrict the item. SYNTAX: class <class> -TIMER: Setting a timer will make an item disappear after as many minutes as the value is set to. SYNTAX: timer <number> -LINK: Objects can be 'linked' together using this value. Supply the vnum of the object to link to, and be sure to do the same for that object. As of now, this only works with the 'nolink' value and with the security item type (see further in the guide for this) but other uses will be expanded upon. SYNTAX: link <vnum> -MATERIAL: This value determines what the object is made of. In the chase of weapons and armor, setting a level value will automatically set a material although this may be manually changed, although under normal circumstances (such as run of the mill equipment), this isn't recommended. Material affects several different aspects of weapon and armor, from slight modifications to their effectiveness (when the material is set before using the auto weapon or auto armor commands), to determining the outcome of some skill usage and the weight value when applied using autoarmor or autoweap. Some characters may take more or less damage depending on the material as well. For objects other than weapons and armor, this is mostly an aesthetic choice. It is recommended to be sure the proper material flag is set before using autoarmor or autoweap on an object to ensure the proper values are set. SYNTAX: material <flag> -WEIGHT: This will determine how heavy the item is, which largely comes into play when determining how much a character can carry. There are some other minor factors that considers weight in game. This is one value that is determined by the autoarmor and autoweap commands, and is modified depending on the material type when the auto commands are used to set the value. Setting this value to -1 will make the item not only weightless, but it will not count toward a player's item count either. SYNTAX: weight <number> -COST: This will determine how much an item will cost when being purchased from a shop. This value will be automatically determined by the autoarmor and autoweap commands. SYNTAX: cost <number> -TYPE: There are numerous different types of objects that can be set using this value. Most of the object types will create a new set of values at the very bottom of the oedit screen when you hit return at the prompt. Each of these will be detailed separately in the sections below that detail each object type. SYNTAX: type <flag> -MISCELLANEOUS: This is the default item type, and is also what Janitor mobs will consider trash. This opens no additional values. -TREASURE: This is a slightly more specialized version of miscellanerous, with appropriate uses being things like gold bars or other artifacts whose sole purpose is top sell at treasure shops. This opens no additional values. -KEY: These are used to open doors. When you are setting an exit to locked, you must supply the vnum of a key item type in order for the door to have a usable key. This opens no additional values. -NPCCORPSE: Mostly used automatically by the game, there is little reason to use this item type. This opens no additional values. -MAP: This is the recommended item type for maps, which may have additional use in the future. This opens no additional values. -GEM: See treasure, but for things like diamonds or rubies instead. -JEWELRY: See treasure, but shiny jewelry instead. -BOOK: This is to be used in combination with the only_book container flag. -BOMB: Bombs work by setting the "timer" value of the object and once loaded and the timer expires, the bomb explodes damaging whoever is carrying it. These are really not recommended for actual use and is more of an immortal novelty than anything. This opens no additional values. -MASK: These are to be set to be wearable on the head, and by setting a short description of "a mask of <name>", any character wearing one will show to the room as being named whatever is in the <name> position. For example, making a mask that reads "a mask of a Power Ranger" will show to the character wearing it to be "a Power Ranger" instead of their name. These are mostly for Halloween related quest items and not suggested for general use. This opens no additional values. [continued oedit04] -SCROLL/POTION/PILL: These items work by using a specified spell or spells on the user and/or target at a specified spell level. Scrolls are used by the recital skill, potions are used via the use/quaff/admin commands, and pills are used by being eaten. A starting scroll/potion/pill will display the following values: [v0] Level: [0] [v1] Spell: reserved [v2] Spell: reserved [v3] Spell: reserved [v4] Spell: reserved -LEVEL: The level at which the spell shall be cast. -SPELL: What spell for that slow will be used. Note that "reserved" basically means no spell and that you should start with the first available spell slot in the list and work your way down setting spells. Many scrolls, potions, or pills will only have one spell, however. SYNTAX: v0 <number> SYNYTAX: v1 <spell>, v2 <spell>, etc. *A note on POTIONS: There are a default list of standard potions that are to be used by the immortals, in order to keep potion standards and costs consistent. As will be detailed in the resets section, normally a builder should not reset anything outside of their vnum range into their area, but potions are among the exceptions to this, as it is mandatory that the list of "stock" potions be the ones used. A list of stock items (which include traps and various throw items) that may be used can be accessed with the vnum command by typing 'vnum' stock if you have it, or the 'help stock_prices' file for those that do not. For reference, here is the list: PRICE [ VNUM] ITEM --------------------------------------- 25 [ 54] a snare trap 300 [ 213] a tonic 600 [ 214] a potion 100 [ 215] an antidote 1000 [ 216] a remedy 50 [ 217] eye drops 1500 [ 218] a phoenix pinion 750 [ 219] a phoenix down potion 250 [ 220] a hyper potion 50 [ 221] a potion of recall 500 [ 222] a tincture 1500 [ 223] an ether 0 [ 224] an elixir 50 [ 225] a green cherry 30 [ 245] a bola 50 [ 246] a smoke bomb 50 [ 248] a tar trap 75 [ 249] a needle trap 100 [ 250] a net trap 200 [ 251] a spike trap 300 [ 252] a mysterious trap 370 [ 254] some dream dust 5000 [ 255] a small vial of poison -WAND/STAFF: Wands and Staves are items that can target another character and use a single spell on the victim at a specified level. Wands are used with the invoke command while staves are used by brandishing. You must set the wear location for both of these items to 'shield' so they can be held in a player's secondary hand. A new wand or staff will have the following values: [v0] Level: [0] [v1] Charges Total: [0] [v2] Charges Left: [0] [v3] Spell: reserved -LEVEL: The level at which the spell shall be cast. -CHARGES TOTAL: How many times a wand or staff is capable of being used or charged to. -CHARGES LEFT: How many times the wand has left to be used. -SPELL: The spell that can be set. SYNTAX: v0 <number> SYNTAX: v1 <number> SYNTAX: v2 <number> SYNTAX: v3 <spell> -FURNITURE: These items can be interacted with by characters through the stand, sit, rest, and sleep commands depending on how they are flagged. The main advantage to this is that many pieces of furniture have a bonus to healing. As we don't allow portable furntiure, never put the take flag on these items. A blank piece of furniture has the following values: [v0] Max people: [0] [v1] Max weight: [0] [v2] Furniture Flags: none [v3] Heal bonus: [0] [v4] Mana bonus: [0] -MAX PEOPLE: This determines how many people are allowed on the furniture. Things like chairs are usually set to 1, while beds may be 2-3, etc. One trick to making a large table that many people can sit on is to set the long description of a piece of furniture describing a table, while making the short description that of a chair, then set the max people/weight values to a higher number. -MAX WEIGHT: This determines how much weight the furniture can hold. Generally you just take the value of max people and multiply that by 1000 to get the proper value. -FURNITURE FLAGS: This determines both if stand/rest/sleep can be used, and whether the messasing is on, in, or at. Use the appropriate values for the appropriate situations. For example, a bed should be able to be used with rest and sleep and depending on the builder's preference, those paired with on or in. In the instance of a podium, however, stand_at would be the lone appropriate value. Multiple values may be stacked, and they are as follows: stand_at stand_on stand_in sit_at sit_on sit_in rest_at rest_on rest_in sleep_at sleep_on sleep_in -HEAL BONUS: This determines how much the furniture will heal hit points of a person using it. As with heal rates in rooms, a value of 0 means no healing while 100 means 100% healing. To half the heal rate you would use 50, while 200 would double. -MANA BONUS: This determines how much the furniture will heal mana points of a person using it. As with heal rates in rooms, a value of 0 means no healing while 100 means 100% healing. To half the heal rate you would use 50, while 200 would double. SYNTAX: v0 <number> SYNTAX: v1 <number> SYNTAX: v2 <flags> (ie: v2 rest_in sleep_in) SYNTAX: v3 <number> SYNTAX: v4 <number> [continued oedit05] -CONTAINER: These objects hold other objects. Common uses for this include backpacks, treasure chests, cabinets, lockers, etc. Some creative uses might include holes, trees, bushes, etc. In conjunction with the concealed flag, there are a lot of opportunities for some clever hiding spaces, forcing players to read room descriptions. A blank container object will have the following values: [v0] Weight: [0 kg] [v1] Flags: [none] [v2] Key: none [0] [v3] Capacity [0] [v4] Weight Mult [0] -WEIGHT: This is the amount of weight that an object can hold. A typical backpack is set to 500, with the value of others fluctuating based on that. -FLAGS: These are the flags that the container can have, each doing something different. They are as follows: -CLOSEABLE: The container can be closed and opened. -PICKPROOF: If the container is locked, it will not be able to be opened via the pick lock skill. -EASY: If the container is locked, it will be easily opened via pick lock. -CLOSED: The container will load closed. -HARD: If the container is locked, it will be difficult to open via pick lock. -INFURIATING: If the container is locked, it will be very difficult to open via pick lock. -DAM_TRAP: The container is trapped and will cause damage when opened if the trap isn't first disarmed. -LOCKED: The container is locked. -POISON_TRAP: The container is trapped and will cause poison when opened if the trap isn't first disarmed. -ELEM_TRAP: The container is trapped and will cause elemental damage equal to the greatest elemental presence in the room if the trap isn't first disarmed. -BLIND_TRAP: The container is trapped and will cause blind when opened if the trap isn't first disarmed. -DISPLAY: This will allow the contents of the container to be viewed even when the container is closed. -ONLY_MAGIC: Only scrolls, wands, and staves can go in this container. -ONLY_TREASURE: Only treasure, gems, and jewelry can go in this container. -ONLY_WEAPON: Only weapons can go in this container. -ONLY_ARMOR: Only armor can go in this container. -ONLY_SPICE: Only spices can go in this container. -ONLY_KEY: Only keys can go in this container. -ONLY_POTION: Only potions can go in this container. -ONLY_BOOK: Only books can go in this container. -EATKEYS: Consumes a key when used to unlock. -CRUMBLE: Container will crumble when emptied. -KEY: This is the vnum of the key object that can be used to unlock a locked container. -CAPACITY: This is how many objects a container can hold. A typical backpack usually has a capacity of 500. -WEIGHT MULT: A value between 0 and 100, this will reduce how much items in the container will weigh when the container is being carried by a character. A value of 0 (which is the standard) will mean that 100% of the weight of the items in the container will be counted, while 25 means 75%, 75 means 25%, and 100 would be 0%. SYNTAX: v0 <number> SYNTAX: v1 <flags> SYNTAX: v2 <vnum of key> SYNTAX: v3 <number> SYNTAX: v4 <number> -CHEST: These objects automate the system for creating treasure chests. A blank chest object will have the following values: [v0] Type: [all] [v1] Flags: [closeable closed] [v2] Key: [ 0] none [v3] Vnum: [ 0] none [v4] Vnum: [ 0] none [v5] Vnum: [ 0] none [v6] Vnum: [ 0] none -TYPE: all, random, rarity; this determines which objects will load. All will load them all, random will pick one at random, while rarity will give the best chance for v3 and lower chances for v4, v5, then the least for v6. -FLAGS/KEY: Exactly like container. -V3 - V6: A specified vnum OR use random_X where X can be head, torso, arms, legs, shield, weapon, item, ammo, scroll, wand, or staff and a generated obj will load in that spot. -DRINKCONTAINER: These items are usually portable via the take flag and are things like bottles, waterskins, a cup of coffee, etc. They are similar to fountains, but different mostly in the option of being poisoned. A blank drink container will have the following values: [v0] Liquid Total: [0] [v1] Liquid Left: [0] [v2] Liquid: water [v3] Poisoned: No -LIQUID TOTAL: This is the maximum capacity the drink container can hold. -LIQUID LEFT: This is how much capacity the drink currently has. -LIQUID: This is the type of liquid that is in the drink. Typing '? liquid' will show the available types and their stats. -POISONED: This is a numerical value that determines whether or not the drink is poisoned, and if so which type. The valid choices are 0 for no, 1 for regular poison, and 2 for food poisoning. SYNTAX: v0 <number> (can use -1 for infinite) SYNTAX: v1 <number> (can use -1 for infinite) SYNTAX: v2 <liquid type> SYNTAX: v3 <number> -FOOD: These are items that can be eaten, but unlike pills they do not cast any sort of spell. All food eaten, however, does bonus some hit points if the food isn't poisoned. A blank food item will have the following values: [v0] Food hours: [0] [v1] Full hours: [0] [v3] Poisoned: No -FOOD HOURS: This determines how long a piece of food can last after being created or bought by a character. -FULL HOURS: This is a value of how full a piece of food will make a character. -POISONED: This is a numerical value that determines whether or not the drink is poisoned, and if so which type. The valid choices are 0 for no, 1 for regular poison, and 2 for food poisoning. SYNTAX: v0 <number> SYNTAX: v1 <number> SYNTAX: v3 <number> -MONEY: These objects bonus the player gil when picked up. A blank money item will have the following value: [v0] Gold: [0] -GOLD: This is how much money the object will give a player. SYNTAX: v0 <number> -FOUNTAIN: These are usually stationary objects with no take flag. They are similar to drink containers, but lack the option to be poisoned. A blank fountain will have the following values: [v0] Liquid Total: [0] [v1] Liquid Left: [0] [v2] Liquid: water -LIQUID TOTAL: This is the maximum capacity the fountain can hold. -LIQUID LEFT: This is how much capacity the fountain currently has. -LIQUID: This is the type of liquid that is in the fountain. Typing '? liquid' will show the available types and their stats. SYNTAX: v0 <number> (can use -1 for infinite) SYNTAX: v1 <number> (can use -1 for infinite) SYNTAX: v2 <liquid type> [continued oedit06] -PORTAL: These objects are usually stationary with no act flag and are able to transport a character (and sometimes his or her group) to another location. A blank portal will have the following values: [v0] Charges: [0] [v1] Exit Flags: none [v2] Portal Flags: none [v3] Goes to (vnum): [0] -CHARGES: This is how many times the portal can be used before disappearing. -EXIT FLAGS: These are exit flags just like in redit, with ? exit showing the valid flags. These are not normally used on portals. -PORTAL FLAGS: These are portal specific flags that modify the way it behaves when transporting a character. The flags are as follows: -NORMAL_EXIT: This transports a single character, with the messaging in the new room not indicating they came from a portal. -NO_CURSE: If a character is cursed, they can't use the portal. -GO_WITH: This will take the portal with the character to the new location. -BUGGY: There is a 5% chance for the portal to send the character into a random location than the one set. -RANDOM: This will send the player to a random location regardless of the value set for where it is supposed to go. -TAKE_GROUP: The entire group of the person passing through the portal will be transported as well. -GOES TO (VNUM): This is the vnum for where the character will be transported. Using a vnum of -1 will do the same thing as the random portal flag. SYNTAX: v0 <number> SYNTAX: v1 <flag> SYNTAX: v2 <flag> SYNTAX: v3 <vnum> -BUTTON: Similar to portals, this is the lazy man's way of making a button that can be pressed to transfer the character to a new room. These are usually used in a room that opens up a hidden exit, by making the new room identical to the old, just with a new exit available. There are more sophisticated ways to simulate this using the various programs, but this is acceptable until a builder has gained a good grip on programming. A blank button object will have the following values: [v0] Portal Flags: none [v1] Goes to (vnum): [0] -PORTAL FLAGS: See the portal section for an explanation of this. -GOES TO (VNUM): This is the vnum for where the character will be transported. Using a vnum of -1 will do the same thing as the random portal flag. SYNTAX: v0 <flag> SYNTAX: v1 <vnum> -SECURITY: This object type allows a character to view and/or hear activity going on in another room. In order for it to work properly, the two objects must be linked together via the 'link' value on both objects. These are good for one or two way communication devices, security cameras, outlook posts, etc. A blank security object will have the following values: [v0] Direction: none [v1] Type: none [v2] Source: 0 (0 for no, 1 for yes) -DIRECTION: This determines whether or not both rooms the objects are in will see/hear the information being presented, or whether just the "source" object will. -TYPE: This determines whether this will work based on sight, audio, or both. Sight will allow the player to look at the security object to see the room the other one is in, while audio will automatically present all says, osays and yells. -SOURCE: This will determine which object is the source. Please only set one of the objects as the source. When a one way connection is set, the object set as the source will be the one that sees/hears the information. SYNTAX: v0 <direction> (ie: v0 two_way) SYNTAX: v1 <type> SYNTAX: v2 <number> -GLOVE: These items are used in conjunction with the "effect gloves" skill and are more or less their own weapon type without actually being weapons. In a nutshell, they add affects to a character's hand to hand fighting. The skill is gained at level 73, so there is little point in making any of these in any areas or at any level lower than this. The appropriate wear flag for this would be wield. A blank glove object will have the following values: [v0] Dam_Type: [none] [v1] Element: [none] [v2] Affect: [none] -DAM_TYPE: This determines what damage type the attacks will be converted to. You can view the extensive list by typing '? weapon'. -ELEMENT: This will add an element to the attacks. The valid elements, and their corresponding values, are as follows: - 0: none - 1: black - 2: green - 3: red - 4: white - 5: yellow - 6: blue -AFFECT: This will determine what affect can be added onto the attacks of the gloves. Typing '? affect' will bring up a list of available affects, although obviously not all of them would be appropriate. SYNTAX: v0 <flag> SYNTAX: v1 <number> SYNTAX: v2 <flag> [continued oedit07] -ARMOR: These are the objects that players may wear. The wear slots shield, head, torso, arms and legs are the appropriate slots for this item type. Similar to mobiles, there are autoset values for armor as well settable with the "autoarmor" command. Before using autoarmor, it is important to set the level, wear location, and make sure that a material is set, as all three will modify the stats that are automatically set. On the wear location, objects like shields and things worn on the torso give higher bonuses than something worn on the legs or head, for example. Unlike with mobs, a higher defense value here is a better defense value. It is best to try to describe a piece of armor based on it's material for most generic equipment, as with material having a standard level range, it gives players an indication of an object's level or strength at a glance. It is important to note that when making equipment to be reset on a mob, the level of the object should match the level of the mob. A blank piece of armor will have the following values: [v0] Piercing Defense [0] [v1] Bashing Defense [0] [v2] Slashing Defense [0] [v3] Magical Defense [0] -PIERCING DEFENSE: This determines how much less damage a character will take from piercing damage when wearing the piece of armor. -BASHING DEFENSE: This determines how much less damage a character will take from bashing damage when wearing the piece of armor. -SLASHING DEFENSE: This determines how much less damage a character will take from slashing damage when wearing the piece of armor. -MAGICAL DEFENSE: This determines how much less damage a character will take from magical damage when wearing the piece of armor. SYNTAX: v0 <number> SYNTAX: v1 <number> SYNTAX: v2 <number> SYNTAX: v3 <number> -AUTOARMOR: This is the command used to autoset armor. As noted before, level, wear slot, and material must be set before using the command. Once used, the weight, cost, and defense of the object will be set, along with a variety of other bonuses such as stat bonuses. Editing and/or adding these will be detailed in the ADDAFFECT section further in the guide. There are five types of autoarmor: Knight, Fighter, Thief, Mage, Random. Each of these will skew the defense and extra bonuses to be more suited for that particular class, while random works as a "default" option. For the sake of balance, it is best to stick pretty close to these values when it concerns the level range of the equipment, although some deviation is acceptable. -WEAPONS: These are the objects that players may equip and use in combat. The wear slots take and wield are the only ones that need to be set with this. As with mobiles and armor, there is an autoset command, AUTOWEAPON, that is used to automatically set many of the values of the weapon. Before using the autoweapon command, it is important to set the level, material, and weapon class of the weapon first as all three things will affect the stats that are generated. A blank weapon will have the following values: [v0] Weapon class: exotic [v1] Attack Power: [0] [v2] Hit Rate: [0] [v3] Type: none [v4] Special type: none -WEAPON CLASS: This is the type of weapon your object is. Typing '? wclass' will give you a current list of available weapon types, all of which should be self explanatory. Exotic, however, would encompass any type of weapon that would not fall under any of the specified types, and requires no skill to use proficiently. Note that the 'bow' weapon class also requires arrows to work, detailed further in the guide. -ATTACK POWER: This determines how much damage the weapon will do and is one of the values automatically set by autoweapon. -HIT RATE: This determines how accurate the weapon is and is one of the values automatically set by autoweapon. -TYPE: This is the type of damage the weapon will do. The available damage types are viewable by typing '? weapon'. While mostly aesthetic in nature, damage may vary between types based on the defense of the character being targetted by the weapon. -SPECIAL TYPE: These flags are additional modifiers for the weapon, and should be used somewhat rarely. A list of the current flags may be viewed by typing '? wtype', but a breakdown of the ones as of this writing are as follows: -ELEMENTAL FLAGS: Each corresponds to a specific element and has one added effect that is possible. unholy: black - mp drain crushing: gravity - evasion penalty earthen: green - stop volcanic: magma - def/mdef penalty flaming: red - additional extra damage dazzling: photon - blind holy: white - hp drain shocking: lightning - daze cyclonic: yellow - confuse frost: blizzard - slow quenching: blue - attack penalty venomous: shadow - poison (w/o -PWR) innate: determined by player's innate primary element combo: determined by player's innate elements -VAMPIRIC: These weapons will drain hit points from the character being targetted and bonus some of the hit points back to the character using the weapon. -SHARP: This increases the critical hit chance of the weapon, making the weapon overall do more damage. -VORPAL: Gives a chance of decapitation with eeach strike. The lower the health the better chance. Critical hits increase this chance. -TWOHANDS: These weapons can only be wielded using both hands. Two handed weapons will automatically do more damage, and this flag is recommended for the majority of spears and are common for weapons such as axes and some staves. -POISON: These weapons have a chance at inflicting the poison status affect on the victim. -BURST: This has a chance at additional damage that is considered to be damage type "energy" when unpaired with an elemental flag. When paired, it increases the elemental damage on a critical hit. -GUNBLADE: These weapons are considered gunblades, which upon striking an enemy there is a chance of an additional bit of damage as the trigger on the gunblade is being pulled. A gunblade skill governs how effective this flag is. Under typical circumstances only swords should be flagged as gunblades and gunblades should also be flagged as twohands. SYNTAX: v0 <flag> SYNTAX: v1 <number> SYNTAX: v2 <number> SYNTAX: v3 <flag> SYNTAX: v4 <flag> [continued oedit08] -ARROWS: These are the objects that serve as the "ammunition" for the bow item type. Arrows are premade and like potions, you can reset these directly into your area. A list of the available arrow types are as follows and may be viewed with the 'help arrows' command: VNUM ARROW TYPE 24982 single arrow 24983 arrow bundle 24984 barbed arrow 24985 barbed arrow bundle 24986 poisoned arrow 24987 poisoned arrow bundle 24988 fire arrow 24989 fire arrow bundle 24990 ice arrow 24991 ice arrow bundle 24992 bolt arrow 24993 bolt arrow bundle 24994 spirit arrow 24995 apirit arrow bundle 24996 piercing arrow 24997 piercing arrow bundle 24998 exploding arrow 24999 exploding arrow bundle 8126 silver arrow 8124 silver arrow bundle It is recommended that when resetting arrows into your area, that you put both the single and bundle vnums into the shop. The bundles default to 20, although characters may buy any number of singles to create bundles of their own sizes. Even though creating custom arrows are not possible at this point, a blank arrow object has the following values: [v0] Total Arrows: [0] [v1] Attack Power: [0] [v2] Hit Rate: [0] [v3] Arrow Type: normal [v4] Weapon Flags: none -TOTAL ARROWS: This is how many arrows are in a bundle. A single arrow has a value of 1, while a bundle of more would have the specified value. -ATTACK POWER: This determines how much damage the arrow will do. -HIT RATE: This determines how accurate the arrow is. -ARROW TYPE: This determines which of the 'stock' arrows will load when the arrow or bundle of arrows is creates. -WEAPON FLAGS: This determines any additional properties of the arrow. See 'SPECIAL TYPE' under the weapon section. SYNTAX: v0 <number> SYNTAX: v1 <number> SYNTAX: v2 <number> SYNTAX: v3 <flag> SYNTAX: v4 <flag> -TENT: This object will open up the menu for creating sleeping bags, tents, and cabins. These items are like portable furniture items that heal the player when they are slept in and have a number of charges that are available. It is important to sent the "type" first which will fill out the other values for default. This is also one of the "stock" items available to be reset in other areas, so deviating from the default or creating new ones isn't really needed. A blank tent object has the following values: [v0] Type: [sleeping bag] [v1] Max People: [0] [v2] Charges: [0] [v3] Heal/Mana: [0 percent] -TYPE: This sets sleeping bag, tent, or cabin which has its own default values for the other settings. -MAX PEOPLE: This is how many people can be in the tent at the same time. -CHARGES: This is how many times it can be used. -HEAL/MANA: This is what percentage of the user's max hp/mp it will heal each tick. SYNTAX: v0 <number> SYNTAX: v1 <number> SYNTAX: v2 <number> Additional Object Properties There are a couple of other values which may be used to help further customize an object, such as adding affects to the user of an object or allowing the use of a skill by someone wearing the item. A good balance of "addaffects" are automatically generated on armor and weapons when the autoset comamnds are used, but otherwise additional addaffects or proficiencies should be used rarely. -ADDAFFECT: This is the command through which things like additional stats, spell affects, etc. are added to the object. There are two parts to an addaffect, the location and modifier. The location is what the addaffect is modifying, while the modifier is how much it is being modified. When you add an affect, it will show up below the object description but before any additional values from other object types. Affects may be deleted by using the 'number' listed in that section. The valid locations are as follows: -SPELLS: This is how a positive or negative spell may be applied to an object. The valid list of affects are viewable under '? affect'. -IMMUNE/ABSORB/RESIST/VULN: These will modify a character's resistances or vulnerabilities to any of the valid options. Typing '? imm', '? absorb', etc. will show what is valid. -POWER/AGILITY/WILLPOWER/VITALITY: These are the core stats of a character and may be modified either positively or negatively by addaffect. -SEX: This is a character's gender, and the number will modify the gender by the number, not set it specifically to a gender. -HP/MANA: You may add or subtract hit points or mana points to/from a character. -DEFENSE: This will modify both the defense and mdefense of a character. A positive/higher number is an increase in this instance. -HITROLL/DAMROLL: This will modify the accuracy and attack values of a character. -SAVES/SAVINGSPELL: This will positively or negatively impact a character's chance to resist certain spells and affects. -CASTLEVEL: This will positiviely or negatively impact the level at which a character casts magic. -ALIGNMENT: This will modify a character's alignment in a positive or negative manner. SYNTAX: delaff <number> SYNTAX: addaffect <location> <modifer> (ie: addaffect spell fast addaffect vitality 3) -PROFICIENCY: This is the command through which a skill may be added to an object. For example, the gauntlet relic may have a proficiency of the grip skill at 60%, which would allow a character with no gauntlet skill (or a gauntlet skill below 60%) to use the skill as though they were proficient with the skill at 60%. Any skill in the game may be technically applied to an object. This is mostly used in the case of relics, although rarely. When you add a proficiency, it will show up below the object description but before any additional values from other object types in same section as addaffects. Proficiencies may be deleted by using the 'number' listed in that section. SYNTAX: proficiency <skill> <number> (ie: proficiency grip 60) SYNTAX: delaff <number> VI. Resets - This will detail the specifics of resetting objects and mobiles into areas. A. Placing Resets ......... read resets01 Resets are the backbone of making anything appear into a room. There is a specific order that resets must be placed along with a few tricks to help filling out areas as well. Unlike every other thing in OLC, you do not have to be in an editor in order to check or manipulate resets. A room reset occurs at regular intervals throughout the game and is usually on a per area basis. Players in an area will slow down an area reset, also known as a "repop" to many players. -RESETS: This is the command to view the resets that are already in a room. When there are no resets in a room, a messaging reading "No resets in this room." will display. -RESETS AREA: Will list all resets in the area. SYNTAX: resets area <obj|mob|all|aggies> -REDIT RESET: This command will instantly load all resets that you have in the room. If you are wanting to see how your resets look upon a typical room reset, it is recommended to first purge the room if anything is already reset into the room. The order of resets is important in many instances, including equipping a mob, putting an object into another, etc. A note on resets, when you have a list of resets, the reset appearing at the top of the list will be the first one reset into the room, and thus will be at the bottom of the list when you 'look' in the room. More specifically, if you have a barrel reset at number 1, a tree at number 2 and a pool of water at number 3, when a player looks at the room, the pool of water will be displayed first, followed by the tree, with the barrel at the bottom of the list. Objects and mobs will always be grouped together, however, and will display according to their reset order as specified. Anytime an object is to be reset in relation to either a mob or another object, that object must always come immediately AFTER the other reset. Usually when a reset has been properly set, it will tell you when you type 'resets'. SYNTAX: reset # delete -This will delete a specified reset. Be sure that when deleting resets to be mindful of whether or not you are deleting a reset that is reliant on another. Specifically, if deleting a mob, be sure to make sure that any objects that were reset onto the mob are deleted as well; same with containers. Mobiles: SYNTAX: reset <#> mob <vnum> -This will reset a single mob into the room. Typically, the number will be the next one available in the resets list, although you can insert a mob into the reset list at whatever number specified. SYNTAX: reset <#> mob <vnum> <max-area> <max-room> -The additional, optional values of <max-area> and <max-room> is the method through which you may reset additional mobs of the same vnum throughout an area. Let's say you have a single "cityguard" mob vnum that you wish to have reset at 8 points throughout your area and the mob's vnum is 1007, in each room that you wanted to have a single cityguard, you would type 'reset 1 1007 8 1'. If you wanted to double up (or more) in a single room, type 'reset 1 1007 8 2'. The '8' value is denoting that 8 of the same vnum are allowed to reset into the area as a whole, while the 1/2 values denote how many are allowed to reset into the individual room. If you use the '8' value in the reset, everywhere else you are resetting this individual vnum you must use the '8' value there. Be sure that the number of times (or the total number of max-room) you have this reset equals the max-area number. For example, if you set 1 room to '8 2' then you would have available to you 6 other rooms you can reset that into. If you used '8 2' in two rooms, that would leave 4 other instances. As long as the total number of 'max-room' throughout the area equals 'max-area' then you are good. Objects: SYNTAX: reset <#> obj <vnum> room -This will reset a single object into the room. Note that unlike mobs, you MUST supply room after the vnum in order for this to work, otherwise it will kick back an error message. SYNTAX: reset <#> obj <vnum> <wear location> -This will allow you to reset an object onto a mob in the room. Note that the number of this reset must come AFTER the mob it is being reset onto. There should be nothing between the mob's reset and the object's reset other than other objects that have been reset onto the mob or into the mob's inventory. Typing '? wear-loc' will give you the available spots that an object can be reset onto a mob. Note that 'none' is the mob's inventory, and this is where you would reset any objects that a shopkeeper is to sell. Also note that when equipping a mob, you must make the object and the mob's levels both match. SYNTAX: reset # obj <vnum> inside <container vnum> -This is how you reset an object into another object. This is similar to mobs in that the container object must be reset before the object that is going into the container. In cases of where you may want to reset objects into a container that is on a mob, all regular rules apply. You would reset the mob first, then the container onto the mob, then the object into the container. EXAMPLE Here is a setup example: obj 1001 a tree obj 1002 a barrel obj 1003 a few rocks mob 1004 a goblin obj 1005 a slingshot obj 1006 a small bag obj 1007 a few glass marbles Here is how you would reset them: reset 1 obj 1001 room (this load the tree in the room) reset 2 obj 1002 room (this load the barrel in the room) reset 3 obj 1003 inside 1002 (this loads the rocks inside the barrel) reset 4 mob 1004 (this loads the goblin in the room) reset 5 obj 1005 hold (this will load the slingshot in the goblin's hand) reset 6 obj 1006 none (this will load the small bag into the goblin's inventory) reset 7 obj 1007 inside 1006 (this will load the marbles inside the small bag) VII. Programs - This will detail the basics of mob, object, and room programs along with a few basic examples. A. Creating Programs ......... read prog01 B. Example Programs .......... read prog02 Programs are the process through which mobs, objects, and rooms are made to do things not normally supported by preset hardcoded mechanisms. This is the lifeblood of making an area really seem alive and the possibilities are nearly endless. This will cover the basics of creating programs for each of the types along with some examples to help get you started. The full list of updated program specifications can be downloaded at http:.//www.eotmud.com/Programs.doc Mob Programs are the most versatile of all of the program types and is usually the starting point for learning to create programs, along with the option most commonly used for the more complicated programs. CREATING MPROGS: -MPEDIT CREATE: This is the command by which mob programs are created. Doing so without an argument will create one at the next available vnum, while supplying a vnum will create one at the specified vnum. SYNTAX: mpedit create <vnum> -NAME: This will tag the program with an optional name value. SYNTAX: name <string> -CODE: This is what will enter into the editor for the mob programs. This is append mode, with all of the same commands and such as with any editor. SYNTAX: code -LIST: While in mpedit, typing list will bring up a list of vnums for every other mprog in the area. May also use 'mplist <all|name>' SYNTAX: list -CLEAR: While in mpedit, typing clear will clear all values. -ADDMPROG: This is the command to add a program to a mob. Note that you must be in the editor for the mobile in order to add a program. A program being added has three parts, the vnum of the program, the trigger, and the argument. The trigger of a program is what makes the program fire. For example, if you want a program to fire when a player enters the room that the mobile can see, you would use the greet trigger. The fight trigger would be what you would use if you wanted the program to fire when a player initiates combat with the mob. The speech trigger would fire when a certain keyword has been said. The argument of a program will be determined by what type of trigger is used. In the case of greet and fight, it would be a number indicative of a percentage of how reliable the trigger is. In the case of the speech trigger, it would be the word(s) you wanted the program to fire on. Once a program has been added to a mob, you may view it at the bottom of the mob information under the mob's description. Take note of that number assigned to the mobprog. SYNTAX: addmprog <vnum> <trigger> <argument> -DELMPROG: This is the command to delete a program off of a mob. You use it based on the number assigned to the program once added to the mob. SYNTAX: delmprog <number> CREATING OPROGS: -OPEDIT CREATE: This is the command by which obj programs are created. Doing so without an argument will create one at the next available vnum, while supplying a vnum will create one at the specified vnum. SYNTAX: opedit create <vnum> -NAME: This will tag the program with an optional name value. SYNTAX: name <string> -CODE: This is what will enter into the editor for the obj programs. This is append mode, with all of the same commands and such as with any editor. SYNTAX: code -LIST: While in opedit, typing list will bring up a list of vnums for every other oprog in the area. You may also use 'oplist <name|all>'. SYNTAX: list -CLEAR: While in opedit, typing clear will clear all values. -ADDOPROG: This is the command to add a program to an obj. Note that you must be in the editor for the obj in order to add a program. A program being added has three parts, the vnum of the program, the trigger, and the argument. The trigger of a program is what makes the program fire, while the argument will be different depending on what trigger is used. Once a program has been added to an obj, you may view it at the bottom of the obj information under the obj's description. Take note of that number assigned to the objprog. SYNTAX: addoprog <victim> <vnum> <trigger> <argument> -DELOPROG: This is the command to delete a program off of an obj. You use it based on the number assigned to the program once added to the obj. SYNTAX: deloprog <victim> <number> CREATING RPROGS: -RPEDIT CREATE: This is the command by which room programs are created. Doing so without an argument will create one at the next available vnum, while supplying a vnum will create one at the specified vnum. SYNTAX: rpedit create <vnum> -CODE: This is what will enter into the editor for room programs. This is append mode, with all of the same commands and such as with any editor. SYNTAX: code -NAME: This will tag the program with an optional name value. SYNTAX: name <string> -LIST: While in rpedit, typing list will bring up a list of vnums for every other rprog in the area. You may also use 'rplist <name|all>'. SYNTAX: list -CLEAR: While in rpedit, typing clear will clear all values. -ADDRPROG: This is the command to add a program to a room. Note that you must be in the editor for the room in order to add a program. A program being added has three parts, the vnum of the program, the trigger, and the argument. The trigger of a program is what makes the program fire, while the argument will be different depending on what trigger is used. Once a program has been added to a room, you may view it at the bottom of the room information under the room's exits. Take note of that number assigned to the roomprog. SYNTAX: addrprog <vnum> <trigger> <argument> -DELRPROG: This is the command to delete a program off of a room. You use it based on the number assigned to the program once added to the room. SYNTAX: delrprog <number> Example Programs The best way to learn with programs is really more by doing than anything. Below are some common examples for mob, object, and room programs. Example Mob Programs: The following program will greet a player upon entering a room: addmprog 1001 greet 100 code: say Hello, welcome to my shop! Type 'list' to view what we have! The following program will cause a mobile to use a hyper potion 75% of the time when being attacked by a player: addmprog 1002 fight 75 code: mob oload 220 use potion say You are in for it now, buddy! This program will cause a mob to load 1 of 3 objects upon death as a loot reward: addmprog 1003 death 100 code: if rand 66 mob oload 1003 else if rand 66 mob oload 1004 else mob oload 1005 endif This program will cause a mob to respond to the "talk" trigger, with differing responses based on whether the character has a Sector 7 Hometown: addmprog 1004 talk 100 code: if hometown $n == 3 say Hello there, nice day today, huh? Too bad that pesky goblin near The Dirt Road keeps pestering travellers... I bet you could get a good bit of gil for killing him! else say Hmm, not from around these parts, eh? endif This program will cause a mob to not let a player pass to the east: code: addmprog 1005 exall 1 say I'm sorry, you may not pass without paying me 50 gil! This program will cause a mob to let a player pass based on the player giving the mob 50 gil: addmprog 1006 bribe 50 code: say Ok, that seems like proper payment, you may pass! mob echo $i allows $n to pass. mob transfer $n 1204 mob at $n mob echoaround $n $n has arrived. [continued prog03] Example Obj Programs: This program will cause an object to echo to the player when the object is worn: addoprog $i 1003 wear 100 code: obj echoat $n The sword sends a chill through your hands. This program will cause an object to deal damage within a range of 300 to 400 to an enemy when the object is being worn by a player and the player is fighting. The percentage value is low to make it not happen very often: addoprog $i 1004 fight 15 code: obj echo The sword glows brightly, shooting energy out of its tip! obj damage $n 300 400 lethal This program will push the elemental field of the room toward a random color when a Mage player says the word change: addmprog 1005 speech change code: obj echo The colors of the room swirl vividly! obj shift random Example Room Programs: This program will cause a room to, every so often, echo that a volcano is heard rumbling in the distance: addrprog 1008 random 30 code: room echo A rumbling in the distance can be heard, coming from the direction of the volcano. This program will cause a few mobs to load and other affects when a player picks up a forbidden treasure in the room: addrprog 1009 get 1034 code: room shift red room shift red room shift red room shift red room shift red room lock 2 room echoat $n As you pick up the treasure, the room begins to shake, fire spews up from the ground and a pack of fire demons emerge! room mload 1024 room mload 1024 room mload 1024 room mload 1024 VIII. Other Editors - The editors discussed in this section are generally for advanced builders at higher levels and while most builders will have no need of these, they are detailed anyhow. A. Area Editing .............. read aedit01 B. Help File Editing ......... read hedit01 C. Social Editing ............ read sedit01 Creating Areas Area editing is the method through which areas are created and modified. Many of the values are set largely for use with the areas command, while others modify certain values of the area itself or determine who can edit them. -AEDIT: To create an area from scratch, you use the "aedit create" value. This will create a new, blank area at the bottom of the area list at the next available area "number". With any area you have the security clearance to edit (either by having a security setting high enough, or being set as a builder for the area), you can edit the area you are in by simply typing aedit, or by using aedit <number>. The area list may be viewed via the alist command. Any area may be viewed via 'aedit show <area vnum>' A newly created, blank area has the following values: Name: [ #] New area File: area0.are Vnums: [0-0] Range: [0-0] Game: [(null)] Security: [1] Builders: [None] Authors: [(null)] World: [0-None] Continent:[0] Coords [0:0] Type: [0-None] Finished?:[(null)] Age: [0] Players: [0] Flags: [added] Symbols: floors[] walls[] empties[] space[] [continued aedit02] -NAME: This is the name of the area. Note that prior to the name there is a # sign listed, as this will be the "number" assigned to the area as per its position in the alist. The name of the area can be anything, and is what will show in any place in the MUD where the name of the area is called for, such as the alist, the areas or where command, or the immortal area name prompt value. SYNTAX: name <name> -FILE: This is the filename that the MUD saves the file as. You are limited to 8 characters (the .are file extension is automatically set and doesn't count toward this limit) and it is best to abbreviate the full area name in a manner that should be recognizable at a glance. Proper examples might be using forgcity for Forgotten City, arnivill for Arni Village, etc. SYNTAX: filename <name> -VNUMS: These are the vnums assigned to the area. It is important to note that almost every area in the game is assigned vnums in increments of 50. If an area might only be 35 vnums total, the vnum range will still fall to 50 vnums. A 83 vnum area would be given 100, etc. This is to help maintain and track vnums and keep the ranges and the alist sorted neatly. There is a helpfile called 'vlist' that can be consulted to determine unused vnum ranges, and there is an 'alist' option (alist vnums) that will display the alist in order by vnum, with gaps highlighted in red. SYNTAX: vnum <lower> <upper> (ie: vnum 1000 1049) -RANGE: This is one of the values that only has an affect on the 'areas' command and is indicative of the level range for the area. Generally speaking, most areas in the game will fall within a 5 level range, although variations from this do exist and are acceptable. SYNTAX: lrange <number> (ie: lrange 10) SYNTAX: hrange <number> (ie: hrange 15) -GAME: This is one of the values that only has an affect on the 'areas' command and is indicative of what game the area is based on. As most of our areas are based on Final Fantasy, Chrono series, or Secret of Mana / Seiken Densetsu series areas, this is just a fun little tracking stat of how many areas from what games we have. This value shouldn't be any more or any less than 4 characters, with a standard format following as such: FF01, FF05, FF10, SoM2, -CT-, -CC-, ORIG, etc. SYNTAX: game <name> -SECURITY: This determines who can edit this area that isn't set as a builder for the area itself. Different ranks of immortals and different types of areas have different security values. Immortals like Implementors and Administrators have security clearances all the way up to 9, while unlinked areas have a security of 1, linked areas of 2, quest areas of 4, clan halls 8, and system areas of 9, etc. A current listing of security values for each can be viewed with 'help security.' SYNTAX: security <number> -BUILDERS: This is a list of what builders have access to edit the area, security aside. Builders must be added and removed one at a time (as a toggle). When an area has been linked, it is customary for the builder list to be cleared as to disallow random or casual tinkering of the area after it has been accepted as finished. SYNTAX: builder <name> -AUTHORS: This is one of the values that only has an affect on the 'areas' command and is indicative of what builders were responsible for creating the area. This is different from the builders value as it does not impact who can edit the area, but is more of a "credits" type of value to give credit to the people who created the area. This is a "free string" where anything can be entered up to a maximum of 19 characters and does not behave as a toggle like the builders value. SYNTAX: authors <names> -WORLD: This is a value that affects a handful of game systems and is indicative as to what major part of the game the area is located. This also affects the 'areas' command as players are limited to viewing areas of the "world" they are on. There are 5 acceptable values, set by their corresponding number: 0: None -This is the default setting, used for system areas and areas that are considered outside of normal space/time, such as the newbie and promotion zones. 1: Dissidia -This is the regular overworld map, aka the "Earth". 2: Underworld -This is the underground area, which exists as a small pocket of open land under the surface of the world. 3: Moon -This is the surface of the planet's moon. 4: Zeal -This is a sealed off, floating continent that houses the vastly powerful magical kingdom of Zeal. SYNTAX: world <number> -CONTINENT: Determines what overworld map the area will link to. -COORDS: Where on the map the area is considered to be. -TYPE: Is it a town or a dungeon. -FINISHED: This is one of the values that only has an affect on the 'areas' command and is indicative of whether or not the area is complete and open to the players. This is a simple yes/no/null value and should be set upon creation and then completion of the area. A value of 'null' will make the area not show up on the areas list, which is used by areas such as world maps and system areas. SYNTAX: finished <yes/no/null> -AGE: This value is pointless to set, as it is a system value that determines how long it has been until the last area reset. Once a certain value has been reached, the area will undergo a reset or repop. SYNTAX: age <number> -PLAYERS: This value cannot be modified and is a system value that determines how many players are in the area, which modifies the time it takes for the area to reset. -FLAGS: This value has some flags that cannot be modified and are system values that determine things such as when the area has been changed (for saving purposes), added (for newly created areas), or when it is loading (for booting up purposes). Values that can be changed are: -NO_RESET: Area won't reset at all. -NO_PC_RESET: Area won't reset if a PC is present. -RESET_SLOW: Area resets at a slower pace. -RESET_FAST: Area resets at a faster pace. -MINI_MAP: Area is set to display fully mini map (can combine with room flag to serve as a toggle). -NO_SAVE: Area will not save while flag is set. -NO_MAP: Area displays no mini map at all (can combin with room flag to serve as a toggle). -HIDE_VNUM: Area does not report VNUM through protocols such as MSDP and GMCP. -ASCII: Area will display "nightdesc" instead of regular if present and to players who have enabled screen reader mode. -SYMBOLS: This won't show until one is set. These determine how the area's mini map will look. Room values override these. SYNTAX: floors <symbol> | walls <symbol> | empties <symbol> | space <symbol> Creating Helpfiles Helpfiles are the core system through which players in the game find answers to their questions or learn about system mechanics. They are mostly manipulated through append mode, although there are a couple of other things that can be done with helpfiles. -HEDIT: This is the driving command behind creating or modifying helpfiles. Creating a helpfile has a slightly different syntax from other OLC systems, as you type 'hedit make <keyword>' in order to create a new helpfile. It is recommended that when creating or adding new keywords, to place those in all caps to distinguish that text from the rest of the file. A newly created helpfile has the following values: Level: [0] Keywords: testing Flags: none -LEVEL: This determines who can view the helpfile. Typically, this is only modified for either character creation helpfiles or immortal only helpfiles. When a level value of -1 is supplied, the file can be viewed in character creation and without the list of keywords at the top. Otherwise, a value of 0 would be appropriate for all other player accessible helpfiles. SYNTAX: level <number> -KEYWORDS: These are the words that players can use to access helpfiles. Please take care not to make a helpfile have the exact same list of helpfiles as others, or to add additional words to make distinguishing between different helpfiles easier. An example might be if someone were to type 'help element' then a large list of helpfiles will appear. If someone were looking for the elemental fields helpfile, the keywords allow them to type 'help elemental_fields' or if someone were looking for the elemental star helpfile, they may type 'help element star' to access that. Be considerate when making or modifying keywords on helpfiles. Also, as state previously, please make all keywords in this value in all caps. SYNTAX: keywords <KEYWORDS> -FLAGS: When a player types help with no argument, it brings up a list of categories, and typing help followed by one of the categories will bring up a list of all helpfiles filed under that. This flag value is what determines where a helpfile will fall. Note that helpfiles without a category set can be viewed with the 'help null' command, and it is expected that all helpfiles should fall under a given category. The valid categories are: NEWBIE, COMMUNICATION, COMBAT, INFORMATION, CLASSES, RACES, SKILLS/SPELLS, MOVEMENT, GROUP, OBJECTS, CLANS, OTHER, IMMORTAL, HIDDEN The different categories should be self explanatory, but viewing the help for each category should help clear any confusion. Note that multiple flags may be added to any helpfile. SYNTAX: flags <flag> -DESC: While not listed on a blank helpfile, the description of a helpfile is the content that will display when a player views a helpfile. After a description for a helpfile is set, it will be viewable with hedit under the flags section of the file. This command will bring a player into append mode with all of the same options and commands. SYNTAX: desc (enters into append mode) -DELETE: While in hedit for a file, typing delete will mark the helpfile for deletion and it will be removed at the next copyover or reboot. SYNTAX: delete -ASAVE: Saving helpfiles is a two step process. Whereas all areas, mobs, rooms and objects can be saved with asave changed, helpfiles must be specifically saved by themselves. It is best to first save the files then save the backup. While the backup has never been needed, it is just a failsafe measure. SYNTAX: asave helps SYNTAX: asave helpbak Creating Socials The helpfile for social editing is very complete and detailed, so the following section is just a copy of the helpfile itself. Syntax: sedit delete <social> sedit new <social> sedit show <social> sedit <string-name> <social> [string] SEDIT allows online creation, deletion and editting of socials. SEDIT DELETE <social> deletes that social. The deletion is irrecoverable, save for restoring a backup file, so use this command with great care! SEDIT NEW <social> creates a new, empty social. SEDIT SHOW <social> shows all of the strings for that social. SEDIT <string-name> <social> [string] changes a certain of the 7 strings that make up a social. If you leave out the string, no message will be sent to the involved characters. There are 7 strings that make up a social: cnoarg: Sent to character when no argument typed. E.g. X types HUG and sees: Hug whom? onoarg: Sent to others in the room when no argument is given. In the case of HUG, it is an empty string, so that nothing is shown if a player types HUG by itself. cfound: Sent to the character if a target is found. E.g. X types HUG Y: You hug Y. vfound: Sent to the victim. E.g. X types HUG Y, and Y sees: X hugs you. ofound: Sent to others in room, if target is found. E.g. X types HUG Y. Everyoune but X and Y see: X hugs Y. cself: Sent to the character if she uses the social on herself. E.g. X types HUG X : You hug yourself. oself: Sent to others in room when a player uses a social on herself: X hugs herself in a vain attempt to get friendship. To get the player names and sexes correct, you need to use those macros: $n - name of player $e - he, she or it, depending on sex of player $m - him, her or it, depending on sex of player $s - his, her or its, depending on sex of player. For the victim, just use the uppercase version. E.g. $N is the name of the victim, $E is he, she or it depending on victim's sex etc. So, to make a new social called 'epoke' which would poke eyes out, you would do the following: SEDIT NEW epoke SEDIT cnoarg epoke Poke whose eyes out? (message sent to player) SEDIT onoarg epoke Testing looks around for someone to poke! SEDIT cfound epoke You poke $N's eyes out! SEDIT vfound epoke $n pokes your eyes out! Ouch.. SEDIT ofound epoke $n pokes $N's eyes out! SEDIT cself epoke Being bored, you poke your own eyes out. SEDIT oself epoke $n pokes $s eyes out! To get more examples, type SEDIT SHOW <social-name> to see one of the existing socials. The socials are stored in a file called socials.txt. Manual editing of that file is not advised. A frequent back-up is recommended. The social file is updated by the server as soon as anything changes. Online social editing - (c) 1996,97 Erwin S. Andreasen <erwin@andreasen.org>