======================================================================
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