Building on a MUCK Part I

To build on a muck is to make the muck what it is. A collection of rooms with text descriptions and actions (Known as exits and such). Here I will give you the basic examples and go to some advanced options as we make our way to more advanced building.

First we need to get you introduced to a few commands and popular building programs that are on most mucks. These are, EDITROOM, @open, and @dig.


First is @dig

This command is what produces the room/building/whatever you're going to call it. It is used in this syntax: @dig <room name>. So lets say we want to build a house, we would just have to type this: ( @dig Living Room ). This would make a room called Living Room #111 (Providing this was the 111th object made). The #number after the name Living Room, is known as the DBREF number. It is the database number of the object Living Room. You need to keep this number on hand as you are building, for you need it when doing your linking and exits.

*NOTE* From this point on when I talk about the DBREF number, it will be in this context: #dbref.

What you should have done so far, is have created a object/room named Living Room.

@dig Living Room (Press Return)

Living Room created with room number 111. (This is what will show after you have pressed return)

Remember the #dbref, for here it is 111 for this example. You will need to know this later, for it is what you will link your other rooms and exits too. Ok, we need to make another object/room for us to link/exit too. So lets make a kitchen for the house, just as before use @dig to make the room. Type: @dig Kitchen (Then press return and make a note of the #dbref)

@dig Kitchen

Kitchen created with room number 112.

Ok, we need to make an exit so that we may walk into the kitchen. To do this we'll use the @open command. This one needs a bit of detail in the explanation, for there is a need for understanding how not to confuse the mucks commands with exits you create. The correct syntax is: @open West(W);W=#dbref.

The first part @open is the command itself. The second part of it is West(W), this is what the players on the muck is going to see. It tells them to go West press W and then return. Then there is the ; that separates the description from the key stroke assignment W. Then the =#dbref will link the keystroke action W to the #dbref of the room/object you want to go to. In this case we need a way to get into our Kitchen from the living room and back. Here is what you'll need to enter, shown below.

@open Kitchen(KN);KN=#112

(Note that I used KN instead of just K, this keeps the confusion down and the possibility of being mixed up with an actual muck command)

Now that opened an exit to the Kitchen, but most likely you can't see the exit. Type look and then return in your newly created Living Room, see! just like I said, you couldn't see it huh? Don't panic, for you haven't set the room exits to automatically become visible. Lets do this while we're here. This we'll be making use of the program called editroom, which is a menu driven room editing program. So, how you ask? Just type: editroom and press return. You should see this next.

Room Hammer V1.6 (C) 1994 by Triggur
(with extra minters to Flinters)
------------------------------------

NUMBER : 111
1. NAME : 'Living Room'
2. MPI DESC:
3. Room is NOT dark.
4. Throwing is allowed.
5. Linking is NOT allowed.
6. Pets are allowed.

7. Exits are automatically listed.

8. Room can NOT change ownership.
9. Room's parent room is Room Zero(#0).
10. This room is NOT publically sweepable.
11. Others can NOT set this room as their homes.
12. Edit this room's exits.
13. Create a new room.
14. Teleport to edit one of your other rooms.

Enter '1' through '14', or 'Q' to QUIT.

*Note the RED highlighted option on 7.*

You press 7 and then return, then Q to exit the room editor. Now type look and then return, see! There it is, you should be seeing 'Kitchen(KN). Now test it, type KN and then press return. You should now be standing in a room named Kitchen. You wont see nothing yet for you haven't described the room yet, but we'll get into that later. You can also type 'editroom' and then press 7 then return, and then Q to quit the room editor here. Now when we create our exit back to the Living Room, it will be shown, easy huh? Pay no mind to the other functions in the editroom program at this point, we'll deal with them as we need to. I don't want to skip around and confuse you.

Now, you have to be standing in the room you're going to create and exit for to another. With that, if you are still in the Kitchen (You should be, unless you found an invisible exit out of there). From the Kitchen type the next line as it appears below.

