=================================================== . DoorMUD World Editor v0.99 -- Sysop Documentation . =================================================== New additions in v0.99: - Class and Race editing (see file WHATSNEW.TXT) - Fresh-from-scratch game worlds (see WHATSNEW.TXT) - Can run script compiler remotely (see WHATSNEW.TXT) - Easier-to-use sequential player editor (see ;editconfig command) - New door32 command lines for GameSrv and EleBBS (see section VII.i) - Better table of contents IMPORTANT -- To run this release of the World Editor, you must: * Have a registered version of DoorMUD. * Be running the MOST RECENT version of DoorMUD, v0.99. If you are running a previous version, please UPGRADE IMMEDIATELY before using the editor. This document is a comprehensive guide to all of the World Editor's features and reference to all its commands. If you plan on doing a large amount of editing, consider printing out this file to paper. Before delving in-depth into editing, it is HIGHLY RECOMMENDED that you read the Quick-Start guide (quick.txt), to learn how to use the World Editor in local mode. The Quick-Start guide goes over most of the basic commands and shows examples on how to use them. TABLE OF CONTENTS: ~~~~~~~~~~~~~~~~~ I. Introduction / Setup (VERY IMPORTANT -- READ THIS FIRST) II. Glossary III. Command Reference Explains all of the editing commands. Browse through this for any given command that you need help with. IV. Scripting Language Explains how to write/edit Scripts, which are used for quests, complex room behaviors, and monster interaction with the "greet" command. V. HLP Files Explains DoorMUD's HLP file format. The HLP files are used to control room descriptions; monster and item descriptions via the "look" command; and the in-game "help" command. VI. Advanced Area Design This step-by-step tutorial explains how to design entire new game areas from scratch. VII. Additional Information A. TEXT CODES -- make grammatically-correct spell messages B. ACTION POINTS (APs) -- control number of hits per round C. SKILL SYSTEM -- setting items/spell usage requirements D. SHOPS -- how to create new shops E. QUESTS -- how to create new quests F. CREATURE STATS -- these are what items and spells can modify G. OLDER AREA DIFFERENCES -- some oddness in the game's older areas H. ACCESS LEVELS -- give your trusted users Implementor access I. REMOTE EDITING -- command lines to run the Editor as a door _____________________________________________________________________________________________________________________ I. INTRODUCTION / SETUP The World Editor is a DoorMUD add-on that allows the game world to be edited by you -- the sysop -- and selected users of your choice. Almost any aspect of the game world can be edited, allowing you to change or add to the game as you see fit. The DoorMUD World Editor is free to sysops running the Registered version of DoorMUD v0.99. The World Editor's interface is command-based, just like the actual DoorMUD game. The World Editor program actually emulates the DoorMUD interface, allowing you to perform editing in a room-based environment. In addition to supporting many of DoorMUD's standard commands for moving around and examining the game world, the Editor also adds 18 new editing commands. Built as a standard doorgame, the Editor can be run either from a BBS or in local mode. The 16-bit (DOS) version of the Editor is dmudedit.exe, while the 32-bit (Windows) version is dmedit32.exe. Setup ----- 1. Make sure DoorMUD is not currently in use. You may want to take the BBS off-line for a moment if necessary. 2. Unzip world099.zip to your existing DoorMUD directory. 3. From a command prompt, run "dmbackup.bat pre" to make a backup of your DoorMUD data files. ***DO NOT skip this step!*** 4. If you wish to allow the World Editor to be run remotely from your BBS (instead of just in local mode), you must install the door into your BBS software's menus. This step is entirely optionally; setup info for several popular BBS software programs is explained at the very end of this file. Editing in Local Mode --------------------- This is the easiest method of editing; simply use the /l command line option to run the World Editor in local mode. If you are using the DOS version, use "dmudedit /l". If you are using the Windows version, use "dmedit32 /l". In either case, you may wish to create a shortcut on your Windows desktop for added convenience. Editing remotely through a BBS ------------------------------ First, add the World Editor to your BBS's menus, as explained at the very end of this document in section VII.i. After doing this, you must manually select which user(s) you want to grant Editor access to. This is described in the "Access Levels" section (VII.h), also towards the end of this file. Making Backup Files ------------------- The World Editor comes with two new batch files -- DMBACKUP.BAT and RESTORE.BAT -- for creating and restoring your data files to backups. To backup your DoorMUD data files, use: DMBACKUP.BAT name where "name" is whatever name you wish to give this particular backup. You can give each backup an individual name (such as the date the backup was made), or you can use the same name each time. To restore to a particular backup, use: RESTORE.BAT name where "name" is whatever pre-existing backup you wish to restore to. It is highly recommended that you create backup files on a regular basis, in case you make a fatal error in the Editor that is difficult to correct. Note: Do NOT run DMBACKUP.BAT or RESTORE.BAT while the game is in use. Resetting the Game ------------------ If you have edited your DoorMUD game, and later wish to reset the game and restore it to its unedited state, you must first use "restore.bat pre" to return the data files to their unedited state. Then, you can use the standard "Reset Game" option in the DoorMUD Sysop Configuration menu if you wish to reset the entire game. (NOTE: If you failed to run "dmbackup.bat pre" when you installed the World Editor, then "restore.bat pre" will have no effect, and you won't be able to run a reset yet since doing so will corrupt your data files. If you find yourself in this situation, e-mail RhythmNp@aol.com for a fix.) Single-node Only ---------------- The World Editor program can only be used by one node at a time. In addition, the World Editor cannot be used while players are in DoorMUD on another node. Both programs automatically check to make sure the other isn't in use, so multiple node conflicts are handled automatically. For example, if the World Editor is in use and a player on another node attempts to enter DoorMUD, a message is displayed asking them to try again later. _____________________________________________________________________________________________________________________ II. GLOSSARY These terms are used throughout the rest of the World Editor documentation. Some of these are explained in more detail in Section VII, Additional Information. CREATURE -- Any player or monster IMPLEMENTOR -- Any player who has been given permission to use the World Editor. The Sysop is able to configure which players are granted Implementor status. ENCHANTMENT -- Refers to a spell component that lasts for a number of rounds AREA -- Every room in DoorMUD is assigned to a particular Area number. Any monster within an area cannot follow a player to outside of that area. Each area has a set recommended level range; it also has some other information that shows up when a user types the "where" command. ITEM -- Has 5 possible types: Weapon, armor, scroll, potion, or key. POTION -- Refers to any item that cannot be equipped, but can cast a spell when used. Not necessarily a literal "potion"; this item type was also used for items like throwing knife, dark crystal, lump of coal, etc. KEY -- Item type used for opening doors. The Key type is often also used for non-usable items, such as quest items. For these items, the key is simply set up not to open any actual doors. SCRIPT -- Simple programming instructions used to control some of the more complex aspects of the game, such as talking to monsters, completing quests, controlling doors that are only open at certain levels, etc. All game scripts are contained in the SCRI1.SCR file. HLP FILE -- Text file format used for descriptions of rooms, items, monsters, and more. DOORMUD -- References to "DoorMUD" in this text indicate notes that apply to *the actual DoorMUD game* (dmud.exe / dmud32.exe / dmud32d.exe), NOT the World Editor program. ACTION POINTS (APs) -- System used to control how many swings per round a creature gets, as well as controlling in-between round spells. SKILLS -- Each class in DoorMUD has a number of skills, each ranked in ability from 0 to 3. A 0 indicates that the class does not have the skill, while a 3 indicates the maximum ability in a skill. You will need to learn the skill meaninigs in DoorMUD (explained in depth in a later section) in order to determine what skill restriction to place on items and spells. Some important skill meanings to remember include: Armor-1 -- light armor Armor-2 -- medium armor Armor-3 -- heavy armor Blunt-1 -- light blunt weapons Blunt-2 -- one-handed blunt weapons Blunt-3 -- two-handed blunt weapons Edged-1 -- light edged weapons Edged-2 -- one-handed edged weapons Edged-3 -- two-handed edged weapons TEXT CODES -- Special characters used in spell messages (among other places) so that the message is grammatically correct for all players. For example, text codes allow a message to show up as "You hit Ganelon with a fireball for 42 damage!" on the caster's screen, while it shows up as "Merlin hits you with a fireball for 42 damage!" on the target's screen. REFERENCE NUMBER (REFNUM) -- All creatures in DoorMUD have a unique Reference Number. For example, Creature #177 is the High Imperial Kingpriest. Items, Spells, Rooms, etc are also numbered. Usually, most reference numbers are unimportant, but Creature reference numbers are sometimes important. For example, the editor might show a certain item to be "on Creature #177", instead of "on High Imperial Kingpriest". In this case, another search can be performed to determine which creature is #177. IMPLEMENTOR RECALL -- Implementors can use the game's standard Recall command to teleport to any room in the game at any time. For example, an Implementor can type "recall 414" to teleport instantly to room #414. This can also be abbreviated as "; 414" that is, a semicolon, a space, and then a room number. Implementor recall is the most vital navigation aid in the World Editor. _____________________________________________________________________________________________________________________ III. COMMAND REFERENCE The World Editor uses a room-based command interface, just like DoorMUD. This section explains the full effects of every editing command in the World Editor. Notes: - To view a command list in the editor, type "menu" at any time. - All commands in the World Editor can be abbreviated, just like in DoorMUD. Special abbreviations are also available, listed in (parentheses) in the command menu. For example, the abbreviation of ";editcreature" is "ecr". - Some parameters of commands are optional, while others are required. Optional parameters are shown in in [brackets], while required parameters are shown in . - Just like in DoorMUD, parameters of commands in the World Editor must be in the same room as you. For example, when using the ;editcreature command, the creature you wish to edit must be in the same room as you. Use the implementor Recall command to teleport to a given room first. Command list: ---------------------------------------------------------------------------- ¦----Creature Editing-------------Movement------------Fast Room Building---¦ ¦ ;addcrea (acr) ¦ n s e w u ¦ ;build ¦ ¦ ;editcrea (ecr) ¦ ne nw se sw d ¦ ;grid ¦ ¦ ;duplicate (dcr) ¦ ; <#> ¦ ;title [text] ¦ ¦ ;raisedead ¦ ¦ ;area [#] ¦ ¦ ¦ ¦ ¦ ¦------Item Editing-------------Other Editing------------Room Editing------¦ ¦ ;additem (aitm) ¦ ;locate ¦ ;editroom (erm) ¦ ¦ ;edititem (eitm) ¦ ;editspells (esp) ¦ ;addroom ¦ ¦ ;duplitem (ditm) ¦ ;editconfig (ecnf) ¦ ;mark [#] ¦ ¦ give ¦ ¦ look ¦ ¦ list ¦ ¦ where ¦ ¦ ¦ ¦ ¦ ¦-------------------------------Miscellaneous------------------------------¦ ¦ status inventory wear get rank =r ¦ ¦ menu talk remove drop exit ¦ ---------------------------------------------------------------------------- =============================================================================== COMMAND: recall [#] ABBREVIATIONS: ; [#] \ [#] EXAMPLE: ; 700 Implementors may use the recall command to teleport to any room, simply by supplying a room number following the command. For example, typing "recall 45" will teleport you to room 45 instantly. The commands ";" and "\" have the same affect as "recall" and are useful as quicker abbreviations. For the above example, you could use "; 45" instead of "recall 45". This teleportation feature may also be used in DoorMUD, by implementors only. =============================================================================== COMMAND: ;locate ABBREVIATION: ;l The ;locate command is a vital Editor tool that allows you to find specific players, monsters, items, and more. It can be used as follows: FINDING PLAYERS: ;locate Displays what room the matching player(s) are in. FINDING MONSTERS: ;locate Displays what room the matching monster(s) are in. If the monster is dead, the amount of time until it respawns is shown. FINDING ITEMS: ;locate Displays the exact location of the matching item(s). REFERENCE SEARCH: ;locate Searches for creatures, items, and areas with the given reference number. For example, ";locate 20" displays creature #20, item #20, and area #20. This feature is useful because some game functions show objects by number, not by name. IE, If an item was shown to be located "on Creature #531", you could use ";locate 531" to see that creature's exact name and location. LISTING AREAS: ;locate all area Lists all areas, along with area number. LISTING BOSSES: ;locate all boss Displays info on all boss monsters. LISTING DEAD: ;locate all dead Lists all monsters that are currently dead, along with respawn timers. LIMITED ITEM LIST: ;locate all limited QUEST ITEM LIST: ;locate all quest RARE ITEM LIST: ;locate all rare UNCOM ITEM LIST: ;locate all uncommon Lists all items of the given type. Of these, the limited list and quest list are probably the most useful, for game-monitoring purposes. STASHED ITEM LIST: ;locate all stashed Lists all stashed items, along with who stashed them. HELP WITH LOCATE: ;locate Displays the different formats for ;locate, as described here. When searching for players, monsters, items, or areas, the search text can be abbreviated. All matching results are shown. The ;locate command can also be used in DoorMUD, by implementors only. The DoorMUD version of ;locate does not list areas, though. In addition, for item lists, the DoorMUD version of ;locate highlights player-owned items in brown, making it easier to see where a given item is. (This item-highlighting feature may also be added to the Editor's ;locate in a future version, if possible) =============================================================================== COMMAND: ;editconfig ABBREVIATION: ecnf The ;editconfig command is used to easily perform a variety of editing functions. It includes a sequential player editor, class editor, race editor, and more. 1. Player editor -- Allows you to view/edit all players in a menu-based fashion. For help on the indivitual player editor options, please see the entry for the ;editcreature command below. 2. Edit classes -- Allows you to edit the game's classes. For more info, please see WhatsNew.txt. 3. Edit races -- Allows you to edit the game's races. Please see WhatsNew.txt. 4. Script compile -- Recompiles the game's scripts. You must do this after any time you edit the SCRI1.SCR file in order for your changes to take effect! 5. Quest status -- Allows you to edit the current status of game quests. This is an advanced option; for more information, please see section VII.E to learn about Quests. 6. Starting room -- Allows you to specify which room number new players start in. Also sets the starting Temple room for new playes. This option is useful if you've made major changes to the game world and want to alter where players begin. 7. Restore default -- If you damaged your class/race edits beyond repair, classes & races this option will prompt you to restore the default classes and/or races. If you choose yes for either, a backup of your edited class/races will be made before the stock settings are restored. 8. Erase all data -- This option erases all DoorMUD data files and allows you to create a new world "from scratch". This is an EXTREMELY ADVANCED OPTION. Please see WhatsNew.txt for information. =============================================================================== COMMAND: ;addcreature ABBREVIATION: acr Creates a new monster, prompting for its basic starting stats. The Monster Editor is then loaded automatically for changing more advanced stats if desired. =============================================================================== COMMAND: ;editcreature ABBREVIATION: ecr EXAMPLES: ecr thor ecr orc Loads the editor for the selected creature. Limited Implementors can only edit monsters, while Full Implementors may edit players or monsters. Reminder: When using editing commands, the target of the command must be in the same room as you. So to use ;editcreature on a creature, that creature must be in your room. The ;locate and ; (implementor recall) commands are useful for finding a given creature and teleporting to its room. If you use ;editcreature on a player, the Player Editor is loaded. The Player Editor consists of a single screen. To exit the editor, simply press enter at the menu prompt. Some of the more complicated stats are explained here: 6. Bonus Fights -- Allows you to specify how many "extra" monster fights a player receives per day, in addition to the normal daily amount. Normally, this should be set to 0 unless the player has items that raise this stat, or unless you have specifically rewarded this player for whatever reason. 7. Gender -- Available options are "m" for male and "f" for female. Has some effect on spell messages (ie, for displaying "his" vs "her") but has no other effect on gameplay. 8. Incr Any Stat -- Allows you to modify several other stats for a player; please see the creature stat section for information on what the stat codes are. You can only increment a stat by, at most, +/- 999 at a time. 12. Class -- Changes a player's class instantly. All game classes are available, plus a special Champion class that has a skill level of 3 for every skill and is invisible to other players. 13. Race -- Changes a player's race instantly. Their attribute values are immediately adjusted based on their new race's starting stats. All game races are available, plus a special Immortal race that has starting values of 20 in all stats, has special "starbeam" (kill any target instantly) and "full heal" spells, and is invisible to other players. 14. Access Level -- Select "normal" for most players. If you wish to grant a player the ability to use the World Editor, remotely, set to an Implementor level. Please see the section on Access Levels for more information. If you use ;editcreature on a monster, the Monster Editor is loaded. The Monster Editor has two screens. The first screen is for editing the basic statistics of a monster. Some specific explanations: 6. Hostile -- Determines which players the monster will attack, if any. 10. Room -- Current room for the monster. 11. Regen to Room -- Room that the monster respawns to, after death. At maintenance, the monster will also be returned to this room regardless of respawn status. Set to 0 to allow monster to wander its area, with no set regen room. 12. Follow Chance -- For determining if the monster will follow after a fleeing player that it is in combat with. 13. Gender -- For combat messages. "n" for neutral ("its"), "m" for male ("his"), "f" for female ("her"). There are also 2 other special gender variables for specifying unusual monster stats: "i" for invisible and "c" for charmed. These flags are permanent; the monster is considered neutral gender for message purposes. 15. Death Regen -- Determines how many days it takes for this monster to respawn after dying. Monsters set to 1+ days are considered to be "boss" monsters. 16. Hitpoint Regen -- Every 10 rounds, the monster regains this % of its maximum hitpoints. 17. Spellpt Regen -- As above, but for spellpoints instead of hitpoints. At the first screen of the Monster Editor, you can hit Enter to proceed to the second screen of the Editor, which is for changing the monster's attack info: 7. Crit Bonus Dmg -- When the monster gets a critical hit, this much bonus damage is added to their normal damage amount. 8. Bonus AP/round -- Determines how many extra swings a monster gets. Basically, for ever 2 bonus APs, the monster gets 1 extra swing. See the section on APs for more info. 9+ Add new spell -- Attaches a new combat spell to this monster. Prompts for new spell info and loads Spell Editor. A monster may have up to 5 spells. 9+ Edit mon spell -- Edits a spell that has already been given to this monster. The chance of the monster casting the spell is displayed before the spell name; this value can be modified in the actual Spell Editor. Please see the ";editspells" command for information on the Spell Editor's options. Hit ENTER again to edit the monster editor entirely. Please note that most stats on a "duplicate" copy of a monster (see ;duplicate) cannot be edited. Find the original version of the monster using the ;locate command and edit that copy of the monster instead. All duplicates of the original monster will have their stats adjusted as well. =============================================================================== COMMAND: ;duplicate ABBREVIATION: dcr EXAMPLE: dcr orc Makes 1 or more duplicates of a monster and prompts for room placement on the copies. Used for handling monster regeneration within an area. Although the "duplicates" act as independent monsters, they cannot be individually edited. Any editing changes made to the "parent" monster will be applied to the duplicates as well. Please see the section on Advanced Area Design for more information on using ;duplicate for monster regen room placement. =============================================================================== COMMAND: ;raisedead ABBREVIATION: ;r Resurrects dead monsters in this room. In the World Editor, dead monsters are displayed in dark red. This command can also be used in DoorMUD, by implementors only, to resurrect dead monsters in real-time. =============================================================================== COMMANDS: north south east west northeast northwest southeast southwest up down ABBREVIATIONS: n s e w ne nw se sw u d NUMERIC KEYPAD: 8 2 6 4 9 7 3 1 + - Used for moving around the game world in the Editor. Alternatively, if NumLock is on, you can use the numberic keypad for faster movement. This is highly recommended. If Builder Mode is enabled, you may use these commands to build new rooms by intentionally walking into walls. Return exits are created automatically. Please see the section on Advanced Area Design for more information. =============================================================================== COMMAND: ;build ABBREVIATION: ;b Toggles Builder Mode on/off. When Builder Mode is on, you can quickly create new rooms by intentionally walking into walls. Return exits are created automatically. New rooms are given the current Default Room Title (see ;title) and Default Area (see ;area). When building rooms with Builder Mode enabled, the relative coordinates of your current room are displayed next to the room number. You can reset all relative coordinates by using the ;grid command. Please see the section on Advanced Area Design for more information on Builder Mode. =============================================================================== COMMAND: ;grid ABBREVIATION: ;g Clears the current database of relative room coordinates, and sets the current room to (0, 0, 0). Useful in conjunction with Builder Mode (see ;build). Please see the section on Advanced Area Design for more information. =============================================================================== COMMAND: ;title [text] ABBREVIATION: ;t [text] EXAMPLES: ;t Dragon Cave, Wide Tunnel ;t The ;title command is used to display or change the current default room name. The default room name is given to new rooms created in Builder Mode. To view the current default room name, simply use ;title without a parameter. To change the default room name, use ;title followed by text. Please see the section on Advanced Area Design for more information. =============================================================================== COMMAND: ;area [#] ABBREVIATION: ;a [#] EXAMPLES: ;a 5 ;a ;a new The ;area command is used to display or change the current default area number. New rooms created in Builder Mode are assigned to the default area. To view the current default area number, simply use ;area without a parameter. To change the default area number, use ;area followed by a number. In order to see what area numbers correspond to which area names, type ";locate all area" or simply ";l all area". The ;area command can also be used to create new areas. To do so, use ";area new". A new area will be created, and the Area Editor will be loaded so that you can set the stats for the new area. This new area then becomes the default area for new rooms. Please see the section on Advanced Area Design for more information on this command. =============================================================================== COMMAND: ;editroom ABBREVIATION: erm Loads the Room Editor on the current room. The Room Editor consists of a single screen. To exit the editor, simply press enter at the menu prompt. Some of the more complicated options are explained here: 2. Room Type -- Use "generic" for a standard room. Otherwise, you can use: "shop" (allows list, buy, sell); "bank" (allows deposit, withdraw); "trainer" (allows train); "temple" (allows pray); "arena" (for a player-vs- player arena -- dying here has no harmful effects). 3. Purchase type -- Only used if room is a shop. This determines what type of items the shop will buy back. Use "generic" to indicate any item type; "none" to indicate no items at all; or a specific item type as desired. Please note that shops will ALWAYS buy back items normally stocked at that location regardless of this stat. In other words, this stat only controls how the shop buys back non-stock items. 4. Safe level -- Set to 0 for a standard room. Set to 1 to indicate a room that monsters cannot follow players into. Set to 2+ to indicate a "safe room". Player vs Player combat (of ANY level) cannot be initiated in a safe room. Also, Monsters will not attack players (and likewise cannot be attacked) who are BELOW this setting in level. 5. Area number -- Select an area setting for this room from the given list. New areas can also be created from this menu. 6. Descript Var -- Has an identical function to the ;mark command. See ;mark for more information. 7. Edit Area -- Launches the Area Editor on the current room's area. See below for options. 8. Edit Room Exits -- Launches the Room Exit Editor. See below. 9+ Extra Descrip -- Allows you to enter up to 2 lines of "extra" text for this specific room's description, in addition to whatever text is present for this room title in ROOM1.HLP. Useful for adding a short bit of added description for selected rooms. The Area Editor, loaded by option 7 (or by creating a new area with option 5), has the following options: 1. Area Name -- Displayed when a player types "where". 2. For Characters -- When a player types "where", this text is displayed after "Recommended for characters of ". 3. Warning Level -- If a player under this level enters this area, a subtle warning message is displayed. 4. Easier Level -- Characters above this level have an easier time running through the area if not attempting combat. IE, monsters have a lower chance of following or attacking fleeing/running players. Useful for road- type areas that higher level characters would need to travel through frequently. 5. Movement Rate -- Set to 1 for standard movement, or 0 for an area that can be run through more quickly. Set to 2+ (use sparingly!) for areas that cause players to move sluggishly. 6. Recall allowed -- Toggles between "yes", "no", and "any". Use "any" to specify areas that anyone can recall from (even Demons, cursed characters, etc). Please note that Implementors can recall from all areas, even if an area is set to "no". The Room Exit Area, loaded by option 8, is used to set secret exits, doors, etc. It is also used to change how rooms are connected (ie, if you made a mistake in Builder Mode, or perhaps if you want to create a one-way exit). - Specify the direction you wish to modify; any direction can be chosen, even if the room doesn't already have an exit in that direction. - Then, select an option: * Use (d)estination to modify where this exit leads. A return exit in the target room is NOT created automatically; you must do this by hand if desired. You can remove an exit in a given direction by setting its destination to room 0. This can be useful for fixing mistakes (ie, accidentally linking a room) or for creating one-way exits. * Use (t)ype to modify the type of the room exit. Options include: "wall" -- Removes a room exit (same as setting destination to 0) "exit" -- A standard room exit "invis exit" -- Not listed on room display (unless player has See Invis flag), but can be moved through at will. Use sparingly. "locked gate" -- Must be unlocked with a key, NPC interation, etc. "locked door" -- As above, but player cannot use "look" command to view room before entering it. "closed secret" -- A secret exit, can be found via "search" command. "blocked exit" -- Room cannot be entered if any non-charmed monsters are in the current room. Monsters must be killed first, or possibly interacted with via Talk command. "closed keyword" -- Specifies a door that can only be opened through a script (Talk command, special room scripts, etc). =============================================================================== COMMAND: ;addroom Creates a new room. The room will be given a title and area designation based on default value settings (see ;title and ;area). The room will start with no room exits, but can be given room exits through the ;editroom command. ;addroom is NOT the recommended way of adding rooms, since Builder Mode is much faster. Please see the section on Advanced Area Design for more information on when ;addroom should be used. =============================================================================== COMMAND: ;mark [#] ABBREVIATION: ;m [#] Flags the current room as having a nonstandard text description in ROOM1.HLP. Rooms normally display text descriptions from ROOM1.HLP based on the room name. For example, a room titled Ancient Cave would display the entry under ";ancient cave" in ROOM1.HLP. (Please see the section on Advanced Area Design for more information, as well as the section on HLP file formats). However, you can mark specific rooms as being special landmark rooms that have different room descriptions. For example, if you typed ";mark 7", the entry in ROOM1.HLP that would now be displayed for this room would be ";ancient cave7", even though the room's title was still Ancient Cave. All other rooms titled Ancient Cave would still display the entry for ";ancient cave", unless ;mark was used in those rooms as well. Typing ";mark" without a parameter sets the description variation number to the room number. IE, if the room in the previous example was room number 1440, typing ";mark" would change the description entry for this room to ";ancient cave1440". To change a room back to having its standard description, use ";mark 0". =============================================================================== COMMAND: look ABBREVIATION: l The Look command functions the same in the World Editor as it does in DoorMUD, with two minor improvements: 1. When you look at a player, you can see the player's full inventory, including items that aren't equipped. (Characters in DoorMUD with Implementor access are granted this ability as well) 2. When you look at a monster, you can see what items it is carrying. This is useful for seeing what items a monster can drop upon death and/or use in NPC interaction scripts via the "talk" command. =============================================================================== COMMAND: ;additem ABBREVIATION: aitm Creates a new item, prompting for its type (weapon, armor, scroll, key, or potion) and its basic starting stats. The Item Editor is then loaded automatically for changing more advanced stats if desired. The new item will appear on the ground in the current room. If you would like to change the item to be in a shop inventory, you must edit its Location stat (option 6 in the Item Editor -- see next section). If you would like to place the item in a monster's inventory, use must use the Give command. =============================================================================== COMMAND: ;edititem ABBREVIATION: eitm EXAMPLES: eitm shortsword Loads the editor for the selected item. The first screen of the Item Editor is for editing general stats that all items share. To proceed to the second screen, simply press enter at the menu prompt. Some of the more complicated stats are explained here: 2. Skill needed -- Specifies what skill is needed to use this item, and what amount of that skill is required. Can also be used to restrict an item to one particular class or race. For weapons, usually use Blunt Weapons or Edged Weapons skills; skill level [1] is light weapons, [2] is one-handed weapons, and [3] is two- handed weapons. For armor, [1] is light armor, [2] is medium armor, and [3] is heavy armor. See the section on Player Skills for more information. 3. Level -- Minimum level required to use the item. Select 0 to make the item non-level-restricted (the default). 6. Location -- Specifies where the item currently is. Change to "in shop" to have the item be stocked in this room's shop; "in room" to move the item into the room (ie, to remove it from a shop or creature); or "none" to delete the item entirely. Note -- to play an item in a player or monster's inventory, use the Give command. 7. Drop Chance -- Percent chance that the item drops to the ground when its owner dies. 8. Quantity -- This is only used for items in shops. 9. Quest number -- Can be used to indicate this item is related to a certain quest (#1 through #30). This causes the item to only drop under certain conditions involving the quest's availability. Do NOT ever assign the same Quest Number to different items. For more info on quest numbering, please see the Quests section. 10. Edit item flags -- Described later in this section. The second screen of the Item Editor varies by item type, described below. To exit the Item Editor, simply press Enter on the second screen. Weapon Editor: 1. Hit text -- Displayed upon hitting and missing the target, 2. Miss text respectively. Be sure to use Text Codes so that the grammar in the message is accurate; please see the section on Text Codes for more information. 5. BS dmg bonus -- When backstabbing with this weapon, this stat adds extra damage to the attack. Or, set to -999 to indicate that this weapon cannot backstab. 6. Full dmg level -- Specifies what level this weapon achieves its maximum damage (ie, the damage amounts specified in stats 3 and 4). For each level below this stat, the weapon inflicts less damage for the amount you set. For example, if you set a weapon to max at level 15 with a -2/lvl penalty, a level 11 player using the weapon would have a -8 damage penalty. 7. Spell hit chnce -- If this weapon has an attached spell, this is the chance that the spell will be triggered upon each successful (non-missing) attack. 9. Modifies stat -- Each weapon can give bonuses to up to 3 stats of the wearer. These bonuses are only applied if the weapon is being wielded. Please see the section on Creature Stats for a list of an explanation of the stats. Armor Editor: 1. Worn on -- Enter text to specify what body part the item is worn on. You are free to put whatever you want in this space, but typical selections include: torso, back, arms, finger, feet, waist, neck, off-hand, etc. 2. Fills location -- If set to "yes" (the default), the item "fills" the location it is assigned to, preventing other items from being worn on that location. If set to "no" (use sparingly!), other items may still be worn in the same location. 4. Spell Uses/day -- If the item has an attached usage spell, this stat indicates how many times it may be used per day. 5. Add/edit spell -- Each piece of armor may have up to one spell attached to it. Spells on armor are triggered via the "use" command. Scroll Editor: Each scroll may have up to four spells attached to them. When a player uses the scroll, these spell(s) are added to their spellbook, if they are capable of casting them. Key Editor: You must manually specify which door(s) the key opens. Each key may open up to four doors. If a door is locked on both sides, be sure to list both rooms (with proper directions) if you want the key to be able to open it on both sides. Potion Editor: Each potion may cast up to two spells. These spell(s) are normally triggered via the Use command. Potions can also be set to work with the Eat and/or Drink commands, if desired, although this isn't particularly necessary (since most players just use the Use command anyway) Item Flag Editor: This is option 10 on first Item Editor screen. It allows a number of on/off settings to be specified for an item: 1. Anti-good -- If yes, players with alignment greater than 10 cannot use the item. 2. Anti-evil -- If yes, players with alignment less than -10 cannot use the item. 3. Anti-neutral -- If yes, players with alignment between -20 and 20 cannot use the item. 4. Exclusive -- If yes, player must match required skill level *exactly* to use the item. For example, an item with a skill requirement of Armor[2] that is flagged as Exclusive can *only* be used by Armor[2] classes, not Armor[3] classes. Another example would be setting an item will skill requirement Magic[0] to Exclusive, to prevent the item from being used by spellcasters. 5. Uncommon -- If yes, and the item is stocked in a shop, it will restock much more slowly than regular items. Uncommon items also have a higher resale value (25% of sale price, instead of 20% like normal items). 6. Rare -- Rare items on monsters will only drop about once per day. Rare items that are stocked in shops will not ever restock. Rare items also have a better resale value (25% of sale price). 7. Limited -- Should be used for items in which there is a specific, limited quantity in the game world. Limited items that are on players who are inactive for 14 days are "reindexed", ie, returned to their original monsters. Limited items in shops also have a 5% daily chance of being reindexed. Limited items cannot be stashed. Limited items also have an excellent resale value (33% of sale price). 8. Drop Can't Use -- If yes, the item can drop from monsters even if none of the players in the room can use the item. 9. Very Common -- Very Common items that are stocked in shops will restock back to 50 quantity every day. Very Common items left on the ground will auto-poof at maintenance. This flag is useful for keys, and newbie-shop items. Setting certain flags may automatically set and/or unset other flags. For example, setting an item to Limited also automatically sets it to Rare, and also automatically un-sets Uncommon and Very Common. =============================================================================== COMMAND: ;duplitem ABBREVIATION: ditm EXAMPLE: ditm buckler shield Makes an exact duplicate of the specified item. The duplicate will appear on the ground in the current room, regardless of where the original item was located. If you wish to edit the duplicated item, be sure to pick it up (get ) and then move to another room. Otherwise, using ;edititem will target the original copy of the item, not the duplicate. This command can also be used in DoorMUD, by implementors only. =============================================================================== COMMAND: give EXAMPLE: give kingpriest The Give command is used to place items onto monsters, so that items will drop when the monster dies. The syntax for the Give command is different in the World Editor. Unlike in DoorMUD, you simply use give ; do NOT specify an item. The Editor's Give command brings up a menu where you can select which item(s) to give to the monster. When giving an item to a monster, you can select the quantity of the item that the monster should have. Normally, just hit enter at this prompt to specify a quantity of 9999 (the maximum quantity). The only situation in which you would want to enter a quantity other than 9999 is for Limited Items. =============================================================================== COMMAND: list Like in DoorMUD, the List command is used to view what items are for sale in a given shop. Unlike in DoorMUD, though, the World Editor's List command will display items that are currently at 0 quantity. This allows you to see what items the shop normally stocks, but is currently out of. This enhancement to List is also available in DoorMUD to implementors. =============================================================================== COMMAND: ;editspells ABBREVIATION: esp Allows you to sequentially view/edit ALL spells currently in the game. The Spell Editor is loaded for the first spell in the game's spell database. You can then use any of the standard spell editor options, as well as use special options to jump around in the spell database. PLEASE NOTE that the ;editspells command is NOT the usual method of spell editing. Using ;editspells can be confusing because it is hard to tell which spells belong to which monsters and items. It is much easier to edit the spell(s) on a monster or item by editing that monster or item directly. Explanations for the Spell Editor options: 1. Spell name -- The name of the spell, as displayed in a player's spell book 2. Cast command -- The command that players use to cast the spell. Leave blank for monster/item-based spells. 3. Spell message -- Displayed when the spell is successfully cast. Be sure to use Text Codes so that the grammar in the message is accurate; please see the section on Text Codes for more information. 7. Resist Bonus -- Bonus to the enemy's magic resistance (or AC, if spell is flagged as non-magical). Making this be a positive value makes the spell EASIER to resist, while a negative value makes the spell harder to resist. 8. APs Restored -- For player and monster spells, use: 0 for round-based attack 1 for in-between round spell 2 for unlimited-per-round spell 4 for unlimited-per-round, +1 swing 6 for unlimited-per-round, +2 swing (etc...) For item spells (armor and potion spells, via "use "), subtract 2 from the above values. Please see the section on Action Points (APs) for a more detailed explanation of this system. 9. Cast chance -- For monster spells, set this to the % chance that the monster casts the spell. For monsters with multiple spells, dice rolls are separate for each spell. Thus, if a monster had a Fireball spell set to 50% and an Ice Blast also set to 50%, the monster would effectively have a 50% chance of casting Fireball, a 25% chance (.5*.5) of casting Ice Blast, and a 25% chance of doing a standard (non-spell) attack. 10. Enchantments -- Determine effects of a spell that last for a number of rounds. Description of the Enchantment Editor is described below. 11. Level -- Minimum level required to cast the spell. 12. Damage Type -- Specifies the effect of the spell. Damage spells subtract from target's HPs; Healing spells add to HPs; Drain spells subtract from target and add to caster. 13. Target type -- Specifies how the spell targeting works. Options: Self: Spell targets caster by default, but can be used on any other target if specified. Enemy: Spell targets enemy by default, but can be used on any other target if specified. Caster: Spell can only target its caster. All: Spell hits all non-friendly targets in room. Hitparty: Spell hits all friendly targets in room. In Room: Spell hits dead monsters in the room. Used only for resurrection-type spells. 14. Skill needed -- See description for "Skill Needed" in Item Editor. 15. Full dmg level -- See description for "Full dmg level" in Weapon Editor. 16. Edit Flags -- Toggles certain yes/no spell options: Anti-good/evil/neutral: See item flag editor Exclusive: See item flag editor Magical: If yes (the default for spells), the spell hits automatically, but can be resisted. If no (the default for martial arts skills), the skill works like a standard attack, rolling attacker's accuracy versus enemy's armor class. Auto-gain: If yes, spell is gained automatically when a player Trains and is able to use the spell. Auto-gain spells can be created for classes and races via the Class and Race editors (see ;editconfig command). Or, you can create an inaccessable "autogain holder" spell scroll and attach the spells to it; place the scroll in an inaccessable room like room #1. Non-combat only: If yes, the spell cannot be cast in combat. Should not ever be used for monster spells. 17. Sample messages -- Shows examples of the spell's message from multiple points of view. Helps to determine if you have used the correct Text Codes in your spell message, in order to have correct grammar. The enchantment editor has these options: 1. Stat Screen Msg -- This text is displayed when a player uses the "status" command. 2. Termination Msg -- This text is displayed when the enchantment wears off. 3. Look Message -- When a player looks at a creature with this enchantment, this text is displayed. Please note that the creature's name is displayed *immediately before this text, without a separating space*. Thus, for the Look Message, you might use something like " looks ill!", or perhaps "'s skin is green!". 4. Duration -- Length of time, in rounds, that the enchantment lasts. Enter 9999 for a "permanent" effect, like a Martial Arts stance. 5. Enchant Type -- A creature may only have one enchantment of a given Type Value at a time. For example, say a player had Bless (a type-3 enchantment) cast on them. If a monster then casts Curse (another type-3) on the player, the Bless will be negated immediately. Types 1 through 6 have predefined meanings; types 7+ are open for you to create if desired. Select Type-0 or "none" for non-typed enchantments; these enchantments do not ever negate each other. 6. PvP Adjust -- If Yes, and the spell is cast on a player *who has already taken their action this round*, the spell's duration is increased by 1 round. For most spells, you can leave this at "No". But for short-duration spells/effects that can be used in Player-vs-Player combat, set it to "Yes". For example, all weapons that have Stun effects have this set to "Yes"; this way, if the weapon stuns a player who already took their action this round, they will be stunned on the *next* round. For monster spells, instead of setting this to "Yes", you can just increase the spell's duration by 1 round. This works since monsters *always* attack after players. 7. Modifies stat -- Each enchantment can give bonuses to up to 3 stats. These bonuses apply only while the enchantment is in effect. See the Creature Stats section for a list and explanation of the stats. _____________________________________________________________________________________________________________________ IV. Scripting Language DoorMUD uses a simple scripting language to control monster interactions (via the greet/talk command), quests, special room controls, and more. The text file SCRI1.SCR contains all of the source code for all of the game's scripts. WHENEVER YOU MODIFY THIS FILE, in order for your changes to take effect, you must manually compile the script into the SCRI1.HBS binary file. You can do this from the editor with the ";editconfig" or "ecnf" command, selecting option 3 from the menu to re-compile the scripts. NOTE -- When you first install the World Editor, the script file may be called SCRI1.SC_ instead of SCRI1.SCR. The game will automatically fix the file's extension the first time you run the World Editor. Scripts can be executed in two ways: 1. By the greet/talk command. When a player greets a monster, the game checks for a script with the monster's name. If such a script exists, it is run; otherwise, the greet/talk command has no effect. 2. By triggers in HLP files. This allows you to run scripts from any room, item, or monster description. This effect is most commonly used in ROOM1.HLP, to handle special room controls such as doors that are only open at certain levels. Scripts of this sort can be given any name you want, but the script name must be surrounded in . HLP files are described in depth in section V. The scripting language is extremely simple, and is much easier to learn than a normal programming language. The best way to learn it is by example, ie, by looking at SCRI1.SCR. SCRIPT COMMANDS, sorted by purpose: ---------------------------------------------------------------- ¦-----SCRIPT FLOW------------OUTPUT---------------INPUT--------¦ ¦ label ¦ print ¦ prompt ¦ ¦ if ¦ translate ¦ input ¦ ¦ goto ¦ announce ¦ ¦ ¦ stop ¦ ¦ ¦ ¦ ¦ ¦ ¦ ¦--MONSTER ACTIONS-------ITEM HANDLING--------QUEST HANDLING---¦ ¦ banish ¦ give ¦ setquest ¦ ¦ attack ¦ chkitem ¦ getquest ¦ ¦ cast ¦ getitem ¦ chkcomp ¦ ¦ ¦ ¦ ¦ ¦------------------------MISCELLANEOUS-------------------------¦ ¦ let open rand // ::end_file:: ¦ ---------------------------------------------------------------- The commands supported by the scripting language are explained here in detail. In the following explanations, "the player" refers to the player who activated the script (ie, the player who used the GREET command, or the player who viewed an HLP description that ran a script). "The monster" refers to the monster being GREETed. Some commands take parameters that can be values (usually any integer from -30000 to 30000) and/or variables (certain stat names, explained at the end of this section). -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: // EXAMPLE: // This is a comment This command is used to denote comments in the script files. These lines have no effect. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: LABEL labelname EXAMPLE: label high imperial kingpriest EXAMPLE: label The LABEL command is used to indicate the starting point of a given script, indicated by the parameter. Each label must be unique. For example, if a player GREETs the High Imperial Kingpriest, the game searches the script file for a "label high imperial kingpriest" instruction, and then begins executing the script at that point if found. The script will run until a "stop" instruction is found. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: STOP Terminates the current script. If you don't add a STOP command to the end of each script, it will "run into" the next script. Therefore, be very careful to use the STOP command whenever needed. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: GOTO labelname EXAMPLE: goto mayor: give reward Jumps to another label. Usually, you will only need to use the GOTO command after an IF command. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: PRINT text EXAMPLE: print You may pass! EXAMPLE: print Prints the given text, in the current text color. The text is only displayed on the screen of the player who triggered the script. To display a blank line, use "print" with no parameter. The current text color can be changed with the LET command. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: TRANSLATE text EXAMPLE: translate The mayor hands & a pair of golden bracers. Prints the given text, in the current text color. The text is displayed to the player who triggered the script, as well as all other players in the same room. The TRANSLATE command supports use of text codes, so that the message grammar is correct for all players in the room. More information on Text Codes is available in Section VII.A of this document. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: ANNOUNCE text EXAMPLE: announce has completed the mayor's quest! Adds a message to the daily log, in the current text color. The announcement consists of the player's name, followed by a space, and then the supplied text. Text codes are not supported. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: LET variable operator value/variable EXAMPLE: let color = 14 EXAMPLE: let room = temple EXAMPLE: let criminal + 30 EXAMPLE: let gold - 20 Sets or adjusts the value of a game variable. The = operator is used to set a variable to a specific value. The + operator is used to increase the value of a variable, and the - operator is used to decrease the value of a variable. For a list of variables usable in DoorMUD scripts, please see the end of this section. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: IF value/variable operator value/variable EXAMPLE: if return > 0 EXAMPLE: if level < 5 EXAMPLE: if temple = 1285 EXAMPLE: if room ! 145 If the given expression is true, the line after the IF command is executed. If the expression is false, the line after the IF command is skipped. IF statements only apply to a *single* line, ie, the one following the IF command. For this reason, it is common to use a GOTO on the line after an IF. IF commands cannot be nested. Valid operators are < (less than), > (greater than), = (equals), and ! (does not equal). -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: OPEN direction EXAMPLE: open north Opens the door in the given direction. Sets the "return" variable to 1 if successful. If the door is already open, or if there is no door in that direction, "return" is set to 0. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: PROMPT text EXAMPLE: prompt Pay him? [y/n]: Displays the given text in the current text color, and then waits for the user to type input. If the user types "y" or "yes", the "return" variable is set to 1. Otherwise, the "return" variable is set to 0. Please note that after the user finishes his input, the values of "color" is reset to 7 and the value of "integer" is reset to 0. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: INPUT text|choice1~choice2 COMMAND: INPUT text|choice1~choice2~choice3 ... EXAMPLE: input What is your destination? |arcadia~ancalador~tolaria~desert~tundra EXAMPLE: input Which shall it be? |fame~fortune The INPUT command allows for complex player interaction. Text is displayed to the user in the current text color, and then the player is able to type input. The value of "return" is set according to what the player types. The parameter format of INPUT is somewhat complex. The display text portion consists of all text up until a | character. Then, separate each possible text choice with a ~ character. If the user's input matches choice1, "return" is set to 1. This works similarly for choice2, choice3, etc. If the user's input matches none of your choices, "return" is set to 0. Your parameter MUST include a | character, ie, you must have at least one choice. Additional choices are up to you. Keyboard notes: The | character is SHIFT with \, and the ~ character is SHIFT with ` (top-left corner of keyboard). Please note that after the user finishes his input, the values of "color" is reset to 7 and the value of "integer" is reset to 0. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: RAND value/variable - value/variable EXAMPLE: rand 1 - 5 EXAMPLE: rand 1 - int Sets "return" to a random number within the given range. For example, "rand 1 - 3" will set return to 1, 2, or 3, at random. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: BANISH length EXAMPLE: banish 75 Causes this monster (ie, the one being GREETed) to be removed from the game for a given number of rounds. The monster is treated as if it just died, in terms of how its stats are reset and in terms of where it eventually respawns to. Note: One round is 4 seconds. The highest value allowed for the BANISH command is 30000 rounds. Higher values may cause the BANISH command to not work properly. This command cannot be used in HLP-triggered scripts. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: ATTACK Causes the current monster to engage combat with the player who activated this script. This command cannot be used in HLP-triggered scripts. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: CAST spellname EXAMPLE: cast remove soul Causes the current monster to cast the given spell. The parameter must be a spell that the monster has in its spellbook, and the monster must have enough spellpoints to cast it. If the spell hits type ENEMY, the monster must currently be engaged in combat for the spell to be cast; for this reason, it is sometimes useful to use the ATTACK command prior to the CAST command. If the monster does not have a spell with the supplied spellname, "return" is set to -1. If the monster has the spell, but has insufficient SP to cast it, "return" is set to 0. Otherwise, "return" is set to 1. This command cannot be used in HLP-triggered scripts. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: GIVE itemname EXAMPLE: give golden bracers Transfers an item from the monster's inventory to the player's inventory. If successful, "return" is set to 1. If unsuccessful (ie, the monster did not have the given item, or did not have any left), "return" is set to 0. This command cannot be used in HLP-triggered scripts. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: CHKITEM itemname EXAMPLE: chkitem sasquatch foot Checks if the player has an item of the given name. "Return" is set to a number indicating the quantity of that item in the player's inventory. For example, "return" is set to 0 if the player doesn't have the item, 1 if the player has 1 copy of the item, 2 if the player has 2 copies of the item, and so forth. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: GETITEM itemname EXAMPLE: getitem mad dwarf crown Removes the given item from the player's inventory. If successful, "return" is set to 1. If unsuccessful (the player did not have that item), "return" is set to 0. GETITEM only removes 1 copy of the item from the player's inventory. To see how to remove *all* instances of an item from a player's inventory, use a GOTO loop. The following is an example, taken from the script that removes all Illegal Narcotics from a player's inventory: label confiscate1 getitem illegal narcotics if return > 0 goto confiscate1 In other words, the script continues to try to "getitem ilelgal narcotics" until the GETITEM is unsuccessful, ie, when the player doesn't have any left. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: SETQUEST questnum = regenrate EXAMPLE: setquest 10 = 14 EXAMPLE: setquest 5 = 0 Sets a given quest to be unavailable for a given number of days. If the questnum is 15 or less, the player is flagged as having completed the quest. For example, "setquest 10 = 14" will make Quest #10 unavailable for 14 days, and will flag the player has having completed Quest #10. As another example, "setquest 5 = 0" will flag the player as having completed Quest #5, but will keep Quest #5 available immediately for other players. This is useful for simple completion-flagging that does not involve an actual quest, such as when the player greets the dying Elven Messenger. Questnum can range from 1 to 30. Please see the Quests portion of Section VII for more information on quest numbering. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: GETQUEST questnum EXAMPLE: getquest 4 Sets "return" to the availability of the given quest. The value of "return" is set as follows: 0 means the quest is available, and the quest item has not dropped yet. -1 means the quest IS available. The quest item dropped today, but has not been traded in yet. -2 as above, but the item dropped yesterday. -3 as above, but the item dropped 2 days ago. ... etc for -4 and -5. 1 means the quest is NOT available, and will respawn in 1 day. 2 as above, but respawn in 2 days. 3 as above, but respawn in 3 days. ... etc for higher numbers. Usually, GETQUEST is only used to check if a quest is NOT available. In other words, it is typical to check "if return > 0" following a GETQUEST. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: CHKCOMP questnum EXAMPLE: chkcomp 4 Sets "return" to 1 if the player has already completed the given quest, or 0 if the player has not. CHKCOMP is used to prevent players from re-doing certain quests. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COMMAND: :::END_FILE::: The last line of SCRI1.SCR must be :::END_FILE:::. Be sure that :::END_FILE::: is only on the last line of the file; if you place script commands after it, they will be ignored. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Script variables ---------------- The following is a list of all variables usable in DoorMUD scripts, for use with the LET and IF commands. Key: = indicates the variable can be set to a given value with the "let ... = ..." syntax. + indicates that the variable can be adjuged with the "let ... + ..." or "let ... - ..." syntax. If no symbol is present, the variable's value cannot be changed with the LET command. In this case, the variable should only be used with the IF command. = color -- Color of text printed by the PRINT and TRANSLATE commands. Has a value of 7 (white) by default. Dark colors: 1=blue, 2=green, 3=cyan, 4=red, 5=magenta, 6=brown, 8=gray. Bright colors: 9=blue, 10=green, 11=cyan, 12=red, 13=magenta, 14=yellow, 15=brght white. =+ integer -- Variable freely available for you to use for any purpose. Equals 0 by default, until you set it to a different value. return -- Set by GETQUEST, OPEN, CHKITEM, GETITEM, GIVE, CAST, PROMPT, INPUT, RAND, and CHKCOMP commands. Used to indicate the return value of these commands. + gold -- Player's gold = room -- Player's current room. = temple -- Player's temple room (where they appear when RECALLing) =+ criminal -- Player's Criminal timer, in rounds. =+ hp -- Player's current hit points. If reduced below 1, reset to 1; modifying "hp" cannot be used to directly kill a player. =+ sp -- Player's current spell points. =+ mf -- Player's monster fights remaining. + align -- Player's alignment. level -- Player's level. sk0 -- Player's class. 0=Champion, 1=Warrior, 2=Shaman, 3=Cleric, 4=Paladin, 5=Mage, 6=Warlock, 7=Thief, 8=Ninja, 9=Bard, 10=Monk, 11=Gladiator, 12=Druid. sk1 -- Player's race. 0=Immortal, 1=Human, 2=Dwarf, 3=Troll, 4=Gnoll, 5=Elf, 6=Gnome, 7=LizardMan, 8=DarkElf, 9=Halfling, 10=Goblin, 11=Demon. sk# -- Player's ability in a given skill. sk2 is Magic, sk3 is Thievery, sk4 Backstab, sk5 Armor, sk6 Edged Weap, sk7 Blunt Weap, sk8 Wiz Spells, sk9 Pri Spells, sk10 Mys Spells, sk12 Martial Arts. hard -- Equals 1 if Hard Mode is enabled (DoorMUD Professional only). Otherwise, equals 0. deathcost -- The number of Monster Fights the player would lose if he died. Useful in "let mf + deathcost" to restore the lost MFs after a script-caused instant death. looking -- Equals 1 if the player is only LOOKing into the current room; otherwise, equals 0. Useful for ROOM1.HLP-triggered scripts that should only be run if the player has actually entered the room. _____________________________________________________________________________________________________________________ V. HLP Files The HLP file format is a simple text markup language used for descriptions of rooms, monsters, and items. It is also used for help files and a few other game messages. The game uses 5 HLP files that you can edit or add to: ROOM1.HLP -- Room descriptions CREA1.HLP -- Monster descriptions (look ) ITEM1.HLP -- Item descriptions (look ) GAME.HLP -- Help files (help ) MISC.HLP -- Various game text There are 2 additional HLP files that usually don't need to be edited: RELNOTES.HLP -- DoorMUD's release notes. Leave this as is, or add to the top of it to perhaps list some major edits you've made. DAILYLOG.HLP -- DoorMUD's daily log. If the log is getting large and loads slowly, you can remove older entries. The easiest way to learn the HLP file format is by example; open up ROOM1.HLP in a text editor, and note the layout. The first character of a line in a HLP file can be a special control character. These characters have special effects: ; Semicolon -- Indicates the beginning of a text entry. - Hyphen -- Indicates the end of a text entry. Can be used to end a specific text entry, or all text entries. $ Dollar Sign -- Used to change the text color. The default color is white (color 7, ie, $7). Color numbers are the same as in scripts, ie, $1 is dark blue, $2 is dark green, and so forth. : Colon -- Indicates the end of the HLP file. Should be on the very last line of the file. < Angle Brackets -- Used to trigger a script. Must be at the end of a text entry. ] Bracket -- Causes a newline NOT to be printed after this line. Control characters MUST be the first character on a line in order to be recognized. Any line that does not begin with a control character is considered to be standard text, printed in the current text color. Standard text lines in HLP files should not exceed 80 characters. The following examples demonstrate how the HLP control characters can be used. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- A simple example from ROOM1.HLP: ;tolaria, dirt road This narrow dirt road is the main street in the small town of Tolaria. - When a player enters a room titled "Tolaria, Dirt Road", the game searches ROOM1.HLP for a line ";tolaria, dirt road" and then displays text until a line beginning with a - character is encountered. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Another example from ROOM1.HLP: ;Tolaria, temple This majestic building is the sole place of worship for the citizens of the town of Tolaria. Adventurers come here for healing and rest. - The line here causes a script to be executed after the room description is displayed. Script execution begins on a line in SCRI1 that says "label ". Note that if an HLP entry calls script(s), they must be at the end of the HLP entry. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- From ROOM1.HLP: ;forest path, bridge ;forest, wooden bridge This less-than-sturdy bridge provides passage over a swiftly-flowing creek. - This sort of synax is used to give rooms with titles "Forest Path, Bridge" and "Forest, Wooden Bridge" the same description. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- From ROOM1.HLP: ;forest, dirt road4 The path forks here. The road to the southwest seems to have been recently constructed, and you can see smoke in the sky off in that direction -- a good indication of some sort of encampment. - This description will be displayed for a room titled "Forest, Dirt Road" with a description variation of 4. Description variations for rooms can be set with either ;mark or with ;editroom. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- From ITEM1.HLP: ;scroll of return This magical scroll is the only means of escape from the demonic realm. - When a player LOOKs at an item named Scroll of Return, ITEM1.HLP is searched for a line ";scroll of return" and then displays text until a line beginning with a - character is reached. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- From ITEM1.HLP: ;mirror of teleportation As you stare into this gigantic mirror, a disembodied voice booms: - Scripts can be inserted into item or monster descriptions in the same way that they are inserted in room descriptions. Please note that in all cases, the name of the script is completely up to you, it does NOT have to be the same name as the HLP entry. However, keeping it the same as the HLP entry helps for organizational reasons. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- From CREA1.HLP: ;grim reaper $8 This is a mortal servant of the Angel of Death. Run, fool, it wants your soul! - When a player LOOKs at a grim reaper monster, CREA1.HLP is searched for a line ";grim reaper". Text is then displayed until a - character is reached. Note that the $8 in this case changes the text color to gray for this specific text entry. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- From CREA1.HLP: ;medusa $12 ]Are you mad? $7 Looking directly at a medusa will turn you to stone permanently! - This synax looks odd, but is really rather simple. "Are you mad?" is printed in bright red; then, on the SAME LINE, "Looking directly ..." is printed in white. The ] control character is thus useful to use different colors on the same line. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- From GAME.HLP: ;mres ;mr ;magic resistance Magic Resistance is your character's percent chance of resisting a harmful spell cast upon you. - If the player types "help mres", "help mr", or "help magic resistance", GAME.HLP is searched for the entry and text is displayed as usual. Help topics can also be abbreviated, so "help magic res" would work, for example. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- From GAME.HLP: ;encumbrance ;weight ;heavy Your strength determines your maximum encumbrance. If the total weight you are carrying equals or exceeds HALF of your max encumbrance, you will become heavy. Heavy characters cannot run quickly, have a reduced chance of being able to outrun a monster, have a reduced armor class, and suffer a major penalty to stealth. -heavy ;medium ;medium encumbrance As you start to approach "heavy" encumbrance, you will be given a warning message every time you pick up or purchase a new item, and your weight will be displayed as "medium" in your inventory. However, the only harmful affect of "medium" encumbrance is a slight penalty to Stealth for characters that can backstab. - The line "-heavy" is an example of using the - control character to end specific help entries. This is typically only used for nested help entries in GAME.HLP, although it can be used in other HLP files as well if you wish. Basically, if the user types "help encumbrance" or "help weight", both of the above paragraphs will be displayed. If the user types "help medium", only the bottom paragraph is displayed. If the user types "help heavy", only the top paragraph is displyed; the line "-heavy" terminates the HLP entry for ";heavy" but NOT for ";weight" or ";encumbrance". -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- About MISC.HLP: The MISC.HLP files contains various configurable game text. Most of this text is used by DoorMUD, while some of it is used by the World Editor. Most of the entries should NOT be edited, but a few can be, as follows: ;xsdk globals -- If you are using the Synchronet version of DoorMUD, and have added new control-key globals to Synchronet, feel free to list them here. ;quest vals -- As you use new Quest Numbers to create your own quests, list them here. ;enchant negate -- As you use new Enchantment Type numbers for your new enchantments, list them here. Area maps: When a user types "map" in an area, MISC.HLP is searched for the area's name. If an entry is found, it is displayed. Maps for Tolaria, Ancalador, Arcadia, Hades, and The Forest are currently found in MISC.HLP. Thus, in DoorMUD, normally the "map" command only works in a few areas. But you are free to add maps of the other game areas if desired. Level messages: When a user gains a level, MISC.HLP is searched for a ;levelX entry for the players level. For example, when a player trains to level 10, the entry ;level10 in MISC.HLP is displayed, if such an entry exists. General entrance message: If you create an entry called ";entrance", it will be displayed to players when they enter the game. This can be useful for sysop announcements. By default, no ;entrance entry exists, but you can easily add one. Level entrance messages: You can create entrance messages for characters of specific levels. For example, if a level 4 player enters the game, an entry called ;entrance4 in MISC.HLP will be displayed if it exists. _____________________________________________________________________________________________________________________ VI. Advanced Area Design This section explains how to add new areas to the game world. Adding new areas to DoorMUD is fairly easy step-by-step process. The key to adding new areas with the World Editor is Builder Mode, toggled by the ;build command. With Builder Mode enabled, you can quickly create new rooms by moving into walls. When a new room is created, a return exit to the previous room is automatically added. The new room is given whatever default room title has been specified by the ;title command, and is assigned to whatever default area was specified with the ;area command. The recommended steps for creating a completely new area are as follows. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [ STEP 1: PLANNING ] First, it is highly recommended that you fully plan out the area on paper. Make a map of the area's layout. Figure out stats for all of the monsters you wish to create, and then figure out stats on any items that the monsters drop. Several Word-format (.doc) files have been included with the World Editor for use as worksheets: BLANKMAP.DOC: You can use this as a grid for drawing a map of your area. Fill in a bubble to represent a room, and draw lines between the filled-in bubbles to represent room exits. Each sheet should be able to hold several areas. Alternatively, use graph paper. MONSTERS.DOC: Use to write down monster stats. Each page has space for 2 areas. For each area, use the top slots for standard monsters and the bottom slots for boss monsters. The min/max fields are for attack damage. The "other" field is useful for writing down spell info or other special monster stats. SHOPS.DOC: Useful for creating new towns. Each page has space for 3 shops. MAGICITM.DOC: Useful for keeping track of all items that you create that are dropped by monsters. The "type" field is used to write weapon, armor, potion, scroll, or key. The "drop" field is used to write the drop % chance. When determining stats on monsters, spells, and items, it may be useful to look at existing examples that are already in the game. For example, if you are creating an area designed for levels 12-14, look at the existing monsters in the Great Pyramid as a guide for stats. Also, be very careful when creating magic items; if you make them too powerful, or only make them for certain classes, the game will become very unbalanced. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [ STEP 2: ROOM CREATION ] Now, you can create the actual rooms for the area. Determine where you want the area to go (ie, what existing room your new area branches off of). From that room, type the following commands once: ";a new" -- Allows you to create the new area info, for use in the "where" command and other places. Your new area will become the default area for new rooms. ";t ..." -- Set the default room title to whatever title you want to use for the first room of the area. (Don't actually type ..., use text there instead) ";b" -- Toggles builder mode to on. (;build) ";g" -- Creates a new overlap-checking grid. (;grid) Now, move in the direction of where you wish to create the first room of your area. As you move through the wall, a new room is created. Continue to move into walls, creating new rooms in whatever layout you made on your map. If NumLock is on, use the numeric keypad instead of the movement keys for faster building. Whenever needed, use the ";title" command to change the default room title. Builder mode automatically tracks the relative coordinates of each room you enter into a grid. This prevents rooms from ever "overlapping", and allows loops/intersections in areas to connect properly. Only rooms that you have entered this editing session are tracked; the grid is reset when you exit the editor or intentionally use the ;grid command. Be careful using the implementor recall command to teleport while in builder mode, since the editor will "lose your place" on the overlap grid until you re-enter a previously known room. As you lay out the area, you may wish to add room descriptions as you go. For this reason, it may be useful to have ROOM1.HLP open in a text editor in another window. To create special/landmark rooms that have a different room description, use the ;mark command as needed. If this section made little or no sense to you, please read the Quick-Start guide to learn by example. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [ STEP 3: MONSTER CREATION AND PLACEMENT ] Placing monster regeneration spots is one of the more time-consuming steps in area design. Each copy of each monster must be assigned to a specific room. It is perhaps easiest to figure out monster placement using paper-and-pencil first. Get a blank piece of paper, or use the extra blank space available on a printed copy MONSTERS.DOC. Write out the name of each monster in your area, and leave some space after each name to write down room numbers. Next, walk through your area and determine which rooms you wish to be monster regeneration spots. Write down these room numbers on paper, deciding which rooms will hold which monsters. Take care to scatter the different monsters throughout the area, so that monsters of one type aren't "bunched up" in one place. An example (for the Dungeon of the Damned) might look like this, on paper: Twisted One 1616, 1679, 1675, 1674, 1681, 1683, 1698 Sh. Priest 1677, 1680, 1676, 1682, 1701, 1697, 1630 Guardian 1616, 1625, 1651, 1686, 1690, 1633, 1653 Der. Wizard 1678, 1673, 1682, 1692, 1698, 1697 Beholder 1696, 1698, 1637, 1656, 1662, 1688 Shadow Lord 1693 Angel of Dth 1699 Finally, it is time to create the actual monsters. Using the Implementor Recall (; <#>), teleport to the first regeneration room of your first monster. Use the ;addcreature command (abbreviation: acr) to add the monster to the game, setting its stats appropriately. Then, make additional copies of the monster using the ;duplicate command (abbreviation: dcr), sending each copy to the correct regeneration spot. An example of how the Beholder monster was created and assigned to the correct regeneration rooms: Divine Shop [#1] (Safe if under L999) (Shop) This store sells divine items. Players in this room are not listed on the RANK list. Obvious exits: south. [ Editor ]: ; 1696 Shrine of the Unholy Savior [#1696] Obvious exits: east, west. [ Editor ]: acr Enter name: beholder Enter exp: ...text omitted... Modify which? [1-10]: [ Editor ] [100%]: Shrine of the Unholy Savior [#1696] You see Beholder here. Obvious exits: east, west. [ Editor ] [100%]: dcr beh Make how many duplicates? [0-6]:5 Send duplicate #1 to what room? 1698 Monster duplicated. Send duplicate #2 to what room? 1637 Monster duplicated. Send duplicate #3 to what room? 1656 Monster duplicated. Send duplicate #4 to what room? 1662 Monster duplicated. Send duplicate #5 to what room? 1688 Monster duplicated. [ Editor ] [100%]: As you can see, the first monster was created in room 1696, and then duplicates were assigned to rooms 1698, 1637, 1656, 1662, and 1688, as previously planned on paper. -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- [ STEP 4: FINISHING TOUCHES ] The last stage is to add any other optional elements to you area that you wish. If you want your boss monsters to drop items, create the items and then place them on the correct monster using the GIVE command. Unless the item is a limited item, set the quantity to 9999. Create any scripts that are needed for the area, for either HLP-triggered scripts and/or for TALK-triggered scripts. Remember, after editing the script file (SCRI1.SCR), you MUST re-compile the file via ;editconfig option 3, in order for your changes to take effect. Create HLP descriptions for monsters and items as you see fit. Lastly, be sure to test every aspect of your area, and take special care to note any problems in game balance. _____________________________________________________________________________________________________________________ VII. Additional Information A. Text codes Text codes are special control characters used in spell messages, weapon attack messages, and scripts (in the TRANSLATE command) to allow multinode messages to display properly for all players in the room. Some text codes control how certain text is selectively displayed. These codes work by surrounding text in parentheses, brackets, angle brackets, braces, etc. These codes are as follows: Braces: {Text displayed only if viewer is caster} Parentheses: (Text displayed only if viewer is NOT caster) Angle Brackets: Brackets: [Text displayed only if viewer is NOT target] Equal signs: =Text displayed only if caster is not target= "viewer" refers to the player viewing the message. "Caster" refers to the player casting a spell or making an attack. "Target" refers to the player being hit by the spell or attack. Of these, the Parentheses code is used most frequently, since it should ALWAYS be used in weapon attack messages. An example of a common weapon attack message is "slash(es)". If a player named Bob is attacking a player named Thor, the message will correctly display on Bob's screen as: You slash Thor for 7 damage! While Thor will see: Bob slashes you for 7 damage! Note how the "es" is not displayed on Bob's screen, since Bob is the caster. Other text codes are used to stand in for certain things: & is used for Caster's Name + is used for Target's Name @ is used for Amount of Damage For example, & will display either the caster's name, or "you", depending on which player is viewing the message. Text codes can be very confusing to new users of the World Editor. With time, though, you will get used to them. The best way to learn them is by example -- look at other weapon messages and spell messages in the game for examples. Some examples from spell messages: & cast(s) holy force on + for @ damage! &{r}('s) fireball burns + for @ damage! & cast(s) holy armor( on +). & cast(s) inferno, burning +['s] flesh for @ damage! & cast(s) cure wounds{, restoring @ hit points}( on +). Some examples from weapon hit and miss messages: Swords often use: Hit text "slash(es)", miss text "swing(s)" A fancy magical sword might use "slice(s) and dice(s)" for the hit text. ------------------------------------------------------------------------------- B. Action Points (APs) The Action Point (AP) system is used to control how many swings a creature gets per round. Normally, players and monsters receive 2 APs per round. Some monsters receive bonus APs (as set in the monster editor), and some spells allow players to get more than 2 APs per round. Also, when players use low- level weapons at high levels, bonus APs are sometimes awarded. When it is a given creature's turn in combat, the creature will continue to make attacks until at 0 (or less) APs. Each swing uses up 2 APs. Casting a spell also used up 2 APs, although some spells use up less (as set in the spell editor). For example, say a player named Thor is making an attack with his weapon. When the round starts, he has 2 APs. He makes a swing, reducing his APs to 0. He makes no more swings, since he is out of APs. As another example: A player named Merlin started the round with 2 APs (as usual), but before his turn to attack, he cast a Cure Wounds spell. This would normally reduce him to 0 SPs, but Cure Wounds is set to restore 1 AP. So it is now Merlin's turn to attack, and he has 1 AP left. Since he still has APs left, he makes a swing. He is now at -1 APs, and makes no more swings. Fully understanding the Action Point system is not really necessary for game design. The only times in which you will need to worry about Action Points are the following: - Monster Bonus APs: These can be set through the second page of the Monster Editor. For every 2 Bonus APs a monster gets, it receives 1 extra swing in combat. This is all you really need to remember here. - Spells cast by Players and Monsters: A spell cast by a player or monster uses up 2 APs, which usually means it uses up the creature's entire turn in combat. However, you can use the "APs Restored" option in the Spell Editor to "give back" some APs after the spell is cast. As a guide, use these values: 0 for a round-based spell (the spell gives back no APs, and thus counts as the creature's attack for the round) 1 for an in-between round spell (the spell gives back 1 AP, so after casting it, the caster still has an AP left and thus receives a swing in combat) 2 for an unlimited-per-round spell (the spell gives back the 2 APs it used up. Thus, it can be used an unlimited number of times per round, and will never count as the creature's attack for the round) 4 for unlimited-per-round, +1 swing (not only can the spell be used an unlimited number of times per round, but also, the caster receives an EXTRA swing on their round since they now have 2 extra APs). 6 for unlimited-per-round, +2 swing (etc for 8, 10, 12...) - Spells cast by items (by USE-ing a potion or armor): These spells do not normally use any APs when cast. So, for the "APs Restored" option, you should set it to 2 points lower than for other spells. In other words: -2 for a round-based spell (so that the spell uses up 2 APs) -1 for an in-between round spell (the spell will use up 1 AP, leaving 1 AP left for a combat swing) 0 for an unlimited-use spell 2 for unlimited used, +1 swing (etc...) ------------------------------------------------------------------------------- C. Skill System There are 10 skills in DoorMUD: Armor, Edged Weapons, Blunt Weapons, Magic, Thievery, Backstab, Mage Spells, Cleric Spells, Mystical Spells, and Martial Arts. The skills are important for you to understand, since they are used in restricting certain items and spells to particular classes. Each class in DoorMUD is given a rating from 0 to 3 in each skill. The table below lists each class's skill abilities. If a skill isn't listed for a given class, the class has a 0 in that skill. Warrior: Armor-3, Edged-3, Blunt-3 Shaman: Armor-2, Edged-2, Blunt-2, Magic-2, Mystical-2 Cleric: Armor-1, Blunt-2, Magic-3, Cleric-3 Paladin: Armor-3, Edged-2, Blunt-2, Magic-1, Cleric-1 Mage: Armor-1, Edged-1, Blunt-1, Magic-3, Mage-3 Warlock: Armor-3, Edged-2, Blunt-2, Magic-1, Mage-1 Thief: Armor-2, Edged-2, Blunt-2, Thievery-3, Backstab-3 Ninja: Armor-1, Edged-3, Blunt-3, Backstab-1 Bard: Armor-2, Edged-2, Blunt-2, Thievery-2, Backstab-2, Magic-1, Mystical-1 Monk: Armor-1, Edged-1, Blunt-1, MartialArts-3 Gladiator: Armor-2, Edged-3, Blunt-3, MartialArts-1 Druid: Armor-1, Edged-1, Blunt-1, Magic-3, Mage-1, Cleric-1 The special Champion class (available only through editing) has 3's in every skill. The effects of the skills are explained here: ARMOR: Armor-1 is light armor only (robes, padded armor, etc). Armor-2 is medium-weight armor, up to and including Chain Mail. Armor-3 is heavy armor. EDGED WEAPONS: Edged-1 is light edged weapons only (daggers, sickles). Edged-2 is one-handed edged weapons (mostly swords). Edged-3 is two-handed edged weapons. BLUNT WEAPONS: Blunt-1 is light blunt weapons only (slings, staffs). Blunt-2 is one-handed blunt weapons (maces, hammers). Blunt-3 is two-handed blunt weapons. THIEVERY: Higher skill ability in Thievery increases chance of success with the Rob command. BACKSTAB: Ability to sneak and backstab. Higher skill ability indicates better success chance with sneaking and better backstab damage. MAGIC: General skill that contributes to how many Spell Points a class gets and how fast they regenerate. Does not usually determine which spells a class gets, but is nonetheless useful for restricting certain items. For example, restrict an item to Magic-1 to allow it to only be used by spellcasters. A restriction of Magic-3 can be used to permit only Mages, Clerics, and Druids to use an item. A restriction of Magic-0 Exclusive can be used to permit only non-spellcasters to use an item. MAGE SPELLS: Some spells are flagged as Mage-1 (usable by Mages and Warlocks), while others are flagged as Mage-2 or 3 (usable only by Mages). CLERIC SPELLS: Some spells are flagged as Cleric-1 (usable by Clerics and Paladins), while others are flagged as Cleric-2 or 3 (usable only by Clerics). MYSTICAL SPELLS: Some spells are flagged as Mystical-1 (usable by Shamans and Bards), while others are flagged as Mystical-2 (usable only by Shamans). No items should ever be flagged at Mystical-3, since no class has that skill. MARTIAL ARTS: Some skills are flagged as MartialArts-1 (usable by Monks and Gladiators), while others are flagged as MartialArts-2 or 3 (usable only by Monks). ------------------------------------------------------------------------------- D. Shops Creating new shops in DoorMUD is simple. In the Room Editor, set the Room Type to shop first, and then stock the shop with items, repeating the following process for each new item the shop should stock: 1. Create the item, setting its stats as necessary. 2. In the Item Editor, set the item's location to "in shop". This causes the item to considered to be "stocked" in the shop, meaning that the shop will regen new quantities of the item over time, and will always buy back these items from players. 3. Set the item's quantity to whatever value you wish its starting quantity to be. At maintenance each day, the quantities of stocked items in each shop may increase, depending on the item's flags. Standard items only regen when their quantity is running low. Very Common items will regen to 50 quantity each day. Uncommon items regen very slowly, based somewhat on randomness. Rare, Limited, and Quest items do not ever regen in shops. Depending on what the shop's Purchase Type is set to (in the room editor), shops may purchase non-stocked items from players. These items usually vanish at maintenance, unless they are rare or limited. ------------------------------------------------------------------------------- E. Quests DoorMUD supports a number of different ways of handling quests. Quests are usually one of the more confusing aspects of the World Editor, since they often heavily rely on scripts to work properly. The different types of quests are reviewed here, and other quest information is also explained. First, some basic quest terminology: NPC -- A "non-player character", that is, a friendly monster that is GREETed to learn about the quest. Quest Item -- An item that must be obtained to complete a quest. Some existing examples include the Sasquatch Foot, Mad Dwarf Crown, etc. Quest items only drop under certain conditions, described later in this section. Timing -- Some quests are "timed", meaning that the quest takes a few days to regenerate after it is completed. Until the quest regenerates, it will be unavailable to ALL players. The timing for a quest is controlled by a script. Tracking -- Some quests are "tracked", meaning that a given player can only complete the quest once. The tracking for a quest is controlled by a script. DoorMUD allows for up to 30 "numbered" quests that can be controlled with scripts. Of these, the first 15 are "tracked" quests; the CHKCOMP script command can be used to determine if a player has already completed these quests. Quests #1 through #10 are predefined tracked quests, already used in the game as follows: #1 -- Ancalador Mayor's quest #2 -- Kind of the Elves quest #3 -- Dwarven Emperor's quest #4 -- Gnome Nobleman's quest #5 -- Flag for greeting the Elven Messenger / finding Elder Havenwood #6 -- Captain of the Guard's quest (for good-aligned players) #7 -- Dark Priest's quest (for evil-aligned players) #8 -- Flag for Captain of the Guard's permission to enter Slums/Island #9 -- Flag for Ancient Master's permission to enter Dunes/Tundra #10 -- Final quest (Champion of Order / Warmaster of Chaos) Quests #11 through #30 are open for you to create and use. Of these, #11 through #15 are tracked quests, while #16 through #30 are not tracked. -=-=- Quest items: Any item can be set as a Quest Item through the "Quest Number" option on the Item Editor. Quest Items are given special properties regarding how/when they drop from monsters. Quest items will NOT ever drop if the quest is currently unavailable. Quest items will also NOT drop if another player currently has the quest item. For Quests #1 through #15, the Quest Item also won't drop for players who have already completed the quest. If a Quest Item is obtained by a player, but is not turned in for a reward within 5 days, it is automatically reindexed. For example, the Zombie Master's Head is given a Quest Number of 1, since it is the quest item for the Mayor's quest. The Zombie Master's Head will never drop if Quest #1 is unavailable, and it will never drop for a player who has already completed Quest #1. If there's already a Zombie Master's Head in the game somewhere, a second one will not drop. If a player obtains a Zombie Master's Head, he must turn it in for a reward within 5 days, or it will be reindexed. -=-=- Most quests in DoorMUD involve obtaining a Quest Item and giving it to an NPC for a reward. These quests are usually timed and tracked. Quests #1, 2, 3, 4, 6, 7, and 10 are this sort of quest. Quests of this sort usually operate as follows: 1. The player must greet the NPC, triggering a script which does most of the quest handling. 2. If the quest has not regenerated yet, the script aborts. This is checked with the GETQUEST script command. 3. If the player has already completed this quest, the script abords. This is checked with the CHKCOMP script command. 4. The script checks to see if the player has obtained the required quest item. This is done with the CHKITEM script command. 5. If the player does NOT have the quest item, the NPC describes the quest and the script aborts. 6. If the player DOES have the quest item, the NPC takes it; use the GETITEM script command for this purpose. The player is given a reward, usually via the GIVE script command. The quest is then set to be unavailable for a certain number of days. This is done with the SETQUEST command, which also flags the player as having completed the quest. The script then aborts. -=-=- Some quests in DoorMUD are simply tasks that a player must complete. These tasks are tracked, but are not timed (ie, they're always available to other players -- there's no delay period for the quest to regenerate). These quests might involve obtaining certain items, but if so, the items do NOT have their Quest Number stat set. This is important -- it ensures that all players can complete the quest, regardless of whether another player is in the process of completing it. Quests #5, #8, and #9 are this sort of quest. When a player completes the quest, the SETQUEST command is used to track that the player has completed the quest. Other scripts may check if the player has completed the quest by using the CHKCOMP script command. -=-=- Quest Status editor: You can modify the current status of timed quests by using Option 5 of the ;editconfig command. IE, you can change a quest from "regen in 5 days" to "available" to make it regenerate immediately. The Quest Status Editor does NOT actually otherwise control how the quests function. Most quest-handling is done in monster-interaction scripts in SCRI1.SCR; please see the script language reference for more information. Each of the timed quests will be displayed as one of the following: "available" -- The quest is open for grabs. "regen in X days" -- The quest will become available in X days. "dropped X days ago" -- Someone has the quest item, but has not yet turned it in for a reward. If the player does not turn it in within 5 days, the quest item is automatically reindexed and the quest becomes available again. The quest editor allows you to reset the number of days until a quest regenerates. Enter 0 to make a quest available again, or a positive number to make it become available in that number of days. When using the Quest Editor, the predefined timed quests are listed by number. You can add to this text list by editing the ";quest vals" text in MISC.HLP. Quests listed with (F) after them are simply completion flags; ie, a player is flagged as having completed the quest, but the quest itself is always available to other players. Please see the section on Quests for full information. -=-=- Finally, there are some simple quests that do not even use the quest numbering system. These quests are not tracked or timed. Two examples are mentioned here. Dwarven Lord's quest (killing Grendel) -- This quest involves killing Grendel, and returning his arm to the Dwarven Lord. It is somewhat "timed" in the sense that Grendel only regenerates every 5 days, and is somewhat "tracked" in the sense that the player cannot recomplete the quest if he/she already has the reward item. However, the GETQUEST / SETQUEST commands are never used for the scripts in this quest, and the Arm of Grendel item has no assigned quest number. Thus, this quest can be repeated if a player loses the reward item. Also, multiple Arm of Grendel items are able to be in the game at once. Onix Ring Quest -- This quest involves talking to a number of NPCs, each whom want to trade one item for another. The quest usually can only be completed once *per game* (only one player ever gets the reward), but this effect is accomplished without using quest numbering or tracking. One of the involved items is on a 1% drop rate, but has a quantity of 9999. Items with a quantity of 9999 will *always* drop the first time the monster is killed, as long as the drop chance is above 0%. Thus, the quest can easily be completed by one player, but later players are highly unlikely to be able to complete the quest since they will have to deal with a 1% drop rate. As you can see, it is fairly easy to create quests that are "loosely" tracked and timed by using these sorts of game mechanics. ------------------------------------------------------------------------------- F. Creature Stats This section lists the various creature stats that can be modified by items and spells. The amount the stat is modified can be either positive or negative. Stat modifications are only applied while the item is being worn (for items) or while the enchantment is in effect (for spell enchantments). When the item is removed or enchantment wears off, the bonus is immediately removed. # indicates the stat can be modified by an item. * indicates that the stat can be modified by a spell enchantment. #* str -- Strength (affects players only) #* int -- Intellect (players) #* hea -- Health (players) #* dex -- Dexterity (players) #* mwght -- Maximum weight (players) #* maxhp -- Maximum hit points #* maxsp -- Maximum spell points #* hpreg -- Hitpoint regen rate, in percent #* spreg -- Spellpoint regen rate, in percent #* AC -- Armor class #* acc -- Accuracy #* crits -- Critical hit chance #* mres -- Magic resistance #* align -- Alignment #* bnsmp -- Bonus to movement rate (players only) # bnsmf -- Bonus to monster fights per day * room -- Creature's room. See note below. * AP -- Action points. See note below. * foll -- Follow chance (affects monsters only) * host -- Hostility (monsters). See note below. * rstat -- Regen status (dead monsters only). See note below. * cond -- Creature conditions. See note below. Modifying "room": This *sets* the creature's room to the given value, rather than simply incrementing the stat. When the item/spell is removed, the creature's room does not change back to its old room. Thus, most enchantments that modify room have 1-round durations, since the duration is unimportant. Modifying "AP": Gives a temporary, one-round AP bonus or penalty. Enchantments that modify AP usually have 1-round durations, since the duration is unimportant. Modifying "host": For the purposes of this stat, hostility is on a numeric scale of 1 to 4. 1=Nonhostile, 2=Nonhostile but follows, 3=Hostile to opposing alignment, 4+=Hostile. The creature's numeric hostility is modified by the value you set. For example, a spell that modifies "host" by 1 would raise a monster's hostility up one ranking, so a "hostile to opposing alignment" monster would temporarily become hostile to all players instead. Modifying "rstat": This stat only affects dead monsters, which can only be hit by spells that have a Target Type of "In Room". It is used to resurrect dead monsters. To resurrect a monster, modify "rstat" by -1. Has no effect on boss monsters. Modifying "cond": Sets or removes creature conditions. To set a creature condition, modify "cond" by one of these values: 1 = Strong (+2 damage/hit) 2 = Weak (-2 damage/hit) 3 = Stunned (takes no round action) 4 = Diseased (loses 4 HP per round) 5 = Confused (35% fumble chance per round) 6 = No recall (affects players only) 7 = Blind (affects players only) 8 = Charmed (affects monsters only, must be non-bosses) 9 = Invisible (not shown on room descriptions) 10 = See Invisible 11 = Paralyzed (cannot move from room) Positive values set conditions, while negative values remove them. For example, modifying "cond" by 7 sets the Blind condition; the condition will wear off when the spell enchantment wears off. Some enchantments remove conditions. For example, modifying "cond" by -2 will remove the Weakness condition. When the anti-weakness enchantment wears off, the weakness does NOT return. For this reason, most anti-condition enchantments have 1-round durations, since the duration is not important. ------------------------------------------------------------------------------- G. Older area differences The various areas in DoorMUD have been created over a long period of time. The oldest areas were created in September of 1998, while the newest areas were created in July of 2001. As such, some of the older areas were created before the game supported certain features, such as critical hits for monsters, bonus swings for monsters, etc. For this reason, as you look over some of the game's older monsters, you may find that some have unusual spells designed to mimic a critical hit or provide bonus swings. In the case of the oldest area (the newbie Forest), duplicate monsters are not even tagged as duplicates, so any changes to the monsters must be individually made to each copy of the monster. Some monsters were created before the "c" special gender flag for Monsters was created. This flag makes a monster be permanently charmed and unable to be attacked, and is commonly used for quest-related monsters that should be unkillable. In some of the older areas, instead of having the "c" flag, the quest-related monsters are simply given 9999 armor class and 9999 magic resistance to make them unkillable. Auto-gained skills like the Gnoll's Head-Butt (gained when creating a Gnoll character) or the Monk's Jumpkick (gained when training to level 9) were created before the Class and Race editors were in place. Hence, these abilities are stored on inaccessable "autogain holder" scrolls in room #1. If you want to create new auto-gain class/race abilities, you should do it directly with the class / race editors; there is no longer a need to create holder scrolls. ------------------------------------------------------------------------------- H. Access levels The Access Level stat (option #14 on the Player Editor) determines whether or not a player is an Implementor. By default, all players have an access level of "normal", which indicates a standard player. However, using the World Editor, you can set the access level of particular player(s) to Implementor. This allows you to specify which trusted players, if any, are allowed to use the World Editor remotely. (For a tutorial-by- example of how to edit a player's access level, please see the example in the quick-start guide, QUICK.TXT. For information on how to set up the World Editor to be run remotely as a door, see the following section on Remote Editing.) In addition to being able to use the World Editor remotely, players who have been granted Implementor access also receive a number of special abilities in DoorMUD (ie, the actual game -- dmud*.exe) at all times. These abilities include: - Can see stashed items - Can see secret and invisible exits - Can see stocked items in shops that are at 0 quantity - Can give items to any player, even if that player has their "receive items" preference set to no - When looking at other players, their full inventory (even non-equipped items) is shown - Can move through all blocked/closed exits freely, as if they were open - Can use Implementor recall (; <#>) to teleport to any room at will - Can use ;raisedead - Can use ;duplitem - Can use ;locate - Room numbers are always displayed in room descriptions - Room description variation numbers are displayed in room titles When setting a player's access level to Implementor, there are two choices: Limited Implementor and Full Implementor. Limited Implementor is similar to Full Implementor, except that Limited Implementors cannot use the Player Editor or Quest Status Editor. Regardless, even Limited Implementors have extreme amounts of power in the game. Even though they cannot edit players, they still can effectively raise their own stats in other ways (ie, by creating ultra-powerful items). So in either case, be *extremely* careful about which players, if any, you grant Implementor access to. It would be a good idea to provide all of your Implementors with a full copy of the World Editor documentation files. ------------------------------------------------------------------------------- I. Remote editing Players with an Implementor access level can use the World Editor remotely. (To learn how to give a player Implementor access, please read the "Access Levels" section VII.h, directly above this section) To set this up, you must add the World Editor to your BBS's menus. Setups for several common BBS software programs are shown in this section. Please note that players performing remote editing will be unable to edit the game's HLP files or the SCRI1.SCR script file. You may wish to simply have your remote implementors e-mail you new text to add to these files; you will have to manually put their additions in these files. Another option would be to set up a DoorMUD file library on your BBS, containing upload/download links to the HLP and SCR files of your DoorMUD directory. You will have to take care to only give access to this file library to the Implementor users on your BBS. If you have multiple Implementors, you may want to use a version-control system like CVS to prevent your Implementors from over-writing each others' changes. Synchronet for Win32 (v3.10g or later) ====================================== Assuming c:\sbbs\xtrn\dmud32 is your DoorMUD directory, use this setup in SCFG: Name DoorMUD World Editor Internal Code DMEDIT32 Start-up Directory c:\sbbs\xtrn\dmud32\ Command Line dmedit32 /n %# /d %f Clean-up Command Line Execution Cost None Access Requirements Execution Requirements Multiple Concurrent Users No Intercept Standard I/O No Native (32-bit) Executable Yes Modify User Data No Execute on Event No BBS Drop File Type Mystic DOOR32.SYS Place Drop File In Node Directory Time Options... If you only want the World Editor to be displayed on the doors menu to certain users, set the "Access Requirements" accordingly. Synchronet for Win32 (v3.00c through 3.10f) =========================================== Running Door32 programs on older versions of Synchronet is slightly more complicated. This setup assumes c:\sbbs is your Synchronet directory, and c:\sbbs\xtrn\dmud32 is your DoorMUD directory. Use these settings in SCFG: Name DoorMUD World Editor Internal Code DMEDIT32 Start-up Directory c:\sbbs\xtrn\dmud32\ Command Line dmedit32 /n %# /d c:\sbbs\node%#\door32.sys Clean-up Command Line Execution Cost None Access Requirements Execution Requirements Multiple Concurrent Users No Intercept Standard I/O No Swap BBS out of Memory No Modify User Data No Execute on Event No BBS Drop File Type GAP DOOR.SYS Place Drop File In Node Directory Time Options... After setting this up, you MUST add "dmedit32" to your OS/2 Program List in order for Synchronet to recognize the World Editor as a 32-bit door. If you only want the World Editor to be displayed on the doors menu to certain users, set the "Access Requirements" accordingly. WildCat Winserver ================= You must run the World Editor through a batch file. Copy WCMUDED.BAT from your DoorMUD directory to whatever directory you normally put door batch files, and edit it as directed in the batch file's comments. Then, configure your BBS to run the World Editor as "Door32 Compatible" for Door Type, and "WCMUD.BAT" for the Batch File. Do NOT check the Multiuser toggle. IMPORTANT: This version of the Editor directly interfaces with Winserver's DOOR32.DLL file. It is vital that the door is able to find this file. Please determine which of your directories contains this file (probably your \wc5 directory), and then add this directory to your system's path if it isn't already there: Windows 95/98/ME: You can add a directory to your system path by modifying AUTOEXEC.BAT. Windows NT/2K/XP: Use the Control Panel to modify your system path. Please see Control Panel >> System >> Advanced >> Environmental Variables >> System Variables >> Path. An alternative option (if you don't know how to edit your path) is to simply place a copy of the DOOR32.DLL file in DoorMUD's directory. This should work fine, but is not recommended for upgrade reasons, since DOOR32.DLL may change in future versions of Winserver. MysticBBS for Win32 (v1.07.2 or later) ======================================= Assuming c:\doormud is your DoorMUD directory, and c:\mystic is your Mystic directory, use a command line of: c:\doormud\dmedit32.exe -n %3 -d c:\mystic\temp%3 Set the menu command type to "D3 Door with DOOR32.SYS". Do NOT use a batch file to call this door. EleBBS ====== Assuming c:\doormud is your DoorMUD directory, and c:\ele is your EleBBS directory, use a command line of: c:\doormud\dmedit32.exe -n *N -d c:\ele\NODE*N\door32.sys -socket *W Do NOT use a batch file to call this door. MannSoft GameSrv ================ In GameSrv, go to the Games tab and press Add. Assuming DoorMUD is in c:\bbs\doormud and GameSrv is in c:\bbs, you should use the following command line: c:\bbs\doormud\dmedit32.exe /n *N /d c:\bbs\node*N /socket *H For the FOSSIL setting, select "None". 16-bit BBS software =================== To use the 16bit (DOS) version of the World Editor, edit RUNEDIT.BAT as noted in the file's comments and then place it in whatever directory you normally put door batch files in. Set up your BBS so it runs the World Editor by calling RUNEDIT.BAT. You must pass the node number and location of the dropfile to the batch file, as follows: runedit.bat -n # -d XXX where # is the node number, and XXX is the location of the dropfile. Most BBS softwares have special flags that can be used for the node number and dropfile location. For example, a sysop using Renegade BBS would use the command line "runedit.bat -n %n -d %o". A sysop using Virtual Advanced BBS would use the command line "runedit.bat /n %1 /d c:\va\temp\n%1". -------------------------------------------------------------------------------