Industrial Prose & Magic Version 1.3 The Commercial MUD Developer's Studio Copyright (c) 1994 Continuum Software. All rights reserved. DEMONSTRATION VERSION WALK-THROUGH TABLE OF CONTENTS PREFACE PART I: INTRODUCTION OVERVIEW.........................................................1.1 THIS WALK-THROUGH OF THE DEMO VERSION............................1.2 PART II: PROGRAM SETUP ASSUMPTIONS......................................................2.1 INSTALLATION.....................................................2.2 RUNNING IP&M AS A DOOR...........................................2.3 RUNNING IP&M STANDALONE..........................................2.4 RUNNING IP&M LOCALLY.............................................2.5 MULTITASKING.....................................................2.6 SETTING ENVIRONMENT VARIABLES....................................2.7 SETTING THE BAUD RATE............................................2.8 USER TYPES.......................................................2.9 COMMAND SETUP....................................................2.10 SECURITY.........................................................2.11 FILE TRANSFER PROTOCOLS..........................................2.12 NEWS AND HELP....................................................2.13 LOGIN TEXT.......................................................2.14 PART III: DEFINING THE GAME PICKING A GENRE FOR YOUR MUD.....................................3.1 CHARACTER ATTRIBUTES.............................................3.2 CHARACTER SKILLS.................................................3.3 CHARACTER RACES OR TYPES.........................................3.4 CHARACTER ALIGNMENT..............................................3.5 DEFINING WEAPONS.................................................3.6 DEFINING ARMOR...................................................3.7 DEFINING SPECIAL ITEMS...........................................3.8 DEFINING TREASURE................................................3.9 MONSTERS AND GATES...............................................3.10 WEATHER SETUP....................................................3.11 FILES AND BULLETIN BOARD OBJECTS.................................3.12 PART IV: CREATING THE MUD CREATING PLACES..................................................4.1 CREATING EXITS...................................................4.2 CREATING OBJECTS.................................................4.3 CREATING RULES...................................................4.4 CREATING NON-PLAYER CHARACTERS...................................4.5 TIME-BASED PLACES AND EXITS......................................4.6 MODIFYING YOUR CHARACTER.........................................4.7 PART V: ADMINISTRATION INTERNAL BACKUPS.................................................5.1 PRUNING SHOPS....................................................5.2 PURGING USERS....................................................5.3 COMPRESSING THE DATABASE.........................................5.4 ADMINISTRATIVE COMMANDS..........................................5.5 PART VI: OTHER ISSUES RIP AND ANSI GRAPHICS............................................6.1 FREELANCE MODULE SUBMISSIONS.....................................6.2 TROUBLESHOOTING AND TECHNICAL SUPPORT............................6.3 PART I INTRODUCTION 1.1 OVERVIEW So, you're ready to start your own MUD. Maybe you're already running a BBS, and want to add a popular new addition to your services. Or maybe, after hearing about all the headaches associated with running a BBS, you decided to pass on the fun (probably wise), but running a MUD sounds appealing to you. Let's not get ahead of ourselves. What exactly is a MUD? If you've ever played a role-playing game, like DUNGEONS & DRAGONS, you have a head start in understanding what MUDs are all about. From one perspective, MUDs are nothing more than multi-user role-playing adventures. D&D, plus a computer acting as DM, plus modems. But that's a limited and inaccurate view, at least when seen by itself. MUDs are imaginary places; but places that MUD users will swear to you are real. They exist in the shared imaginations of their inhabitants. You can set down stakes and live in them. They're not just games, they're hangouts. To many, real life becomes the short time spent in-between MUDding. 1.2 THIS WALK-THROUGH OF THE DEMO VERSION This is not a complete manual for Industrial Prose & Magic. Rather, it is a throrough explanation of all of the various commands, and explains exactly what the current version of IP&M is capable of. The complete manual, which includes such side-topics as the history of text adventures, RPGs, and MUDding, contains more than is needed to get a familiarity with this product. PART II SETUP 2.1 ASSUMPTIONS Although no technical expertise is required to either install or administer your MUD, we do assume that you are familiar with basic DOS commands: making directories, copying files, etc. If you are not familiar with DOS, you will need to educate yourself in the basics. Either consult the documentation that came with your computer, or buy a third-party DOS book from any bookstore. Also, many of the larger computer stores, such as Comp-USA, offer classes in DOS operation. 2.2 INSTALLATION Installing Industrial Prose & Magic on your hard drive is very simple. First, make a directory on the target hard drive, naming it anything you like. Then copy all of the files from the diskette to that directory. The first time you run IP&M, the program will create a BACKUP directory under your MUD directory. If you are running on a network, make sure that you are logged in with an account that allows you to create a subdirectory. If you are not sure, go ahead and make the BACKUP directory first, after you have copied all the files to the directory. It won't hurt the installation process for the directory to already exist. 2.3 RUNNING IP&M AS A DOOR You can run an IP&M MUD from any BBS package that supports the DOOR.SYS drop file format. This includes almost every package available, including Wildcat, PCboard, and a host of others. A few exceptions are The Major BBS and TBBS, for which you will need special setups to run correctly. When a BBS runs a door program, it calls a batch file to execute the door. The following is a typical example of one such batch file: CD \MUD CALL MUD DOOR C:\BBS\NODE1\DOOR.SYS CD \BBS BBS You will probably need to take all of these four steps in setting up your door batch file. Check your BBS documentation for specifics. The first line of the example changes to the MUD directory (whatever you've decided to name it). The second line calls the MUD.BAT batch file. Note that the "call" keyword is very important; without it, control will not return to the current batch file when MUD.BAT is finished. The last parameter on the second line is the full pathname to the DOOR.SYS file. The third line changes back to the BBS directory, and the last line calls the BBS batch file to return control to the BBS. 2.4 RUNNING IP&M STANDALONE To run an IP&M MUD without a BBS, simply invoke the MUD batch file as follows: CALL MUD ALONE 1 The last parameter, in this case a 1, tells the MUD to use COM port 1. You can specify any valid COM port value in that position. If you are running the MUD without BBS software, there are some more issues you need to consider, mostly in the area of daily time limits, etc. This is because when running the MUD as a door, the BBS tells the MUD how many minutes each caller can be in the MUD, but without a BBS, you need to decide how much time callers can spend in the MUD (based on security levels that you define). See the SECURITY section for more details. 2.5 RUNNING IP&M LOCALLY To run IP&M in local mode, simply invoke the MUD batch file as follows: CALL MUD ALONE -1 When the MUD sees that the last parameter is a negative number, it knows not to worry about communicating with a COM port. 2.6 MULTITASKING You can run as many sessions of IP&M as memory allows on your machine. You will need to use a third-party multitasker, such as Windows or DesqView. 2.7 SETTING ENVIRONMENT VARIABLES There are a number of DOS environment variables that can be set in your AUTOEXEC.BAT startup file to modify how IP&M works. With the exception of COMxBAUD, you will only need to use these if you are using non-standard IRQs and addresses on your computer. COMxBAUD= These variables are used to set the baud rate for COM ports that are different from the setting inside the MUD. For example, if you have a 14400 modem on COM1 and a 28800 modem on COM2, you can't use the single field in the MUD to specify the baud rate for both. In that case, you need to include the following lines in your AUTOEXEC.BAT (before calling the MUD): "SET COM1BAUD=14400" and "SET COM2BAUD=28000". (It's important that there be no spaces on either side of the '='). COMxIRQ= These variables can be used to set the IRQ number to be used for a COM port. To use IRQ 4 with COM port 1, you would have the following line in your AUTOEXEC.BAT: "COM1IRQ=4". This variable must be used in conjunction with COMxADR; both lines must be present for either to work. COMxADR=
This variable is used to set the address of a COM port. Note that it is expecting the number to be in DECIMAL format. This variable must be used in conjunction with COMxIRQ; both lines must be present for either to work. 2.8 SETTING THE BAUD RATE As described in the previous section, there are environment variables you can use to set the baud rate to be used. In fact, there are three distinct ways to set the baud rate. IP&M MUDs go through three steps to determine which baud rate to use: 1. The command line is checked for an override baud rate. For example, if you wanted to set the baud rate to 28800, you could use the following command in starting the MUD: CALL MUD DOOR C:\BBS\NODE1\DOOR.SYS 28800 This fourth parameter is known as the baud rate override parameter. You should normally only use it during diagnostic situations, when you're trying to determine the correct baud rate to use with the MUD, although it won't hurt to include it whenever you need to. Assuming that the override parameter was used, no further checking would be done to determine the baud rate to be used. That value would be used. 2. The DOS environment is checked to see if variables have been set for the current COM port. For example, if you included the following line in your AUTOEXEC.BAT batch file: SET COM1BAUD=14400 If the MUD was invoked for COM port 1, then the baud rate to be used would be 14400. No further steps would be taken to determine the proper baud rate. 3. At this point, the value that was entered on the "Modem Setup" screen for baud rate would be used for the baud rate. 2.9 USER TYPES Users are the real-life people who control characters on MUDs. There are four basic types of users: Guests Guests are users that generally can use the MUD but not bulletin board objects. These are people who are still looking around, trying to decide if they want to join the MUD permanently. Players These users make up a large portion of any MUD. They are regular users that may or may not be subscribers. Access levels can be defined, along with security levels, that restrict non-subscribing players from certain areas and activities (like downloading files). Wizards Wizards are users that can build new areas and objects in the MUD. Some MUDs have them and some don't; some sysops prefer to do all the building themselves. They can be restricted to building only in certain areas, so as to not disturb the already-existing sections. Producer That's you. You can do anything. You might want to make "becoming a wizard" a goal for your users, but they should have to earn it; they should have solved many of your puzzles and be very familiar with the MUD before being given this privilege. As with players, wizards can be divided between subscribing and non-subscribing types. You may or may not want to allow there to be non-subscribing wizards; it might be a good incentive for them to become subscribers! 2.10 COMMAND SETUP As the MUD producer, you can decide which types of users can use which commands. Press "C" for "Command Setup" on the Waiting For Call screen. You'll come to a spreadsheet that lists all of the internal commands. Move around the fields in the spreadsheet by using your arrow keys. Note that fields will often exist off the right side of the screen; pressing the right arrow past the edge of the screen will make them visible. On this screen, you'll see the following fields: USERS: This is where you enter codes that define which users can use this command. The codes are as follows: G Guest. You will generally want to restrict most activities from guests. p Player, non-subscribing. This is the access levels used for people who are regular users, but have not subscribed. P Player, subscribing. As the name implies. w Wizard, non-subscribing. Wizards generally have more rights than players, including rights to build new parts of the MUD. W Wizard, subscribing. As the name implies. ! Producer. That's you. CMDNAME: The name of the command to be defined, like "look" or "@placedesc" or "@obj". DESC1: The description to be listed when a use types "COMMANDS", to see what commands are available. 2.11 SECURITY As seen in the last section, there are six different types of users: guests, non-subscribing players, subscribing players, non-subscribing wizards, subscribing wizards, and producers. You don't have to use all of these types; if you're running a free MUD, for example, you don't need the subscribing user types. Don't confuse these different types of users with security levels, however; security levels are numbers, like 10, 20, 99, etc. You might want to have three different types of subscribing players, based on the amount of money they have sent you; you might create a security level of 10 that gives players 20 minutes in the MUD per day, a security level of 20 that gives players 40 minutes in the MUD per day, etc. Both of these security levels would be for subscribing players, however, so they can perform the same commands. If you're running IP&M as a door, you'll need to set up the security levels in the MUD the same as they're set up in the BBS. To do this, press "E" for "Security Setup" on the Waiting For Call screen. You'll see a spreadsheet with the following fields: SECLEVEL: The level to be defined, like 10, 20, etc. DAILYTIME: The number of minutes allowed in the MUD per day. This is only used when running the MUD standalone; otherwise, they have as much time in the MUD as they have remaining in the BBS. DAILYBYTES: The number of bytes that can be downloaded from the MUD per day, from bulletin board objects. SECTYPE: The type of access that this security level provides. Enter one of the following six codes: G Guest. You will generally want to restrict most activities from guests. p Player, non-subscribing. This is the access levels used for people who are regular users, but have not subscribed. P Player, subscribing. As the name implies. w Wizard, non-subscribing. Wizards generally have more rights than players, including rights to build new parts of the MUD. W Wizard, subscribing. As the name implies. ! Producer. That's you. 2.12 FILE TRANSFER PROTOCOLS Earlier versions of Industrial Prose & Magic had file transfer capability built-in: X-Modem, Y-Modem, Z-Modem, etc. This would allow users that had sufficient security levels to download files from bulletin board objects. The built-in file transfer ability was removed from Industrial Prose & Magic, to allow room for other features to be added. File transfer software is widely available, and it really made no sense to take up valuable program resources to duplicate what is already being done with other packages. So, users can still download from bulletin board objects, but you will need a file transfer program such as DSZ.EXE or GSZ.EXE to accomplish this. These programs are widely available as shareware, and can be found on any major bulletin board. To set up your MUD to work with one of these programs, press "R" for "Protocol Setup" on the Waiting For Call screen. You'll see a spreadsheet with the following fields: PROT_CHAR: The letter to be highlighted in the button when prompting the user. For example, if you had X-Modem defined, you'd probably want to put an "X" in this field to highlight that character. Each protocol type must have a different character in this field. PROT_NAME: The name of the protocol, to be used in the button when prompting the user. SEND_CMD: The command line to be used when transmitting a file with the file transfer program. The following variables are substituted in the line when executed: %p The number of the COM port being used. %f The name of the file to be sent. So, if you were using GSZ.EXE, you would have this line set to the following for Z-Modem: gsz port %p sz %f RECV_CMD: The command line to be used when receiving a file with the file transfer program. The following variables are substituted in the line when executed: %p The number of the COM port being used. %f The name of the file to be received (often not needed). So, if you were using GSZ.EXE, you would have this line set to the following for Z-Modem: gsz port %p rz 2.13 NEWS AND HELP These are two extensible systems that allow you to create custom topics in your MUD. For example, if you wanted to set up a help display that provides in-depth information on an element in your game (a political situation, a new type of monster, etc), you could assign a keyword that would allow the user to ready that display. Suppose you invent a new type of monster, called a JORD. Your users won't know what a jord is. But you might want it to be common knowledge to the characters inside your game. You could set up a JORD help keyword, so that when users type "HELP JORD", the system explains the nasty feeding habits of your monster. If they just typed "HELP", a listing of all defined keywords would be displayed, including "JORD". You could also use news in a similar manner. You might want to explain the latest intrigues going on in court, gossip about well-known characters, etc, by defining news keywords just as you would help keywords. Press "H" for "Edit Help" on the Waiting For Call screen to set up the help keywords. Press "W" for "Edit News" to set up the news keywords. The same screen will appear for either, with the following command buttons: ADD ITEM: Use this button to add a new keyword. You will see it displayed on the screen after you've defined it. DELETE ITEM: Use this button to delete a keyword. It will be removed from the screen. EDIT ITEM: Use this button to edit the item. Press Ctrl-W to save your text, or ESC to abort. QUIT: Use this button to return to the Waiting For Call screen. 2.14 LOGIN TEXT There are numerous types of login text that you can define for your callers. To do so, press "X" for "Login Text" on the Waiting For Call screen. You'll see the following options: C Mud Charter. You can use this area to describe the basic operating tenants of your MUD; why you started it, what the theme is, etc. S Subscription Info. You can use this area to describe how users should go about subscribing to the MUD. G Ground Rules. If you forbid players from attacking each other, for example, this would be the place to put that information. F File Library. This area can be used to describe that kinds of files stored in the MUD. Some producers hide bulletin board objects around the MUD, making access to certain files part of the reward for solving puzzles. A Access Levels. This area can be used to describe the different security levels supported in your MUD. You probably only need to use this if you're running the MUD standalone, otherwise you doubtless already have a similar bulletin in your BBS. L Login Bulletin. This message is displayed every time users log in to the MUD. B Basic Commands. This text is hooked to the "Basic Commands" button in the introductory menu. If you want to customize it, you can, but it already explains the common commands available. W What's a MUD? This text is hooked to the "What's a MUD?" button in the introductory menu. Again, if you want to customize it, you can. If you want to divide your text into logical components (the login bulletin is a likely candidate), you can use the special "" keyword in the text to create a "[More]" prompt, as follows: This text is displayed first. This text is displayed after the user has pressed ENTER on the [More] prompt. PART III DEFINING THE GAME 3.1 PICKING A GENRE FOR YOUR MUD MUDs are imaginary worlds. You need to decide what kind of imaginary world you want to create. The easiest way to do this would probably be to look at the kinds of fiction you like to read the most. What type of novel have you really enjoyed lately? Science fiction? Fantasy? Horror? Mystery? Any of these genres would work splendidly as a MUD. Your only limitation is your imagination. Many MUD producers pick themes specific to books they have enjoyed; for example, a Pern MUD or Amber MUD or Middle-Earth MUD. Feel free to do so, but be aware that if you're charging money for people to use your MUD (i.e., a commercial MUD), and you use copyrighted worlds, you might face legal problems down the road. In that situation, we would recommend that you loosely base it on those types of worlds, but refrain from using the same exact terms and phrases. If you're still having difficulty getting inspiration for a MUD genre, visit your local role-playing store. Look at all of the different types of role-playing genres that other people have already created. Look at multi-genre RPG systems like GURPS, that have different supplements for different genres. You'll get some good ideas that way. You might even want to buy one of those supplements and use them for ideas. 3.2 CHARACTER ATTRIBUTES Having decided on a genre, you're now ready to define the physical and mental characteristics associated with the inhabitants of your MUD. In a fantasy MUD, it would often be best to used a system that's already been proven usable by RPG games, like Dungeons & Dragons. D&D uses six attributes to define characters: Strength, Intelligence, Wisdom, Dexterity, Constitution, and Charisma. Feel free to use fewer if you so incline; most MUDs could probably get by with just Strength, Intelligence, and Dexterity. The maximum number you can define is 8, although 6 should be a realistic maximum. (Six is also the maximum number that can be shown on the status line). Each of these attributes is assigned a number, on a scale of 1 to 20+. 10 is average for a human. 1 is really, really pitiful. 20 is superhuman. For each of your attributes, you define averages for each race. An average Strength for a human would be 10, for a dwarf, perhaps 8, for an elf, perhaps 6. And so on. To look at the attributes as they are currently defined, choose "A" on the Waiting For Call screen, then "A" for attribute setup. You'll notice the only fields defined in the spreadsheet are ATTRNAME, which defines the name of each attribute, and DESC1-DESC4, which describes each attribute to the users. Feel free to type over the ones there and redefine them, or press the down arrow at the bottom of the sheet to add new ones. Press ESC when done. How are attributes used in the game? You'll find out in-depth in the "Creating Rules" section. Basically, you create rules in your world which test various attributes at different times. For example, you might create a fissure that has to be leaped to be crossed. When a character tries to leap it, you have the system test their Dexterity attribute. An "electronic roll" (using 3 6-sided dice) is made against their Dexterity; if the roll is lower or equal to their rating, they succeed. Otherwise they fail. Your rule will specify what happens in either situation. 3.3 CHARACTER SKILLS Now let's talk about skills. Skills are like optional attributes. They are scaled the same way, from 1 to 20+, but define the things that a character knows how to do and use. They are tied directly to weapons and items, about which you will learn in the next section. In other words, to use a sword, you might need the Bladed Weapons skill. To use a magic scroll, you might need the Scroll lore skill. In the example with leaping the fissure in the last section, you might also define a "Leaping" skill, that would be tested in those types of situations. Leaping, though, is something everyone can do (to some extent, at least), so it's really not appropriate as a skill. Skills are specialized knowledge that a character has learned, which enables him or her to use specific types of weapons and items. If you were creating a fantasy MUD, you might decide on skills like Bladed Weapons, Blunt Weapons, Scroll Lord, and Wand Lore. Two fighting skills and two magical skills. In an actual MUD, you'll probably want six to a dozen skills available total. To see what kinds of skills are currently defined, type "A" from the Waiting For Call screen, and then "S" for skill setup. The following fields will appear: SKILLNAME: The name of the skill, like "Scroll lore". Anything you can imagine is fine here, as long as it's descriptive. SKILLCOST: When character are assigning their starting character points to various attributes and skills, they will need to spend X number of points to purchase each point of skill. This is where you enter the X. Fencing, you might reason, is not a very rare skill in a fantasy world: it should only cost 1 character point for each point of skill. Dragon Control, on the other hand, might be a rare magical skill that is extremely difficult to learn and master, and you might want to make it cost 5 character points, or 10, for each point of skill. It's up to you, although I don't think I'd ever make a skill cost more than 10 points. DESC1-DESC4: These are the text fields that describe what each skill is, and what it's used for. Use as few or as many of these as you need. 3.4 CHARACTER RACES OR TYPES Depending on the genre you've selected for you MUD, you might either want to create character races or character types. Both are the same thing, but the term "race" is only appropriate in certain genres. For example, in a fantasy MUD, you might want to have Human, Elf, Dwarf, and Halfling races defined. In a mystery MUD set in the 1940's, however, it would be more appropriate to have character types, such as Detective, Reporter, Movie Star, etc. To look at the races or types as they are currently defined, choose "A" on the Waiting For Call screen, then "R" for race/type setup. You'll see the following fields: RACE: Enter the name of the first race or type, like "Elf" or "Detective". ATTR1-ATTR8: We're getting slightly ahead of ourselves here. Attributes will be discussed in a moment. When you discover what attributes are, you'll come back here and enter them in for each race. These are the base attributes for each race. DESC1-DESC4: This is the text description callers get about the race, explaining what it is. Remember to use the right and left arrows to move between all the fields. Use as many of these fields, 1-4, as it takes to describe the race. HITDICE: This field defines what type of "dice" are used to generate hit points for the characters. Hit points are the number of points a character has left before he or she dies, so a high number is definitely desirable. If you entered a 10 here, a random number, between 1 and 10, would be added to the character's hit points each time they scored another 10,000 points. Characters start off with the maximum afforded by one roll of the die (10 in this case). 4 is probably the lowest you should ever use, for real weak races. 14 or 16 would probably be the highest number you'd ever want to use, for extremely strong races. 3.5 CHARACTER ALIGNMENT Depending on the genre that you've chosen for your MUD, character "alignments" might or might not be appropriate. In a fantasy MUD, most producers would set up alignments of "Good" and "Evil". In a MUD based on Star Trek, you might have political alignments of "Klingon" and "Federation", or "Bajorran" and "Cardassian". A middle alignment of "Neutral" also exists. You can set up the MUD to use or not use alignments by pressing "G" for "General Setup" on the Waiting For Call screen. If you do use alignments, all characters will start life as "Neutral". Which alignment they move towards ("Good" or "Evil", for example) depends on their actions in the game. If they attack and defeat other users that are "Good", the will slide towards "Evil". If they attack other users that are "Evil", the will slide towards "Good". There is an exception to this, however. There are some types of genres in which it would be appropriate to define the "Good" alignment as peaceful, only attacking other users in self-defense. (This does not apply to monsters, of course; when a user attacks a monster, it is obviously in self-defense, so it does not affect their alignment). In a fantasy MUD, you might reason that good characters would act like Knights or Paladins, and not wantonly attack innocent victims. Likewise, in a MUD based on the Star Wars universe, you might reason that characters like Jedi Knights would only attack other users in self-defense. In a MUD based on Star Trek, you might reason that Federation officers do not go around attacking everyone in sight, while Klingon warriors are not so scrupulous. This "peaceful" quality to good characters is completely optional. To turn it on or off, press "G" for "General Setup" on the Waiting For Call screen, and then set the "High Peaceful" field to yes or no. It should be noted that all characters automatically fight back in a reflexive manner when attacked, and this has no effect on the defending character's alignment. If an evil wizard casts a fireball at a good knight, for example, the knight will counter-attack automatically, and his alignment will not be adjusted. If the knight initiates an attack, however, he will slip towards evil. And again, this is only if the "High Peaceful" flag is set to yes on the General Setup screen. 3.6 DEFINING WEAPONS For any MUD, you'll probably want to define weapons that characters can use to further their goals, whether they be swords in a fantasy MUD, pistols in a mystery MUD, or blasters in a sci-fi MUD. To see the weapons that are currently defined, press "A" for "Game Setup" on the Waiting For Call screen, and then "W" for "Weapon Types". You'll see the following fields: NAME: The name of the weapon, like "blaster" or "long sword". SYNONYM: A short-hand name that can be used in place of the name. If the NAME of a weapon was "LONG SWORD", you might want a synonym to be "SWORD", to allow the user to type in a shorter word when referring to it. If no synonym seems appropriate, leave this field blank. ATT_DICE: The number of dice to use in determining damage inflicted by the weapon. The type of hit dice to use is determined by the next field. ATT_TYPE: The type of hit dice used to determine damage inflicted by the weapon. The number of these dice to use is determined by the previous field. For example, if ATT_DICE were set to 2 and ATT_TYPE were set to 8, the weapon would have an attack value between 2 and 16 (as if using 2 eight-sided dice). HITTEXT: The text description to be displayed when the character makes a successful attack on a monster. Two special characters can be used in this field: the `*' and the `$'. The * will be replaced with the name of the character being attacked. The $ will be replaced with the name of the monster. So, if you had a field defined as follows: * gashes the $ with his short sword! The users in the vicinity of the battle would see the message: Bilbo gashes the goblin with his short sword! MISSTEXT: The text to be displayed when the user attacks a monster but misses. The $ and * characters work the same as with HITTEXT. BASEVALUE: The amount of money a generic version of this weapon would cost in a weapon store. A special version of the weapon would cost more, according to it's abilities. For example, a +1 version of a weapon costs twice as much as the generic version; a +2 version costs three times as much. SKILL: The name of the skill to be used when determining whether a character knows how to use a weapon, and whether he or she uses it successfully. 3.7 DEFINING ARMOR Just as you define weapons for your MUD, you'll probably want to define armor as well, to help protect characters from injury. The armor might take the form of a suit of chain mail, a bullet-proof vest, or a suit of battle armor, depending on the genre of your MUD. To see the armor that is currently defined, press "A" for "Game Setup" on the Waiting For Call screen, and then "O" for "Armor Types". You'll see the following fields: NAME: The name of the armor, like "suit of chain mail" or "combat vest". SYNONYM: A short-hand name that can be used in place of the name. If the NAME of the armor was "COMBAT VEST", you might want a synonym to be "VEST", to allow the user to type in a shorter word when referring to it. If no synonym seems appropriate, leave this field blank. EFFECT: The modification this piece of armor has to the wearer's armor class. Typically, this will be a negative number, meaning it subtracts that amount from his or her armor class, making them more difficult to hit, or less vulnerable to damage when hit. BASEVALUE: The amount of money a generic version of this armor would cost in an armor store. A special version of the armor would cost more, according to it's abilities. For example, a +1 version of a piece of armor costs twice as much as the generic version; a +2 version costs three times as much. TYPE: Armor is subdivided into different types, each assigned a letter. The reason for this is that for most types of armor, you don't want the user to be able to wear multiple instances of the same thing. For example, if they are already wearing a suit of plate mail, you don't want them to be able to also put on a suit of chain mail! To solve this problem, you would assign the same letter to both of these types of armor. Then, they would only be able to put on one of them at a time. The one exception to this is the Z class, which by definition allows as many instances of the armor type to be worn as desired. You can use this feature if you feel it is appropriate. 3.8 DEFINING SPECIAL ITEMS The kinds of special items you'll want to define depends, again, on the genre you've picked for your MUD. For a fantasy MUD, you'll probably want to define scrolls, wands, and such, that will allow non-warrior users (the ones who don't have the weapons skills you've defined) to use magical powers. You'd want to create skills to go along with these items; for example, a Wand Lore skill that allows users to use wands, a Scroll Lore skill that allows users to use scrolls, etc. Let's bring up the special item spreadsheet and look at the fields involved. Type "A" at the Waiting For Call screen, then "I" for "Item Setup". You'll see the following fields: NAME: The name of the item, like "tricorder" or "wand of healing". SYNONYM: A short-hand name that can be used in place of the name. If the NAME of an item was "WAND OF HEALING", you might want a synonym to be "WAND", to allow the user to type in a shorter word when referring to it. If no synonym seems appropriate, leave this field blank. TYPE: There are two types of items: O An item that can be used once per day. If you're running a fantasy MUD, and want to stick with the D&D idea of casting a spell once per day, you can create an item (like a scroll) that only works once per day. C An item that has a certain number of charges before it becomes useless, but can be used more than once per day. POWER: There are three types of item powers: A Attack a monster; this inflicts damage in the same manner that a weapon would, using the ATT_DICE and ATT_TYPE fields below. T Teleportation to any part of the MUD (assuming you know the name of the location). H Healing hit points that have been lost (due to combat). ATT_DICE: The number of dice to use in determining damage inflicted by the item (if it's power is type A). The type of hit dice to use is determined by the next field. ATT_TYPE: The type of hit dice used to determine damage inflicted by the item. The number of these dice to use is determined by the previous field. For example, if ATT_DICE were set to 2 and ATT_TYPE were set to 8, the item would have an attack value between 2 and 16 (as if using 2 eight-sided dice). CHARGES: The maximum number of charges this item can have (determined randomly on creation). SKILL: The name of the skill needed to use this item. HITTEXT: The text description to be displayed when the character makes a successful attack on a monster with this item. Two special characters can be used in this field: the `*' and the `$'. The * will be replaced with the name of the character being attacked. The $ will be replaced with the name of the monster. So, if you had a field defined as follows: A ball of lightning flashes from *'s wand and smashes into the $! The users in the vicinity of the battle would see the message: A ball of lightning flashes from Bilbo's wand and smashes into the goblin! This text is also used for other powers, besides attacking. For a wand of healing, you might define the text field: A glow of energy surrounds *'s body, healing his wounds. And he would see the message: A glow of energy surrounds Bilbo's body, healing his wounds. MISSTEXT: The text to be displayed when the user attacks a monster with the item but misses. The $ and * characters work the same as with HITTEXT. BASEVALUE: The amount of money this item would cost in a store. For once-a-day items, this is the actual value. For charged items, this amount is multiplied by the number of charges left to determine the actual value. 3.9 DEFINING TREASURE Treasure will probably be a major part of your MUD, especially if you have chose a fantasy theme for your MUD. Treasure is found when killing a monster, and different classes can be linked to different types of monsters; kill a weak monster, you might find a few silver pieces; kill a dragon, you might find a ton of money, or a really nifty sword. To see the types of treasure currently defined, press "A" on the Waiting For Call screen, and then "T" for "Treasure Types". You'll see the following fields: CLASS: Treasure classes are each assigned a letter, and an unlimited number of instances of a treasure class are allowed. For example, you might set up treasure class A to be the treasure associated with weak fantasy monsters (maybe goblins, orcs, and hobgoblins). Whenever a user kills one of these monsters, a random entry in this spreadsheet associated with treasure class A will be picked and given to the user. TYPE: Treasure can either be one of the following types: M Money. I An item from the item spreadsheet. W A weapon from the weapons spreadsheet. A A piece of armor from the armor spreadsheet. NAME: When defining types I, W, or A, the name as defined in the corresponding spreadsheet. When defining money, leave this blank. MAXBONUS: The maximum + bonus for weapons or items, such as a +1 sword or +2 suit of chain mail. MAXAMT: When defining money, the maximum amount of money that might be found (determined randomly). 3.10 MONSTERS AND GATES No matter what genre you've decided on, you'll probably want to create some "monsters". In a fantasy, they might be goblins and dragons. In a Star Trek MUD, they might be Klingons or Romulans. In a mystery MUD, they might be gangsters. In a horror MUD, they might be vampires or werewolves (or humans!). Let's bring up the monster spreadsheet by pressing "A" for game setup (at the main menu), and then "M" for monster setup. The following fields will appear: NAME: The name of the monster, like "goblin" or "stormtrooper". SYNONYM: A short-hand name that can be used in place of the name. If the NAME of a monster was "RED DRAGON", you might want a synonym to be "DRAGON", to allow the user to type in a shorter word when referring to it. If no synonym seems appropriate, leave this field blank. HIT_DICE: The number of dice to use in determining hit points for a monster. The type of hit dice to use is determined by the next field. HIT_TYPE: The type of hit dice used to determine hit points for a monster. The number of these dice to use is determined by the previous field. For example, if HIT_DICE were set to 3 and HIT_TYPE were set to 6, the monster would have a starting number of hit points between 3 and 18 (as if using 3 six-sided dice). ATT_DICE: The number of dice to use in determining damage inflicted by the monster. The type of hit dice to use is determined by the next field. ATT_TYPE: The type of hit dice used to determine damage inflicted by the monster. The number of these dice to use is determined by the previous field. For example, if ATT_DICE were set to 2 and ATT_TYPE were set to 8, the monster would have an attack value between 2 and 16 (as if using 2 eight-sided dice). HITTEXT: The text description to be displayed when the monster makes a successful attack on a character. Two special characters can be used in this field: the `*' and the `$'. The * will be replaced with the name of the character being attacked. The $ will be replaced with the name of the monster. So, if you had a field defined as follows: The $ smashes * with a club! The users in the vicinity of the battle would see the message: The goblin smashes Bilbo with a club! MISSTEXT: The text to be displayed when the monster attacks a character but misses. The $ and * characters work the same as with HITTEXT. TREASURE: The treasure class associated with this monster. This defines what type of treasures a character might earn when killing this sort of monster. Treasure classes are defined in step 5. ARMOR: The armor class associated with this monster. Armor classes modify how difficult they are to hit, and how much damage will be inflicted when hit. 0 is the average armor class; negative numbers indicate harder to hit creatures, positive numbers indicate easier to hit creatures. A good range would be between -10 (very, very hard to hit) and 10 (extremely easy to hit). ATTACKVAL: This value indicates the skill associated with the monster's method of attack. 10 would be average; 3 would be pitiful; 20 would be incredibly lethal. SCORE: The score a user should earn when defeating this type of monster. Scoring is entirely up to you. ANSI_PIC: The name of the ANSI file to display that shows what this monster looks like. If you don't have one, leave this blank. RIP_PIC: The name of the RIP file to display that shows what this monster looks like. If you don't have one, leave this blank. As a general rule, if you have a RIP picture defined, you should have an ANSI one define, and vice-versa. CLASS: Monsters can be grouped together in classes to allow some variety when they are created by "gates" (read below). DEXTERITY: The dexterity rating is used to decide whether the monster or the player can strike first in combat; the higher value strikes first, with ties going 50-50. Monsters are not generated directly by you in the game. Think of how often you'd have to create new ones, with all of your users killing them constantly! Instead, you create monster gates with the @gate command. These gates are invisible objects that generate a random number of either a specific type of monster, or monsters in a monster class. You can set the percentage chance that the gate will create a monster every time a user enter the location (assuming that no monsters already exist). You can use the @gateinfo command to display information about the gate in the current location. If you want to delete the gate, use the @gatekill command. 3.11 WEATHER SETUP Weather is optional; it might or might not be appropriate for your MUD, depending on the genre you've chosen. If everyone is always aboard a spaceship, you probably won't want to use it. But if everyone's on the surface of a planet (whether it be sci-fi or fantasy), you'll probably want to use it. The weather system is totally configurable; you can having raging thunderstorms, biting sandstorms, snowy downfalls, or anything else you think appropriate. To turn the weather system on or off, press "G" for "General Setup" on the Waiting For Call screen. You will see the following weather-related options: USE WEATHER? Press "Y" or "N", depending on whether you want to use it or not. MULTIPLE ZONES? If your MUD is spread out over a large area, you might want there to be multiple weather zones, each independent. If so, when you create new places, you will be asked which weather zone corresponds to the new place. You can define as many zones as you like. CHECK HOW OFTEN? In real time, how often should the weather be checked to see if it changes? Enter the time in minutes. Most MUDs could probably stand to have it checked every 60 minutes or so, but it really depends on how active you want the weather to be. If you do decide to use weather, you'll want to customize the related weather spreadsheets. Press "A" for "Game Setup" on the Waiting For Call screen, and then press "E" for the first weather spreadsheet, "Weather Setup". You'll see the following fields: TITLE: For your own convenience when setting up the weather; the caller won't see this description. You can call it "Partly Cloudy" or "Heavy Rain" or "Severe Storm", etc. DESC1: The description for this weather to be used during the first quarter of the day (Midnight-6:00 AM). DESC2: The description for this weather to be used during the second quarter of the day (6:00 AM-Noon). DESC3: The description for this weather to be used during the third quarter of the day (Noon-6:00 PM). DESC4: The description for this weather to be used during the last quarter of the day (6:00 PM-Midnight). GETBETTER: The text to be displayed when this weather progresses to a "better" state (less rainy, etc). GETWORSE: The text to be displayed when this weather progresses to a "worse" state (more rainy, etc). RAINFALL: The amount of "wet points" a user accumulates each turn while exposed to this weather. (Only in outside locations, obviously). CHANCE_BET: The percentage chance that this weather will get better the next time the weather is checked for modification. CHANCE_WOR: The percentage chance that this weather will get worse the next time the weather is checked for modification. DANGER: The danger associated with this weather; the following codes are currently defined: F The user might slip and fall, dropping everything, because it's slippery or icy outside D The user might take damage, such as a strike from a lightning bolt, falling rocks, or debris being hurled around from a tornado. DANGERHIT: The text description of what happens when the current weather event occurs, as defined by the DANGER, DANGERCHAN, and DANGERDAM fields. DANGERMISS: The text description of what happens when a weather event almost occurs (a bolt of lightning almost hit the user, etc). DANGERCHAN: The percentage chance that a weather event will occur in a given turn, such as being struck by lightning. DANGERDAM: The maximum amount of damage (subtracted from the user's hit points) when the weather event occurs. To see the next weather-related spreadsheet, press "A" for "Game Setup" on the Waiting For Call screen, and then press "Z" for the second weather spreadsheet, "Weather Zones". You'll see the following fields: ZONE: The weather zone being defined, like "1", "2", etc. SEVERITY: The current severity in that weather zone, as defined by the records in the previous spreadsheet. (The first line in the previous spreadsheet is severity 1, the second line is severity 2, etc). Unless you want to force the weather to a certain condition in a zone, you shouldn't ever have to modify this field. MIN_SEV: The minimum severity number for the current zone. In a tropical rainforest, you might never want it to be a clear, sunny day, for example. MAX_SEV: The maximum severity for the current zone. On a peaceful island, you might want the weather to never get worse than a light rainfall. (Or, you might want to make it the roughest part of the MUD, with hurricanes and everything!) LASTCHANGE: The last time the weather was changed, in terms of seconds elapsed since midnight. You shouldn't ever have to modify this field. To see the last weather-related spreadsheet, press "A" for "Game Setup" on the Waiting For Call screen, and then press "N" for the third weather spreadsheet, "Wetness Setup". You'll see the following fields: THRESHOLD: When a user accumulates "wet points" as defined by the RAINFALL field in the first weather spreadsheet, they can progress through wetter and wetter stages of wetness. (Although "wet" is the term being used, is could just as well define states of coldness, hotness, etc). In this field, you put the number that defines the number of "wet points" that a user needs to accumulate to be at this state of wetness. DESC: The description to the user of what wetness state they're in. For early states of wetness, you might enter "You're a bit damp". For later states, you might enter "You're thoroughly drenched". CHANCEDAM: The percentage chance per turn that the wetness state they're in will subtract from their remaining hit points. If they get thoroughly drenched, for example, you might reason that they could start to get sick and lose hit points, if they don't get inside and dry off. DAMAGEMAX: If they do take damage for their state of wetness, this is the maximum amount of hit points they could lose per turn. DAMAGEDESC: If they do take damage for being too wet (or cold, or hot, etc), this is the description they see. 3.12 FILES AND BULLETIN BOARD OBJECTS Bulletin board objects are special objects that you might decide to have in your MUD. When they are looked at, bulletin board objects present a menu of choices to the user, allowing them to upload or download files (if they have a sufficient security level), leave messages on the current topic, etc. Defining bulletin board objects takes several steps. First, you must decide on the different topics to support. You might want to make one object be dedicated to "Windows Utilities" files and messages, another dedicated to "Adult Graphics", etc. To set up the different topics, press "T" for "Setup BBSs" on the Waiting For Call screen. You'll see the following fields: TOPIC_CODE: Invent an arbitrary code for this topic, like "T1" for text files, "G1" for graphic files, "W1" for windows files, etc. Each topic must have a unique topic code. ACCESS: Enter one or several of the following codes, to allow users to download files from this topic area: G Guest. You will generally want to restrict most bulletin boards topic codes from guests. You can do this on the "Setup BBSs" screen by not putting a G in the ACCESS field. p Player, non-subscribing. This is the access levels used for people who are regular users, but have not subscribed. P Player, subscribing. As the name implies. w Wizard, non-subscribing. Wizards generally have more rights than players, including rights to build new parts of the MUD. W Wizard, subscribing. As the name implies. ! Producer. That's you. DESC: The description of this topic code, like "Windows Utilities" or "C Programming Files". UPLOADPATH: The full path to be used when uploading files, to indicate which directory uploaded files in this topic should be placed. CAN_UPLOAD: Using the same codes as the ACCESS field, specify which user types can upload to this topic area. Once the topic table is complete, you can add a topic to a bulletin board object by using the "@bbsadd" command, or remove one by using the "@bbsdel" command. One bulletin board object can be related to as many topics as you'd like. If you're not sure which topic codes you've added to a bulletin board object, type "@bbslist" to display the topic codes. If you already have some files on your hard disk that you'd like to import to a bulletin board object, use the "@bbsmassul" command to import a group of files at once. You can use wildcards to specify whichever files you wish to add to the object. You will be prompted after each file for a description of that file. Conversely, to delete a group files from a bulletin board object, use the "@bbsmassdel" command. If you want to change a description of a file, use the "@filedesc" command. If you want to delete a single file, use the "@filekill" command. This gives you the option of either deleting the file from the hard drive, or simply removing it from the list of files for the topic. To set a password for a file, use the "@filepass" command. That way, only users that know the password for the file can download it. PART IV CREATING THE MUD 4.1 CREATING PLACES Creating places is the most common task in setting up the MUD. Places are locations that users can visit. There are five types of them: Normal places. Just what the name implies. Public places. These are places that users can instantly move to by using the "GO" command. This is a compromise between being able to teleport anywhere and taking forever to get anywhere, a historical problem with MUDs. Weapons Shops. Places in which users can buy and sell weapons. Armor Shops. Places in which users can buy and sell armor. General Shops. Places in which users can buy special items. When places are first created, there are no exits attached to them. The sequence of creation is: create place, attach exit, create place, attach exit, etc. When you first load the software, you'll be in a one-room MUD. To modify the name of this place, type "@placename", and then hit ENTER. This command changes the name of places. Right now, we're in a place called "Entry Point". So, at the first prompt (Old Name?), type in "entry point". At the next prompt (New Name?), type in "bridge". The name has been changed. Type "L" (for Look), and you'll see the name has been changed at the top of the description window. Now, let's describe what the bridge looks like. Type "@placedesc", then hit ENTER. Type in the following: "You're standing on the bridge of the USS Enterprise. Glowing" (Press ENTER) "display stations surround the walls." (Press ENTER) Or, describe the bridge however you'd like. When you're done, type "L" to look around again, and you'll see that your description now appears in the description window. Now, let's create a new place. Type "@place" and press ENTER. At the first prompt (Name?), type in "Ready Room". At the second prompt, just press ENTER. (If you wanted there to be another way to refer to "Ready Room", you could have entered it there as a synonym). That's it! The new place has been created. It doesn't appear on the map yet, however, because the MUD doesn't know how to connect it to your current location. For that, you'll need to create an exit. If you want to delete this exit, use the "@placekill" command. Also, you can create a numbered place, just as you can create numbered objects (see CREATING OBJECTS). The "@placex" command can be used for this purpose. 4.2 CREATING EXITS Now let's create our first exit. Type "@exit" and press ENTER. At the first prompt, enter "E", meaning that the new exit leads east from here. At the next prompt, type in "Ready Room". At the next exit, type "2". That's the length of the line to be drawn on the map to represent the exit. At the next prompt, type "door", as the description for the exit. At the last prompt, type "Y" to create the corresponding counterpart for this exit (meaning that once in the ready room, an exit leading west will take you back to the bridge). The exit now exists. Type "L" to look around, and you'll see the exit and the new location on the map. Let's see how the map changes when moving between places. With your NUMLOCK on, press the 6 on your numeric keypad (which corresponds to "east"). You'll notice that you've moved to the ready room. Press 4 on your numeric keypad, and you'll be back on the bridge. Now, suppose you really meant for that to be an exit to the north to get to the ready room, not the east. Let's modify it. Make sure you're back on the bridge. Type "@exitdir" and press ENTER. At the first prompt, type "E" for east, meaning that's the exit you want to change. At the next prompt, type "N", meaning that's the direction you want the exit to lead. Then type "L" to look around, and you'll see that it's been modified. Now, let's change the length of the exit. You created it with a length of 2, making it pretty small. Let's make it longer. Type "@exitlen" and press ENTER. At the next prompt, type "N", meaning that it's the north exit you want to modify. At the next prompt, type "3". Then type "L" to look around, and you'll see that the exit line is longer than before. To change the description that appears in the main text box for an exit, use the "@exitdesc" command. To delete an exit, use the "@exitkill" command. 4.3 CREATING OBJECTS Objects are things that users can observe, use, pick up, etc. There are the following types of objects (not including characters and NPCs, which are technically "objects" from a system command standpoint): Weapons. These are objects that, when wielded, can be used to attack monsters. Special items. Objects that have special powers, like healing hit points, inflicting damage, and teleporting users. In a fantasy MUD, these might be scrolls or wands. Armor. Objects that, when worn, improve a character's armor class. Non-takeable objects. These are things that for some reason, either because they are too heavy or whatever reason, cannot be taken. This is the default type of all objects that are created with the @obj command. (@objtype can then be used to modify the object type). Takeable objects. These objects can be picked up and added to the character's inventory. Bulletin board objects. These are objects that act as bulletin boards. When users look at them, they will see messages and files that have been left there by others. Now let's create an object. Go back to the ready room. We'll create an aquarium that displays a message when you hit it. First, type "@obj". At the first prompt, type "Aquarium". At the next prompt, press "N" for neuter. At the next prompt, type "fishtank" for a synonym. Then press ENTER. The object is created! Type "L" to look around, and you'll see the aquarium in the status description. To describe what an object looks like, use the "@objdesc" command. This will allow you to enter the text to be displayed when a user tries to look at the object. Just as with characters, you can create hot-phrases to work with objects. The "@objhot" command allows you to create an automatic response from an object when a specific word or phrase is mentioned in a conversation between characters that are in the same location as the object. The "@objhotkill" command is used to remove a hot-phrase from an object. The "@objhotlist" command will display all hot-phrases that have been defined for an object. To see the effects of a hot-phrase, use the "@objhotsee" command. If you wish to delete an object itself, use the "@objkill" command. All rules and text that have been defined for the object will be deleted as well. If you would just like to delete the rules and text but not the object itself, use the "@objwipe" command. To simply change the name of an object, use the "@objname" command. As for object ownership, every object is owned by the person that created it. The "@objowner" command will display the name of the user that owns an object. If you have given wizard access to some of your users, you can use the "@objownernew" command to change the ownership of a location or a place that you have previously created. By doing so, they will be able to modify that particular place or object (but not any others that you as the producer own). As you know if you've created some objects already, you can define synonyms for objects; you can call a "long sword" a "sword" if that synonym has been defined for it. If you want to add another synonym to an object after you've already created it, use the "@objsyn" command. To see all of the synonyms defined for an object, use the "@objsynlist" command. To remove a synonym from an object, use the "@objremsym" command. Now, let's get back to our example. Let's create a rule that works with the aquarium. Type "@objrule" and press ENTER. At the first prompt, type "bump". At the next prompt, type "aquarium". At the next prompt, type "N" for "No Modifier". (This prompt allows you to create more detailed rules, like "hit aquarium with crowbar"). At the next prompt, type "S" for "Say", meaning that you want the MUD to say something when this rule is executed. At the next prompt, type: "A delicate-looking fish cringes in horror." Press ENTER twice. Then press "D" for done. That's it! Try typing "bump aquarium", or "bump fishtank", and you'll see that the poor fish does indeed cringe in horror. For more information on creating rules, read the next section. To delete the rule you just created, use the "@objrulekill" command. To create a simple rule for an object (no ANDs), you can use the "@objverb" command, which is a streamlined version of "@objrule". If you'd like to create a numbered object, use the "@objx" command. Because two objects cannot share the same name, you might want to do this to create similar objects. For example, if you only had one "button" object for users to push in your MUD, you could just call it a "button". But if you're on a starship, you'll probably have lots and lots of buttons. Using "@objx" will create an object like "button (#121)", allowing there to be many objects with the same root name. The "@objspecdesc" command allows you to provide a special description for the object on the lower half of the screen. For example, suppose you create a weed object, but you don't want the user to know that it's there automatically. You want to hide the weed in a clump of grass. To do this, you would first use the "@obj" command to create a weed, and define synonyms for the weed as "clump of grass" and "grass". Then you would use "@objspecdesc" to create a description that says, "A clump of grass is also nearby." Then, when the user enters the room, he/she would first need to LOOK at the clump of grass, or some similar arrangement, to which you've defined a description such as "It's just a bunch of weeds". But if the resourceful user decides to try taking a weed, he will be successful. By doing this, the weed is not specifically named in the text unless the user digs deeper. In addition, you can create "noise" for an object. Noise is text that is displayed at random occasions, usually to add some color or realism to an object or place. For example, if you defined a location called a "bazaar", you could define the following phrase that would every now and then be displayed to a user: "Throngs of people surge around you", or some such phrase. Use the "@noise" command to create these phrases. Use the "@noisekill" command to remove them. 4.4 CREATING RULES Rules are what tie the components of a MUD together; they are the glue that binds user actions to MUD responses. Rules are structured along the lines of "VERB+NOUN=RESULT". If the user types the command "drink soda", then a certain result is defined to deal with that situation. Action rules can also branch to true or false conditions, based on three factors: a random "die" role against a character skill, a "die" roll against a character attribute, or testing the setting of a flag. (There are 128 definable flags). Rules can also be linked to one another, to form chains of results. In other words, you might decide that every time a character tries to drink a soda, you want to do three things: display the message "It tastes terrible", add 10 to the user's score, and reduce his online time by 10 minutes. This is done by choosing the "AND" option after defining each step, instead of the "DONE" option. Rules can be created to work with either objects or places. To create a rule for an object, type "@objrule". To create a rule for a place, type "@placerule". You will be prompted for the following information: VERB? The verb to initiate this rule. If you were defining a rule for "Sniff Coin", for example, you'd type in "Sniff". OBJECT? The object of this rule. In the "Sniff Coin" example, you'd type in "Coin" here. Then you'll see a command bar giving you several different options for this rule, allowing it to be simple or complex. The following buttons will appear: NO MODIFIER. Select this button for a simple, two-word rule, like "Sniff Coin". TO. Select this button when defining a rule with "TO" as the third word, like "Give Coin To Bartender". FROM. Select this button when defining a rule with "FROM" as the third word, like "Take Coin From Bartender". ABOUT. Select this button when defining a rule with "ABOUT" as the third word, like "Ask Monk About Monastery". WITH. Select this button when defining a rule with "WITH" as the third word, like "Touch Snake With Staff". IN. Select this button when defining a rule with "IN" as the third word, like "Put Bowl In Shelf". ON. Select this button when defining a rule with "ON" as the third word, like "Touch Dwarf On Shoulder". You will then see an even larger number of command buttons, that will allow you to define what happens when this rule is invoked: MOVE. This button moves the users to a new location that you define. SAY. This button allows you to give a textual description of what happens. -TIME. This button allows you to subtract a fixed number of minutes from the online time remaining for the user. (A punishment, obviously). +SCORE. This button allows you to add a fixed number of points to the user's score. SETFLG. This button allows you to set a status flag, indicating that a certain condition is true for a user. For example, you might want flag 1 to indicate that a lamp is turned on; the "light lamp" rule would then set this flag to 1. CLRFLG. This button allows you to clear a flag, indicating that a certain condition is no longer true for a user. If the user turned off the lamp, you would then set this flag to 0. FLGTEST. This button allows you to test the status of a given flag. If the user entered a dark pit, and you defined flag 1 as above to indicate whether a lamp was lit, you would define the two results based on the setting of that flag. SKTEST. This button allows you to test a skill of the user, and proceed based on whether they pass or fail that test. ATTEST. This button allows you to test an attribute of the user, and proceed based on whether they pass or fail that test. You will then see the following command buttons: AND. This allows you to select another command button, in conjunction with the one just set. For example, you might define the rule "touch button" to do two separate things: move the user to a new location, and describe what happens. In that case, you'd select the "MOVE" button the first time, and the "SAY" button the second time. DONE. This button informs the system that the rule is complete; no other command buttons need to be selected. To delete a rule from a place, use the "@placerulekill" command. To change the type of a place, use the "@placetype" command. The "@placewait" command defines an action rule to be executed when waiting in the current place. If the user types "wait" in the specified location, the rule will be executed. 4.5 CREATING NON-PLAYER CHARACTERS Non-player characters are similar to characters; they are fictional people (or things, if you're running a real strange MUD), but no user controls them. There are two main uses for NPCs. The first is to add scenery to your MUD. If you have a garden near a mysterious mansion, you might add a NPC gardener that cringes whenever you say the word "mansion" (defining a hot-phrase for the NPC). I'm sure lots of other possibilities come to mind. The second important aspect of NPCs is that they remember everything said and emoted in their presence for the current day. Other users can then use the "QUESTION" command to make the NPC recite everything they've heard on that day. This can add a sense of continuity to the MUD, especially on ones with fewer incoming lines. 4.6 TIME-BASED PLACES AND EXITS As you might have noticed when describing places or objects, the quarter of the day can be used to determine what to display. For example if you type "@mydesc" to define what your own character looks like, you'll see the following prompt: Use description during which quarter of day (1-4,0=all)? Likewise, when defining exits using the "@exit" command, you'll run across the following prompt: Exit exists during which quarter of the day (1-4,0=all)? Both of these prompts expect a number between 1 and 4, corresponding to the following schedule: 1st Quarter Midnight - 6:00 AM 2nd Quarter 6:00 AM - Noon 3rd Quarter Noon - 6:00 PM 4th Quarter 6:00 PM - Midnight If you enter a 0 at either of these prompts, the exit or description will be in effect at all times, unless you have previously defined them for specific quarters. In that case, the "0" description or exit will be the default when not in those specific times. 4.7 MODIFYING YOUR CHARACTER There are a number of system commands that are used just to modify one's own character. These are usually the only system commands that the average user can use. The "@mydelete" command deletes a user's character. The character is history, completely wiped from the MUD. The user is logged off, unless he or she is the producer. The "@mydesc" command creates a specific rule for a character: what to SAY when others look at him or her. The "@myhot" command allows hot-phrases to be defined for a character; it creates an automatic response your character when a specific word or phrase is mentioned in a conversation between characters that are in the same location as your character. Hot-phrases will only be invoked if the user controlling the character is logged off. To remove such a hot-phrase from a character, use the "@myhotkill" command. To see all of the hot-phrases defined for a character, use the "@myhotlist" command. To see the effects of a hot-phrase, use the "@myhotsee" command. To change the password for your account, use the "@mypassword" command. Just as there is a streamlined version of rule creation for objects, "@objverb", there is one for your own character: "@myverb". This allows you to create simple rules with fewer steps. PART V ADMINISTRATION 5.1 INTERNAL BACKUPS A built-in backup system will allow you to save a copy of your MUD database in the BACKUP subdirectory under your MUD directory. Just type "@backup" from inside the MUD, and the files will be copied to the backup directory. To restore the database for whatever reason (power failure, you messed up creating a new world and want to start fresh, etc), just type "@restore" from within the MUD, and the files will be copied to the active MUD directory. 5.2 PRUNING SHOPS As your MUD progresses over time, users might generate so many new items by killing monsters, and then sell those items to stores, that the number of items for sale in a given shop is unwieldy. To cut back on the number of items in a shop, just type "@shopprune". Conversely, if you want to add some more items to a shop, use the "@shopfill" command. 5.3 PURGING USERS You will probably want to periodically delete character in your MUD that users have not used for a given length of time. For example, you might decide that any character that has not been used in the last month is cluttering up the MUD. Use the "@userpurge" command to specify the length of time used to decide whether to purge a character or not. 5.4 COMPRESSING THE DATABASE This is a very important administrative task, as any MUD database will grow significantly over time. The "@compress" command will do all of the work, but nobody else can be on the system. We would recommend that you use this command at least once a month, more often if you have a limited amount of disk space. 5.5 ADMINISTRATIVE COMMANDS There are a number of commands the producer can use to manage the MUD. Commands that relate to characters are as follows: @adjhp Adjusts the number of hit points for a character, either one's own or another. @adjmoney Adjusts the amount of money a character has. @charkill Deletes a character from the MUD, permanently. @charkillall Deletes all characters from a MUD, except for one's own. @charlevel Modifies the security level of a character. Administration commands that are related to the MUD setup are as follows: @currency Allows the user to define the currency string, what money is to be called (Dollars? Silver Pieces? Credits?) @edit This is the MUD low-level editor. With it, you can edit many of the tables that you can from the Waiting For Call screen. @help Allows you to add, delete, or modify topics in the internal help system. @login Allows you to replace the login bulletin text with new text. @messagedays Allows you to set the message retention days, just as you can on the "General Setup" screen. @news Allows you to add, delete, or modify topics in the internal news system. @remphone Removes a specific phone number from the callback verification log. @remphoneall Removes all phone numbers from the callback verification log. There are also some diagnostic commands that can be used to determine general information about the MUD, and whether the MUD is functioning correctly. They are as follows: @database Displays the amount of bytes used by the various database files. If they are taking up too much room, try using the "@compress" command to free up some space. @dumpid An internal command that should only be used when in contact with Continuum Software technical support. @dumpname An internal command that should only be used when in contact with Continuum Software technical support. @dumplace An internal command that should only be used when in contact with Continuum Software technical support. @infox Display extended information about a user, using the name of a given character. @log Displays the system activity log. @pool Displays the amount of free memory available. For best performance, this should be over 100K. @purgelog Deletes the system activity log. @quarter Changes the quarter of the day the system thinks that it is in, but just for your character. If you want to insure that a quarter-based description or exit is working correctly, you can use this command to change your "apparent" quarter. @sessions Displays a list of all MUD sessions, both active and inactive. @sesskill Changes the status of a session from active to inactive. If a node is dropped unexpectantly (as in a power failure), the system might still think that a user is logged in to the system. The MUD will self-correct this error over a few days, but is you know that a session is not really active, you can use this command to mark it as inactive. @whereis Displays the location of a given character. PART VI OTHER ISSUES 6.1 RIP AND ANSI GRAPHICS Once you've created your MUD, you'll might want to illustrate it with some ANSI and RIP artwork. Don't get nervous, it's not that hard to do, even for the non-artistic person. For ANSI artwork, use a good ANSI editor like THEDRAW. Look at some of the ANSI artwork that comes with Trade Wars and other quality door games for inspiration. When you are ready to start, use the BLANK.ANS file that came with IP&M as a starting point; it will let you know where the boundaries are for the window. Look also at PLANET1.ANS, PLANET2.ANS, and PLANET3.ANS that come with IP&M for ideas. Make sure when saving your ANSI artwork that you inform the ANSI editor to save it with screen-clearing codes. Otherwise, it won't work with IP&M. For RIP artwork, use a good RIP paint program like RIPPaint or Tombstone Artist. Again, look at existing artwork for inspiration. PLANET1.RIP, PLANET2.RIP, and PLANET3.RIP come with IP&M, and BLANK.RIP can be used as a template, indicating window boundaries. When you've created some pictures, you'll need to link them to the desired locations. You can do this with the @placepic command. Just enter the name of the ANSI picture and the RIP picture, and you'll be in business. You can use the planet pictures that come with IP&M to see how this is done; link PLANET1.ANS and PLANET1.RIP to Khal, PLANET2.ANS and PLANET2.RIP to Bendii, and PLANET3.ANS and PLANET3.RIP to Ilium. Conversely, you can use the "@placepickill" command to remove a picture from a place. As a note, when you use the "@place" command to create new places, the pictures associated with your current area are automatically copied to the new area. If you don't want to use the current pictures for the new area, use the @placepic command in the new area to redefine them. 6.2 FREELANCE MODULE SUBMISSIONS We accept and review qualified freelance submissions for our line of pre-built MUDs. We expect to set the price of most modules between $40 and $100. To qualify, you need only have purchased Industrial Prose & Magic, understand MUD and IP&M concepts thoroughly, and have a new element or theme in your MUD that a previously published module does not. Be warned, our standards are high. We do not publish every module that crosses our desks. Check your spelling especially. And if you're wanting to create a MUD that is similar to others (like a fantasy world), it must have some new element or twist that will make it stand apart. Here are some other general guidelines: 1. Create worlds that use the "quarter of the day" feature. Have place and object descriptions modify based on the time of day. Create exits that for some reason would only be available during certain parts of the day. (Shops open/closed? Ships in port only in the morning, and at different ports later that evening?) 2. Create a good mix of puzzles, monsters, weapons, and items, that are appropriate for your theme. 3. You should include several public areas, and have at least 50-100 normal areas for users to explore. 4. If possible, include some NEW, NEVER-SEEN RIP graphics in your MUD for various locations and monsters. We pay a higher royalty rate for submissions with RIP graphics. If you're not the artistic type, you can get in touch with some RIP artists at the following locations: Ina Strickland -- You can call her voice at (706) 733-0515 or mail her at 1722 Forest Creek Crt. Augusta, GA 30909. Pauland BBS -- the Grave of Dead RIPpers' Society (504) 383-2864 5. You need to include designer's notes with your submission that can inform the sysop of the puzzles in the game (with solutions), the idea and theme for the MUD, and anything else he or she will need to know. NON-DISCLOSURE AGREEMENT When you're ready to send in a submission, you will need to include the following signed letter. (Sorry, our lawyers made us). We cannot review any submissions without it. I, ___________________________, am submitting the enclosed files for your review, for possible publication as an add-on module for Industrial Prose & Magic. I understand that other people, including those at Continuum Software, may be working on similar projects, and agree not to hold liable any person publishing a module that has similarities in any aspect to my submission, even if my submission is rejected. I understand that all files that are developed and modified with Industrial Prose & Magic, and all files using formats contained by said program, are the property of Continuum Software, and may not be re-sold except by Continuum Software. I further understand that this submission, if accepted, is still the sole property of Continuum Software. I understand that the only compensation for acceptance of this module are the royalties based on net revenues as outlined by Continuum Software. I understand that Continuum Software has the sole right to set the price of modules, and may adjust the prices at any time. I understand that if I wish this submission to be returned to me, I must include sufficient postage to cover that cost. I understand that Continuum Software makes no assurances, whether implicit or implied, that a published module will be advertised through any media other than that through which Industrial Prose & Magic is advertised. Name (Print): _______________________________ Signature: _______________________________ Date: ________________ To submit your MUD, send in the following: 1. Your designer's notes as explained above. 2. The above non-disclosure agreement, signed and dated. 3. A ZIP file that contains the following files from your MUD directory: ATTR.* NPC.* OID.* ONAME.* OPLACE.* RACE.* RULES.* SKILLS.* TEXT.* TREASURE.* ITEM.* WEAPON.* ARMOR.* MONSTER.* WETNESS.* WEATHER.* ZONES.* Note that you should run the @charkillall command from inside your MUD before you send it in, to delete any user characters that may have been exploring your MUD. If the ZIP file is too big for one diskette, use the -& option with PKZIP to span multiple diskettes. Both 3 1/2" and 5 1/4" will be accepted. 6.3 TROUBLESHOOTING If you are having difficulties setting up Industrial Prose & Magic, make sure of the following: 1. You have SHARE installed. When you type SHARE at the DOS command line, you should see the message "Share Already Installed." If you don't, add a line to your AUTOEXEC.BAT that reads "SHARE". 2. Make sure you have enough file handles set aside in your CONFIG.SYS. On the line that says "FILES=XX", XX should be a number great enough to hold 35 handles per session. So if you're using a multi-tasker and have two windows running IP&M, you'll need at least 70 file handles. 3. If you're trying to install IP&M as a door and are having problems, try blanking out the baud rate on the modem configuration screen. 4. If you get a "Out of environment space" message when loading the MUD, add the following line to your AUTOEXEC.BAT: "SET CLIPPER=f255"; also, add the following line to your config.sys: "SHELL=C:\COMMAND.COM /E:2048 /P". If a shell line already exists, modify it to match. If your problems persist, you can call our technical support at (404) 635-0931 10am-5pm EST, or contact us 24 hours a day at our support BBS, Software Creations: (508) 368-7139.