@open Living Room(LR);LR=#111

You can now type look and then press return, you should see your exit as Living Room(LR). Test it by typing LR and then press return. See! This was easier than you probably thought it was going to be. I must make an important note about all of this, to be a good builder on a muck, you need to make sure all of your links make sense. In other words, draw out on paper your layout of what you want to build. Then as you build them on the muck, write the #dbref numbers on the drawing so as to match what you have done on the muck. This will work as a visual map of building on the muck, so in the case of getting confused you have a reference to look at and compare your work. It would really be embarrassing to have your friends over and when they try to explore your place on the muck, then end up going in a loop or circle due to a mis-linked room.

I can't make too much emphasis on planning, and being clear about what you want to build before you build it. It has to really make sense if you don't want to confuse everyone, including yourself. Myself, I draw out my plans then build accordingly. Don't rush in and go crazy, just take your time and do it right the first time. For backup purposes I do suggest that you copy all of your room descriptions in a document with their #dbref numbers with them, just in case you ever need them for recovery or moving to a different muck.

If you have noticed that in the @open command, you are not limited to just North, South, East, and West. You can use anything for a direction, we used KN for the Kitchen, and LR for the Living Room. I do recommend that you make them just like we did here, with letters from the actual room for which they lead to. That is part of making sense out of your building, making it player friendly. Now we have a couple of rooms, which is quite enough for use to concentrate on the other functions in the editroom program. I think we'll go over a few of the functions so that you can see what great uses this program can make of itself.

I will be using color coding for all the functions, just as I did for the previous example. I feel this will help in the explanation of each one of the options. We will skip options 12 - 14, for I want to spend a little more time on option 12 and 13. As for 14, it rarely works. I have yet to see it work on any muck that I have been on, and 12 is a whole program to itself.

Room Hammer V1.6 (C) 1994 by Triggur
(with extra minters to Flinters)
------------------------------------

NUMBER : 111
1. NAME : 'Living Room'

2. MPI DESC:

3. Room is NOT dark.

4. Throwing is allowed.

5. Linking is NOT allowed.

6. Pets are allowed.

7. Exits are automatically listed.

8. Room can NOT change ownership.

9. Room's parent room is Room Zero(#0)
.
10. This room is NOT publically sweepable.

11. Others can NOT set this room as their homes.

12. Edit this room's exits.
13. Create a new room.
14. Teleport to edit one of your other rooms.

Enter '1' through '14', or 'Q' to QUIT.

1 - NAME - Lets you set the name of the room, when you select this option you'll be prompted on the screen to either enter a NEW NAME or press '.' to abort out of it.

2 - MPI DESC: - Is where you set the rooms/objects description at, it will take you in to an editor that has a lot of functionality to it. I'm going to do a more detailed explanation on this one in just a bit. For we still need to set the descriptions on the two rooms we have made.

3 - Room is NOT dark - You can set the room to be dark (Where no one can see anything in the room), or you can leave it as it is on the default NOT dark settings. The will make it so every object or person in the room is visible. To change this setting is just to type 3 and press return.

4 - Throwing is allowed - Makes it where you can throw objects in a room or not. To set it, just type 4 and press return.

5 - Linking is NOT allowed - Will make it so anyone can make a exit/link to your room. If you don't want anyone just to be able to link to you, I would leave this option as it is set. Again, type 5 and press return and it will change the setting.

6 - Pets are allowed - On most mucks you will see others with what is call pets/zombies, these are like puppet characters that can interact with others and are controlled by the owner. You can choose to make it ok or not ok for pets/zombies to be welcomed in a particular room. Just type 6 and press return to make the change.

7 - We have already covered this function earlier.

8 - Room can NOT change ownership - This is important to leave set as it is, unless you are building it for someone else's use. If someone else takes ownership of the room, then you can NOT make changes to it until they give you back ownership. Again, type 8 and press return, and the changes will take affect.

