http:// www.metamage.com / mush / croaker / chapter3.html

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  aus

Test 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 room

several 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 object

The 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  out

A 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  aus

Since 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  aus

Let'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  aus

a 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  aus

and 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  aus

time passes...

look
Croaker's Robot Lab(#3061R)
The robot testing grounds.
Obvious exits:
rhombus  west  east  north  aus

notice 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.


Last updated December 8, 2004 by Josh Juran
Metamage Labs