Building on Ark of Fools MUX



Ok, so you've had enough of your homeless wandering around the MUX. Now you'd like a place to call your own, or perhaps you have an idea for something bigger, that you would like to contribute to the MUX. First check with the staffers that your building idea is acceptable.

Then you should familiarize yourself with the MUX commands used for building, taking advantage of the built-in 'help' command. The most important commands you should know about are:

@dig, @open, @link, @succ, @osucc, @odrop, @chown, @search, examine, look, @quota, @desc, @edit
For more information, use the 'help' command while you are logged on to the MUX. For example, type 'help @dig'.

Back to the top

Example: Building a 2-room apartment

Suppose your project is approved, and you want to build a small shop in Greystone Village. What now? If you're lucky, a staffer will @dig a room and change its ownership over to you. If not... Type '+ooc' and 'bn' to go into the building nexus in the OOC area.

Now, since you can only build if you already own a room or an exit, you need to look for an exit that is set 'chown_ok'. This means that you will be able to change its ownership over to yourself, using the @chown command. How do you know if an exit is chown_ok? Look for an exit that is just a number. For example, you see an exit named 4. Try typing:

ex 4

'ex' is short for 'examine'. So when you examine the exit, it should say, under FLAGS, that it is 'CHOWN_OK'. If it doesn't, some other player probably already took it, and didn't rename it yet. Keep looking until you find one that *is* CHOWN_OK. Suppose exit 4 is still free. Then type:

@chown 4

You should get a message saying "Owner changed." If you get "Permission denied.", this is probably because you are out of quota (See 'help @quota') or are out of the OOC MUX money (needed for certain commands). Page or @mail a staffer for help. If you successfully changed the owner to yourself, type this:

@dig Foo's Apartment

This should create a room named "Foo's Apartment" (supposing your name is Foo.) You should get a message saying something like "Foo's Apartment created with room number 12345". If, later, you forget what the database number of your room is, you can type @search. That should list everything you own, sorted into rooms, exits, and objects. But for now, you want to link your exit to your apartment room. To do this, type:

@link 4=#12345

Now you should rename your exit into something more descriptive than "4". Suppose you want it to be called "Foo's Apartment", but that's too long to type all the time, so you want to alias it to "FA". Aliases in exit names are separated by semicolons (';'). So you should type:

@name 4=Foo's Apartment <FA>;FA;foo's apartment

You should get a message saying "Name set." First, make a note of the database number of the room you are currently in! Otherwise you might get stuck in your new room, which has no exit out yet. You should be in the Building Nexus, room #201. Now try out your exit...type 'FA' to go into your new room. It isn't described yet. First let's make an exit leading back to the previous room (in this case, the building nexus.) Type:

@open Out <O>;o;out=#201

This creates an exit named "Out <O>" with aliases "o" and "out", and links it to room #201, the Building Nexus. You could have done the same thing in two steps rather than one, by typing '@open Out <O>;o;out', then typing '@link out=#201', with the same end result. Now try out your new exit: Type 'o'. You should be back in the Building Nexus.

Now you need to describe your exit. Think for a moment what someone standing outside sees when they look at the entrance to your room. If you were building a house, for example, you should probably describe what the house looks like from the outside. In this case, suppose you have a doorway in a courtyard that's already described. You might type in a description as follows:

@desc FA=A solid wooden door set inside a grimy stone archway. A small brass gargoyle holds a knocker in its mouth in the middle of the door. Beneath the gargoyle, a nameplate reads: Foo.

Remember, FA is the alias of your exit. The entire description should be entered as a single line (don't hit return until you're done.) If you want tabs or line breaks in the description, you need to use special control sequences. If you make a mistake, you can retype your desc correctly, or use the @edit command. (See 'help @edit'.)

Now you need to set the messages that are triggered when people go through your exit. To set the message that the player who goes through your exit sees, use @success. For example,

@succ FA=You open the door and enter Foo's apartment.

Then set the message that people in the room you are leaving see, using @osuccess. For example,

@osucc FA=opens the door and enters Foo's apartment.

Finally, set the message that people in the room you are entering see, using @odrop. For example,

