AlaMOO User's Guide
Introduction

Creating Objects and Rooms

EnCore makes it easy for you to create your own objects and rooms using the Xpress Object Editor. Any object or room can be created using text commands (@dig or @create), but EnCore simplifies the creation and editing of objects considerably. Since this guide is specifically geared for EnCore MOOs, it will not go into the specifics about creating using text commands; however, I refer you to the help on these commands inside the MOO or to the excellent help from Connections MOO. When you click on the Object button on the button bar, you see a menu of rooms and object you can create. This guide will cover the creation of Objects first, and then discuss the creation of Rooms.

The Creating Objects portion of the guide will go over using the object editor, creating a new object, and editing an object. If you want help on specific help on how to use specific objects, see the working with objects section of the guide.

The Creating Rooms portion of the guide will go over how to make rooms, how to change the parent of a room, and how to get help with using rooms.


Using the Object Editor

To create objects, you need to open the Object Editor. To do this, click on the objects button on the button bar.

This will open a separate window called the object editor on top of your MOO session window.

To create a new object, click on the create object button.

To work with an object you already own, type its number into the box and click on the view button. The screen will refresh and you will see options for the object you want to work with.

To get a list of objects that you already own, click on the list objects button. The screen will refresh and you will see a list of all your objects.


Creating a new object

When you click on the create object button, the screen refreshes and a list of various objects you could create is displayed in the left hand column of the object editor.

If you wanted to make a recorder, for example, you would click on the Generic Recorder and Player link. The MOO will then take you through a series of screens to customize your object.

The first screen asks you to type in a name for the object that you want to create. You come up with your own name.

After you have typed in a name for your object, click on the create button to create your new object.

The next screen displays your new object. The icon on top will show what kind of object it is. For example, the object in this screen is a recorder, so there is a tape icon displayed. The screen also shows who owns the object and where it is located on the MOO.

If you do not want to change anything about the object, you can close the object editor. If you want to change or customize the object's description and properties now, click on the edit object button. You can edit an object at any time by returning to the object editor, selecting the object you want to edit, and clicking on the edit object button.

Dropping an Object--placing it where you want it

When you make an object (except for rooms) its default location is your character. You are "carrying" the object. Perhaps you want an object to be in your pocket (so to speak) so that you can pull it out for use wherever you might be in the MOO; however, most times you will want to place the object in a specific location.

In order to place an object, you will need to "drop" it. Navigate to where you want the object to be, and then type:
drop <object>
Type 'look' or click the LOOK button to see if the new object shows up in its new location. To lock the object in that location so someone can't walk off with it, type lock <object> with here .(For more about this, see the working with objects part of the guide.)


Editing an object

When you click on the edit object button, you are presented with various options that you can change, including the object's description and a URL for a picture, and other options that the object might have.

The general options for objects are all the same.

Different objects then have different kinds of options depending on what they do. For example, a web projector has a slides option. This is where the object stores a list of the URLs that it will project. You can access the other options for an object by scrolling down the options list.

When you are done editing the options on your object, make sure that you have saved the changes by clicking on the appropriate button(s), and then close the object editor window.

Getting graphical

In order to display pictures and icons along with the object or room, you must have the picture saved on a web server somewhere and know the whole web address (URL) for it. You can then cut and paste or type this URL into the URL box (to display a picture) or into the icon box (to display a new icon) and set the size at which this graphic will display.

A graphic-link placed in the URL box will display that graphic in the viewing area of the MOO whenever anyone "looks" or clicks on the link to the object or room.

A graphic placed in the Icon box will cusomize the icon for the object that will in the You See: portion of the room description where the object lives. By specifying a unique graphical icon for the object, you can avoid the generic object icon that is given to you by default.

You may also be interested in creating a hypertext object that will display in the You See: portion of the room rather than as a link to another room in the Links: section. Basically, this is a "note" that when opened displays a web page. See How to Create a Web Note.


Creating rooms

Rooms are objects, just like everything else in the MOO. However, they are a special kind of object because they form part of the geography of the MOO via connections to other rooms. There are also different kinds of rooms which have different kinds of features. The Generic Room has few special features. The Generic Web Page offers a room that you can code as an HTML document. However, the Generic Classroom, Generic Moderated Room, and a room not on the list Wilson's All-in-One Room offer many specialized features.

This part of the guide will go over how to make rooms, how to change the parent of a room, and how to get help with using rooms.


How to make rooms

To make a room, you first open the object editor by clicking on the objects button on the button bar.

You then click on the create object button.

 

To make a room, you click on the category of the room that you want to create. If you are unsure as to what kind of room you wish to create, click on the Generic Room link.

The MOO will then display the following screen:

The first option on the screen asks you to give your room a name.

The other options allow you to connect your room with other rooms that you own.

NOTE: The first time you create a room, the MOO creates it in "limbo"--that is, it is not connected yet to any other room in the MOO. Contact a wizard in your MOO to connect you to the rest of the MOO.

