Harper's Tale MOO User's Manual

This text covers character creation, getting started, basic commands, building in MOO, sending mail, using the editors, and making puppets.

Not to be confused with the LambdaMOO programmer's manual.

Thanks to Ted Wallace (Falryx) for the MUSE manual, from which I stole a few things here.

Items in bold type are things you are meant to type in.

Information contained within brackets [] is optional.
Information conained within arrows <> is required.

At times something may appear like:
SYNTAX: help < command | topic >
The '|' symbol means 'or'. In other words - you should type 'help ' or 'help '.

Most of this manual applies to any MOO, however it's written for the Harper's Tale audience, and the getting started stuff especially is HT-specific.

Section One contains general getting-started information Contents of Section One

  1. Basics
  2. Communication - say/emote, page
  3. Channels
  4. Getting Started - @gender, @desc, @wearing
  5. Reading mail
  6. @audit to see what you own
  7. Setting your home
  8. Setting exit messages
  9. Digging new rooms, and using @dig
  10. Recycling
  11. the MOO editors - sending mail, @notediting descs
  12. Puppets
  13. Locking
MOO stands for MUD, Object-Oriented. If you're not familiar with the term MUD, it stands for Multi-User Dungeon. MOOs are used for a variety of purposes; the networking and gopher support of MOO make it useful for a conferencing tool. However, its primary use is as a multi-user text- based gaming environment.

This manual attempts to lead you through getting started on the MOO, moving around and doing things in the MOO environment, and getting you started with programming in the MOO language. It is targeted at the MUSH user who is unfamiliar with MOO.

Basic MOO

MOO is a virtual world that consists of several types of objects. Generally these include other players (like you) who login to the MOO; Rooms, which are the place were most people exist and move through during their time on the MOO; Exits are merely doors from one room to another, and finally Things that can be picked up and carried. Each object has a unique number in the database, often referred to as the dbref# or database reference number. This number is how the MOO stores data on the object internally. For any object in the MOO, you can always refer to it by its dbref# no matter where it is located, and get any information on it that you are entitled to.

Characters are the virtual reality extension of you, the player. It is the characters of the MOO who are able to manipulate the environment and interact with one another. MOO supports a multi-player/character setting where many computer users can connect simultaneously to the server and partake of the virtual reality together

Rooms are 'places' within the virtual reality, relating to actual physical locations. Rooms are very similar to the ones within your home, with four walls and a ceiling, but can also be used to represent the 'outdoors'. In this sense 'rooms' are a very broad category of objects meaning any place on the MOO which relates to an actual 'physical' location where your character can go.

Exits are objects which link rooms to one another. In your home, your exits are doors, stairways, or perhaps even windows. Similarly, in a virtual reality you can have exits which link one room to another, and this exits can represent everything from a large hole, to a door, to a catapult which launches you through the sky to land at your new location.

Lastly there are 'normal' objects. These are things that range from empty soda cans, to cars, to a set of keys, or anything you can think of. Objects can generally be manipulated to make them unique, or do things, or just look nice. [There will be more on objects, rooms, and exits later.]

That's the basic idea of how the MOO environment is structured. Let's log on and see what we can see.