@odrop FA=comes in through the front door.

Now you need to describe the apartment itself. Go through your exit again. (Type 'FA'.) What do people see when they look at your room? How do they feel? What does it smell like? What do people hear? How is it furnished? What shape is it? How clean is it? Are there windows? Are there other rooms, closets, etc. that exist ICly, but which you don't actually need to build OOCly? These are all things to consider in describing your room. For example,

@desc here=The living room of Foo's apartment is a small room, but it seems even smaller due to the clutter. It looks like Foo has collected cheap, ugly furniture from a dozen different yard sales and randomly strewn them about the room. There are too many lamps for a room this size (about eight of them, ranging from ceiling fixtures to small desk lamps), but half of them have no oil in them anyway. A tiny rectangular window on the southern wall lets in a bright patch of sunlight.

Again, the whole description should be entered without any line breaks. Use the special control sequences to add tabs and line breaks. You can use @edit to fix mistakes, or simply re-enter the whole thing.

Now that your room is described, you need to work on the exit out of the room. You use the same commands that you used for the entrance into the room. For example, you might type:

@desc out=A sturdy wooden door leading to the outside.
@succ out=You head out the front door.
@osuccc out=heads out the front door.
@odrop out=arrives from Foo's Apartment.

All right, you've finished your first room. On to the second. Suppose you want to add a bedroom to your apartment. In some ways, this is simpler, since this time you have a room you already own to start from. You can dig a new room, open an exit in, an exit out, and link it all, in a single command. (See 'help @dig'.) From your apartment room, type:

@dig Foo's Bedroom=Bedroom <BR>;br;bedroom,Out <O>;o;out

This creates a room called "Foo's Bedroom", with an entrance from the living room called "Bedroom <BR>", which has the alias "BR", and an exit from the bedroom back to the living room called "Out <O>" with the alias "o". Note that the exit names and aliases are not case-sensitive. Also, by convention, the "O" or "Out" exit should always lead back towards the street. (So if you are inside some building, you should be able to leave if you keep typing "o".)

You could accomplish the same thing by using the @dig, @open, and @link commands separately, just as you did for the first room. Either way, you now need to describe the new exits and room, and set the exit messages on the new exits. For example, you might type things in this way:

@desc br=A red stripy blanket separates the living room from the bedroom.
@succ br=You push the blanket aside and go into the bedroom.
@osucc br=pushes the blanket aside and goes into the bedroom.
@odrop br=comes in from the living room.

@desc here=A tiny bedroom, mostly filled up with the queen-size bed and a wooden wardrobe. (etc.)

@desc out=A red stripy blanket separates the bedroom from the living room.
@succ out=You push the blanket aside and go into the living room.
@osucc out=pushes the blanket aside and goes into the living room.
@odrop out=comes in from the bedroom.

There! You've basically finished building your apartment. For refinements and further details, see the other parts of this document. Your next step is to get a staff member to link it into the IC grid for you. Try to contact a building staffer first, preferably by @mail. (Type '+staff/all' to see a list of staff members.)

Back to the top

Home: how to make a room 'home'

In order to use the 'home' command (see 'help home') to teleport yourself to your room, go to your room and type:

@link me=here

while you are in it. Suppose you want to allow other people to use your room as their 'home', too. Then you need to set the ABODE flag on your room. (See 'help abode'). While you are in your room, type:

@set here=abode

To see who is linked to your room, type '@entrances'. This also shows what exits lead into your room. To remove the ABODE flag, type

@set here=!abode

That's it. Remember, though, that the 'home' command is an OOC convenience. Even though it may look like your character magically vanished home, in the IC MUX universe, your character travelled home the ordinary way, unless of course your character really can teleport...

Back to the top

Formatting: how to put in white space (tabs, carriage returns, etc.)

Adding in some indentation and line breaks makes a long description much easier to read. (You can use the same formatting tricks to make long poses easier to read, too, if you want.) The help file you want to look at is 'help substitutions'.

