Using Magic

After you have logged into DolphinMUD with your new account and broken it in a little, so to speak, you will probably want to make some new rooms to live in or change your character's appearance. In DolphinMUD, the commands to do this are grouped under the category of "magic" commands, because they modify the structure of the world.1 Magic commands in DolphinMUD are prefixed with the at sign (@) to indicate their nature. This chapter describes a few of the most common magic commands and how to use them.

If you examine yourself, using examine me, you will find yourself to be, well, rather plain:

You see swirling mists of possibility here.

You can fix this by setting the desc attribute on yourself. Attributes are pieces of text associated with a given object; the desc attribute of an object is what is shown when it is examined (or, if the object is a Room, the desc is printed when you enter that room.) To change your desc attribute, type the following command:

@attr me.desc=New description

Replace New description with a new description for yourself. This command changes the desc attribute on me to the text you typed.

Now that you are looking a bit more definite, how about you create a new room?

@newroom Name of Room

Replace Name of Room with the name you want to give the room. You will see a message like this:

Created new room: #97.

The #97 is the id of the room. Every item, player, room, and exit in DolphinMUD has its own ID. In any command, you can use the ID of the object instead of its name. For example, suppose you are object #149. To look at yourself, instead of typing examine self, you can instead type examine #149. In fact, you can only refer to an object by name when you are nearby; you can refer to objects by ID from anywhere in the MUD.

This is necessary right now, because when a new room is created, it isn't connected to any other room; the only way to get there is by teleporting. Use the @teleport command to teleport into your new room:

@teleport #ID

(Replace #ID with the object ID of the new room, of course). Once you have entered the new room, you will see that the description isn't very interesting:

You see swirling mists of possibility here.

You can change the description using the same command as before:

@attr #ID.desc=New description

Replace #ID and New description with the room's ID number and description, respectively. Note that if you are standing in the room, you can use here as a shorthand for it instead of typing out its ID:

@attr here.desc=New description

Connecting rooms

A room which you can only get into by teleporting is not very interesting. Most of the game's rooms are connected through exits; from the Gate, for example, you can go north to get into the Courtyard, or south to get to the Autumn Hillside. To connect your own rooms, you'll need the @connect command.

While standing in one of the rooms you want to connect, type the following:

@connect direction=#ID

This will create a new exit from the room you are in according to direction, leading to room #ID. For example, say you want to link two rooms #130 and #131. First, you should stand in room #130:

@tel #130

Next, you connect the two rooms so that #131 is northeast of #130:

@connect northeast=#131

Now you can type northeast in room #130 to go to #131; correspondingly, you can type southwest in room #131 to go back to #130.

Ownership

You can only run the @connect command in rooms you own. If you go to the Gate (#25) and type @details here, you will see something like the following:

@details here
ID: #25
Room:
  - north => 27 => #22 (Courtyard)
  - south => 32 => #31 (Autumn Hillside)
Name: Gate
Aliases: Gate
Contents:
========
	  Loc:    #0
	  Owner:  #1 (Nua)
	  Parent: #0
	  Flags: (none)

This room belongs to Nua; consequently, only he can use @connect from it. You can, however, run connect to a room you don't own while standing in a room you do. This is confusing, but important; without this, there would be no way for two different players to link their rooms together:

If player A stands in a room he owns and @connects to a room owned by player B, a one-way exit is created which is Blocked.

Thus, in the example above, suppose that room #131 is not owned by you, but is instead owned by UniqueBob. When you run the @connect command, it will succeed; however, if you try to go northeast, you will encounter the following message:

The way is blocked.

This is because the exit leads to a room that you do not own. If you now teleport to room #131, you will see that there is no corresponding southwest exit; UniqueBob will have to add that, by typing @connect southwest=#130 from his room. His exit will also be blocked; because the end goes into a room that you own, only you can unblock it. Each of you must unblock the other's exit. To do this, tell the other person the ID of the exit (it is reported when you run @connect; note that it is different from the ID of the room.) Then, the other person needs to run this command:

@clear #ID=Blocked

This will clear the Blocked flag on the exit with the given ID. The exit will now work as usual.

In general, you are only allowed to modify objects that you own. This prevents others from messing with your objects without your permission. To change the owner of an object, use the @chown command:

@chown object=player

This will make player the owner of object.

Creating Items

To make an item, use @newitem:

@newitem Item Name

This will create a new item in your inventory. To put it down, use drop <item>.

This item is an object just like any other, with its own ID, attributes, name, and so forth. You can modify its description using the same @attr command seen above:

@attr object.desc=New description

Creating Aliases

If you aren't in the same room with an object, you generally can't refer to it by name, only by ID, because it isn't "visible" to you. This gets annoying when you have a lot of objects that you want to keep track of. To help with this, there is an @alias command. Aliases are personal names for an object - that is, only you can use that name for the object, but you can use it from anywhere, even if the object isn't nearby. Think of it like a nickname; not everyone knows it, but it's a convenient personal shorthand for someone or something.

To create an alias, use the @alias command like so:

@alias name=object

This will make a new personal alias name which refers to object. For example, if you are standing in a room you just created, you can give it the alias home like this:

@alias home=here

This sets the alias home to the object you are standing in (here). Because aliases aren't shared between players, home can be different for each player. In fact, home is where you are teleported when you log out of the server, so it is important to set it up right!

Telepathy and Querying

Some of the most useful commands are those which let you interact with other players at a distance. The @msg command allows you to telepathically send a message to another player; the @who and @where commands will tell you a whether or not a player is online and where they are, respectively.

@msg player=some text

This sends some text to the other player:

Nua (telepathically): some text

It is advised that you be sparing and polite with your use of the @msg command; people don't appreciate being bothered frequently.

The @who command will report a player's ID and whether or not they are connect at the moment:

@who Nua
Nua (online) is #1

The @where command will report the whereabouts of a player:

@where Nua
Object #1 (Nua) is at #25 (Gate)

With these few commands, you should be able to get started building your corner of the world. There are several more commands not covered by this introduction; you should consult the Reference section of this manual for more information about these.

Have fun!

1

Not all magic changes the world; @teleport, for example, isn't really different from a move command. It is magic, though.