The first time you connect to the MOO you'll be in the arrival room or birthplace. Here's what it will look like:

 Birthplace (#11)
   You awaken in a featureless white room, the entry room to the world of Pern.
  This room is the last vestige of OOCness before you step through and choose 
  your destiny.   You will probably want to read 'help getting started' before
  you enter the world of Pern.  If you are uncertain how to begin, type 'help 
  topics', or just 'help' if you are unfamiliar with MOO.
     Before you enter the world of Pern, you must set your gender - see 'help
  @gender' - and your description. (help @describe).  Then you will choose a
  birthplace -  either a hold or a craft, though if you choose a craft you will
  still need to talk to the craftmaster.
    Choose whichever exit you like, or you can 'Skip' if you want to look 
  around before choosing a home.

  You see Lag Meter, Bulletin Board, Agifier, Strasbourg Clock, Suggestion Box,
  and Twitterbug here.
  Obvious exits:
  MOO School       Holds      Crafts      Weyrs      Skip
First off you will want to communicate with other players, since they might talk to you immediately after you log in.


Some basics on communication: if you don't already know how, use 'say ' to speak, and ':' to emote or pose something to the room you're in.

To communicate privately with someone not in the same room, you will want to use page.

  page =        This was added to HT for convenience.
  page  with    This is the native MOO way to page.
Type 'who' to see who's logged in. To set your @doing message that's displayed in the 'who', you can do:

  @doing me is "Trying to figure out what to do!"
Then next time you do a 'who' you'll see your @doing displayed.

There's another form of who you can use called '@who'; this will show you where everyone is. On HT, there are abbreviations in front of the who-locations for most players:

               HarpH = Harper Hall
               HealH = Healer Hall
               IstaW = Ista Weyr
               IstaH = Ista Hold
               DolpH = DolphinCraft Hall


Harper's Tale has a channel communication system, which is used for OOC communication. You may notice it immediately as looking something like this:

   [public] Delron: He's a very nice person, Petrie !
   [public] Kitro raises an eyebrow.
   [public] Kitro: What is wrong with being a German?
   [public] Petrie isn't convinced "Naahhh... I don't believ before I see :)"
To communicate on the public channel, you can type 'pub '. Sometimes the channel is very spammy (meaning people are saying so much that it may scroll off of your screen before you can read it), so if you want to leave the channel, just type 'pub off'.

For more info on channels, read 'help channels'. This channel system is identical to that on MicroMUSE.

Getting Started

Now, there are a few commands you may have learned to do at this point from your MUSH days, something like '@sex me=', '@desc me= whatever', and '@lock me=me'. On MOO, you'll use '@gender ' to set your gender, '@describe me as "A big fellow."' to set your description, and no @lock is required as MOO will not allow one player to pick up another.

  @gender male
  @desc me as "A scruffy fellow, looking a little dazed."
You can also set a special wearing message that's separate from your description:
  @wearing me is "He's wearing an old tunic and patched trousers."
Now you might want to look around at the world. The 'look' verb is mostly the same as on MUSH; if you type
  look clock
You'll see the clock's description (and in this case, a nifty display of various times around the world, since the clock has been programmed to do this.)

You can also look at yourself to see what you look like now. 'look me'

One thing you might also want to do is set your age. There is an age machine in the birthplace that will help you calculate what hatchsecs you can set to make yourself a certain age.

  look age
  Really Useful Age Machine (#919)
  A strange machine, with a number of knobs and dials, and a clear glass plate
  which seems to have writing on it.  It is used to help people work out their
  To find out how to use the machine, do `about machine'
  The glass display reads:
  Age: 2 months and 9 days
  hatchsecs: 751005600
Obviously someone has just set the age of a baby here. :) You can type `about machine' to find out how to change the age on the machine, and once you have reached the age you want to be, simply type '@hatchsecs ' and you'll be set. Now anyone who looks at you will see your age in addition to your description.

Now you're probably ready to step out into the world; if you know what you want, you can choose your hold or craft right away.

Let's say you've decided to move to Southern-Boll Hold, Tropical Paradise on Pern. :)

  You can choose any of the following holds:

     Southern Boll Hold
     Fort Hold
      Fort Sea Hold

  Type 'help ' for information about a specific hold, or 
  'help holds' for general info on HT holds.
All you have to type is 'boll' and you're set. You'll be whisked away to Southern Boll, and Lord Zie will probably be sending you mail in a day or so about your room at the hold.

As you wander around the MOO, you can see which way to go by reading the "obvious exits" line. In order to go through an exit, you can either type the name of the exit (if it is one word), or usually you can type the first letter of each word in the exit name. So if you see an exit called "Great Door", you can probably type 'gd' to go through it.

To quit the moo, you must type '@quit'.

