http:// www.metamage.com / mush / croaker / chapter4.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/>


4. Puppets

The use of puppets is the easiest of the advanced features to use in MUSH, and also one of the most amusing. Two simple capabilities constitute the puppet: the @force command, and the puppet flag.

4.1. The @force command and objects

In TinyMUD, only a wizard could use force, and then it could only be used on other players. The @force command forces an object or player to perform a command exactly as if they had typed it in. You can make objects walk, talk, @create objects and even @force other objects you own.

The usual syntax of the @force command is:

@force object = command

object can be a name of an object you own, as long as you are in the same rooms as it is. Otherwise, you must use the object number to control it. Since it is used so often in MUSH, the @force command now has a shorthand syntax:

object-number command

The object in this form has the same restriction as the above form of the command.

Example: forcing an object

@create test puppet
Created.

drop test
Dropped.

look test
test puppet(#4306)
You see nothing special.

@force test = :jumps up and down and waves.
test puppet jumps up and down and waves.

@force test = @create sub-puppet
look puppet
test puppet(#4306)
You see nothing special.
Carrying:
sub-puppet(#4307)

You can have puppets move about, as well, as long as you remember that you have to reference them by object number after they have left the room you are it.

Example: making a puppet move

@force test = north
test puppet has left.

@force test = south
I don't see that here.
Sorry.
You can only force players and things.

This is MUSH's way of telling you it cannot find what you want to force

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

remember, test is to the north of us

@force #4306 = south

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

and test is back.

Note that TinyMUSH does not announce the arrival of the test object. This is because the object cannot hear anything; that is, it cannot relay information or react to anything it hears. Only objects that can hear things (like private conversations) will be announced when they arrive. There are two classes of objects that can overhear conversations, and we'll tackle the simplest form of these next.

4.2. The Puppet Flag and Objects

By setting the puppet flag on an object, the owner enables the object to relay all it hears back to him or her. What the puppet hears will be relayed to the owner, with a lead in to the line of text to differentiate it from the things the player might be hearing normally (or for that matter, might be hearing from another puppet.) The effects of puppets is rather surreal at times. It is not too uncommon to come across a room full of puppets talking to each other, their owners being elsewhere and doing other things while still joining in on the conversation.

Example: puppet output

@create Croaker's test puppet
Created.
@lock Croaker's=me
Locked.

always a good idea.

@set croaker's=puppet
Croaker's test puppet grows ears and can now hear.

you will always see this command when the puppet bit is set

Flag set.

drop croaker's
Croaker's test puppet> Dropped.

There is the first output we see from the puppet

Croaker's test puppet has arrived.
Dropped.

look croaker's
Croaker's test puppet(#5086p)
You see nothing special.

remember the puppet's number...

#5086 s

send it to the town square

Croaker's test puppet> You go to the town Rhombus.
Croaker's test puppet goes south to the town Rhombus.
Croaker's test puppet has left.
Croaker's test puppet> The Town Rhombus
Croaker's test puppet> 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
. . .
Croaker's test puppet> Contents:
Croaker's test puppet> Martha
Croaker's test puppet> Gonzo
Croaker's test puppet> Gus
Croaker's test puppet> Desdi
Croaker's test puppet> Tweeni
Croaker's test puppet> White Rabbit
Croaker's test puppet> Alice
Croaker's test puppet> Onex
Croaker's test puppet> Lucas
Croaker's test puppet> Obvious exits:
Croaker's test puppet> Southwest  Bulletin  Southeast  South  West  East
North

Croaker's test puppet> Gonzo gives desdi a spare hand so she will have 2
hands again
Croaker's test puppet> Desdi giggles.
Croaker's test puppet> Onex snorts "Docs, we don't need no stinking docs!"
Croaker's test puppet> Tweeni goes home.
Croaker's test puppet> Tweeni has left.
Croaker's test puppet> Gonzo looks at onex...you perhaps, but gonzo hasnt
seen this before
Croaker's test puppet> Desdi waves byebye.
Croaker's test puppet> Desdi goes home.
Croaker's test puppet> Desdi has left.
Croaker's test puppet> Gonzo Waves bye to desdi
Croaker's test puppet> Onex croaks "Solong!"
Croaker's test puppet> Gonzo says "this is a very ribbeting subjet, onex"

#5086 "Be nice, you're being recorded for the documentation...
Croaker's test puppet> You say "Be nice, you're being recorded for the
documentation..."
Croaker's test puppet> Gonzo says "smile, youre on candid camera!"

#5086="candid puppet...
Croaker's test puppet> Huh? (Type "help" for help.)

you even get error messages relayed to you

Croaker's test puppet> White Rabbit twitches his nose.

#5086 "candid puppet
Croaker's test puppet> You say "candid puppet"
Croaker's test puppet> White Rabbit twitches his nose.
Croaker's test puppet> Gonzo considers hacking /filedump into his tinytalk
for benefit of all puppets present

#5086 n
Croaker's test puppet> You walk toward government center
Croaker's test puppet has arrived.
Croaker's test puppet> Government center

MUSH also prevents objects from impersonating players...

Example: no impersonating allowed

@create Wizard
Created.

drop Wizard
Dropped.

look Wizard
Wizard(#5139)
You see nothing special.

@force Wizard="The Wizard sucks Dodo eggs
You are under arrest for impersonating a player!

@force Wizard=:tap dances
You are under arrest for impersonating a player!

4.3. New command: @sweep

Since objects can now hear things, private conversation on MUSH becomes a little more difficult. Fortunately there is a command to help out. The @sweep command will tell you all of the possible objects which can overhear your conversation, such as players (whether logged in or not), puppets, and some machines (which, as usual, will be covered in another section.)

After you sweep an area and find it empty (except for those in on the conversation) will can be sure you are secure. Even dark people and object will show up on it. Should any object enter the room that can hear, or if one of the objects in a room already is set up to hear, you will see a message tipping you off. Only objects that can hear (including players) are announced by MUSH as they enter a room, and if the owner of an object enables it to hear, you will get a message to the effect that the object has grown ears and can hear.

Example of the @sweep command

look
Government center
The Government center, to the east is the Temple of Chaos, to the north is
the temple, to the west is the Presidential Palace.
This doesn't seem like your typical goverment center, infact you don't see
any government here at all.
Contents:
SuperBear
Katie
NOTE TO AUSTRALIAN MUSHERS
Sign pointing South west to the science museum
Post office is south east
Sign pointing North east to the Puzzle Paradise.
Obvious exits:
sw  se  ne  west  east  north  south

@sweep
Croaker is listening.
VAX9000 is listening.
BearMan is listening.
SuperBear is listening.
Katie is listening.
Manticora is listening.
anonymous is listening.
milo is listening.
nessus2 is listening.
Faradon is listening.
radio_man is listening.
Kjarsten is listening.
Microwiz is listening.
Most of the listening objects in the above were players who were not logged in. Even so, you can see that the objects SuperBear and Katie (whatever they might be) are listening.

4.4. Puppets and Puzzles: The Key Flag

Puppets have the potential of allowing cheating in puzzles. There is little excitement in having a puppet (or even a machine) go through a puzzle picking up all of the keys and solving the puzzle, or allow a player to cheat by being in two places at once (effectively) and ruining the solution. The key flag can prevent this. If an object has its key flag set, a puppet cannot pick it up, while real players still can. In addition, any object with the key flag set automatically goes home should the person carrying it @teleport away. This prevents people from stealing the keys and rendering the puzzle unsolvable.

Example: key flag

@create object
Created.

@set object=key
Flag set.

drop object
Dropped.

@create puppet
Created.

@set puppet=puppet
puppet grows ears and can now hear.
Flag set.

drop puppet
puppet> Dropped.
puppet has arrived.
Dropped.

@force puppet=get object
puppet> You can't pick that up.

get object
Taken.


Last updated December 8, 2004 by Josh Juran
Metamage Labs