9 - Room's parent room is ? - This is where you set the parent room for your room at. Parent rooms I will try to explain later, but a good example is an environment room. If you know the #dbref of the environment room, then you can set it for there. Environment rooms are often ones that allow you the use of programs like, noise, door locks, and other little odds and ends. Speak to one of the Wizards or Help Staff on your particular MUCK, for they should be able to at least get you the info on at least the owner of said room. If not tell you where it is exactly.

10 - This room is NOT publically sweepable - Sweeping of sleeping characters is a good way to clear out a lot of players who for what ever reason, disconnected and fell asleep in your room. Making it public sweepable, sets it so anyone can type 'sweep' and clear out the room. As it is set now, only you can sweep the sleepers away. Just type 10 and press return to change it.

11 - Others can NOT set this room as their homes - Pretty much the same as sweep, but this one allows or doesn't allow for others to set your room as their home. Home is where you go when you type home, gohome. Ordinary for this to work, you have to @link me=here, this makes what ever room you're in, your home. The catch is, that it has to be set so that you CAN make it your home, or you have to be the owner of the room. Just like most of the settings, just type 11 and press return to change the settings here.

Now that you have a fair understanding of the simpler settings, I'm going to show you option 12. This option lets you put as much detail in the exits as you do in the room itself. It allows for you to describe the exits, set the messages displayed to the room when others use the exit and so on. Shall we like um.... Get started? Lets go!

12 - Edit this rooms Exits - I'm going to show you in detail each function. For this is really a hole program just like editplayer. 12 calls up what is known as the actionedit program. So with that here is what the exit editor looks like.... Type 12 and press return....

Action Hammer V1.1 (C) 1994 by Triggur
(with extra minters for Flinters)
--------------------------------------
# dbnum name(s)
------------------------------------------------------------

1. 111 Living Room(LR);LR
2. 112 Kitchen(KN);KN
4. Create a new action.

Enter option number to modify, or 'Q' to QUIT.

The first thing it shows you is a list of actions/exits to choose from. You will pick what ever number you need to edit, in this case 1, or 2, is the choices here. Lets edit the 1, the Living Room. Type 1 and press return, also if you don't need to edit them, just type Q to exit the editor.

Enter option number to modify, or 'Q' to QUIT.

