Croaker's TinyMUSH Manual
Last update: December 8, 2004
Author: Croaker
Editor: Josh Juran <wanderer@metamage.com>
URL: <http://www.metamage.com/mush/croaker/>
3. General MUSH commands
Almost all the commands in TinyMUD remain in MUSH. However, MUSH has many improvements in commands over MUD, both in modifications of old commands and totally new commands.
3.1. Commands not supported
rob
The rob command is not in MUSH anymore. This is part of the "kinder and gentler" MUD campaign. You'll just have to kill them instead.
3.2. Changes to old commands
Several commands have been modified from the old MUD form.
@dig
Dig has been modified so a direction can be specified when digging a room. This means that a room can be dug, and exit opened and linked to the new room with one command. This extended syntax is:
@dig room-name = direction
where direction is the direction (or directions) to open in the current room and attach to the new room. Note, a return exit is not created linking back to the current room, so if such an exit is desired it has to be made manually.
Example: Digging, opening, and linking
look Croaker's Robot Lab(#3061R) The robot testing grounds. Obvious exits: rhombus west east north aus @dig Test Room=test;t;testing Test Room created with room number 5662. Opened. Trying to link... Linked. look Croaker's Robot Lab(#3061R) The robot testing grounds. Obvious exits: test rhombus west east north ausTest now shows up in the list of exits.
test Test Room(#5662R)
Related to the @dig command is a feature in MUSH which warns you of unlinked rooms. This prevents the problem of creating a room and then "losing" it (by way of forgetting the object number.) The database is checked every ten minutes for unlinked rooms (as well as rooms to be @destroyed) and will notify the owner of each unlinked room found with a message indicating the object number of the rogue room. It is possible that you could create a room and be almost ready to link to it when MUSH complains about you having an unlinked room. Don't worry, it just means that the database was checked for unlinked rooms between the time you created the room and the time you took to link to it. This message can be eliminated on TinyTIM by setting the floating flag on the room.
Example: Detached room warning
@dig detached roomseveral minutes later...
You own a disconnected room, detached room(#5595)
Examine
The examine command now will tell you who the owner of an object is if you do not own it. If you own an object, examine works as before.
Example: examine objects for owner.
e superbear SuperBear is owned by BearMan e bearman BearMan is owned by BearMan
@force
The force command can be used by players to manipulate their objects (before only the wizard could do this.) A player's objects may also force each other. For more on this command, see the section on puppets.
give
You can now give objects to other players. The Syntax for this is:
give player = object
The receiving player/object will see:
player gave you objectThe player must have their enter_ok flag set for objects that do not belong to them to be given to them.
Example: giving objects
@create Common cold Created. give coyote = common cold Given.And Coyote gives it back...
Coyote gave you Common cold.
Kill
Two changes have been made in the kill command. First, it is possible to kill objects. Killing an object has exactly the same effect as killing a player: the object goes home, it gets half of what it cost you to kill it. Killing an object will stop all of its actions (see the @halt command.) Second, you cannot kill an object in a room controlled by its owner. This is so objects in puzzles and such cannot be killed. Also, you cannot kill a player in rooms they own.
@link
Ok kids, *this* time around, linking an exit to an object will bring you into that object's inventory (i.e., it will teleport you into that object.) Go and do this quickly before it gets changed *again* (that's a joke, ok?) See the section on vehicles and such if you're really up to it.
Objects can now be linked to their owners so that when the object goes home it will end up in the player's inventory. This eliminates the clumsy use of @tel for the same purpose.
Example: linking to objects
Bleedin' example deleted since it was wrong! wrong! wrong!
@lock
It is possible to lock objects/exits against attributes (see the section attributes and flags) such as the sex of the player. The command syntax is:
@lock object/exit = attribute:setting
setting is a text string to match. Text matching uses the standard wildcards "*" and "?". For example, "s?x" will match "sex", "sax", "sox", or any other three letter word starting with s and ending with x. "*s" will match any word ending in s, and "*s*" will match any word with at least one s in it. The section on Listen and Ahear will deal with these extensively.
Example: locking an exit to attributes
Create a Ladies Room
@dig Ladies room=Ladies Ladies room created with room number 5671. Opened. Trying to link... Linked. @lock ladies=sex:f* Locked.females (or any sex beginning with f) only!
@fail ladies = Hey you pervert!Try to go in
ladies Hey you pervert!Try a quick sex change
@sex me = female Set. ladies Ladies room(#5671R)Now I can go in
look
A minor change in the output of the look command. When looking around a room, all non-dark exits will be listed in a "obvious exits" list. This does not mean that these are the only exits that exist, just the obvious ones that the builder wants you to know about. This is handy when walking around the creations of lazy builders who don't explain which way you can go. Exits can be concealed if their dark flag is set (see the section on flags.)
Example: available exits
look The room of junk and killing.(#304RSL) This large, darkened room has no obvious exits. A crowd relaxes on pillows in front of a giant screen TV, and there in a fully stocked fridge and a bar. By the TV is a black box with buttons marked with the numbers 2 thru 13 and the letter U. You can't help but notice a chair glued sideways to the wall by its feet. Contents: thingy Exit machine: if you would like to build off of here look at me Obvious exits: woodlock Tachea motel Kahless-exit W.AXL_ROSE-exit Jeho's_joint Khamul-exit Izumi-exit mocker's MIIC Iriguchi Tourm's closet id-exit double Phoenix-exit gonzo-exit test Tage-exit Catty's Desmense Fosgate-exit bar field Drawbridge Kade Hot tub The-GoreBot-Control-Booth(type'GOREBOT') Dayffd's Place Tardis mushland Jin-exit Thanatos-exit Entropy-exit 20? Space_Ark JFL Whizzy-exit Trashlandia Markus' Banker-exit Markus' Banker-exit mars Hobbes Dream-specter-exit Drawing Room old outA few exits...
say (and ":")
MUSH treats some characters specially, for use in functions and parameter substitution. The percent sign and square brackets (%, [, and ]) are replaced by function or parameter values when printed out. This means that if you try and use the %, [, or ] characters you will get strange results. In order to say something containing any of these characters you should put a backslash character before them.
Example: using %,[, and ] with say
"MUSH is 100% better than MUD You say "MUSH is 100 better than MUD" "MUSH is 100\% better than MUD You say "MUSH is 100% better than MUD" :This [thing] is in brackets Croaker This thing is in brackets" :This \[thing\] is in brackets Croaker This [thing] is in brackets"
There are actually a number of ways to get these characters. The "%" will work in the place of the "\" character, so "%%", "%[" and "%]" will work. However, the setup of functions(which utilize the square brackets) has been radically changed, so this entire section may be irrelevant.
There is also a different form of the pose command available on TinyTIM. The ";" command acts just like the regular pose ":", but eliminates the usual space after the name of the player issuing the command. This is useful for possessive statements (and we know what a greedy lot MUSHers are, don't we?)
@tel
There have been a number of changes with teleport. First, you can now teleport yourself or any object you own to any room you own from anywhere (before, only a wizard could @tel players.) Also, you can teleport into any room that has the abode flag set (see the section on flags and attributes for more.) This allows for speedy travel from place to place in a MUSH, but creates certain problems for puzzle builders (see the appendix on building considerations.) The syntax of the command is:
@tel object = destination-room-number
look Croaker's Robot Lab(#3061R) The robot testing grounds. Obvious exits: west east north aus @tel me = #941 Drawing Room(#941R) This is a comfortable room, with windows looking out into the garden to the east, and out onto the front lawn to the north. To the south is a doorway that doesn't seem to lead anywhere. There is a sign reading "rec room" over it. There are numerous chairs and couches lying about, what seems to be a bar in the west wall (next to a door.) A grandfather clock ticks sedatly in one corner. Contents: A survalence camera(#863) The stereo system(#2276) Obvious exits: bar rec west
It is also possible to "push" a player out an exit using the @tel command, if you own the room and the exit. The syntax of this is:
@tel player = exit
This, of course, is just the thing for those unwanted house guests...
Example: "pushing" things out exits
look Croaker's Robot Lab(#3061RHA) The robot testing grounds. Contents: Cinema Obvious exits: Pit o' Death west east north ausSince this is my place, I can push Cinema (which I don't own) out through an exit
@tel cinema = pit o' death Cinema has left. look Croaker's Robot Lab(#3061RHA) The robot testing grounds. Obvious exits: Pit o' Death west east north ausLet's go see where Cinema ended up...
pit o' death The Town Rhombus You are in a pleasant town square, which is shaded by many old red oaks. Pebbled paths lead off in all directions, and the grass is healthy and well cared for. Set between the trees are various old statues, mostly made . . . Contents: Cinema Onex exit magnet(#5636L) Obvious exits: Southwest Bulletin Southeast South West East North
3.3. New Commands
This section deals with the new commands of general interest. Those that are more suited to building machines will be detailed later.
@clone
Clone will make an exact duplicate of an object you own and place it in the room where you are. This is handy, since it saves on having to laboriously copy an object's description and other attributes. Cloning an object costs the same as creating the object the old fashioned way (i.e. usually 10 pennies)
Example: cloning objects
@create generic object Created. look Croaker's Robot Lab(#3061R) The robot testing grounds. Obvious exits: west east north aus @clone generic object look Croaker's Robot Lab(#3061R) The robot testing grounds. Contents: generic object(#5635) Obvious exits: west east north ausa copy of the object has appeared
i You are carrying: generic object(#5622) Incomplete TinyMUSH manual(#2235) TinyMUSH crash helmet(#1759)
You can @clone objects even if they are not in your possession or in the same room as you. In a sense, you can create a "platonic pattern" and then knock off as many copies as you want, while keeping the original in an out of the way place. This principle can be used in creating vending machines. Examples of vending machines will be given in the section on basic machines.
Example: cloning by number
The generic object is located in a room far away...
look Croaker's Robot Lab(#3061R) The robot testing grounds. Obvious exits: west east north aus i You are carrying: Incomplete TinyMUSH manual(#2235) TinyMUSH crash helmet(#1759) You have 1864113 Gold pieces.Nothing up my sleeve...
@clone #5622 look Croaker's Robot Lab(#3061R) The robot testing grounds. Contents: generic object(#5635) Obvious exits: west east north ausand there is a copy of it...
@destroy
One of the first commands in MUSH. This command will allow a player to destroy an object that belongs to them or has the destroy_ok flag set. The player is refunded the cost of creating the object, and the object's number is released for future use (therefore you really can't tell the relative age of an object by it's object number.) All objects (rooms, exits, etc) can be destroyed. This form of destroy command does not force all of the objects in the database to have their numbers reassigned like MUF.
Example: destroy an object
@create generic object Created. @destroy generic object You get your 10 penny deposit back for generic object. Destroyed.
Example: set the destroy_ok
@create generic object Created. @set generic = destroy_ok Flag set. look generic object generic object(#5635d)now it can be destroyed, unfortunately, no one else was around...
Destroying a room is a little different. Room removal takes a little while (up to ten minutes) do to the database design, as well as to allow for owners to destroy the rooms they are in. When a @destroy command is given for a room, the command sets the target room's going flag. The owner can reset this flag in order to save the room. Rooms to be destroyed must have two or less exits leading out of them. All exits leading out of a destroyed room are also destroyed. Exits leading into the room are also eliminated.
Example: room destruction
@destroy here The room shakes and begins to crumble. You will be rewarded shortly for Test Room. out Croaker's Robot Lab(#3061R) The robot testing grounds. Obvious exits: test rhombus west east north aus test Test Room(#5662RG) Obvious exits: out out Croaker's Robot Lab(#3061R) The robot testing grounds. Obvious exits: test rhombus west east north austime passes...
look Croaker's Robot Lab(#3061R) The robot testing grounds. Obvious exits: rhombus west east north ausnotice that test has disappeared
Example: canceling destruction
@dig test=test test created with room number 5772. Opened. Trying to link... Linked. look Croaker's Robot Lab(#3061R) The robot testing grounds. Obvious exits: test rhombus west east north aus test test(#5772R) @destroy here The room shakes and begins to crumble. You will be rewarded shortly for test. look test(#5772RG) @set here=!going Your room has been spared from destruction.
Since players are objects, they can be destroyed. You cannot however destroy yourself. Of course wizards can do anything, and if properly annoyed...
Example: the Wizard's wrath
tinyjerk has arrived. tinyjerk stomps on the Wizard's foot! The evil wizard wizard just destroyed tinyjerk. tinyjerk has disconnected.
and you thought @toading was bad...
@edit
The edit command allows you modify an attribute without having to totally rewrite it. This aids in the creation of machines, which quite often have complex attributes which would be a major pain to re-enter. It also means that you fix spelling errors in @descs with ease (so now there's no excuse for misspelling!)
The syntax is:
@edit object/attribute = text-to-be-replaced, text-to-replace-with
Example: using @edit to modify an attribute
Let's make a minor change to my @desc
look me Croaker(#346Pc) Pretty normal looking for a 5' 10" bipedal toad wearing a tweed jacket and a deerstalker cap. His pockets bulge with various tools: virtual reality inverters, aether clamps, foobar manipulators, and an Xacto knife. He can usually be found alternatly staring off into the distance mumbling to himself and scribbling notes on a yellow pad. There is an "amphibious and proud!" button on one lapel of his jacket, and a "warts are a myth!" button on the other. @edit me/desc = Xacto,Xacto(tm) set.So I don't sued by the Xacto knife company...
look me Croaker(#346Pc) Pretty normal looking for a 5' 10" bipedal toad wearing a tweed jacket and a deerstalker cap. His pockets bulge with various tools: virtual reality inverters, aether clamps, foobar manipulators, and an Xacto(tm) knife. He can usually be found alternatly staring off into the distance mumbling to himself and scribbling notes on a yellow pad. There is an "amphibious and proud!" button on one lapel of his jacket, and a "warts are a myth!" button on the other.