3.2. Building Commands: @create, @link, @destroy, and @chown
@create
This is the command that is used to make an object. Simply type @create (name), where (name) is the name you want the object to have. The object will be assigned a DB#, and appear in your inventory (type i or inv to see your it). You'll probably want to @lock the object by typing @lock (name)=me, so that other people can't pick it up.

So what can you do with an object? Before learning to code, your options are limited. You can use it as something like a sign, simply by giving it a @desc, but too many objects with nothing but a @desc tend to annoy wizards. Try not to do this if it is possible to include it in the room's description instead, or if you know how to use +view (type +help +view).

The more interesting basic use of an object is to make it a "puppet". A puppet is an extension of yourself that allows you to be in two places at once. Simply type @set (object)=PUPPET, and the object will start relaying everything it hears to you.

You can make a puppet do stuff by typing the puppet's DB# followed by a command. For example, if your puppet is #394, you can type #394 o to make it go through an exit abbreviated as O, such as Out; you can type #394 :waves. to have the puppet wave at people; and so on. Almost anything you can do, your puppet can too.

@link
This command does different things depending on what type of thing it is used on, but the format is always @link (thing)=(room #). (thing) can be 'me', 'here', an object's name, or an object's DB#, or one of the names of an exit. (This is the case with most commands.)
If (thing) is a player (it's not likely to work on anyone but 'me'), that sets your home. Whenever you type home, you will end up in this room. This command only works if you own the room or it has the ABODE (A) flag.
If (thing) is an object, it sets the object's home. A puppet can type home as well, and end up in that room. This is also the room an object will end up in if you @destroy the room it is in. This command only works if you own the room or it has the ABODE (A) flag.
If (thing) is an exit, it changes the exit's destination to the room you specify. This only works if you own the room or it has the LINK_OK (L) flag. If the exit is not linked somewhere already, you do not have to own the exit. This is an unclear point even among experienced MUXers. Anyone can grab an unlinked exit and do what they please with it. This makes it useful for allowing other people to build off of one of your rooms, but means you have to be sure to link all your exits if you don't want people to do this.
If (thing) is a room, it sets the room's "drop-to": any object someone drops in that room falls into the destination room. This is useful if you don't want objects cluttering up a certain room. The destination room should be accessible to your visitors. (If someone sends your object to an inaccessible room, try @teleporting into your object, then typing 'leave'.)

@destroy So you screwed up and created something you didn't mean to. Don't worry, you can get your money back by typing @destroy (thing). Once again, (thing) can be many different things, but to be safe it should be a DB#, so there is no chance of getting it confused with another object.

The object will hang around until the next database clean, which happens every 10 minutes. If during that time you realize you didn't mean to destroy it, simply type @set (thing)=!GOING. This clears the GOING flag on an object, which is set by the MUX to mark the object for destruction. Otherwise, when the database clean happens, you will get all the money you spent to create that object back, and it will disappear.

@chown This command (CHange OWNer) lets you give another player ownership of one of your objects. After that, you will no longer be able to control it or change things on it, and the new owner will be able to. But wait, this command is a bit weird - you, the owner of the object, don't type it. The process of @chowning an object is different for rooms, objects, and exits. (Players always own themselves.)

If it is an object or a room, you have to give it the CHOWN_OK (C) flag, by typing @set (thing)=CHOWN_OK. If it is an object, you also have to type @unlock (object), because the other player has to be able to pick it up. If it is an exit, type @unlink (exit) and the player can take control of it using @link. You don't have to set an exit CHOWN_OK.

The other player then picks up the object or enters the room, whichever is applicable, and types @chown (thing). They now own it. However, it is set HALTED as a safety precaution, which means that the object won't do anything until the new owner types @set (thing)=!HALTED.


[ Previous: Building commands: @dig and @open | Contents | Next: Attributes ]