====================================================================== The Weyrmount - FAQ Version 2.1 by Underworld Dragon (Robert Gregg), revised to include Weyrmount 2 by Monomolecular Dragon (Barry Ramirez) October 14, 1998 ====================================================================== **Section 0 - INTRODUCTION *0.1 - TABLE OF CONTENTS 0 Introduction 0.1 Table of Contents 0.2 How can I submit suggestions/changes for the FAQ? 0.3 How can I get more copies of this FAQ? 0.4 Revision History 1 MOO questions 1.1 What is a MUD/MOO/MUSH/MUCK? 1.2 What's the difference between MUDs and MOOs? 1.3 Where can I learn more about MOOs? 1.4 Where can I learn about other MOOs? 1.5 What programs can I use to access a MOO? 1.6 What is a 'progbit'? What is 'quota'? 1.7 What does mean? 2 The Weyrmount 2.1 What is the Weyrmount? 2.2 What kinds of stuff are available at the Weyrmount? 2.3 Who can participate in the Weyrmount? 2.4 How do I log in to the Weyrmount? 2.4.1 Does the Weyrmount require Telnet, or can I access via the Web? 2.4.2 Hey! What's up? My backspace key doesn't work! 2.5 How can I get a permanent character on the Weyrmount? 2.6 Who is "in charge" of the Weyrmount? 2.7 How do I get more quota? 3 Getting started 3.1 This is confusing! How can I get help? 3.2 Are there people I can talk to for help? 3.3 What are some of the basic commands, to get me started? 3.4 Is there a place for new folks to gather? 3.5 How do I use those nifty features? 3.6 How can I use the multi-channel thingy? 3.7 How do I send mail on the MOO? 3.8 Stop the MOO, I want to get off! 3.9 How can I create my own rooms and stuff? 3.9.1 Where can I find out about the kinds of objects that exist? 3.11 What is the MOO editor? How do I use the editor? 3.12 How can I create NPCs? 4 Programming 4.1 How is the MOO organized? 4.2 What is an object, anyway? 4.2.1 What is a property? 4.2.2 What is a verb? 4.2.3 What is "object oriented" programming? 4.3 How do I start programming? 4.4 Argh! How do I program verbs? 4.5 What does the MOO language look like? 4.6 I just want to see some code. Where are some examples? 4.7 Where are some tutorials I can download or read? 4.8 It's hopeless! I just can't do this! 5 Ultima Dragons 5.1 Who are the Ultima Dragons? 5.2 Where can I learn more about the Dragons? 5.3 How do I become a Dragon, so I can get on the Weyrmount? 6 Weyrmount Goodies 6.1 People are saying weird things and stuff is happening? What gives? 6.2 Okay, what spells are available for me to use? 6.3 Enough with the magic! 6.4 We have color? 9 Credits *0.2 - How can I submit suggestions/changes for the FAQ? Try emailing them to the authors, Monomolecular Dragon (kethet@access.digex.net) or Underworld Dragon (rgregg@scott.net). Or try posting them to the Ultima Dragons' newsgroup: rec.games.computer.ultima.dragons. Or best of all, drop by The Weyrmount and share them in person. :) *0.3 - How can I get more copies of this FAQ? The Weyrmount FAQ is available on the World Wide Web at: http://www.access.digex.net/~kethet/weyrfaq.html ...or from its original site on Underworld Dragon's web site at: http://www.scott.net/~rgregg/ultima/FAQ/weyrmount.faq If you are on the Weyrmount, you can access the FAQ with this command: read $faq (currently being re-implemented) The FAQ will also be posted from time to time on the Dragons' newsgroup, rec.games.computer.ultima.dragons. *0.4 - Revision History v2.1 10/14/98 Minor corrections, and fixed broken URLs where needed. v2.0b 09/26/98 With the unveiling of Weyrmount2, a redraft was needed. Generally, entries pertaining to the Sensemedia Weyrmount and customizations specific to that incarnation were either removed or amended. Some sections were removed, others were renumbered. v1.1 03/05/97 Some minor changes. v1.0 03/25/96 Updated Dragons' newsgroup to rgcud. 'Bout time for 1.0. v0.7 11/04/95 Added MUSH definition. Changed 1.7, 2.4.1, 2.6. v0.6 09/13/95 Added 3.12. Changed 3.7 to explain @mail on. v0.5 09/03/95 Corrected table of contents errors, added 1.7. v0.4 09/02/95 Faq was corified; added more info on features. Added 3.10.1, 3.11. Changed 3.3. v0.3 08/23/95 Fixed some typos, filled in some holes, added 2.1.1. v0.2 08/22/95 Made revisions to Weyrmount addresses and @rgo/@quit commands, after talking with WizTraveller. v0.1 08/21/95 First version. ====================================================================== **Section 1 - MOO QUESTIONS *1.1 - What is a MUD/MOO/MUSH/MUCK? Those are funny acronyms for different types of what has traditionally been known as a MUD: a Multi-User Domain (or Dungeon, depending on who you ask). It's an text-based environment where many users can gather on the Internet and chat, exchange ideas, even program a bit, and generally have fun interacting. MOO stands for MUD, Object-Oriented, and is very much like the general MUD, except that it has a different (some say more efficient :) programming system. Generally MUDs have tended to be more combat-oriented, like RPGs, while MOOs were started by the Xerox Palo-Alto Research Center (PARC), and tend to be more social environments. But there's no hard and fast rule. MUSH seems to stand for Multi-User Shared Hallucination. MUCK is apparently just a gooey name that somebody made up for another variation on MUDs. I've never participated much in either, but they tend to be more theme-oriented or open-ended versions of MUDs and MOOs. *1.2 - What's the difference between MUDs and MOOs? There tend to be two differences, one technical and one social. The technical difference is the object programming system of MOOs, which was developed at Xerox PARC to help simplify the development of multi-user interaction environments. The social difference, as stated above, is that MOOs tend to be less combat or RPG oriented, and aimed more at socialization. But there are certainly social MUDs, and MOOs where there are combat systems, so it's a pretty fine line. *1.3 - Where can I learn more about MOOs? Well, the first MOO was Xerox's own LambdaMOO. They maintain a list of papers about MOOs and multi-user virtual environments in general on their ftp site: ftp://ftp.parc.xerox.com/pub/MOO The "Lost MOO Library" has LOTS of useful information about MOOs: http://lucien.sims.berkeley.edu/moo.html That site has the "official" MOO FAQ, several good tutorials, a quick reference guide, and yduJ's wonderful "Lore Pamphlet", explaining such esoteric MOO items as permissions, security, the scheduler, and what causes lag. There's also a page at Yahoo listing TONS of resources for MOOs, MUDs, etc: http://dir.yahoo.com/Recreation/Games/Internet_Games/MUDs__MUSHes__MOOs__etc_/ *1.4 - Where can I learn about other MOOs? Try the above link on Yahoo!. Particular MOOs of interest that I know of (possibly outdated): LambdaMOO lambda.moo.mud.org 8888 BayMOO baymoo.sfsu.edu 8888 RiverMOO river.honors.indiana.edu 8888 MOOtiny spsyc.nott.ac.uk 8888 *1.5 - What programs can I use to access a MOO? Some people recommend a program called TinyFugue. There are many versions of this available on the Internet. Look at: ftp://ftp.tcp.com/pub/mud/Clients/tinyfugue/ Others use standard telnet clients. I've used several different flavors of telnet, and all seem to work at least reasonably well. My own personal favorite is CRT, by VanDyke Technologies (www.vandyke.com). *1.6 - What is a 'progbit'? What is 'quota'? On MOOs, not everyone can program their own stuff. Almost everyone can create new objects or rooms, but only certain people can create new verbs and new KINDS of objects. Those people are called programmers, and when someone becomes a programmer, their character is 'marked' as special by the wizards by setting a certain flag (bit) in their profile. Hence the name 'progbit' - a person with a progbit is a person who can program. Almost all permanent characters on the Weyrmount have progbits by default, so you probably won't have to worry about this unless you decide to get a character at some other MOO. Although characters can create objects, they are limited in how MUCH they can create. After all, if everyone had infinite ability to create, the computer that held the MOO would soon run out of space. The amount you can create is referred to as your 'quota'. Most new characters at the Weyrmount start out with 50K of quota - about 50000 bytes of storage. Each byte of description, rooms, details, objects, verb code, etc. adds to the amount of quota you've used. You can 'recycle' or destroy your objects and create new ones, but you can never have more object stuff at one time than your quota dictates. Other MOOs may use an object-based quota system, rather than byte-based - you're limited to creating a certain number of objects, regardless of their size. *1.7 - What does mean? Here's a brief glossary of some of the more arcane terms you'll hear used about the MOO. class - Often used in object-oriented lingo, in MOO terms a class is just an object. Any object can automatically have children unless it's expressly prohibited, and so the object is a class. corify - Many of the basic objects on a MOO come from the original set of objects on LambdaMOO - the 'core' objects. These are denoted by putting a '$' in front of the object name (like $room, $player, etc). Other objects can be made part of the core too, although only by wizards. Hence: 'corifying' an object is making it part of the core, so it can be referred to by its core name. Technically, an object is corified when a property pointing pointing to the object is added to the special system object #0. On the Weyrmount, this FAQ is corified ('read $faq'). feature - a special object that adds extra commands for a player to use. Often these are fun (or spammy) verbs with extended social stuff. More often they are just annoying. But many features have useful commands, like mapping the MOO, listing verbs, etc. generic - When someone creates an object that they want others to make copies of (like a piece of furniture which everyone can create a copy of, and customize), it's often referred to as a generic object. The MOO Museum (currently being coded by Kirsha) is full of generics. Generics themselves are usually not used; they just exist for others to make children of. instance - Any particular child of a generic. morph - To change a player's description of themselves. The Weyrmount has built-in verbs for morphing between Dragon and human form. newt - Something a wizard does to annoying players which prevents them from being able to log in for a specified amount of time. progbit - Status conferring the ability to program things (cf 1.6). quota - The amount of stuff a player is allowed to create or own (cf 1.6). spam - Useless or otherwise annoying and space-consuming text or chatter. toad - When someone breaks basic rules of the MOO, or so angers a wizard as to get kicked permanently off the MOO, the wizard turns their character into a 'toad' - basically, deletes them from the system. wizard - the all-powerful in-charge guys on the MOO. Don't make 'em mad. The least they might do is change your description in an amusing, but oft- annoying way (to that of a Cinnabon). The worst they might do is remove your player object from the database and block your site from connecting. ====================================================================== ** Section 2 - THE WEYRMOUNT *2.1 - What is the Weyrmount? "The Weyrmount" is a MOO that originated in July 1995 for use by the "Ultima Dragons" Internet club, also known as "the Dragons". The Weyrmount was a "descendant" MOO from the main Sensemedia MOO, known as The Sprawl. Originally, the Weyrmount was founded by Monomolecular Dragon on The Sprawl in April 1995, as a place where the Dragons could socialize. It quickly grew out of proportion for Sprawl, and as Sensemedia was having resource problems there, the Dragons were asked if they would like their own private MOO. The populace was agreeable, and the Weyrmount was born. For most of 1996 and 97 the Weyrmount server was plagued by frequent connectivity problems of very long durations, effectively forcing most of the players to either give up and move to other MOOs outright, or seek temporary shelter elsewhere to weather the storm. In mid 1997 the machine the MOO was on fell victim to a security violation and the server was taken offline in early June. To date it has not been reconnected. Prompted by this, three Weyrmount refugees (Sorceress Dragon/Rachel Schultz, Nameless Dragon/Luigi Fabio, and Monomolecular Dragon/Barry Ramirez) decided to begin a new MOO from scratch on a different, non-Sensemedia-affiliated server. This Weyrmount 2 was intented to be a haven for other refugee Dragons from the old Weyrmount. As it was a new server, and because Sensemedia had stated that the original Weyrmount database was their property, the Weyrmounters have had to begin effectively from scratch. In spite of this, a great deal of the original MOO's functionality and populace has been recreated in an astonishingly short amount of time. The name Weyrmount, by the way, comes from the story "Core of Darkness" by Monomolecular Dragon, which tells the story of a group of Britannian Dragons who live in an extinct volcano, where they have built their weyrs (nests). Hence... "Weyrmount". If you're interested in reading the story, it can be read online at: ftp://ftp.udic.org/pub/ud/udic/coredark.txt *2.2 - What kinds of stuff are available at the Weyrmount? The original Weyrmount was like a miniature version of Britannia, the land from the Ultima computer games. As the theme of Weyrmount 2 is that of a new land discovered elsewhere in the multiverse, to which the Dragons of the old Weyrmount fled, the new land is most definitely not Britannia but still retains a very Ultima-flavored mentality. There is a functional Ultima-style magic system in place [cf. 6.1]; players can type 'Kal Ort Por' and teleport to another location within the MOO, or type 'In Zu' to fall asleep (and hence, disconnect). This notion of 'in the Ultima universe but not in Britannia' is echoed in the theme and geography documents on the MOO ('help theme' and 'help geography,' respectively). There are other special features as well; at various times we may have an (optional) combat competition system, a functional moo-wide weather system, and so forth. We will also have Scrabble and Yahtzee boards, among others, if you have a human (or Dragon) friend about to play with. One feature I'd like to note is a special class of NPCs (non-player characters) called Bots. Bots are like puppets, if you're familiar with those, in that they can walk around and say things. But a player can actually program his Bot using a simple scripting language to perform very complex sets of tasks, respond to spoken commands, have flexible schedules of activities, and have a real "personality" about it. Bots are almost like players in the level of complexity they can respond to. They help bring the Weyrmount to life, so to speak. Why am I going on about these Bots? Why, because I [Underworld - ed.] wrote them, of course. :) *2.3 - Who can participate in the Weyrmount? The primary intent of Weyrmount is to provide a virtual home for members of the Ultima Dragons. Obviously, then, the largest portion of the player base is expected to be Dragons. As it is understood, however, that there may be others in the fantasy-fandom community who might want to participate, the MOO is not as exclusionary as the old Weyrmount. Although no formal decision has been yet made as to exactly how open a MOO Weyrmount 2 will be, the general notion is that anybody who is a friend of an existing player may connect and obtain a character (within reason, of course). Ultima experience and knowledge help. The wizards would wish, however, that the overwhelming majority of players remain Dragons. *2.4 - How do I log in to the Weyrmount? Using any telnet-capable client, telnet to the following address: moo.weyrmount.org 8000 Once you're connected, a screen will appear asking you to log on. The first time you log in, you'll be a guest, not a permanent character. To connect, type: connect guest One blessing of the new Weyrmount is that the enCore database supports guest-chosen names. After you connect as a guest it will ask you what you wish to be known as during your temporary stay, and append the word 'Drake' to it. (eg, Nomadic Drake, Creamy Drake, etc... a young Dragon, get it?) Note that if you connect as a guest with the intention of @requesting a character (cf. 2.5) you cannot request the same player name as your guest name. This is because while you're connected as a guest, for all intents and purposes a character with that name exists on the MOO, and the MOO won't let two characters share the same name. To avoid this, connect as a guest with a name different in some way from the name you would pick for your permanent name. After you gain a permanent character at the 'Mount, you can log on by typing: connect *2.4.1 - Does the Weyrmount require telnet, or can I access via the Web? Unfortunately, there is no Web interface. While the old Weyrmount did indeed have a very limited method of directly browsing the MOO via web, it was decided to omit this feature in the reincarnation to conserve database size and server load. It has been reported that there are a few Java-based MUD clients available in some locations, and it is certainly possible that this may eventually be implemented in some manner, but for now, only time will tell. *2.4.2 - Hey! What's up? My backspace key doesn't work! Yes, it's true. Due to some obscure incompatibility between MOO programs and some telnet terminal emulation programs (or some such technobabble), your backspace key might be non-functional on the MOO. If you type the wrong character it's just wrong. It's terribly annoying, and hard to get around. Personally, I've found that if I telnet out from my UNIX workstation, then backspace works fine. I'm not sure if this is a property of the telnet program or of the terminal emulation my computer supports, but other folks with UNIX workstations seem to get by equally fine. If neither of these is an option for you, you'll just have to struggle through. It's annoying, but not debilitating. A basic in-moo reference to this problem, along with some suggested alternate commands, can be read by typing 'help backspace.' *2.5 - How can I get a permanent character on the Weyrmount? Once you're logged on as a guest, type this command: @request for Of course, I don't mean LITERALLY that command, but that you should put the name of the character you want between the '@request' and the 'for', and your email address after the 'for'. If you don't have access to email, you're out of luck - after an available wizard approves the character creation, the MOO sends out an email containing the character name and the password for your permanent character. Depending on the availability of a wizard to generate the character, it can arrive any time between a few moments and a few hours (but historically within a few moments, as there is invariably always at least one wizard connected). If you have no email access, you can't get the message, so you'd never know the password for your character. There's are no exceptions to this rule - it's a security thing. Once you get the password, you can log back in using your new character and password, and voila! You're on the Weyrmount. Welcome aboard! *2.6 - Who is "in charge" of the Weyrmount? Like with most MOOs and MUDs, there are certain individuals that are all-powerful, that do maintenance and generally 'run' the environment. They are called wizards, or wizzen, or wizzes, etc. The resident wizards on the Weyrmount are WizNameless, Sorceress, WizTraveller, Zephyrus, NightFox, and Monomolecular (the Archwizard). The chances that at least one of them may be connected at any given time are fairly high. Policies at the 'Mount tend to be laid back, since we're a private MOO. If you have problems, just post a note to *Wiz, and it'll generally get handled in a day or so. Given the mischevious nature of a few of our wizzen, sometimes their names on the MOO may be different from their registered names. An easy way to find out what wizards are connected (in most cases) is to type '@wizards.' Another way to merely list the wizards, connected or not, is to type 'help wizard-list.' Note that it is possible that a wizard may be busy and have set themselves 'invisible,' in which case they will not appear in either of these lists. Wizards can do that sort of thing. *2.7 - How do I get more quota? For the most part, you won't - that's why there are quota limits, to limit the size of the MOO. The Weyrmount has a capacious amount of space alloted to it, but the space is still finite (around 30MB), so we have to be judicious how player quota is allocated. Most characters currently start with 50K of quota. That's a pretty standard limit for most MOOs. Some of the Dragons that are working on specific projects have 100K, and a few have up to 150K, if they were working on particularly large projects. If you have an item/room/whatever that is 'cool' or of public interest, talk to the wizards, and they may decide to take ownership of your object once it's done - effectively returning that quota to you to use again. But if you're just building a lot of rooms without much description or interesting detail, the odds are you'll just use up your quota and be stuck. Remember to build interesting, useful things - use your quota wisely. ====================================================================== **Section 3 - GETTING STARTED *3.1 - This is confusing! How can I get help? So you've just logged on with your permanent character for the first time. Or perhaps you're just a confused guest, trying to figure out how to talk and stuff. Yes, it's confusing - but you're not the first one to be confused, and there IS help. When you log on, you'll be in the "Gate Valley", the starting point for all new characters. It is also, at least at the moment, the prime social hangout for Weyrmount players, and simply saying hello and asking for help is doubtless bound to get you some. There is also a help system BUILT INTO the MOO itself. You can access it by saying.. okay, prepare yourself, this is pretty confusing.. 'help'. In fact, use the commands 'help' and 'help help' to get started. *3.2 - Are there people I can talk to for help? [N.B. - This 'page help' system has not, as of yet, been implemented on Weyrmount 2. But it is such a good idea that it most likely will be fairly soon, so it is remaining in the FAQ.] Absolutely! There are certain Dragons that volunteer to monitor the 'help' system, and you can page them by doing the following command: page help with "Hello, I have a problem.." One of the friendly helpers should hear your request, and will try to assist you as best they can. But please, try to use the built-in help system first, as they answer lots of questions - that's why they're there, after all. If nobody from page help responds, you can use the command '@who' to see who is logged on currently, and just try to page someone at random. Your mileage may vary, see dealer for details. *3.3 - What are some of the basic commands, to get me started? Well, you can get most of these from the help system, but here goes: To talk: | say or " | "Hello | Guest says "Hello" To move: | north,n,etc. | west | Guest goes west. To emote: | : | :gets up. | Guest gets up. To page: | ' | 'uw hi | (Guest pages Underworld.) To join: | @join | @join uw | (Guest joins Underworld.) To see who's on: | @who | @who | (lists who's on) To see your inventory: | i | i | (lists what Guest is holding) To get/drop:| get/drop | get ball | Guest gets the football. | | drop ball | Guest drops the football. To look: | look | look | (Guest looks about the room.) | | look ball | (Guest looks at the football.) To exit: | @quit | @quit | (Guest disconnects.) Also, check out the LambdaMOO Beginner's Quick Reference Card: http://lucien.berkeley.edu/MOO/quick-reference.txt Other things you'll want to do as soon as you start: the first two things a new player should do are give themselves a description and set their gender. You do the former by using the command '@describe me as "You see a dragon..". You do the latter by using the command '@gender me is male/female/neuter'. If you don't do these things, people that look at you will get really confused and badger you about it in a friendly way until you do. :) A shortcut method of setting many common player options, including gender and description, was built into the database by the kind folk of HighWired enCore (the original source of the database Weyrmount 2 uses). It may be accessed merely by typing '@preferences.' *3.4 - Is there a place for new folks to gather? [Removed until we see exactly where people actually tend to gather. - Ed.] *3.5 - How do I use those nifty features? Pretty soon after logging on, you'll notice that some folks have these standard responses/actions/funny things that they can do - like turning into Tigger and bouncing on someone, sending cans of spam to tromp around their screen, and also actual useful commands for seeing what's what around the MOO. Often, those actions are gathered on special objects called 'feature objects'. Each player can add these features to him/herself, and then use those verbs. You add a feature by doing the following command: @addfeature #featurenum where '#featurenum' is the object number of the feature you want to add. You can also see what features another person has with this command: @features for [ex. '@features for Fred' lists Fred's features] This can be useful for finding out about features that you see in use by others. List their features, figure out which one they were using, and add it. Many (if not most) features have help on them, if you know their number: help #featurenum For more information on features, type 'help features'. *3.6 - How can I use the multi-channel thingy? On Weyrmount 2, there is a multi-channel broadcast message feature. Which is just a fancy way of saying there are some channels, and you can chat with whoever is listening to the channel you want to talk to. To add this ability, add object #130 as a feature ('@addfeature #130'). Use the command 'help #130' to see how to use the channels; it's fairly simple, especially if you've used chat facilities before. *3.7 - How do I send mail on the MOO? You can send mail using the @send command. You'll be prompted for the name of the person you want to send MOOmail to, and the subject of your message. They you can start typing away. You'll be using the standard MOO editor, so if it seems a bit confusing, type 'look' to see a list of the commands. When you're done, you type 'send' to send your message. Note that MOOmail is only on the MOO - you can't send from a 'real' email account to the MOO, or vice-versa. There are also many maillists maintained on the MOO. To see a list of the available maillists, use the '@unsubscribed' command. To subscribe to a maillist, use the command '@subscribe with notify'. You'll be notified anytime new mail is sent to that list, and you can use the @nn or @read or @peek commands to read it. Some particularly interesting lists for newcomers are *general (aka *DragonCry), *qooc (Quoted-Out-Of-Context - an interesting list, to say the least :), and *new-stuff, which shows some of the new things being built. Others include *programming and *topology, which respectively discuss the function and layout of the Weyrmount. One helpful command is: @mail on . This will show you an index of the messages that are available on that list. That can be useful when there are threads of messages you don't want to read, as you can just scan the message headers for things you want to see, and ignore the rest. For more help using MOOmail and maillists, type 'help mail'. For help using the MOO editor, see section 3.11. *3.8 - Stop the MOO, I want to get off! The command to leave the MOO is '@quit'. Alternately, and more theatrically, you may take advantage of the MOO's magic system [cf. 6.1] and speak aloud (that is, 'say') the words 'In Zu.' *3.9 - How can I create my own rooms and stuff? To create your own room, you'll use the '@dig' command (help @dig). Note that if you want to connect your room to an existing room, you'll probably have to get that room's owner's permission, and get them to actually physically connect exits from your room to theirs. To create objects, use the '@create' command (help @create). *3.9.1 - Where can I find out about the kinds of objects that exist? There are several basic types of objects on a MOO. The most basic are things, players, rooms, exits, notes, and containers. Each one of these represents a basic type of object that does something unique. You can find out some information about these by using the following commands: things @disp $thing or @disp #5 players @disp $player or @disp #6 rooms @disp $room or @disp #3 exits @disp $exit or @disp #7 notes @disp $note or @disp #9 containers @disp $container or @disp #8 People use these basic objects to build new objects that do what the original did, plus new things that they add. Other people can then build on THOSE objects, and so forth. That's the idea behind a MOO - that instead of just copying code around, you add onto the objects others made to create your own classes of stuff. Many times, people will create an object specifically so that others will create instances of it. This is usually known as a 'generic' object. It's often easier to look and see if somebody has already made a generic that looks like what you want to do, instead of just trying to create a new object from scratch. There will be an area on the MOO where you can find out about what sorts of things, rooms, etc. already exist - it will be called the Museum and will be host to rooms full of different kinds of generic objects that have been created by others on the MOO. Another basic way of seeing what generic objects are out there is to just type '@create' by itself, and Weyrmount will give you a menu of the most common objects. Note that quite a few of these obects are legacy enCore database objects and may or may not be present on that list forever. *3.11 - What is the MOO editor? How do I use the editor? There is a text editor built into the MOO. It's quite basic, just a simple line editor, but you'll be using it for sending mail, editing descriptions, writing verb code, etc. so you'll need to learn a little bit about how it works. Basically, you invoke the editor using the '@edit' command to edit verbs, properties, descriptions, messages and the like, and using the command '@send' to send a message. In both cases, the editor works very much alike. The editor is actually a room that you get temporarily teleported to, until you decide to save and quit (in the case of descriptions) or compile (in the case of verbs), or send (for MOOmail), and then you're returned to whereever you started from. In that room, "talking" (using the say or " commands) actually enters text into whatever it is you're editing or creating. You can 'look' to see a list of the commands in the editor. Also, 'help editors' has a little bit of help available on the kinds of commands that work in the editor. It's a bit awkward - it's no emacs or Word, to be sure - and it takes some getting used to. Some of the useful commands are: List available commands | look | look | (lists commands) List what you're editing | list | list | (lists a few lines) | | list 5-10 | (lists lines 5 to 10) | | list 1-$ | (lists everything) Move the insertion point | ins | ins 1 | (move to the top) | | ins 4 | (move above line 4) | | ins $ | (move to the bottom) Append text to a line | : | :Add this | (appends "Add this") Save text | save | save | [only for descrips] Send a message | send | send | [only for MOOmail] Compile a verb | comp | comp | [only for verbs] Quit the editor | quit | quit | (leaves the editor) Notice that the '$' character is used to refer to 'the last line', whatever that currently happens to be. Inserting at $ means you're at the end of the document; listing through $ means you're listing the end of your document, etc. There are a lot of other commands, it just takes time to get used to them. One common question is, how do I modify the text of an existing line - do I have to delete the line and readd it? There is a command called 'subst' (or 's') which allows text subsitution on an existing line, so you can substitute correct text for a typo. I've found this to be a pretty tedious way of fixing mistakes; sometimes it's just easier to go ahead and retype the line. This can get really annoying if your backspace key isn't working properly [cf. 2.4.2]. *3.12 - How can I create NPCs? There's a special kind of object on the MOO called a Bot. Bots are used at Weyrmount to create the NPCs you see wandering around. If you want to make your own: @create #400 named Bots have also been corified as $bot, for ease of remembering, so one could have typed @create $bot named just as easily. Programming a Bot to do what you want is pretty easy - certainly easier than general MOO programming. There's also quite a bit of help material built into bots. You can access it by saying: explain index on ====================================================================== **4 - PROGRAMMING (Note: Much of the material in this chapter is stolen directly from the tutorial "The Cow Ate My Brain, or A Novice's Guide To MOO Programming", by Loyd Blankenship. Thanks to Loyd for an excellent tutorial. Whenever I use the acronym 'TCAMB', you'll know where that section came from. :) *4.1 - How is the MOO organized? (from TCAMB) Object Numbers *Everything* on the MOO is an object. Players are objects, rooms are objects, exits and entrances are objects, editors are objects, and objects are, well, objects. Each object has an "object number". For instance, the generic thing might be #5. When you're in the MOO, you can substitute an object number for an object's name at any point. If I'm object #433, for instance, you could type "give ball to Mentor" or you could type "give ball to #433". If the ball is #731, you could type "give #731 to #433". The MOO doesn't care. Object numbers are different from MOO to MOO -- just because I'm object #433 on Metaverse doesn't mean I'm object #433 on Opal, or on Lambda. There are only a few basic object types defined in the MOO core. Everything else starts out as a copy -- a "child" -- of these basic objects. For example, there is a basic class called "$thing" (a generic thing). If I wanted to create a Generic Ball, I might make it a child of $thing (by typing `@create $thing named "Generic Ball"' -- more on this later). Then I could create children of the Generic Ball, such as a basketball (by typing `@create "Generic Ball" named "basketball"), or a baseball, or a football, or even a Frisbee! (Think about it -- you do many of the same things with a Frisbee you do with a ball: throw, catch, drop, get, etc.). *4.2 - What is an object, anyway? Pretty much everything you see on the MOO - players, rooms, exits, things, notes, containers - they're all objects. Even the maillists you read, and the features and utilities you use are objects. An object is just a 'thing' of some sort, out in the world. Objects have different characteristics, called 'properties'. For example, if you had a ball, you could give it a property named 'color', and assign the value 'red' to that property. Objects also have actions they can take in response to the world around them, or that can be invoked by players. Those actions are called 'verbs'. Programmers create the properties and verbs on an object, and that controls what the object can do. *4.2.1 - What is a property? (from TCAMB) What is a Property? A property is a value that is stored on an object. There are certain properties that are built into everything -- the description, for example. Every time you type `look ', the server runs the verb `look_self' on the object in question, and shows you the description of the object you looked at. We might also have a property on our Generic Ball called color, that you could set when you create children of the Generic Ball. If we created a football (@create Generic Ball named "football"), we could then set the color using the `@property' command (@property football.color is "brown"). Notice that when you're talking about properties, you use the form .property (as opposed to :verb). It's easy to forget which one wants a period and which one wants a colon. Use `@show object' to get a list of all the properties on an object. A property does not have to be a text string. They can also be lists or numbers. For example, a clubhouse might have a property called "members" as follows: clubhouse.members = ("Bob", "Carol", "Ted", "Alice") Or maybe it's just a number -- clubhouse.num_members = 4. *4.2.2 - What is a verb? (from TCAMB) What is a Verb? A verb is, simply, a program that is attached to an object. For example, $thing (our generic thing mentioned above) starts out with a few predefined verbs -- put, take, get, and drop. So you could type "get $thing" and you'd have the generic thing (type `inventory' (abbreviatable to 'i') to see a list of things you're carrying). When you're programming verbs, you'll almost always refer to them in the form :. So in the case of $thing (object #5), the `put' verb would be `#5:put'. If we had a ball that we could throw, the verb would be called `ball:throw'. There are two ways to look at the MOO program that is attached to a verb. The first is using the @dump command, described above. The second is using the `@list :verb' command. The command @list starts by checking the object for the verb; if it isn't there, it checks the object's parent. If it isn't there, it checks the parent object's parent. And so on, until it reaches the top. So if you type "@dump ball", you aren't going to see the program for the `put' verb -- it's defined on the generic thing, not the ball. But if you type `@list ball:put', the server will tell you something like "There is no `put' defined on ball, but it's defined on one of ball's ancestors." Then it will show you the `put' program. This is our first example of how *inheritance* works. More later . . . *4.2.3 - What is "object oriented" programming? (from TCAMB) What is Object Oriented Programming (OOP)? Before you can truly understand MOO programming, you have to be clear on the concept of OOP, especially the idea of objects and inheritance.... Inheritance We'll come back to creating new verbs and new properties later. Now we're to the most important part of OOP -- inheritance. Simply put, any verb or property on the parent is automatically available on all its children. Any child may have its own version of the verb instead, but if a verb is not specifically defined on a child, the child uses the verb as it is defined on the parent. Let's look at some examples. Our generic $thing has some basic thing-like verbs on it: put, take, get, drop, etc. When we create our Generic Ball, we'll be adding some new verbs: throw, catch and bounce. But we don't have to worry about writing our own put, take, get and drop for the Generic Ball -- it *inherited* them from $thing. When we make a child of the Generic Ball (say, a basketball), we might add the verbs dribble and shoot. When we did a `@dump basketball', it would only show these two verbs. But we could still catch it and throw it, because it inherited the catch and throw verbs from the Generic Ball. And we could still get and drop the basketball, because it inherited those verbs from the Generic Ball, who in turn inherited them from $thing. It works the same way with properties. If we made the description of Generic Ball say "This is an ugly green ball", then when we typed `look football', we'd see "This is an ugly green ball." You would have to change the description of the football to something more appropriate, thereby writing over the initial value of the inherited property. *4.3 - How do I start programming? *4.4 - Argh! How do I start programming verbs? Use the command @verb to add a verb. Try 'help verbs' and 'help @verb' to start. In reality, this is a pretty lame answer. But the question itself is kind of like asking, "How do I speak Chinese?" There's no quick, easy answer, because programming is a complex thing. The best help would be either to list some code on existing objects (ask around, or cf 4.6), or read some of the tutorials mentioned in this FAQ (cf 4.7). Also, try 'help programming' for some basic help. *4.5 - What does the MOO language look like? MOO language looks a lot like UNIX shell programming, for those of you with experience with that. It also looks a bit like C, although it may be more reminiscent of Visual Basic or some of the other more recent object-oriented languages. It's basically a structured language with static inheritance between objects. The inheritance scheme is single; multiple inheritance isn't implemented in the LambdaMOO standard. To see what it looks like for yourself, try 'help language'. *4.6 - I just want to see some code. Where are some examples? The best way to get sample code is just to start listing code. Use the '@verbs' command (help @verbs) to list the verbs on, say, the room you're in. Then use the '@list' command to list some of the code. Better yet, list the verbs on some of the FEATURES you've added - those tend to be very simple, "I'll say something to you" kinds of verbs. They're mostly very short. Pick a feature programmed by someone you know is not a super-genius-programmer-type, and the odds are the code will be reasonably simple. List it, read it, study it, think about it and ask questions. You'll soon be on your way to programming your first verbs. *4.7 - Where are some tutorials I can download or read? The main LambdaMOO programmer's guide is available on the Web at: ftp://parcftp.xerox.com/pub/MOO/ProgrammersManual.texinfo_toc.html It is also available as one large text file: ftp://parcftp.xerox.com/pub/MOO/ProgrammersManual.info There are several other tutorials available in the Library on Sprawl, including the infamous yduJ's Wind-up Duck Tutorial. Here's a list of SOME of the tutorials that are available via the Internet: Canton Becker's MOO Tutorial: http://lucien.sims.berkeley.edu/MOO/Moo.Tutorial.Txt The Cow Ate My Brain: http://lucien.sims.berkeley.edu/MOO/mootutor1.txt yduJ's Wind-up Duck Tutorial: http://lucien.sims.berkeley.edu/MOO/ducktutorial.txt yduJ's MOO Lore Pamphlet: http://lucien.sims.berkeley.edu/MOO/yduJ.lore.txt *4.8 - It's hopeless! I just can't do this! Well, don't despair. Programming isn't for everyone. If you find yourself really banging your head against the wall, try something else. Ask different folks for some code that does something similar to what you want. Try to find a generic object in the MOO museum that already does what you want. Post to *programming and ask questions. Or just build rooms and stuff, and chat and have fun. The main point of the MOO is to have fun, so if it stops being fun, don't do it! ====================================================================== ** Section 5 - ULTIMA DRAGONS *5.1 - Who are the Ultima Dragons? The Ultima Dragons are an Internet club for fans of the Ultima computer game series by Origin Systems, Inc. The only requirement for membership is that you have at some time played an Ultima game on any platform. They're a neat bunch of folks who enjoy computers and role-playing games, and ESPECIALLY Ultimas! *5.2 - Where can I learn more about the Dragons? Try checking out the Ultima Dragons Home Page on the World Wide Web: http://www.udic.org/ Also, if it's available to you, read the Ultima Dragons' Usenet newsgroup: rec.games.computer.ultima.dragons *5.3 - How do I become a Dragon, so I can get on the Weyrmount? Well, that's a good question, actually. Right now, there's an automated join form on the World Wide Web, at: http://www.udic.org/join.html There are over 12,000 members currently, with more joining every day, so if a greeter doesn't get back to you right away, don't panic - we're mostly just highschool and college students, volunteering to help out as we can. They'll get back to you in a day or two to verify your application. ====================================================================== ** Section 6 - Weyrmount Goodies * 6.1 - People are saying weird things and stuff is happening? What gives? In an effort to give more of an Ultima flavor to Weyrmount, WizTraveller has coded an alternate set of commands for common or useful actions. Players of Ultima know that most of the games feature a magic system based around 26 (or so) runes, corresponding to the letters of the alphabet. The same runes also have corresponding Words of Power, components of magical cantrips the player's characters would recite to cast spells in the games. It happened that the notion of a player on Weyrmount being able to cast some of the same spells they might be familiar with from the games and have them have actual effect similar to what they might expect was too interesting to pass up. Therefore, Weyrmount has a magic system. All of the 'spells' that can be cast have mundane versions, so none of them add any new functionality, per se, to the MOO - just add a bit of theatrical flair to commonplace activities. As an example, and rather amusing for it to happen right now: As I write this section of the FAQ, I have been idling (connected but not doing anything) on the MOO. One of my friends has been trying to get my attention. I look at my client screen and see "A powerful bolt of energy lances out from Dawnfire and strikes you in the chest. * * * WAKE UP! * * *" which I know is the result of the An Zu (negate sleep) spell that WizTraveller coded. Of course, she could have just poked at me and said things trying to get my attention, but... all she -did- was to say aloud "In Zu." The MOO is smart enough to filter out the spells from spoken phrases and do them. Some spells give information about objects or the room one is in. Some (like An Zu) are mostly for effect. A few ask for the name of a target - one such is the "Mark" spell, Kal Por Ylem. It's counterpart is "Recall," Kal Ort Por. Mark and Recall form most of an alternate method of teleporting around the MOO, in addition to the conventional @go and @join commands. Essentially, Mark remembers your current location in a list of rooms, and Recall allows you to type what you saved the location as, and it will return you there. To wit: I'm in a room on the MOO, I want to record it for later return: >"Kal Por Ylem! [Type what you would like this location to be known as, or `@abort' to abort the command.] >forest road You say, "Kal Por Ylem!" The whole room starts to sparkle with magical light. Suddenly, the lights come together and solidify into a runestone in your hand. I now have a location named 'forest road' saved. Let's say that later on I'm elsewhere, and want to return: >"Kal Ort Por [Type where you would like to go, or `@abort' to abort the command.] >forest road You say, "Kal Ort Por" A magical blue glow gathers around you as you fades from sight and finally vanish entirely. Forest Road The trees thin out here, from packed together and enclosing to the east, to loose and more spacious to the west. The road itself continues onward, curving around a large tree to the west. The path also leads back east to the glade. Obvious exits: [East] to Glade, [West] to Lake Shore There are many spells available - information can be found on the moo by typing 'help magic.' Most spells, anybody can use. A couple of them only the wizards have access to. There are also rumors of undocumented spells... * 6.2 - Okay, what spells are available for me to use? (from 'help magic,' by WizTraveller, accurate as of 9/26/98) Spell | Words | Effect --------------------------------------------------------------------------- Awaken | AN ZU | Attempt to awaken a sleeping player. Blink | IN POR | Teleport at random to a nearby room. Create Robot | IN ORT XEN | Create a Generic Bot ready for programming. Detect Magic | WIS ORT | Temporarily know when others are using magic. Divination | IN WIS | Display assorted useful information. Gate Travel | VAS REL POR | Summon a blue moongate that others can use. Help | KAL LOR | Return instantly to Gate Valley. Kill | IN CORP | Forcibly disconnect a player (wizards only). Mark | KAL POR YLEM | Remember a location for later use by Recall. Name Change | ORT WIS YLEM | Change your name to something else. Pickpocket | POR YLEM | Attempt to steal an object from a player. Recall | KAL ORT POR | Teleport to almost any location on the MOO. Replicate | IN QUAS YLEM | Create a duplicate of an object. Reveal | WIS QUAS | Perform a security check of your area. Sleep | IN ZU | Disconnect yourself from the MOO. Summon | KAL VAS XEN | Attempt to teleport another player in. Transcribe | REL ORT WIS | Copy mail message(s) into a note. Vanish | AN YLEM | Recycle an object. Wizard Eye | POR ORT WIS | See a map of your surroundings. --------------------------------------------------------------------------- * 6.3 - Enough with the magic! Had enough of spells flying and sizzling around you? Want a moment's respite from people casting things on you, waking you up every fifteen seconds or trying to summon you? One spell is bound to help you: An Ort. Like its name implies, this is the famed Negate Magic spell -- spells from a chosen player will fail to have any effect on you for a short period of time, maybe long enough for you to convince them that yes, you really are awake and paying attention. If you're tired of magic altogether, have no fear. If you type '@gag $magic,' the magic system will in most cases simply no longer apply to you. Note that a wizard could still cast In Corp and disconnect you, however, or Armageddon (did I say Armageddon? hee hee hee) and shut down the moo... gagging $magic, obviously, won't stop either of these. But otherwise, it will make your life on the MOO a lot quieter. ====================================================================== ** Section 9 - CREDITS I, Underworld Dragon, being of sound mind and wings, have composed this FAQ for the mutual benefit of all, and because I was buggered bored. However, the Weyrmount itself was originally founded by Monomolecular Dragon. Further, many of the ideas built there were taken from the Ultima series of computer games, by Origin Systems, Inc. (whose walked-on-ground we worship, and who we beg not to sue us :). Thanks to many, many imaginative and talented Dragons for making the Weyrmount such a fun place to be! And many thanks to the talented folks at Origin for making Britannia (and the Weyrmount) such a fun place to visit. -- Underworld Dragon I, Monomolecular Dragon, being of distinctly unsound mind and parodying Underworld unabashedly, have updated this FAQ for the benefit of Dragons making the migration to Weyrmount 2. Although I am the Archwizard of the new MOO, I will be the first to admit that none of this would have been possible without my friends Rachel 'Jen' Schultz (Sorceress Dragon), who turned me on to MOO administration in the first place and remains my sole focus of MOOcode worship; and Luigi Fabio (Nameless Dragon), who was fortunate enough to have the server space, the connection, and the moolah to register the domain name and keep the site running. In terms of capability, -they- are the true Archwizards. I also must thank the coterie of other wizards, both migrant from the old Weyrmount and the new, for seemingly not having noticed yet that I really can't code to save my life , and therefore for willing to put forth the effort to help keep Weyrmount 2 a functional, fun place to be. Of course, none of this would have even been a reality were it not for the members of the Ultima Dragons - Internet Chapter who proved the naysayers wrong, that it was a bad thing to have given up hope on the old MOO so rapidly, and who have turned what started as an idle fancy between three Weyrmount refugees over dinner, into a reality. Thank you all. -- Monomolecular Dragon