NUMBER : 111
1. NAMES : Living Room.(LR);LR
2. PROP DESC: ''
3. Action is NOT invisible.
4. Broadcasting is NOT enabled.
5. Exit is NOT locked.
6. When used, user sees nothing.
7. When used, others see nothing.
8. When locked, user sees nothing.
9. When locked, others see nothing.
10. When done, others see nothing.
11. Action is linked to room 'Front Door' (#99).
12. Delete this action.
13. Return to list of actions.

Enter '1' through '13', or 'Q' to QUIT.

Now you are in the main editor for your exits, see how the options are listed as it was in the editroom program? This will make it easy to understand and work with, for now there is a since of similarity from before.

1 - NAMES : - Just like in editroom this changes the name. BUT! It uses the same naming as the @open command. You have to follow the Name(NM);NM format for it to work.

2 - PROP DESC: - I will cover this separately, for it works just like the one in editroom.

3 - Action is NOT invisible - Makes it so that others in a room or on the outside of the room, can either see the entrance or exit action as you step through the exit itself.

4 - Broadcasting is NOT enabled - What this setting does is make it so that anything someone says or poses in the room is visible to others in different rooms. It would be kind of like not having any separation in the rooms, except they couldn't see what you're saying or posing. To set this, just type 4 and press return

5 - Exit is NOT locked - This will set an exit/entrance either LOCKED or NOT LOCKED. If you lock it, no one can get in. To set this one, just type 5 and press return.

6 - When used, user sees nothing - You can use this to set what the person going through the exit sees as they use it. Like. 'You walk slowly through the open door.'. Type 6 then press return, you're prompted to put in what you would like for it to say, then press return.

7 - When used, what others see nothing. - Same as the one you set for the user, except this is what others see. So instead of YOU walk through..... It would be '%n just walked through the open door quietly.' *NOTE* %n = Users name, this is the code that will produce the characters name in the action.*

8 and 9 - Are exactly the same, except it deals with the use of a locked door. You would have 8 for the user, and 9 for what others see when the user tries to use the locked door.

10 - When done, others see nothing - The is what everyone else will see once the action is completed. I could be the door closing or locking behind the other user. Just like in 6, 7, 8 and

9, type the option number (in this case 10), and press return. You'll be prompted for what you want it to say, enter in your text, and press return. This will drop you back out to the editors main menu.

11 - Action is linked to room 'Front Door' (#99) - This shows where the Action is linked to, in this case I made it the front door. When you do it, it will be linked to what ever room you made your exit/action from. Like the one from the Kitchen to the Living Room, that would show the action linked in the Kitchen to the room 'Living Room (#111)'. You may also change this by inserting the #dbref of the room you want it linked to. Type 11 and press return, enter the information and press return again, you're now done with that part.

12 - Delete this action - This does just what it says it will do, it will let you choose the action to delete from the list. You will be asked to confirm the deletion, so make sure that you have the right one, and that this is what you want to do before you press return. Again, type 12 and press return to access this option.

13 - Return to list of actions - Takes you back to the list you first saw after typing 12 and pressing return in the editroom program.

Ok! OK! I know, you are waiting for the help I have been talking about on the option 2 of both the editroom, and actionedit/exit editor. Well there is a good reason for my waiting this far into it to tell you about it. Not only does the option 2 work the same in the editroom and exit editor, but it is also identical to the one in editplayer. They are the very same editor, except one does exits, one does rooms, and the other does your characters. Now granted, there are a few people who still use the old fashioned @desc <object>=<description>. Well that works only for simple descriptions, like the short one small paragraph ones. Lets say there is a lot of info. Due to the limitations of the text on mucks per paragraph, you may need to split it up into at least two paragraphs. Well this editor is the best one for this, as well it is the easiest one for quickly accessing and formatting your text. As you will see, I'm going to go into a great bit of detail on this, for there are options on the editor that far too many don't even know about. This is by far one of the most valuable tools the muck has to offer. Well enough with the yapping about it, lets go and do a few descriptions shall we?

First off, just like all the other options in the editors, you enter the editor (Since we are doing rooms, lets stick with editroom), and select option 2 and press enter. Once you do this, you're going to be asked this question here

Would you like to convert this description to MPI (This only works well for SIMPLE descriptions, not complex @$desc ones)? (YES/no)

Here you will answer YES, for room descriptions don't need to be complicated. Matter of fact, the shorter the room description the better in most cases. Really depends on how much detail you put into your descriptions. You should never sacrifice good writing to hack and cut descriptions. But do keep in mind, you don't want to kill the reader with like say, a 8 paragraph description of just one room. At the most, I try to keep it within at most two paragraphs. Now once you type yes, and press return, you'll see this next set of text.

< Entering editor. Type '.h' on a line by itself for help. >
< '.end' will exit the editor. '.abort' aborts the edit. >
< Poses and says will pose and say as usual. To start a >=
< line with : or " just preceed it with a period ('.') >
< Insert at line 2 >

This is where you will start entering text. My best suggestion is, don't use telnet, and try typing it up in a word processor for the use of spell check and other tools. Don't worry about Fonts and colors though, for that won't come out on the muck anyway. From here you either type your description in, and press return at the end of each paragraph. Or, you can cut and paste it in, then press return. Once it is all in there, you can type '.end' to finish, and it will drop you back out to the main menu. At the main menu, you can read your description before quitting the editor. Now, that is only just a simple explanation. I would like to now go over how you can format and use other various parts of this program.

*NOTE* You can type '.h' to get this next help screen.


MUFedit Help Screen. Arguments in [] are optional.
Any line not starting with a '.' is inserted at the current line.
Lines starting with '..', '."' , or '.:' are added with the '.' removed.
------- st = start line en = end line de = destination line -------

.end Exits the editor with the changes intact.
.abort Aborts the edit.
.h Displays this help screen.
.i [st] Changes the current line for insertion.
.l [st [en]] Lists the line(s) given. (if none, lists all.)
.p [st [en]] Like .l, except that it prints line numbers too.
.del [st [en]] Deletes the given lines, or the current one.
.copy [st [en]]=de Copies the given range of lines to the dest.
.move [st [en]]=de Moves the given range of lines to the dest.
.find [st]=text Searches for the given text starting at line start.
.repl [st [en]]=/old/new Replaces old text with new in the given lines.
.join [st [en]] Joins together the lines given in the range.
.split [st]=text Splits given line into 2 lines. Splits after text
.left [st [en]] Aligns all the text to the left side of the screen.
.center [st [en]]=cols Centers the given lines for cols screenwidth.
.right [st [en]]=col Right justifies to column col.
.indent [st [en]]=cols Indents or undents text by cols characters
.format [st [en]]=cols Formats text nicely to cols columns.

---- Example line refs: $ = last line, . = curr line, ^ = first line. ----
12 15 (lines 12 to 15) 5 $ (line 5 to last line) ^+3 6 (lines 4 to 6)
.+2 $-3 (curr line + 2 to last line - 3) 5 +3 (line 5 to curr line + 3)


Now I know this looks a little confusing, and you're most likely not going to use some of these features. I'm only going to touch over some of the really important, and handy ones for right now.

*NOTE* All these commands are only there while you are IN the option 2 of the editors.

.l

Well lets take a look at this. Say you have started writing a description, and you would like to see what you have BEFORE you press return and do the '.end' command for the editor. Well this is quite simple, typing just '.l' will list all the text you have entered in. Now you can also tell it where to start and end listing (This is done with line numbers like '.l 1 3' which will show lines 1 through 3.), which is a good way to just see part of the description as apposed to all of it.

.p

Ok, lets say you don't know what your line numbers are, want to find out? I thought so! Just type '.p' and it will reveal all the lines in your description, handy huh?

.i

Lets say you want to make a change to line 3, this is easy as well. Just do the '.i 3' then start typing in your changes. Remember, you can always view your changes by typing '.l' or '.l 3'. The first one will show the entire description, the second will only show line 3 of the description.

.del

This will delete any given line. For example, you want to just remove the 3rd line all together. That is easy, just type '.del 3', that will delete line 3. Well how about line 2? Same way, '.del 2'. Lets say you want to delete lines 2 and 3 at the same time, easy enough. Just type, '.del 2 3', now all that is left is line 1. You're basically working with line numbers here, and not the text itself. This is why I suggest you use a word processor for all your descriptions before putting them into here.

You catching on to how the editor functions? It is all by line numbers, and is quite easy for this reason to move around in. ;)

.end

This will stop your editing, and take you back to the main menu of the editor as it will also save what ever changes you have made to the text. You can still get back into here, just by choosing option 2 again.

.abort

Does the same thing that '.end' does, but without accepting any changes you have made to the text in the editor. This is a safe way out, just in case you think you may have made too many mistakes.


Like I was saying before, I'm only going over some of the basics in the editor, do experiment with the other functions though. They all work off of the line numbers, and a line of text can be an entire paragraph. To always find your line numbers just type '.p' and you will see everyone of the line numbers in your description. I do hope this has brought you some good info, and has cleared up a lot about muck building basics. Soon as I get time, there will be a character configuration basics, as well as other topics in the future.


Have fun MUCKING everyone!!!!!!

SnowFeather
SailorMUCK/FeatherMUCK/FurryMUCK/MistMUCK/SPR MUCK
snowfeather@avians.net.net