Click on the create button when you are finished to create your room. The following screen will then appear:

To edit the room's description, click on the edit object button. This will take you into the editing screen. You can edit the a room just like any other object. (Click here for more help with editing an object.) As with creating and editing objects, you can add graphics to your room (see Getting Graphical above).

If you do not want to edit an object but want to go to your new room, click on the go to room button.


Changing the parent of a room or object

Sometimes you create an object and want to transform it into another object with other capabilities. For example, you create a Generic Room and then decide you want it to be a web page room, or you create a note and then decide you want it to have web page capabilities. In essence, you want to copy or clone your object into another object.

MOO objects operate on a principle of what is called "inheritance." That means that as you create "children" from "parent" objects (often called generic objects), these "children" objects take on the properties and verbs of the "parent" object. For example, if you create a Recorder called "MyRecorder", your recorder is really a child of the parent Generic Recorder, with a different object number but with all the powers and capabilities of the parent object.

As described in How to Create a Web Note, you may decide that you want a note to show up as an HTML file in the viewing area. A Generic Note does not have these webpage features, so you can can @chparent your Note object to a $webpage. Now your Note object has the features of a $webpage object, but has lost the features of a Note (e.g. you can't 'write <"text"> on <note>').

Another example of when you might use the @chparent command might be when you wish to import a customized object into your room. For example, someone in the MOO might have created a Fireplace object that allows you to light a fire and roast marshmellows in it. You could create a Generic Thing and then @chparent that new object into a Fireplace. In this case, you should use the object numbers to change the parent. So if the new Generic Thing you created called Hearth has the object number #456, and the Fireplace you wish to change your object to has the object number #250, you would use this command:

@chparent #456 to #250 or @chparent Hearth to #250

Your Hearth now has all the features that the other object called Fireplace has, so now you can roast marshmellows in your own room over your own fire. Before swiping someone elses object like this, though, it is courteous to ask the original owners permission to copy their object.


Help with "Keys"-- How to Encrypt an Object for "specialized" or "locked" use.

This MOO supports a simple but powerful notation for specifying locks on objects, encryption on notes, and other applications.  The idea is to describe a constraint that must be satisfied concerning what some object must be or contain in order to use some other object.

The constraint is given in the form of a logical expression, made up of object numbers connected with the operators 'and', 'or', and 'not' (written '&&', '||', and '!', for compatibility with the MOO programming language).  When writing such expressions, though, one usually does not use object numbers directly, but rather gives their names, as with most MOO commands.

&& = and
|| = or
! = not

These logical expressions (called 'key expressions') are always evaluated in the context of some particular 'candidate' object, to see if that object meets the constraint.  To do so, we consider the candidate object, along with every object it contains (and the ones those objects contain, and so on), to be 'true' and all other objects to be 'false'. To see what an object contains, type inventory <object> (or to see what you are carrying simply type inventory). You can add an object to your inventory by picking it up with get or take.

As an example, suppose the player Munchkin wanted to lock the exit leading to his home so that only he and the holder of his magic wand could use it.  Further, suppose that Munchkin was object #999 and the wand was #1001.  Munchkin would use the '@lock' command to lock the exit with the following key expression:

        @lock <exit#> with me || magic wand

and the system would understand this to mean

        #999 || #1001

That is, players could only use the exit if they were (or were carrying) either #999 or #1001.

To encrypt a note or letter so that it could only be read by Munchkin or someone carrying his book, his bell, and his candle, Munchkin would use the 'encrypt' command with the key expression

                        encrypt <note> with me || (bell && book && candle)

If using the object names does not seem to be working, you can try using their object numbers.  Also, if you do not include yourself in the key expression, you will not be able to read the letter or use the exit (or whatever).

Finally, to keep players from taking a large gold coffin through a particularly narrow exit, Munchkin would use this key expression:

               ! coffin

That is, the expression would be false for any object that was or was carrying the coffin.

There is one other kind of clause that can appear in a key expression:

               ? <object>

This is evaluated by testing whether the given object is unlocked for the candidate object; if so, this clause is true, and otherwise, it is false.  This allows you to have several locks all sharing some single other one; when the other one is changed, all of the locks change their behavior simultaneously.

 


Getting help on using rooms

Below you will find help texts on using the different kinds of rooms. You can also find help by using the help files within the MOO.

To get help on using rooms, you can click on the light bulb icon that appears in the viewing area when you are looking at a room. You can also type help here in the command window and see the help for the room you are in displayed in the talk area. This help will give you a list of commands and features for the room and how to use them.You can also examine the room you are in by typing @examine here into the command window. This will give you more information about a room. You can also open up the help browser by clicking on the help button in the button bar and doing a search for more help.

Generic Classroom A guide for setting up and using a classroom for teaching.
Generic Moderated Room A guide for setting up and using a moderated room.
Generic Webpage Room A guide for creating and formatting a webpage room

Copyright (c) 2002 Erin Karper and The EnCore Open Source Documenation Project.
RETURN TO INDEX