Thus, you should write '%t' where ever you want a tab, and '%r' whereever you want a line break. Use two '%r's in a row for a blank line. ('%r%r'). There are also functions that will center text, repeat text (useful for making lines across the page), etc. See 'help functions'. For example, you might set the following description for your room:

@desc here=%rThis is a room. Blah blah blah blah blah....%r%r [repeat(-,79)]%r[center(OOC: 'places' and +views set,79)]%r[repeat(-,79)]

Then, when people looked, they would see:

Foo's Apartment

This is a room. Blah blah blah blah blah....

                         OOC: 'places' and +views set

If you wish to add color, please type "help ansi", "help ansi()", "help ansi codes", and "help ansi substitution" on the MUX.

Back to the top

+views: adding more details to your room

It's best not to let your descriptions get too long. If it scrolls off the screen of the other player, they may get annoyed, or just not read it all. But if you have lots of additional details that you want to tell people about, you can put them in '+views'. This means that the details do not show up when people 'look' at room, but only when they use a special command, '+view'. (Note that you can also set +views on players, objects, and exits, as well as rooms.) +views are also useful for OOC information about your room, for example, if adult RP may take place in it, it is a Damned location, or has some curse on it, etc., information beyond what every character naturally knows about the place.

See '+help +view' for help on using the +view command. Here is an example of setting a +view:

&view-painting here=Teh painting on the wall across from the door depicts a night-time desert landscape. There is something you haven't seen in a long time: a pale gray moon in a clear sky studded with stars, and tall, proud cacti.

Now, suppose you notice you mispelled 'the' as 'teh' in your +view. You can use @edit to fix it:

@edit here/view-painting=Teh,The

It's usual to add a note in the description of the room itself that you have +views set. Then to see what +views are there, type '+view here'. To see this specific +view, type '+view here/painting'.

Back to the top

places/tables: adding places to sit down

First read through '+help places', '+help places-config', and '+help places-options'. Still confused? It's not as bad as it looks.

Suppose you want three different places in your room: a wooden table, a bench by the window, and a loft. Type:

setup 3 places
Now, type "ex here". You can see that a bunch of new attributes have been created on your room. The ones you'll need to edit are the ones called "PLACE1", "PLACE2", and "PLACE3". Type "places", and you see that it gives back a random, boring configuration. You need to change the names from "Table 1", "Table 2", etc.

update 1/name=a wooden table
update 2/name=bench by the window
update 3/name=the loft
Use the "update" command to fix up the rest of the details, too. For example:
update 1/maxplaces=6
update 1/curplaces=4
update 1/describe=An old wooden table, about 5'x7', with wobbly legs
update 3/describe=A wooden ladder on the east wall leads up to a loft
update 3/join=You climb up the ladder to
update 3/ojoin=climbs up the ladder to
update 3/depart=You climb down the ladder from
update 3/odepart=climbs down the ladder from
update 3/prefix=In the loft
And so on. In this case, you should probably add a "+view" for the loft. You should also edit the room description to note that "places" are set up.

Back to the top

Locks: how to restrict access to your room

The simplest thing to do is to go outside your room. Suppose the entrance into your room is called "ABC". Then just type "@lock ABC=me". When you want to unlock it, type "@unlock ABC".

Suppose you want to lock it to you and players B and C. Then, standing outside your room, type "@lock ABC=me&*B&*C". To unlock it, type "@unlock ABC". You can also use the database reference number for the exit ABC instead of the name (and then be able to use the command anywhere.)

For more complicated locks, please read through the help files and experiment with it until you understand how it works. ("help @lock", "help @lock locks", "help @lock keys".)

Back to the top

Exit flags: TRANSPARENT and AUDIBLE exits

If you set the "transparant" flag on an exit, when you look at that exit, you also see the room beyond it, just as if you were standing in that room. If you set the "audible" flag on an exit, then everything that happens in the room the exit leads FROM will be transmitted to the room the exit leads TO. For example,
@set ABC=transparent --- sets the flag
@set ABC=!transparent --- clears the flag
Back to the top
Copyright © September 17, 2000 by Celeste Chang --- Revised --- April 2, 2007
Back to Ark of Fools MUX page.
Back to MUX code page.