Reading Mail

Now, let's say it's a few days later and you log on again. If you have mail, the MOO will tell you so:
  Last connected Thu Nov  4 08:14:58 1993 EST from sugar.NeoSoft.com
  There's a new edition of the newspaper.  Type 'news' to see it.
  You have new mail (1 message).  Type 'help mail' for info on reading it.
  Daran wakes up.
Ok, so how do you see your mail? Well, first off you can type '@mail' to get a list of your current mail messages. Only the last 15 messages are displayed, so you will want to be sure to delete your mail after you've read it so that you don't accumulate tons of mail in your mailbox.
4 messages:
   1:  Sep  9 02:07   Kira (#2)              @programmer Daran (#1319)
   2:  Sep  9 19:57   Zie (#203)             Re: New Resident
   3:  Oct  4 23:07   Syrelia (#793)         Craft Things
>>>4:  Oct 26 13:40   Search-request (#145)   Search Interview
   5:+ Nov  4 08:20   Kira (#2)              blee
Any NEW mail is indicated by the + sign after the number of the message. So here, message 5 is new. To read it, you can do '@read new'. To read another message in the list, just '@read '. So, Zie's sent us some mail about our room; let's read that one.
@read 2
Message 2 of 5:
Date:     Thu Sep  9 19:57:07 1993 EDT
From:     Zie (#203)
To:       Daran (#1319)
Subject:  Re: New Resident

Your room is ready for you to move into.  You can move into it at any time.  It
is located on the 3rd floor west hallway of the hold.
-Lord Zie.
Ah, a new room at last. Well, first off, let's go find your room! The long and drawn-out way to do it is to walk through the hold, but if you've already toured the hold to your heart's content, you might just want to cheat and @move there. How do you find out your room#? Or for that matter, how do you find out what all you own?

On MUSH, this command would be called @search me. On MOO, you can do '@audit me'. There is no charge on MOO for any such commands.

  @audit me
  Objects owned by Daran (from #0 to #2185):

   #1319 Daran                          [Candidate's Barracks]
   #1335 Daran's Apartment             
   #1336 Daran's Apartment              *West Hallway->Daran's Apartment
   #1337 Hallway                        Daran's Apartment->*West Hallway
   #1388 Weaver Knot                    [Daran]
   #2075 same old clothes               [Daran]
   #2147 Daran's Cot                    [Candidate's Barracks]

  Total: 7 objects.
This display shows the object#'s, their names, and on the right side are the location of the objects, or for exits there's a display of where the exit goes from->to. ROOMS will have a blank space in the right hand column; this is because rooms exist nowhere and don't have a location, generally.

A related command is @quota.

  You can create 5 new objects without recycling any that you already own.
Anyway, we've decided that we're going to move to our new room, and from the @audit we can see that the room# is #1335. You can use @Move to move yourself to any room that you own.
  @move me to #1335
  Daran's Apartment
  You see nothing special.
  Obvious exits:
@Move is similar to MUSH's @tel or @teleport. On HT MOO, it will only be useful to you when moving to your own rooms. Most HT rooms are set !free_entry (this is like being !JUMP_OK) and cannot be @move'd to except by the owner of the room.

Setting your home

Now, the first thing you want to do in your new room is make it your home. Type `@sethome' to do this.
  Daran's Apartment is your new home.
Now, wherever you are in the MOO, if you type 'home', you'll return here.

Ok, well now you have your own room, but it's rather bare. You decide to make it more interesting. First off you can @desc the room itself. Just do '@desc here as "description"' to set the room desc.

  @desc here as "The place is a real mess."
  Description set.
There! Most splendid; the Lord Holder would be proud. Ah... but there's more things that must be set, for it to be a proper room. The exits have both descs and messages as well.
  look Hallway
  You see nothing special.
That will never do; you can desc exits the same way you desc everything else.
  @desc Hallway as "A beat-up wooden door that's been slammed one too many
  Description set.

Setting exit messages

Now, you'll want to set messages on the exits, just as a matter of style and good building practice. To see what messages are on the exit, you type `@messages '.
  @messages Hallway
The MOO will display the following:
  @nogo out isn't set.
  @onogo out isn't set.
  @arrive out isn't set.
  @oarrive out isn't set.
  @oleave out isn't set.
  @leave out isn't set.
  @weather_prefix out is "Outside,"
These are all messages that are displayed when a player uses the exit, save for the weather_prefix message, which will display the weather on the other side of the exit when you look at it. Let's look at the equivalent MUSH->MOO names for these exit messages:
    In MUSH     In MOO        Message seen by who?
    -------     ------        ------------------------------
    @fail       @nogo         the player if they can't go through
    @ofail      @onogo        others in the room if player can't go through
    @succ       @leave        the player before they go through
    @osucc      @oleave       others in the start room 
    @drop       @arrive       the player after they go through
    @odrop      @oarrive      others in the destination room
Now you'll want to set some messages. Message-setting is the same MOO-wide, regardless of whether its for an exit or a room or a player or anything. `@ is '
    @nogo Hallway is "You can't seem to get out the door!"
    @onogo Hallway is "can't seem to get out the door!"
    @arrive out is "You slam the door behind you."
    @oarrive out is "runs out of Daran's room and slams the door behind %p."
    @oleave out is "runs out of the room."
    @leave out is "You run out of the room."
Now you're set - at least for this door. You'll also want to set the messages for the door leading INTO your room as well, and for any new exits you create.

Now for another look around.

  Daran's Apartment
  The place is a real mess.
  Obvious exits:

Digging new rooms

Well, let's say you'd like to dig another room off of this one, maybe a bedroom. The @dig syntax for MOO is a little different than for MUSH:
  @dig exit,alias,alias|return-exit,alias,alias to "New Room Name"
The above example creates a new room and the exits to and from it. There are a few important things you must remember when using @dig: You CANNOT put spaces in the exit-specs, and any exit-names with more than one word names must be enclosed in "quotes".

So, for example:

   @dig "Messy Bedroom",mb,bedroom,bed,br|out,ou,o to "Daran's Bedroom"
is the proper way to do it. Exit-specs are separated by commas, but don't put spaces in them. If you type in something like
   @dig "Messy Bedroom", mb|out, ou, o to New room
It will NOT work because there are spaces between the exit names/alaises.

Ok, now we have a new room. It's important to remember to use many aliases for the exits, because native MOO doesn't understand 2-word exit names, so you must give a one-word alias, and preferably several aliases. Also it's good building practice to use 'out' as an alias for any exit that leads the player back outside from an inner room. You may also want to use a cardinal-point alias (north/south/east/west etc) for exits, so that people can use the '+compass' verb to get a feel for where they are.

@dig can be used in other ways as well. You can @dig a floating room for just yourself:

  @dig "My own Private Hell"
  My own private hell (#2192) created.
This creates a new room that's "floating" or isn't connected to anywhere. The only way you can get there is to type '@move me to #2192'.

Let's say you want to dig an exit to this room now, so other folks can join you in your own hell.

  @dig "secret door",sd,door,doo,secret to #2192
  Exit from Daran's Apartment (#1335) to My own private hell (#2192) via {"secret door", "sd", "door", "doo", "secret"} created with id #2193.
Now you have a new exit leading to your own hell.


Well that was all fine and well, but now you want to destroy your own hell room and the exit leading to it. The MOO equivalent of @destroy is @recycle.
  @recycle #2192
  Scheduling My own private hell (#2192) for recycling in 5 minutes.
  @recycle #2193
  Scheduling secret door (#2193) for recycling in 5 minutes.
If you @recycle something accidentally, you should do '@cancel-recycle ' to save it. If you dont do this within 5 minutes, the object will be irrevocably destroyed.

Timed recycling is not native to MOO; normal MOO recycling is done immediately, and there's no room for errors. You might wish to remember this if you're playing on another MOO.

The MOO Editors

Now you may be at the point where you wish to send mail to someone, or make a more elaborate description for yourself. MOO has several builtin editors that are used for this.

Sending Mail

Let's try sending mail first. Now we're so happy that Lord Zie has given us a room, we'll spam him back with a note of thanks.

To launch the mail editor, you just type '@send '

  @send zie
  [Type a line of input or `@abort' to abort the command.]
  Thanks for the room.
  Mail Room

  Do a 'look' to get the list of commands, or 'help' for assistance.

  Composing a letter to Zie (#203) entitled "Thanks for the room."
Now you're in a special room that's an editor. Anything you 'say' in this room gets added to the text of your letter. So:
  say Hey lord Zie, thanks for the cool room!
  Line 1 added.
Now to see what you've typed, you can do 'list'.
__1_ Hey lord Zie, thanks for the cool room!
If this is all you want to write, just type 'send' and the mail is sent. There are numerous other editor commands you can use; anything you 'emote' is appended to the end of the current line. (You can see the current line by the location of the ^^^^ arrows.) Anything else you say will be addd after the insertion point or current line.
  say How can I get a job here?
  Line 2 added.
  say When's the next gather?  Can I make a booth for it?
  Line 3 added.
  1: Hey lord Zie, thanks for the cool room!
  2: How can I get a job here?
__3_ When's the next gather?  Can I make a booth for it?
Let's say you want to change 'cool' on line 1 to something more impressive. To do this, you want to move your insertion point to the line _after_ the one you want to edit. Use 'ins ' to move the insertion point.
  ins 2
__1_ Hey lord Zie, thanks for the cool room!
^^2^ How can I get a job here?
Now you have to use the substitution command to change 'cool' to something else. The syntax is 's///'.
  s/cool/most excellent/
__1_ Hey lord Zie, thanks for the most excellent room!
Now you've made all your changes and are happy with the note, so you just type 'send' to mail it.
  Mail actually sent to Zie (#203)
You're then returned to the room you started from.

The @notedit (note editor) is almost exactly the same. You can do '@notedit me.description' to edit your desc, and use 'say' to add more lines, and 's///' to fix typos. The only difference will be you have to type 'save' to save your new desc, instead of the 'send' from the mail room.


MOO does not provide any standard form of puppet code, so the following is HT-specific. It is in some ways applicable to DF MOO as well although the method for setting things puppet is different.
  @create "Daran's Dog",dog
  You now have Daran's Dog (aka dog) with object number #2192 and parent 
Generic Thing II (#115).
  @set dog.puppet to 1
  Property #2192.puppet set to 1.
  drop dog
  You drop Daran's Dog.
  @addfl dog=#2192
  Code 'dog' installed for Daran's Dog (#2192).
  cddog :woofs.
  Daran's Dog woofs.
  cddog out
  Daran's Dog> West Hallway
  Daran's Dog> This is the west wing of the third floor.  The third floor 
  houses the apartments of all the general residents of Southern Boll Hold.  
  The hallway continues east.  
  Daran's Dog> Obvious exits:
  Daran's Dog> East      Apartments
  Daran's Dog runs out of the room.
  Daran's Dog> You slam the door behind you.
Etc. The key components of making a puppet are @set thing.puppet to 1, and @addfl =thing#. See 'help puppets' and 'help CU' for info on the control units.

Puppets have more limited abilities than players. Puppets cannot @dig rooms or send mail, or page players. They can move around, 'look', pick up objects, and will replay back to you everything they see as long as a) they are not in the same room with you, and b) someone else doesn't pick them up. It's generally a good idea to @lock your puppet to you so that others can't pick them up.

Locking is a little different on MOO:

  @Lock  with 
So to lock your puppet so nobody can pick him up:
  @lock #2192 with me
Or similarly to lock doors so only you can go through:
  @lock out with me
There is considerable help under 'help locking' and 'help keys'.

End of Section 1.