& HELP
HELP

  This is the TinyMUX online help facility.

     Notes on help descriptions:
        [text] - Text enclosed in []'s is optional.  The []'s are never typed
                 in as part of the command.
        <parameter> - Information parameter for a command.  The <>'s are
                      never typed in as part of the command.

  -  Syntax of help command:
       help [<command>]

  -  To get a list of TinyMUX topics:
       help topics

  -  To get a list of Comsystem commands:
       help comsys

  -  To get a list of TinyMUX Commands:
       help commands      (or @list commands)

  Some of the configuration shown in the help.txt might not be the same as
  the configuration of this MUX.  If you notice any errors, contact an admin.

& "
"

  COMMAND: "<message>

  Says <message> out loud to everyone in your current location (usually a
  room).

  Example:
    > "Where is the movie theater?
    You say, "Where is the movie theater?"

  Note that the closing double quote is automatically added.

  Related Topics: page, pose, say, :, ".

& #
#

  COMMAND: #<number> <command>

  Forces the object whose database number is <number> to perform <command>.
  Example: '#1033 move north' forces object #1033 to go north (assuming that
  you control it).  The same restrictions that apply to @force also apply to
  this command.

  Related Topics: @force.

& $-COMMANDS
$-COMMANDS

  These commands are called arbitrary commands, user-defined commands, or
  $-commands (for how they are defined).  See 'arbitrary commands' for the
  full description.

  Related Topics: arbitrary commands

& &

  COMMAND: &<attribute> <object>[=<value>]
  SYNONYM: @set <object> = <attribute>:[<value>]

  Sets the attribute named <attribute> on <object> to <value>.  If
  <attribute> is not a predefined attribute (like ofail or va), then it is
  created.  Attributes so created are called user-named attributes.
  Attribute names may only contain letters, numbers, and the characters
  < -_.@#$^&*~?=+| >, and must start with a letter.  The names of user-named
  attributes may not be abbreviated (an attempt to get the value of the
  attribute will fail, and an attempt to set will create a new attribute).
  The & command may be used to set predefined attributes (in this instance,
  '&<attr> <object>=<value>' is equivalent to '@<attr> <object>=<value>').

  Related Topics: @set.

& :
:

  COMMAND: :<message>

  Displays <message> to everyone in your current room, preceded by your name
  and a space.  However, if <message> starts with a space, no space is
  inserted between your name and the pose -- like the ';' command.

  Example:
    >:jumps for joy.
    Player jumps for joy.
    >: 's cat meows.
    Player's cat meows.

  Related Topics: page, pose, say, whisper, ;, ".

& ;
;

  COMMAND: ;<message>

  This command is much like the ':' command, except that no space is inserted
  between your name and the pose.  However, <message> can start with its own
  space -- a result similar to using the ':' command.

  Example:
    > ;'s watch beeps.
    Player's watch beeps.
    > ; meows.
    Player meows.

  Warning: This command does not work in command lists run from an attribute
  because the ';' is treated as the command separator.  Use pose/nospace
  instead.

  Related Topics: page, pose, say, whisper, :, ".

& @@
@@

  COMMAND: @@ <args>

  This command and everything after it (excluding the command-separator
  ';') is not evaluated by the parser. This is useful for adding comments
  in softcode or, more commonly, writing comment headers for softcode
  installers (such as /quotable text files).  Note that @@ must be
  followed by a space or it will return an error message.

  Always be doubly sure that ()'s and {}'s in the (otherwise ignored)
  arguments are nested correctly, so that any semicolons used to separate it
  from subsequent code in the line are recognized by the parser.

  Example:
     > @va me=$foobar *:@fo #1234=%0;@@ This controls my foobar puppet.
     > foobar say Hello World!
     foobar says "Hello World!"
     > @@ --- Begin Code ---
     > @emit Hello World!
     > @@ --- End Code ---
     Hello World!

  Related Topics: think, @@(), null().

& @@()
@@()

  FUNCTION: @@(<text>)

  The <text> is not evaluated and returns nothing.

  Example:
    > think @@(pemit(me,Hello))
    > think @@(abc)

  Related Topics: @@, null().

& @AAHEAR
@AAHEAR

  COMMAND:   @aahear <object> = <command-list>
  ATTRIBUTE: Aahear

  An Aahear on an object is activated whenever the listen pattern
  matches anything done/said by anything else in the room, including
  itself.  (The Ahear ignores itself, helpful for keeping machines from
  triggering itself)

  Example:
    @aahear listener = "I heard someone (maybe me?) say the word!

  Related Topics: @ahear, @amhear, @listen.

& @ACLONE
@ACLONE

  COMMAND:   @aclone <object> = <command-list>
  ATTRIBUTE: Aclone

  Sets the actions to be taken by a new object that has just been created
  as the result of a @clone command.  The contents of the Aclone attribute
  are run by the new object and not by the old object.

  This attribute is only meaningful for things, and will never be
  automatically triggered on other object types.
  It is also possible to check the zone object/objects in the zone parent
  room for an @adisconnect. If one is found, it will be executed when a
  player disconnects in that zone.

  Example: @aclone Time bomb = @wait 600=@trig me/va;@wait 10=@trig me/vb
           @va time bomb = :EXPLODES with a thundering roar;@destroy me
           @vb time bomb = :ticks.; @wait 10=@trig me/vb

  Related Topics: @clone.

& @ACONNECT
@ACONNECT

  COMMAND:   @aconnect <object> = <command-list>
  ATTRIBUTE: Aconnect

  Sets the actions to be taken by a player upon connecting to the MUX. The
  following steps occur in the following order whenever a player connects to
  the MUX. Parentage is observed.

   - Execute the connecting player's @aconnect.
   - Execute the master room's @aconnect.
   - Execute any @aconnect found on any of the master room's contents.
   - If the location that the player is connecting into belongs to a zone,
     then

     a) if the zone object is a thing, execute its @aconnect.
     b) if the zone object is a room, execute any @aconnect found on any of
        that room's contents.

  Example:
    > @aconnect me = check.my.mailbox

  Related Topics: @adisconnect.

& @ADESCRIBE
@ADESCRIBE

  COMMAND:   @adescribe <object> = <command-list>
  ATTRIBUTE: Adescribe

  Sets the actions to be taken when <object> is looked at.

  Example: @adesc kitten = :rubs against %n's legs affectionately.

  Related Topics: look, @desc, @idesc, @odesc, think

& @ADFAIL
@ADFAIL

  COMMAND:   @adfail <object> = <command-list>
  ATTRIBUTE: Adfail

  Sets the action to be taken by an object when someone tries to drop it
  but fails because they didn't pass the object's drop lock.

  Example: @adfail sword = @name me=Cursed Sword;:laughs maniacally.

  Related Topics: drop, @dfail, @odfail, @lock.

& @ADISCONNECT
@ADISCONNECT

  COMMAND:   @adisconnect <object> = <command-list>
  ATTRIBUTE: Adisconnect

  Sets the actions to be taken by a player upon disconnecting from the MUX.
  The following steps occur in the following order whenever a player connects
  to the MUX. Parentage is observed.

   - Execute the connecting player's @adisconnect.
   - Execute the master room's @adisconnect.
   - Execute any @adisconnect found on any of the master room's contents.
   - If the location that the player is connecting into belongs to a zone,
     then

     a) if the zone object is a thing, execute its @adisconnect.
     b) if the zone object is a room, execute any @adisconnect found on any of
        that room's contents.

  Example:
    > @adisconnect me = home

  Related Topics: @aconnect.

& @ADROP
@ADROP

  COMMAND:   @adrop <object> = <command-list>
  ATTRIBUTE: Adrop

  Sets the action to be taken by an object when it is dropped, or by an exit
  when it is successfully used.

  Example: @adrop plastique = kill %n=100; @destroy me

  Related Topics: drop, @drop, @odrop, DROP-TO, EXITS.

& @AEFAIL
@AEFAIL

  COMMAND:   @aefail <object> = <command-list>
  ATTRIBUTE: Aefail

  Sets the action to be taken by an object when someone tries to enter it
  but fails because the object is not ENTER_OK or the player fails the
  object's enter lock.

  The enter lock only affects the 'enter' command and its aliases (set via
  the @ealias command), it does not affect exits that lead to the object or
  teleporting in.

  This attribute is meaningful for players and things, and will never be
  automatically triggered on rooms or exits.

  Example: @aefail car = @emit ;'s alarm starts wailing when %n tries
                         to break in.
  Related Topics: @aenter, @efail, @ealias, @enter, @oefail, @oenter, enter,
      ENTER_OK.

& @AENTER
@AENTER

  COMMAND:   @aenter <object> = <command-list>
  ATTRIBUTE: Aenter

  Sets the action to be taken by an object or room when someone enters it,
  whether by using an exit, the enter or leave commands, or by teleporting.

  This attribute is meaningful for players, things, and rooms, and will never
  be automatically triggered on exits.

  Example: @aenter car = :starts its engine, eagerly awaiting a road trip.;
                         "Beep Beep!

  Related Topics: enter, @enter, @oenter, ENTER_OK.

& @AFAIL
@AFAIL

  COMMAND:   @afail <object> = <command-list>
  ATTRIBUTE: Afail

  Sets the commands to be performed by <object> when one of these events
  occurs:

    - For exits: Someone tries to traverse the exit but cannot because they
      fail the exit's default lock or the exit is not linked.
    - For players and things: Someone tries to pick up the object but cannot
      because they fail the object's default lock.
    - For rooms, players, and things: Someone looks around inside the room,
      player, or thing and fails the object's default lock.

  Example:
    > @afail vase = :falls to the floor and smashes to pieces.;@destroy me

  Related Topics: @fail, @ofail, FAILURE.

& @AGFAIL
@AGFAIL

  COMMAND:   @agfail <object> = <command-list>
  ATTRIBUTE: Agfail

  Sets the action to be taken by an object when someone tries to give it
  away but fails because they didn't pass the object's give lock.

  Example: @agfail sword = @name me=Cursed Sword;:laughs maniacally.

  Related Topics: give, @gfail, @ogfail, @lock.

& @AHEAR
@AHEAR

  COMMAND:   @ahear <object> = <command-list>
  ATTRIBUTE: Ahear

  Sets the actions to be taken after the object hears a string that matches
  the pattern in the Listen attribute which was not produced by the object
  itself.  Messages that are produced by the object itself are ignored.

  Example: @ahear clock = "The time is now [time()].  >> BONNNNGGGGG <<

  Related Topics: @aahear, @amhear, @listen.

& @AKILL
@AKILL

  COMMAND:   @akill <object> = <command-list>
  ATTRIBUTE: Akill

  Sets the actions to be taken by an object after it is killed and has
  returned to its home.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @akill lion = south; :leaps onto %n, roaring loudly.;kill %n=100

  Related Topics: kill, @kill and @okill, BEING KILLED, IMMORTAL, WIZARD.

& @ALEAD
@ALEAD

  COMMAND:   @alead <object> = <command list>
  ATTRIBUTE: Alead

  Sets the <command list> executed when object is lead.

  This attribute is only available if FIRANMUX is enabled.

  Related Topics: @lead, @olead.

& @ALEAVE
@ALEAVE

  COMMAND:   @aleave <object> = <command-list>
  ATTRIBUTE: Aleave

  Sets the action to be taken by an object or room when someone leaves it,
  whether by using an exit, the enter or leave commands, or by teleporting.

  This attribute is meaningful for players, things, and rooms, and will never
  be automatically triggered on exits.

  Example: @aleave car = :stops to let %n out.;:revs its engine, hoping
                         another brave soul would like a ride.

  Related Topics: leave, @leave, @oleave.

& @ALFAIL
@ALFAIL

  COMMAND:   @alfail <object> = <command-list>
  ATTRIBUTE: Alfail

  Sets the action to be taken by an object when someone tries to leave it
  but fails because the player fails the object's leave lock.

  The leave lock only affects the 'leave' command and its aliases (set via
  the @ealias command), it does not affect going home, using an exit in the
  location, or teleporting out.

  This attribute is meaningful for players and things, and will never be
  automatically triggered on rooms or exits.

  Example: @alfail box = :rattles around as %n tries to escape.

  Related Topics: @aleave, @lalias, @leave, @lfail, @oleave, @olfail, leave.

& @ALIAS
@ALIAS

  COMMAND:   @alias <player> = <name>
  ATTRIBUTE: Alias

  Provides an alternate name by which the player is known.  The alternate
  name is only used for players when referenced as '*<name>' or by commands
  that only take playernames (such as page or @stats).  You may not set
  an alias on any other object type.

  When setting an alias, the alias is checked to see that it is both a legal
  player name and not already in use.  Only if both checks succeed is the
  alias set.

Related Topics: @name.

& @AMAIL
@AMAIL

  COMMAND:   @amail <player> = <command-list>
  ATTRIBUTE: Amail

  Sets the actions to be taken after a player receives @mail. This should
  *never* @mail another player, as this could cause an infinite loop.

  Example: @amail me=@mail/file [mail()]=2
           This would place all incoming messages in folder #2.

  Related Topics: @mailsucc, @signature, @mail.

& @AMHEAR
@AMHEAR

  COMMAND:   @amhear <object> = <command-list>
  ATTRIBUTE: Amhear

  Sets the actions to be taken after the object hears a string that matches
  the pattern in the Listen attribute which was produced by the object
  itself. Messages that are produced by anything other than the object itself
  are ignored.

  Example: @amhear listener = "Wait a minute. I said the trigger word!

  Related Topics: @aahear, @ahear, @listen.

& @AMOVE
@AMOVE

  COMMAND:   @amove <object> = <command-list>
  ATTRIBUTE: Amove

  Sets the action to be taken by an object whenever it moves from one
  location to another, whether by using an exit, entering or leaving an
  object, teleporting, or going home.

  This attribute is meaningful for players, and things and will never be
  automatically triggered on other object types.

  Example: @amove car = @vz me=[extract(%vz,1,19)] [loc(me)]

  Related Topics: @move, @omove.

& @APAY
@APAY

  COMMAND:   @apay <object> = <command-list>
  ATTRIBUTE: Apay

  Sets the actions to be taken after the object is given the number of coins
  specified in its Cost attribute.  If the giver tries to give more than that
  number of coins, the excess is refunded, and if less than the necessary
  amount is given then it is all given back and a snide message is sent to
  the giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @apay Coke machine = @clone Can of Coke; :drops a can on the
                                floor.

  Related Topics: give, @cost, @opay, @pay.

& @ARFAIL
@ARFAIL

  COMMAND:   @arfail <object> = <command-list>
  ATTRIBUTE: Arfail

  Sets the action to be taken by an object when someone tries to give it
  something that fails its give lock.

  Example: @arfail merchant = "I don't buy such junk. Begone!;
                              @tel %#=cheater_exit

  Related Topics: give, @agfail, @gfail, @ogfail, @orfail, @rfail, @lock.

& @ASUCCESS
@ASUCCESS

  COMMAND:   @asuccess <object> = <command-list>
  ATTRIBUTE: Asucc

  Sets the actions to be taken by an object when someone successfully picks
  it up (because they passed the lock), by an exit when someone passes
  through it, or when someone looks at a room and passes the room's lock.

  Example: @asucc kitten = :climbs up your sleeve and nuzzles your face.

  Related Topics: @osucc, @success, SUCCESS.

& @ATFAIL
@ATFAIL

  COMMAND:   @atfail <object> = <command-list>
  ATTRIBUTE: Atfail

  Sets the action to be taken by an object when someone tries to teleport
  there but fails.

  Example: @atfail here = @page [owner(me)]=%N tried to teleport here.

  Related Topics: @teleport, @tfail, @otfail, @lock.

& @ATOFAIL
@ATOFAIL

  COMMAND:   @atofail <object> = <command-list>
  ATTRIBUTE: Atofail

  Sets the action to be taken by an object when someone tries to teleport
  out but fails.

  Example: @atofail here = @page [owner(me)]=%N tried to teleport out.

  Related Topics: @teleport, @tofail, @otofail, @lock.

& @ATPORT
@ATPORT

  COMMAND:   @atport <object> = <command-list>
  ATTRIBUTE: Atport

  Sets the actions to be performed by object whenever it teleports.
  The actions are performed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @atport me = &TEL.COUNT me=add(v(TEL.COUNT),1)

  Related Topics: @otport, @oxtport, @tport, @teleport.

& @AUFAIL
@AUFAIL

  COMMAND:   @aufail <object> = <command-list>
  ATTRIBUTE: Aufail

  Sets the list of commands to be run when someone 'use's the object but
  fails the object's use lock.  Note that the other functions controlled
  by the use lock (paying, listening, and $-commands) do not trigger
  Aufail.

  Example: @aufail robot = "I _told_ you to leave me alone; kill %n=100

  Related Topics: @oufail, @ufail, @use.

& @AUSE
@AUSE

  COMMAND:   @ause <object> = <command-list>
  ATTRIBUTE: Ause

  Sets the actions to be taken when someone uses the object with the use
  command.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @ause grenade = :EXPLODES with a thundering roar; kill %n=100;
                           @destroy me
  Related Topics: use, @ouse, @use.

& @AWAY
@AWAY

  COMMAND:   @away <object> = <message>
  ATTRIBUTE: Away

  This attribute is sent as a message to anyone who tries to page you when
  you are not connected.

  This attribute is only meaningful for players, and will never be
  automatically referenced on other object types.

  Example: @away me = Hey, I'm not even connected.  So why are you paging me?

  Related Topics: @idle, @idletimeout, @reject, page.

& @BREAK
@BREAK

  COMMAND: @break <boolean>

  @break stops the execution of further commands in the current action
  list if its argument is a true value. It doesn't affect new queue
  entries made by previous commands in the action list. Very useful to
  people who don't like @switch.

  Examples:
    > @va obj=$testme *:@pemit %#=Before;@break %0;@pemit %#=After
    > testme 0
    Before
    After
    > testme 1
    Before

    > @force me={@switch 1=1,think 3rd;think 1st;@break 1;think 2nd}
    1st
    3rd

  In the last example, the @switch is run, which queues 'think 3rd',
  'think 1st' is run, displaying '1st', command execution is broken
  (so we never 'think 2nd', and then the queued 'think 3rd' is run,
  displaying '3rd'.

  If you follow that, you have a very good understanding of the
  TinyMUX queue. :)

  Related Topics: BOOLEAN VALUES

& @CBOOT
@CBOOT

  COMMAND: @cboot[/quiet] <channel>=<object>

  Only wizards or the owner of the channel can use this command. It
  forcefully removes an object from that channel.

  You may specify a player name as <object> if you prefix it with an '*'
  (e.g., '*Player1'), otherwise <object> should be a dbref or if you are
  in the same room, the name of an object or player.

  Example:
    > @cboot Public=Player1
    [Public] Staff1 boots Player1 off the channel.
    [Public] Player1 has left this channel.

  Related Topics: comsys commands

& @CCHARGE
@CCHARGE

  COMMAND: @ccharge <channel>=<amount>

  This command imposes a charge of <amount> coins on transmitting over a
  channel. The default fee when a channel is created is 0. All proceeds
  benefit the channel owner.

  Example:
    > @ccharge Public=1
    Set.

  Related Topics: comsys commands

& @CCHOWN
@CCHOWN

  COMMAND: @cchown <channel>=<player>

  Changes ownership of <channel> to <player>. If the player is not in the
  same room, you will need to add a '*' before the name (e.g., '*player1').

  Example:
    >@cchown Public=Staff1
    Set.

  Related Topics: @clist, @cwho.

& @CCREATE
@CCREATE

  COMMAND: @ccreate <channel name>

  Only Wizards can create new channels.

  Creates a new channel with default settings. Once the channel is created,
  it can be associated with a object with the @cset command. That object can
  be used to set locks and descriptions on the channel.

  Example:
    > @ccreate Public
    Channel Public created.

  Related Topics: comsys, @cset, @cdestroy, @clist, @cchown.

& @CDESTROY
@CDESTROY

  COMMAND: @cdestroy <channel>

  Deletes <channel> permanently from the comsystem database. It does not
  destroy all aliases that exist for <channel> -- those are left to the
  owners of those aliases. Players are notified both at login when they
  own aliases for which a channel no longer exists and when they try to
  use them. Even if a Channel is destroyed and then recreated, the alias
  will still be non functioning. The alias must be removed with the
  'delcom' command and added with the 'addcom' command.

  Example:
    > @cdestroy Staff
    Channel Staff destroyed.

  Related Topics: @clist, @ccreate, @cchown, addcom, delcom.

& @CEMIT
@CEMIT

  COMMAND: @cemit[/<switches>] <channel>=<message>

  Sends <message> over <channel> prefixed by the channel's name. You must own
  or control the channel to do this.

  The following switches are available:

    /noheader - Sends the message to everyone on <channel> without the
                channel's name prefixed.

  Example:
    > @cemit Public=This is a test!
    [Public] This is a test!

    > @cemit/noheader Public=This is a test!
    This is a test.

  Related Topics: comsys commands, alias, addcom, cemit()

& @CHARGES
@CHARGES

  COMMAND:   @charges <object> = <count>
  ATTRIBUTE: Charges

  This attribute allows you to limit the number of times an object can be
  used.  If there is a charges attribute it is decremented each time an
  action on the object is triggered.  Once it reaches zero, normal triggering
  stops and the Runout attribute (if one is present) is run instead.

  Example: @charges Fireball wand = 5

  Related Topics: @runout.

& @CHOWN
@CHOWN

  COMMAND: @chown[/nostrip] <object>[=<player>]
           @chown           <object>/<attr>[=<player>]

  The first form changes the ownership of <object> to <player>.  By default,
  this is yourself.  Objects may be things, rooms or exits.  To @chown things,
  you have to be carrying the thing.  For rooms or exits, you have to be in
  the room.  Objects must have the CHOWN_OK flag set before they may be
  @chowned.  In a room, the command used must be @chown here=<name>, and for
  an object, you must be very specific.  Players can't be @chowned; they
  always own themselves.

  When an object is @chowned, all unlocked attributes on the object are
  automatically @chowned as well.  Locked attributes remain owned by their
  original owners.

  Without the /nostrip switch, CHOWN_OK, all flags specified in the
  stripped_flags configuration option, and all @powers are stripped.  Also,
  HALT is set.  With /nostrip, ROYALTY and INHERIT are preserved (albeit with
  warnings).  #1 can use /nostrip to further preserve WIZARD and @powers.
  
  By default, stripped_flags includes: BLIND, CONNECTED, GAGGED, HEAD_FLAG,
  IMMORTAL, INHERIT, ROYALTY, SLAVE, STAFF, SUSPECT, UNINSPECTED, and WIZARD.

{ 'help @chown2' for more }

& @CHOWN2
@CHOWN (continued)

  The second form changes the ownership of the indicated attribute on <object>
  to <player>.  The default is the owner of the object.  You may only @chown
  unlocked attributes.  You may @chown unlocked attributes on objects that you
  own to yourself, and you may also @chown attributes that you own on objects
  owned by others to the owner of the object.

  Related Topics: ATTRIBUTE OWNERSHIP, CHOWN_OK, @lock, stripped_flags, and
                  @unlock.

& @CHZONE
@CHZONE

  COMMAND: @chzone <object>=<zone object>.

  Changes the zone of <object> to <zone object>.  If <zone object> is "none",
  the zone is reset to NOTHING.

  @chzone'ing a player does not automatically change the zone of their
  objects.  Anyone may reset the zone of an object they own; <zone object>
  must either be "none", or must be owned by them.  Only wizards may @chzone
  an object to an arbitrary zone object.  Players may @chzone themselves to
  an object they own; otherwise, only wizards may @chzone players.  For
  non-player objects, @chzone'ing strips all flags in the stripped_flags.

  By default, stripped_flags includes: BLIND, CONNECTED, GAGGED, HEAD_FLAG,
  IMMORTAL, INHERIT, ROYALTY, SLAVE, STAFF, SUSPECT, UNINSPECTED, and WIZARD.

  Related Topics: stripped_flags, ZONE OBJECTS

& @CLIST
@CLIST

  COMMAND: @clist[/<option>]

  Without any switches, it will display the list of public channels with
  their owner and description. It will also display all channels you own.

  <option>, if given, may be either of the following:

    full    - @clist will display more detailed information including
              the channel object's dbref.

    headers - Shows the @clist report with the description column
              replaced by the a column of the channel headers.

  Examples:
    >@clist
    *** Channel Owner Description
    --- Public God No description.
    --- Staff God No description.

    >@clist/full
    *** Channel      --Flags--  Obj   Own   Charge  Balance  Users   Messages
    --- Public        JXR/jxr    -1    11        0        0     45        129
    --- Staff         JXR/jxr    -1    11        0        0     10         65

  Related Topics: @ccreate, @cdestroy, @cchown, @coflags, @cpflags.

& @CLONE
@CLONE

  COMMAND: @clone[/<switches>] <object>[=<newname/cost>]

  Creates a almost exact duplicate of <object> that is owned by you and (for
  things and exits) puts it in your current location.  You may have the
  object put in your inventory (or your exitlist in the case of cloning
  exits) by using the /inventory switch.

  The modification and creation times will necessarily be different.  Also,
  depending on the parent lock and permissions, the possibility exists that
  the clone object will be left unparented.

  You may clone your own objects, plus VISUAL objects owned by others.
  Typically, INHERIT, WIZARD, and other flags in the stripped_flags
  configuration option are not cloned.  Powers are never cloned.  If <newname>
  is specified, it is used as the name instead of the original name.

  By default, stripped_flags includes: BLIND, CONNECTED, GAGGED, HEAD_FLAG,
  IMMORTAL, INHERIT, ROYALTY, SLAVE, STAFF, SUSPECT, UNINSPECTED, and WIZARD.

  If you clone a linked exit, an attempt is made to link the clone to the
  same location.  Except when using the /inventory switch, you can only clone
  exits when you own your current location.

{ 'help @clone2' for more }

& @CLONE2
@CLONE (continued)

  If you clone a room with a drop-to, an attempt is made to link the drop-to
  to the same location.

  If the original object was owned by you, then the ACLONE attribute is run
  in the new attribute, otherwise the new object is set HALTED.  Exits and
  contents of cloned objects are not cloned, and LOCKED attributes are not
  copied.

  The following switches are available:

     /cost       - Treat the argument after the = as the cost of the new
                   object, not the name.

     /inherit    - Don't reset the INHERIT bit on the new object.

     /inventory  - Create the new object in your inventory (or your exitlist,
                   in the case of cloning exits).

     /nostrip    - Flags in the stripped_flags set are not stripped except
                   that only #1 is allowed to clone WIZARD.

     /location   - Create the new object in your location (default).

{ 'help @clone3' for more }

& @CLONE3
@CLONE (continued)

     /parent     - Set the new object's parent to be the template object and
                   don't copy the attributes.

     /preserve   - Let the existing owner own the clone. Existing owner must
                   be controllable.

  Related Topics: @create, @decompile, @destroy, stripped_flags, VISUAL.

& @COFLAGS
@COFLAGS

  COMMAND: @coflags <channel>=[!]flag

  Sets object flags for that channel. The flag can be one of: join, transmit
  or receive.

    transmit   Whether an object can broadcast (speak) over the channel.
    join       Whether an object can join the channel.
    receive    Whether an object can receive messages over the channel.

  NOTE: Flags must be lower case.

  If it is !flag, then that flag is reset. Channel flags ALWAYS override
  locks on channel objects.

  Example:
    > @coflags Public=join
    @coflags: Set.

  Related Topics: @cpflags, @clist, CHANNEL OBJECT.

& @COLOR
@COLOR

  COMMAND:   @color <object> = <color-code-list>
  ATTRIBUTE: Color

  Controls the colorization of an object's name.

  Example:
    @color me = hr

  This attribute is only available if FIRANMUX is enabled, and is expected to
  be deprecated in favor of @moniker.

  Related Topics: ansi(), ANSI CODES, @moniker, moniker().

& @CONFORMAT
@CONFORMAT

  COMMAND: @conformat <object> [=<format>]

  Replaces the usual "Contents:" or "Carrying:" format when an object
  is looked at, by a player-specified contents format. This is evaluated
  as if it were a description or other similar message on the room.
  The objects that the looker would normally be able to see is passed
  as a dbref list in %0; all contents can be acquired through 'lcon(me)'.
  The contents name is passed in %1.

  One could change the format to 'Contents: Object1 Object2 Object3'
  through '@conformat here = %1 [iter(%0,name(##))]',
  for example. More complex things are possible.

  Related Topics: @exitformat, @nameformat

& @COST
@COST

  COMMAND:   @cost <object> = <amount>
  ATTRIBUTE: Cost

  Sets the number of coins that need to be given to an object to trigger the
  Pay, Opay, and Apay attributes.  If the object is given more than this
  amount, the excess is returned to the giver, while if less than this amount
  is given the entire amount is returned, a snide message is sent to the
  giver, and the Apay, Opay, and Pay attributes are not used.

  This attribute is only meaningful for things, and will never be
  automatically triggered on other object types.

  Example: @cost Coke machine = 25

  Related Topics: give, @apay, @opay, @pay.

& @CPATTR
@CPATTR

  @cpattr <obj>/<attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]
  @cpattr <obj>/<attr> = <obj1> [,<obj2>,<obj3>,...]
  @cpattr <attr> = <obj1>/<attr1> [,<obj2>/<attr2>,<obj3>/<attr3>,...]
  @cpattr <attr> = <obj1> [,<obj2>,<obj3>,...]

  The first form of this command is used to copy <attr> on <obj> to the
  object-attribute pairs in a comma-separated list. For example:

  @cpattr test/va = test/vb, cube/va, tribble/foo

  would copy the VA attribute from object "test" to VB on "test",
  VA on "cube", and FOO on "tribble".  <objN> is matched as if
  you were performing a @set on it.

  The second form copies <attr> to the list of objects, with the name
  <attr>. The third form copies <attr> from the object that executes the
  @cpattr, to the object-attribute pairs in the list. Finally, the fourth
  form copies <attr> from the object that executes the @cpattr to the
  objects in the list, with the name <attr>.

& @CPFLAGS
@CPFLAGS

  COMMAND: @cpflags <channel>=[!]flag

  Sets player flags for that channel. The flag can be one of: join, transmit
  or receive.

    transmit   Whether a player can broadcast (speak) over the channel.
    join       Whether a player can join the channel.
    receive    Whether a player can receive messages over the channel.

  NOTE: Flags must be lower case.

  If it is !flag, then that flag is reset. Channel flags ALWAYS override
  locks on channel objects.

  Example:
    > @cpflags Public=join
    @coflags: Set.

  Related Topics: @coflags, @clist, CHANNEL OBJECT.

& @CREATE
@CREATE

  COMMAND: @create <name> [=<cost>]

  Creates a thing with the specified name.  Creation costs either <cost>
  or 10 coins, whichever is greater. The value of a thing is proportional
  to its cost, specifically, value=(cost/5)-1.  The value may not be greater
  than 100, values that would be greater than 100 are rounded down to 100.

  Related Topics: @destroy, OBJECT TYPES

& @CSET
@CSET

  COMMAND: @cset/<option> <channel>[=<value>]

  Changes the way a channel behaves. <option> can be one of the
  following:

    public  - channel is listed in everyone's @clist.
    private - channel is hidden from the @clist.
    loud    - channel announces player connects/disconnects.
    mute    - shuts connects/disconnects off.
    quiet   - same as mute.
    spoof   - allows the comtitle to replace the player's name.
    anon    - same as spoof.
    nospoof - channel will append the player's name to the comtitle.
    header  - Changes the prefix text used to announce a channel emit to
              <value>. <value> may contain color.
    object  - Sets the channel object to <value>. You must create an object
              before associating a channel with it.
    log     - Sets the maximum number of channel messages to log.
              The channel must have an object.

  You can set a description for the channel by changing the description
  of the channel object. Also, the channel object's lock will be used
  to check to see if people should be able to join the channel or not.

  Examples:
    > @cset/public Public
    @cset: Channel Public placed on the public listings.
    > @cset/object Public=#5
    Channel Public is now using Garou Channel Object(#5) as channel object.

  Related Topics: CHANNEL OBJECT, @ccreate, @create

& @CWHO
@CWHO

  COMMAND: @cwho <channel>[/all]

  For channels that you own, identifies all connected players on the channel
  and their stats for the channel. If switch is /all, then it also displays
  unconnected players.

  Example:
    > @cwho Public/all
    Name Status Player
    Beowulf on yes
    Ronan on yes

  Related Topics: @clist.

& @DAILY
@DAILY

  COMMAND:   @daily <object>=<command-list>
  ATTRIBUTE: Daily

  This attribute is automatically triggered once per day. No guarantees are
  made as to what time it will execute.

& @DECOMPILE
@DECOMPILE

  COMMAND: @decompile[/dbref] <thing>[/attr] [=<newname>]

  Dumps the sequence of commands you would have to type to clone <thing>.
  This is handy for saving your objects in a text file in case the MUX dies
  a horrible death, or for moving your pride-and-joy creation from one MUX
  to another.  @decompile works on all object types.
  If you specify <newname>, then the commands emitted will set attributes,
  locks, and flags on an object named <newname> and will omit the command
  to create the object.
  If you specify <thing>/<attr>, <attr> accepts wildcards.
  If you specify the /dbref switch, you will get output using the dbref
  number instead of the object name.

  Related Topics: examine, look.

& @DESCRIBE
@DESCRIBE

  COMMAND:   @describe <object> = <description>
  ATTRIBUTE: Desc

  Sets the description for <object>, which others see when they look at the
  object.  Giving all your objects, rooms, and exits good descriptions is
  considered to be good building practice.

  Function references and %-substitutions are allowed in descriptions, and
  are evaluated when someone looks at the object.  In function references,
  'me' refers to the object being looked at, while %-substitutions that refer
  to the enactor (such as %n, %#, %p, etc) refer to the looker.

  Examples:
    <object> @desc vase = You see a delicate Ming vase.
    <exit>   @desc elevator = There is an elevator to the east.

  Related Topics: look, @adescribe, @odescribe.

& @DESCFORMAT
@DESCFORMAT

  COMMAND: @descformat <object> [=<format>]

  Normally, the description of an object is controlled by the content and
  formatting found in the DESCRIBE attribute.  With the WOD_REALMS package
  enabled, DESCRIBE can be substituted in favor of other attributes.

  However, in all cases, @descformat provides one final pass over the
  appearance of an object.  The evaluated description text is passed as %0,
  and the attribute name where this text can be found is passed as %1.  The
  unevaluated description can be acquired using v(%1).

  This is useful to achieve a consistent 'look' using room parents.

  Related Topics: @conformat, @exitformat, @nameformat.

& @DESTROY
@DESTROY

  COMMAND: @destroy[/<switches>] <object>

  This command destroys <object> and refunds its cost of creation to its
  owner.  You must own <object> in order to @destroy it, unless its
  DESTROY_OK flag is set, in which case anyone holding it may @destroy it.
  Rooms, exits, and objects may be destroyed, although the actual
  destruction of rooms is delayed for up to ten minutes and the GOING flag
  is set on the victim room.  Clearing the GOING flag on the room spares it
  from destruction.

  If a thing OR its owner is set DESTROY_OK, the thing will be destroyed
  with no delay. This can also be performed with the /instant switch.

  The @destroy command will not destroy objects with the SAFE flag set unless
  the /override switch is specified.  The DESTROY_OK flag overrides the
  protection given by the SAFE flag.

  The following switches are available:
    /override  - Negate protection offered by the SAFE flag.
    /instant   - Destroy with no delay.

  Related Topics: DESTROY_OK, SAFE.

& @DFAIL
@DFAIL

  COMMAND:   @dfail <object> = <message>
  ATTRIBUTE: Dfail

  Sets the message that a player sees when he tries to drop the object but
  fails because he didn't pass the object's drop lock.

  Function references and %-substitutions are allowed in drop failure
  messages, and are evaluated when someone drops the object.  In function
  references, 'me' refers to the object being dropped, while %-substitutions
  that refer to the enactor (such as %n, %#, %p, etc) refer to the dropper.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @dfail sword = The sword has welded itself to your hand.

  Related Topics: drop, @adfail, @odfail, @lock.

& @DIG
@DIG

  COMMAND: @dig[/<switches>] <name> [= <exitlist> [, <exitlist>] ]

  Creates a new room with the specified name and displays its number. This
  command costs 10 coins. If the [= <exitlist>] option is used, an exit will
  be opened from the current room to the new room automatically.  If the
  second <exitlist> option (after the comma) is specified, an exit from the
  new room back to the current room with the specified [Exits] name is
  opened.  Either exit creation may fail if you do not have sufficient
  rights to the current room to open or link the new exit.
  Example: The command

     @dig Kitchen = Kitchen;k;north;n,south;s

  will dig a room called Kitchen, and open an exit called 'Kitchen' in your
  current room.  The ; symbol means that you may enter the exit by typing
  'k', 'north' or 'n' also.  This command also opens the exit 'south;s' from
  'Kitchen' back to where you are.  Only the first Exit name is displayed in
  the Obvious exits list.

  If you specify the /teleport switch, then you are @teleported to the
  room after it is created and any exits are opened.

  Related Topics: @destroy, @link, @open, LINKING, OBJECT TYPES.

& @DOING
@DOING

  COMMAND: @doing[/<switches>] [<message>]

  Sets your DOING message, which appears after your name in the WHO
  report.

  The following switches are available:

    /poll             - Displays the current poll message from the WHO report.
    /header <message> - Sets a new poll message in the WHO report.
    /unique           - Only set DOING message for the current connection.
    /quiet            - Suppress 'Set.' notification message.

  Related Topics: WHO, @poll.

& @DOLIST
@DOLIST

  COMMAND: @dolist[/<switch>] [<delimiter>] <list>=<action>

  <list> is a list of strings, which can be object numbers, attributes, or
  arbitrary words.  <action> is a command to perform once for each item in
  <list>, replacing the special symbol ## with the corresponding item from
  <list>, and the symbol #@ with the position in the list, starting with
  one. By default, @dolist considers each item in <list> to be separated
  with spaces. If you specify the /delimit switch, then each item is
  considered to be separated by <delimiter>. <delimiter> must be a single
  character.

  If present, <switch> can be any of:
    /space   - (Default) List elements are separated by spaces.
    /delimit - List elements are separated by <delimiter>.
    /notify  - Queues a '@notify' after all commands in the list.

  This command is particularly handy with lcon() and lexits(). A few examples:

    @dolist [lcon(here)] = "[name(##)](##)
    @dolist [lcon(here)] = @switch [get(##/last)]=*1990*,"[name(##)]
    @va me = va vb vc
    @dolist [get(me/va)] = @emit [get(me/##)]
    @dolist Frodo Bilbo Gandalf = page ## = HELP!!!!  I've fallen into a pit.
    @dolist/delimit , {Frodo, Bilbo Baggins, Gandalf} = page ## = HELP!!!!
    @wait me="This is a semaphore.
    @dolist/notify lnum(3)=say ##
    > You say, "This is a semaphore."
    > You say, "0"
    > You say, "1"
    > You say, "2"

  Related Topics: iter(), parse(), @notify, SEMAPHORES.

& @DRAIN
@DRAIN

  COMMAND: @drain <object>

  Discards all commands waiting on the semaphore <object> and resets the
  semaphore to its initial state.

  Related Topics: @notify, @ps, SEMAPHORES

& @DROP
@DROP

  COMMAND:   @drop <object> = <message>
  ATTRIBUTE: Drop

  Sets the message that a player sees when he drops the object, or after he
  goes through the exit.

  Function references and %-substitutions are allowed in drop messages, and
  are evaluated when someone drops the object.  In function references,
  'me' refers to the object being dropped, while %-substitutions that refer
  to the enactor (such as %n, %#, %p, etc) refer to the dropper.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Examples: <object> @drop vase = You gently put down the delicate vase.
            <exit>   @drop elevator = The elevator doors close behind you.

  Related Topics: drop, @adrop, @odrop, DROP-TO, EXITS.

& @EALIAS
@EALIAS

  COMMAND:   @ealias <object> = <entrance-list>
  ATTRIBUTE: Ealias

  Sets up a set of alternate commands that may be used as synonyms for the
  command 'enter <object>' when you are in the same location as the object.
  The alternate commands are separated by semicolons just like in exit names.

  Entry aliases are checked after exit names, built-in MUX commands, and leave
  aliases for the current location, but before $-commands.  If more than one
  object has an entry alias that matches a player's command, the one on the
  object that occurs first in the location contents list is used.

  This attribute is meaningful for players and things, and will never be
  automatically looked at on rooms or exits.

  Example: @ealias car = get in car; car; climb in; go for a ride

  Related Topics: @lalias, enter, leave.

& @EDIT
@EDIT

  COMMAND: @edit <object>/<wild-attr> = <search>,<replace>
           @edit <object>/<wild-attr> = ^,<text>
           @edit <object>/<wild-attr> = $,<text>

  This command edits the contents of one or more attributes of an object,
  eliminating the need to retype a long attribute in order to make a simple
  change.  In the first form, all occurrences of <search> in the specified
  attribute of the named object are replaced with <replace>.  Use curly
  braces ({ and }) around <search> or <replace> if they contain commas.
  The second and third form prepend and append <text> to the selected
  attributes, respectively.

  If <wild-attr> contains wildcard characters, then all attributes that
  match are edited.

& @EFAIL
@EFAIL

  COMMAND:   @efail <object> = <command-list>
  ATTRIBUTE: Efail

  Sets the message that a player sees when he tries to enter the object but
  fails because the object is not ENTER_OK or the player fails the
  object's enter lock.

  Function references and %-substitutions are allowed in efail messages, and
  are evaluated when someone fails to enter the object.  In function
  references, 'me' refers to the object that the enactor tried to enter, while
  %-substitutions that refer to the enactor (such as %n, %#, %p, etc) refer to
  the player who tried (and failed) to enter.

  The enter lock only affects the 'enter' command and its aliases (set via
  the @ealias command), it does not affect exits that lead to the object or
  teleporting in.

  This attribute is meaningful for players and things, and will never be
  automatically triggered on rooms or exits.

  Example: @efail car = The car's door is locked.

  Related Topics: @aefail, @aenter, @ealias, @enter, @oefail, @oenter, enter,
      ENTER_OK.

& @EMAIL
@EMAIL

  COMMAND: @email <address>[/<subject>]=<body>

  Sends an E-mail to <address> containing given <body>.  The default subject
  is controller by the mail_subject configuration option, but <subject>, if
  given, overrides the default.

  This command will not work unless configured properly.  See configuration
  options in wizhelp.

  Related Topics: mail_server, mail_ehlo, mail_sendaddr, mail_sendname,
                  mail_subject

& @EMIT
@EMIT

  COMMAND: @emit[/<switches>] <message>

  Sends <message> to everyone in your current location without prefixing it by
  your character name.  You can also send the message to everyone in the room
  that contains the object you are inside with the /room switch.

  The following switches are available:

     /here  - Sends the message to everyone in the same location as you.
     /html  - Sends the message to HTML-flags players.
     /room  - Sends the message to everyone in the room that contains the
             object you are in.  Starting from your location, this switch
             'leaves' objects until it reaches a room, and @emits the message
             there.

  If both switches are specified, the message is sent to both places.  If
  neither is specified, /here is assumed.

  Some MUXes may restrict the use of this command.

  Related Topics: @femit, @oemit, @pemit, @npemit, @remit, SPOOFING.

& @ENTER
@ENTER

  COMMAND:   @enter <object> = <message>
  ATTRIBUTE: Enter

  Sets the message that a player sees when entering an object or room,
  whether by using an exit, the enter or leave commands, or by teleporting.

  Function references and %-substitutions are allowed in enter messages, and
  are evaluated when someone enters the object.  In function references,
  'me' refers to the object being entered, while %-substitutions that refer
  to the enactor (such as %n, %#, %p, etc) refer to the player entering the
  object.

  This attribute is meaningful for players, things, and rooms, and will never
  be automatically triggered on exits.

  Example: @enter car = You climb into the car and buckle your seat belt.

  Related Topics: enter, @aenter, @oenter, ENTER_OK.

& @ENTRANCES
@ENTRANCES

  COMMAND: @entrances [[<object>][,<low>[,<high>]]]

  Lists links from elsewhere to the specified object (default: your current
  room).  For rooms, exits and drop-to's, leading to the room and players
  and objects whose home is in the room are listed.  For players and objects,
  lists exits leading to them.  Because this command is computationally
  expensive, it costs 100 coins.  <low> and <high> can be used to indicate
  where to start and stop the search, respectively.

  Examples:
    > @entrances             <- all links to here
    > @entrances object      <- all links to object
    > @entrances ,100,200    <- all links to here from #100 to #200
    > @entrances me,1000     <- all links to me from #1000 and above.

  Related Topics: @link, @unlink.

& @EXITFORMAT
@EXITFORMAT

  COMMAND: @exitformat <object> [=<format>]

  Replaces the usual "Obvious Exits:" format when an object is looked
  at, by a player-specified exits format. This is evaluated as if it
  were a description or similar message on the room.  The objects that
  the looker would normally be able to see is passed as a dbref list
  in %0; all exits can be acquired through 'lexits(me)'.

  One could change the format to 'Exits: Exit1 Exit2 Exit3' through
  '@exitformat here = Exits: [iter(%0,name(##))]', for example.

  Related Topics: @conformat, @nameformat

& @EXITTO
@EXITTO

  COMMAND:   @exitto <object> = <dbref function>
  ATTRIBUTE: Exitto

  This attribute is used to create variable exits.  If an @exitto is present
  on an exit, and the <dbref function> returns a number or a dbref, the exit
  behaves as if the returned dbref is the exit's destination.

  Because this can be used to go anywhere, @exitto is a wizard-only
  attribute.

  Even though @exitto take precedence over the static destination of an exit,
  don't forget to @link all exits anyway.  Anyone can @link an unlinked exit
  and therefore 'own' and @destroy it.

  Example:
    > @open FooExit
    Opened.
    > @exitto FooExit=#123
    Set.
    > FooExit
    Room123(#123)

  Related Topics: EXITS.

& @FAIL
@FAIL

  COMMAND:   @fail <object> = <message>
  ATTRIBUTE: Fail

  Sets the failure message for <object>.  This message is seen by the actor
  when one of these events occurs:

    - For exits: Someone tries to traverse the exit but cannot because they
      fail the exit's default lock or the exit is not linked.
    - For players and things: Someone tries to pick up the object but cannot
      because they fail the object's default lock.
    - For rooms, players, and things: Someone looks around inside the room,
      player, or thing and fails the object's default lock.

  Substitution and evaluation is performed on the message before it is shown.

  Example:
    > @fail table = It's too heavy to lift!                            <thing>
    > @fail doorway = The doorknob does not turn.                       <exit>

  Related Topics: get, @afail, @ofail, FAILURE.

& @FEMIT
@FEMIT

  COMMAND: @femit[/<switches>] <object>=<message>

  Forces <object> to emit <message>.  This command is similar to the command
  '@force <object> = @emit <message>', except that it will work so long as
  you own the object, whereas @force may fail if the object has its INHERIT
  flag set and the object performing the @force does not.

  The following switches are available:
     /here  - Sends the message to everyone in the same location as <object>.
     /room  - Sends the message to everyone in the room that contains the
              object that <object> is in.  Starting from your location, this
              switch 'leaves' objects until it reaches a room, and @emits the
              message there.

  If both switches are specified, the message is sent to both places.  If
  neither is specified, /here is assumed.

  Some MUXes may restrict the use of this command.

  Related Topics: @remit, @emit, @fpose, @fsay, INHERIT, SPOOFING.

& @FILTER
@FILTER

  COMMAND:   @filter <object> = <pattern>[, <pattern>...]
  ATTRIBUTE: Filter

  This attribute specifies a series of patterns to be used to suppress
  text normally forwarded by the AUDIBLE flag.  If the desired pattern
  contains a comma, the pattern may be enclosed in curly braces {}.

  Example:
    > @fo test=out
    > @set #378=puppet
    test> test grows ears and can now hear.
    > @filter out = {* has arrived.},{* has left.}
    Set.
    > :has not arrived.
    Wizard has not arrived.
    test> From a distance, Wizard has not arrived.
    > :has arrived.
    Wizard has arrived.

  Related Topics:  AUDIBLE, @forwardlist, @infilter, @inprefix, @prefix.

& @FIND
@FIND

  COMMAND: @find <name>[,<low>[,<high>]]

  Displays the name and number of every room, thing, or player that you
  control whose name matches <name>. Because the command is computationally
  expensive, it costs 100 coins.

  <low> and <high> may be used to restrict the range of objects that are
  searched, if they are given then the search starts at object #<low> and ends
  at object #<high>.

  Examples:
    > @find Lost Room
    > @find Secret Device,12000,14000

  Related Topics: @search.

& @FORCE
@FORCE

  COMMAND: @force <player/object>=<command>

  Forces the game to act as though <player/object> had entered <command>.
  You may only force objects that you control.  Objects may not force players
  unless either the object or the player has their INHERIT flag set, and
  objects that do not have their INHERIT flag set may not force objects that
  do.  If the victim is specified by number, you may use an alternate form
  of the command, '#<number> <command>'.

  Related Topics: puppets.

& @FORWARDLIST
@FORWARDLIST

  COMMAND:   @forwardlist <object> = <dbref-list>
  ATTRIBUTE: Forwardlist

  Specifies a list of locations (specified by their db numbers) that are to
  receive messages heard by <object> (filtered by the @filter attribute and
  prefixed by the @prefix attribute).  The messages are only forwarded if
  <object> has its AUDIBLE flag set.

  Related Topics: @filter, @prefix, AUDIBLE.

& @FPOSE
@FPOSE

  COMMAND: @fpose[/<switches>] <object>=<message>

  Forces <object> to pose <message>.  This command is similar to the command
  '@force <object> = :<message>', except that it will work so long as you
  own the object, whereas @force may fail if the object has its INHERIT flag
  set and the object performing the @force does not.

  The following switches are available:
     /default - (default) Put a space between the name of the object and
                the message (ie, send '<name> <message>').
     /nospace - Don't put a space between the name of the object and the
                message (ie, send '<name><message>').

  Related Topics: @femit, @fsay, pose, :, ;, INHERIT.

& @FSAY
@FSAY

  COMMAND: @fsay <object>=<message>

  Forces <object> to say <message>.  This command is similar to the command
  '@force <object> = say <message>', except that it will work so long as you
  own the object, whereas @force may fail if the object has its INHERIT flag
  set and the object performing the @force does not.

  Related Topics: @femit, @fpose, INHERIT, say.

& @GFAIL
@GFAIL

  COMMAND:   @gfail <object> = <message>
  ATTRIBUTE: Gfail

  Sets the message that a player sees when he tries to give away the object
  but fails because he didn't pass the object's give lock.

  Function references and %-substitutions are allowed in give failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the object being given away, while
  %-substitutions that refer to the enactor (such as %n, %#, %p, etc) refer
  to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail sword = You can't give away a cursed sword!

  Related Topics: give, @agfail, @ogfail, @lock.

& @HALT
@HALT

  COMMAND: @halt [<object>]

  Halts all commands being run by <object>, or by the object running the
  command if no <object> is given.  If the object to be halted is a player,
  then all commands being run by objects owned by that player are halted.
  Use this command to stop runaway objects and infinite loops.
  The process of halting an object involves removing all commands waiting
  to be run by the object from the queue and refunding the queue deposit.
  Halting an object does not affect commands waiting on it as a semaphore.

  Related Topics: @drain, @notify, kill, HALTED, SEMAPHORES.

& @HTDESC
@HTDESC

  COMMAND: @htdesc <object> = <message>
  ATTRIBUTE: HTDesc

  Sets the HTML description for <object> to be shown when a player with the
  HTML flag looks at the object. If there is no HTDesc set, then the player
  is shown the regular description from Desc.

  You may place regular, raw HTML in the @htdesc, however if you do so you
  should set the HTML flag on the object. Without the flag any '<' characters
  are translated to '&lt;' and any '>' are translated to '&gt;'. If this
  occurs, the browser will display the '<' and '>' characters instead of
  handling them as HTML tags.

  Functions and %-substitutions are evaluated in this attribute.

  Example:
    > @htdesc me=<IMG SRC="http://www.fakeserver.com/image.png">
    > @set me/htdesc = html

  See also: PUEBLO, @set, HTML

& @IDESC
@IDESC

  COMMAND:   @idesc <object> = <message>
  ATTRIBUTE: Idesc

  Sets the internal description for <object>.  The internal description of an
  object will be shown to any player entering it.  If not set, the regular
  description in the Desc attribute is shown instead.

  Function references and %-substitutions are allowed in inside descriptions,
  and are evaluated when someone fails to get or look at the object.  In
  function references, 'me' refers to the object being looked at, while
  %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the player doing the looking.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @idesc car = You are sitting in the driver's seat of a Volkswagen
                        Beetle.

  Related Topics: enter, @describe, ENTER_OK.

& @IDLE
@IDLE

  COMMAND:   @idle <object> = <message>
  ATTRIBUTE: Idle

  This attribute is sent as a message to anyone who successfully pages you.
  It can be used to tell someone who pages you when you will return
  (if you are going to be away for a while).

  This attribute is only meaningful for players, and will never be
  automatically referenced on other object types.

  If an @idletimeout is set on the person being paged, you will only see
  the @idle message if that person is more idle than the specified amount
  of time.

  Example: @idle me = At dinner.  Back about 7PM.

  Related Topics: @away, @idletimeout, @reject, page.

& @IDLETIMEOUT
@IDLETIMEOUT

  COMMAND:   @idletimeout <object> = <seconds>
  ATTRIBUTE: IdleTimeout

  This attribute is used to determine if your @idle message is sent to
  a player who successfully pages you.
  If you're online and working at the same time, you can set the minimum
  idle time to allow your message to show. so whilst you're not idle your
  @idle message will not show without you having to delete it to hide it.

  This attribute is only meaningful for players, and will never be
  automatically referenced on other object types.

  Example: @idle me = Working IRL. Monitoring this window from time to time.
           @idletimeout me = 60

  Related Topics: @away, @idle, @reject, page.

& @IFELSE
@IF

  COMMAND: @if <string>=<true>[,<false>]

  Checks if <string> evaluates to a true value. If so, the command <true>
  is performed. If not, <false> is (if present).
  This command can also be called as @ifelse.

  Examples:
    > think money(me)
    150
    > @if [gte(money(me),1)]=say I have money., say I'm broke!
    You say, "I have money."

  Related topics: @switch, ifelse(), switch().

& @INFILTER
@INFILTER

  COMMAND:   @infilter <object> = <pattern>[, <pattern>...]
  ATTRIBUTE: Infilter

  This attribute specifies a series of patterns to be used to suppress
  text normally sent to the contents of <object> by @listen.  If the desired
  pattern contains a comma, the pattern may be enclosed in curly braces {}.

  Example:
    > @listen sports car=*
    > @fo test=enter sports car
    test has left.
    test> Sports Car(#383Q)
    > :waves.
    test> Wizard waves.
    Wizard waves.
    > @infilter sports = *waves*
    > :waves.
    Wizard waves.
    > :knocks on the window.
    test> Wizard knocks on the window.
    Wizard knocks on the window.

  Related Topics: @filter, @inprefix, @listen, @prefix.

& @INPREFIX
@INPREFIX

  COMMAND:   @inprefix <object> = <prefix text>
  ATTRIBUTE: Inprefix

  This attribute, when set, will prefix all text that is sent to the contents
  of <object> by @listen.  The default is to have no prefix, the text is
  forwarded unadorned.

  Example:
    > @listen sports car=*
    > @fo test=enter sports car
    test has left.
    test> Sports Car(#383Q)
    > :waves.
    test> Wizard waves.
    Wizard waves.
    > @inprefix sports car = In the mundane world outside,
    test> In the mundane world outside, Wizard waves some more.
    Wizard waves some more.

  Related Topics: @filter, @infilter, @listen, @prefix.

& @KILL
@KILL

  COMMAND:   @kill <object> = <message>
  ATTRIBUTE: Kill

  This command sets the message that is shown to anyone who kills <object>.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Function references and %-substitutions are allowed in kill messages, and
  are evaluated when someone kills the object.  In function references, 'me'
  refers to the object that was killed, while %-substitutions that refer to
  the enactor (such as %n, %#, %p, etc) refer to the player doing the killing.

  Example: @kill guard = The guard says "I'll get.. you... for... this... %n"
                         as he falls down and dies.

  Related Topics: kill, @akill, @okill, BEING KILLED, IMMORTAL, WIZARD.

& @LALIAS
@LALIAS

  COMMAND:   @lalias <object> = <entrance-list>
  ATTRIBUTE: Lalias

  Sets up a set of alternate commands that may be used as synonyms for the
  command 'leave' when you are inside a player or a thing.  The alternate
  commands are separated by semicolons just like in exit names.

  Leave aliases are checked after exit names and built-in MUX commands but
  before enter aliases and $-commands.

  This attribute is meaningful for players and things, and will never be
  automatically looked at on rooms or exits.

  Example: @lalias car = get out;climb out;out;open door;outside

  Related Topics: @ealias, enter, leave.

& @LAST
@LAST

  COMMAND: @last <player>

  This command displays a short 'connection history' for <player>, showing
  recent successful and failed connection attempts, as well as the total
  number of successful and failed connections.
  You can only display information about yourself.

& @LEAD
@LEAD

  COMMAND:   @lead <object> = <message>
  ATTRIBUTE: Lead

  Sets the <message> seen by the object when it is lead.

  This attribute is only available if FIRANMUX is enabled.

  Related Topics: @alead, @olead.

& @LEAVE
@LEAVE

  COMMAND:   @leave <object> = <message>
  ATTRIBUTE: Leave

  Sets the message that a player sees when leaving an object or room, whether
  by using an exit, the enter or leave commands, or by teleporting.

  Function references and %-substitutions are allowed in leave messages, and
  are evaluated when someone leaves the object.  In function references,
  'me' refers to the object being left, while %-substitutions that refer
  to the enactor (such as %n, %#, %p, etc) refer to the player leaving the
  object.

  This attribute is meaningful for players, things, and rooms, and will never
  be automatically triggered on exits.

  Example: @leave car = You unbuckle your seat belt and climb out of the car.

  Related Topics: leave, @aleave, @oleave.

& @LFAIL
@LFAIL

  COMMAND:   @lfail <object> = <command-list>
  ATTRIBUTE: Lfail

  Sets the message that a player sees when he tries to leave it but fails
  because the player fails the object's leave lock.

  The leave lock only affects the 'leave' command and its aliases (set via
  the @ealias command), it does not affect going home, using an exit in the
  location, or teleporting out.

  This attribute is meaningful for players and things, and will never be
  automatically triggered on rooms or exits.

  Example: @lfail plane = You don't have a parachute!

  Related Topics: @aleave, @alfail, @lalias, @leave, @oleave, @olfail, leave.

& @LINK
@LINK

  COMMAND: @link <object>=#<number>/here/home

  When used on a player or a thing, this command sets the object's home
  to the indicated location.  The destination must be owned by you or be an
  ABODE room, and you must pass the destination's LinkLock.

  When used on a room, this command sets the room's drop-to, where objects
  dropped in the room go.  The destination must be a room that is either owned
  by you or is LINK_OK, and you must pass the destination's LinkLock.

  For exits, this command sets the destination if the exit is currently
  unlinked, you control the destination or it is set LINK_OK, and you pass the
  destination's LinkLock.  You can @link an unlinked exit regardless of who
  owns it or the lock set on it, you are made the owner if you successfully
  link to the destination.  Linking an exit costs 1 coin, and if the exit was
  owned by someone else, you also reimburse the former owner 1 coin
  (making the total cost to you 2 coins).

{ 'help @link2' for more }

& @LINK2
@LINK (continued)

  Note that in all the above cases that it is the player performing the @link
  command that must pass the LinkLock, not the object being linked.
  Therefore, you should use the '$' lock qualifier if you want to prevent
  specific players from linking to your LINK_OK locations, as simply locking
  against '*<playername>' does not lock out their puppets.

  Related Topics: @dig, @open, @unlink, DROP-TOS, HOMES, LINKING, OBJECT TYPES.

& @LIST
@LIST

  COMMAND: @list [<option>]

  Lists information from internal databases.  Information is available
  about the following options:
    attributes      - Valid object attributes.
    commands        - Commands that you may use (excluding the
                      attribute-setting commands as well as any exits, and
                      $-commands available).
    costs           - Lists the costs associated with many commands and
                      actions.
    default_flags   - Lists the flags that new objects receive by default
                      when created.
    flags           - Lists the name and letter of all the flags.
    functions       - Lists all the available functions.
    options         - Lists several global options and limits.
    powers          - Lists all powers.
    switches        - Lists what commands support switches and the switches
                      that they do support.
  The information provided by the @list command is definitive, as it reads
  the internal tables to produce the information it displays.  Specifying
  @list with no argument lists the options you may use.

& @LISTEN
@LISTEN

  COMMAND:   @listen <object> = <string>
  ATTRIBUTE: Listen

  This attribute contains a wildcard pattern that the object listens for.
  Anything spoken, posed, emitted, or whispered in the room that <object> is
  in, as well as messages resulting from using objects (such as Opay and Succ
  messages) are checked against the Listen attribute.  When the object hears
  something that matches the pattern, it triggers the Ahear attribute, as
  well as either the Amhear or Aahear attributes, as appropriate,
  substituting %0 the string that matched the first wildcard character in the
  Listen, %1 for the second. etc.  If the pattern in the Listen attribute is
  matched, objects in <object>'s inventory will also hear the message and
  have a chance to match it.  Objects whose Listen attribute is set to
  anything will be listed when a @sweep command is run by someone in the
  same room.

  If the @listen pattern is matched, then the object's contents will
  hear the message also, prefixed by the text in @inprefix if it is set.  Any
  text that matches any pattern specified in @infilter will not be sent to
  the contents.

  Example: @listen camera = * has arrived.
           @ahear camera = @va me = %va %0

  Related Topics: @aahear, @ahear, @amhear, @sweep, @inprefix, @infilter.

& @LISTMOTD
@LISTMOTD

  COMMAND: @listmotd

  Displays the current message-of-the-day.  Note that it is displayed when
  you connect to your character. This will also display the "motd.txt" file.

& @LOCK
@LOCK

  COMMAND: @lock[/<whichlock>] <object>=<key>
           @lock <object>/<attrib>

  The first form locks <object> to a specific key(s).  Type 'help @lock keys'
  for a list of the keys you may use.

  <whichlock> indicates which lock you want to set on the object.  If you
  don't specify one, you set the Default lock. Type 'help @lock locks' for
  a list of the locks you may set and what they are used for.

  The second form locks the indicated attribute of the named object, so that
  when the object is @chowned, the attribute will remain owned by you.
  It may also be used when you own an attribute on an object that you do not
  own, in this case it prevents the object's owner from @chowning the
  attribute to himself, and prevents anyone from modifying or removing the
  attribute.

  Related Topics: @chown, @unlock, @lock keys, @lock locks

& @LOCK ATTRIBUTE
@LOCK ATTRIBUTE

  ATTRIBUTE LOCKS:

  Key: <attribute>:<pattern>
       +<attribute>:<wildcard-pattern>
       =<attribute>:<wildcard-pattern>

  You may lock on whether a specific attribute on the player attempting to
  pass the lock matches a pattern.  Example: '@lock thing=sex:m*' will lock
  thing to anyone whose sex starts with an M. Wild cards, greater than and
  less than may be used, for example: '@lock a-f=name:<g' will lock the exit
  a-f against any one whose name is higher than f.

  Both the player testing the lock and every object in his inventory is
  checked, the player passes the lock if any of those objects passes the lock.
  If the attribute name is prefixed by a = then only the player is checked.
  Similarly, if the attribute name is prefixed by a + then only objects in
  the player's inventory are tested.

{ 'help @lock attribute2' for more }

& @LOCK ATTRIBUTE2
@LOCK ATTRIBUTE (continued)

  Note: you may lock against any attribute, but the locked object must be
  able to read the attribute from the player attempting to pass the lock or
  the lock will fail.

  Examples:
    > @lock men's room=sex:m*
    > @lock a-f=name:<g
    > @lock post office=email:*@*

  Related Topics: ATTRIBUTE OWNERSHIP, @lock evaluation.

& @LOCK CARRY
@LOCK CARRY

  CARRY LOCKS:

  Key: +<object>

  You pass a carry lock if you are carrying the named object.

  Example:
    > @lock secret passage = +magic bus
    You can only traverse the secret passage if you are carrying the
    magic bus.  The bus cannot enter the passage on its own (perhaps
    when you are driving it).

  Related Topics: @lock is, @lock normal.

& @LOCK COMPOUND
@LOCK COMPOUND

  COMPOUND LOCKS:

  Key: <key> & <key>
       <key> | <key>
       !<key>
       ( <key> )

  You can make complex locks by combining keys with the logical AND and OR
  operators (& and ! respectively), or by using the NOT operator.  You
  may also group complex locks with parentheses.

  Examples:
    > @lock exit = me & !me
    An impossible lock, nothing can be both you and not you.

    > @lock message = me | *recipient
    Both you and the player recipient may get the message.

& @LOCK EVALUATION
@LOCK EVALUATION

  EVALUATION LOCKS:

  Key: <attribute>/<value>

  Evaluation locks let you evaluate one of your attributes and compare the
  result against a value stored in the lock.  The result must be an exact
  match (no wildcard-ing allowed, but upper-case and lower-case are considered
  to be the same).  When evaluating the attribute the enactor substitutions
  (%#/%n/etc) are replaced with information about the player trying to pass
  the lock, and 'me' and %! refer to the locked object or exit.

  If you call an indirect lock and the indirect lock is an evaluation lock
  (or is a compound lock that includes an evaluation lock), then the original
  lock object is checked for the attribute first, followed by the object that
  has the actual evaluation lock.  If there are multiple levels of indirection
  the intermediate locks are not checked.

{ 'help @lock evaluation2' for more }

& @LOCK EVALUATION2
@LOCK EVALUATION (continued)

  Examples:
    > @lock bank=checkmoney/1
    > &checkmoney bank=[gt(money(%#),5000)]
    Only people and objects with more than 5000 pennies may pass.
    Note: this lock requires wizard privileges to read the worth of other
    players.

    > @lock divisible_by_five_club = checkdiv/0
    > &checkdiv divisible_by_five_club = [mod(mid(%#,2,20),5)]
    Only objects whose db-number is divisible by 5 may pass.

  Related Topics: @lock attributes.

& @LOCK INDIRECT
@LOCK INDIRECT

  INDIRECT LOCKS:

  Key: @<object>

  You may reference the lock on another object and use the result of
  evaluating that other object's lock.    You pass an indirect lock if you
  pass the default lock on <object>.  This is especially useful if you
  have a large number of objects or exits that want to have the same lock,
  and you want to be able to update one object and have all the other
  locks change at the same time.

  <object> is searched for when you enter the @lock command and its
  database number is stored in the lock, so something like
  '@Lock north=@master.lock' is safe even if you are going to move master.lock
  to another location.

  Examples:
    > @lock master.lock = me
    > @lock north = @master.lock
    > @lock south = @master.lock
    North and south all reference the lock on master.lock, so you may change
    the lock on all three exits by changing master.lock.

  Related Topics: @lock normal.

& @LOCK IS
@LOCK IS

  IS LOCKS:

  Key: =<object>

  You pass an is lock only if you are the named object.

  Example:
    > @lock mystical highway = =magic bus
    Only the magic bus may travel down the mystical highway.  You cannot
    travel the highway if you are carrying the bus.

  Related Topics: @lock carry, @lock normal.

& @LOCK KEYS
@LOCK KEYS

  You may use the following keys when setting locks.  For information about
  a particular type of key, type 'help @lock <keytype>'.

  Key Type    Form in @Lock Command
  ----------  ------------------------------
  Normal      <object>
  Is          =<object>
  Carry       +<object>
  Ownership   $<object>
  Indirect    @<object>
  Attribute   <attribute>:<wildcard-pattern>
              +<attribute>:<wildcard-pattern>
              =<attribute>:<wildcard-pattern>
  Evaluation  <attribute>/<value>
  Compound    <key> & <key>
              <key> | <key>
              !<key>
              ( <key> )

& @LOCK LOCKS
@LOCK LOCKS

  You can set the following locks:

     DefaultLock:  Exits:          controls who may traverse the exit to
                                   its destination.
                   Rooms:          controls whether the player sees the SUCC
                                   or FAIL message for the room following the
                                   room description when looking at the room.
                   Players/Things: controls who may GET the object.
     EnterLock:    Players/Things: controls who may ENTER the object if the
                                   object is ENTER_OK. Also, the enter lock
                                   of an object being used as a Zone Master
                                   Object determines control of that zone.
     GetFromLock:  All but Exits:  controls who may gets things from a given
                                   location.
     GiveLock:     Players/Things: controls who may give the object.
     LeaveLock:    Players/Things: controls who may LEAVE the object.
     LinkLock:     All but Exits:  controls who may link to the location if the
                                   location is LINK_OK (for linking exits or
                                   setting drop-tos) or ABODE (for setting
                                   homes)
     MailLock:     Players:        controls who may @mail the player.
     OpenLock:     All but Exits:  controls who may open an exit.
     PageLock:     Players:        controls who may page the player.
     ParentLock:   All:            controls who may make @parent links to the
                                   object.
     ReceiveLock:  Players/Things: controls who may give things to the object.

{ 'help @lock locks2' for more }

& @LOCK LOCKS2
@LOCK LOCKS (continued)

     SpeechLock:   All but Exits:  controls who may speak in that location
                                   (only checked if AUDITORIUM flag is set
                                   on that location)
     TeloutLock:   All but Exits:  controls who may teleport out of the
                                   location.
     TportLock:    Rooms/Things:   controls who may teleport there if the
                                   location is JUMP_OK.
     UseLock:      All but Exits:  controls who may USE the object, GIVE the
                                   object money and have the PAY attributes
                                   run, have their messages heard and possibly
                                   acted on by LISTEN and AxHEAR, and invoke
                                   $-commands stored on the object.
     DropLock:     All but rooms:  controls who may drop that object.
     UserLock:     All:            Not used by MUX, is intended to be used
                                   in MUX programming where a user-defined
                                   lock is needed.

 Note: If a player fails the UseLock on a parent of an object being searched
 for $-commands, then the search for attributes stops and the parent chain is
 not searched further for matches.

& @LOCK NORMAL
@LOCK NORMAL

  NORMAL LOCKS:

  Key: <object>

  You pass a normal lock if you either are the named object or if you carry
  the named object.  <object> may be the name or #number of a thing,  a
  playername prefixed by an asterisk (*<playername>), 'me', or 'here'.

  Examples:
    > @lock treasure room = secret key
    > @lock private area = me

  Related Topics: @lock is, @lock carry.

& @LOCK OWNERSHIP
@LOCK OWNERSHIP

  OWNERSHIP LOCKS:

  Key: $<object>

  You pass an ownership lock if you have the same owner as <object>.

  Examples:
    > @lock mystuff=$me
    Only objects you own may use the mystuff exit.

    > @lock/page me = !$*TinyJerk
    Neither TinyJerk nor any of his objects may page you.

  Related Topics: @lock normal.

& @MAIL
@MAIL

  @mail[/<switches>] <player-list> = <subject>
  @mail[/<switches>] [<msg-list> [= <target>]]

  @mail invokes the built-in MUX mailer, which allows players to send
  and receive mail. Pronoun/function substitution is performed on
  any messages you may try to send.

  A <player-list> is a space-separated list of recipients, which may be:
        Player names (names with spaces in them should be put in double
                      quotes, ex: "Foo Bar")
        Player dbref #'s
        Message numbers to be replied to.
        A mix of the above, and mail aliases (see @malias)

  A <msg-list> is one of the following:
        A single msg # (ex: 3)
        A message range (ex: 2-5, -7, 3-)
        A sender (ex: *Hunger)
        An age of mail in days (ex: ~3 (exactly 3), <2, >1)
           "days" here means 24-hour periods from the current time.
        One of the following: "read", "unread", "cleared", "tagged", "urgent"
        For certain commands, "all".

  Related Topics:
    mail-sending    mail-reading     mail-folders      mail-other
    mail-admin      @malias          mail-reviewing    mail-examples

& @MAILSUCC
@MAILSUCC

  COMMAND:   @mailsucc <player> = <message>
  ATTRIBUTE: Mailsucc

  Sets a message to be displayed to the sender whenever <player> receives
  mail.

  Example:
    @mailsucc me=Thanks for the mail.

  Related Topics: @amail, @signature, @mail.

& @MALIAS
@MALIAS

  COMMAND: @malias

  This allows you to generate and maintain mailing lists with the mail
  system. All mail aliases start with '*', and are case-sensitive. (*dir is
  different than *Dir).  There are two kinds of mail aliases, Personal
  and Global. Global mailing lists are owned and maintained by the god (#1)
  char and are available for anyone to use.  Generally there will be
  *Wizards, *Admin, *Roleplay, and things of that nature.  Personal mailing
  aliases are mailing lists that you have defined with the @malias command.
  Currently there is no limit to the number of people you can have on a
  mailing alias.

  To begin sending mail to a mailing list, use @mail *<alias>=subject.

  Usage:

  @malias                   Displays a list of all mail aliases.
  @malias *<alias>          Displays a list of people on that alias.
  @malias *<alias>=<list>   Creates that mailing list, using <list>.

{ 'help @malias2' for more }

& @MALIAS2
@MALIAS (continued)

  You can add, remove, rename, chown, redescribe, and delete mailing lists
  with a switch.

  @malias/remove *<alias>=<player>     Removes <player> from *<alias>.
  @malias/desc *<alias>=<description>  Changes the description for *<alias>.
  @malias/add *<alias>=<player>        Adds <player> to *<alias>.
  @malias/rename *<alias>=<name>       Renames that alias. Names must always
                                       begin with '*'.
  @malias/delete *<alias>              Deletes <alias>.
  @malias/chown *<alias>=<player>      Changes the owner of <alias> to
                                       <player>.

  Wizards can use all of the malias commands on any mail alias. Instead of
  trying to figure out different mailing lists with the same name, wizards
  may use #<MALIAS NUMBER> instead of *alias in regards to the command.
  Remember that the alias commands will only recognize aliases owned by #1,
  owned by you, or by number.

  @malias/list                         When invoked by a wizard, it will
                                       list all mailing aliases currently
                                       defined by their number.

& @MFAIL
@MFAIL

  COMMAND:   @mfail <object> = <message>
  ATTRIBUTE: Mfail

  This attribute is sent as a message to anyone who tries to @mail you but you
  have prevented them via your @mail lock (@lock/mail).

  Example: @mfail me = I _told_ you not to @mail me anymore...

  Related Topics: @lock, @mail, @reject.

& @MONIKER
@MONIKER

  Command: @moniker <object> = <string>
  Attribute: Moniker

  The @moniker command allows you to set accented, multi-color names for
  an item.  This affects contents, inventories, the normal 'look', and
  many other cases.

  The name in @moniker MUST match the name returned by name() minus ANSI
  codes and accent marks or the moniker is ignored in favor of name().

  Examples:
    > @name object=99 Red Balloons
    Name set.
    > @moniker object=99 [ansi(hr,Red)] Baboons
    String entered must match name of target, '99 Red Balloons'.
    > @moniker object=99 [ansi(hr,Red)] Balloons
    Ansi string entered for 99 Red Balloons of '99 Red Balloons'.

  Related Topics: accent(), ansi(), chr(), moniker(), @name, NOACCENT, ord(),
                  stripaccents(), and stripansi().

& @MOVE
@MOVE

  COMMAND:   @move <object> = <message>
  ATTRIBUTE: Move

  Sets the <message> that an object sees after it moves from one location to
  another, whether by using an exit, entering or leaving an object,
  teleporting, or going home.

  This attribute is meaningful for players, and things and will never be
  automatically triggered on other object types.

  Example: @move bopper = OK.  You're there now.

  Related Topics: @amove, @omove.

& @MVATTR
@MVATTR

  COMMAND: @mvattr <object>=<old>,<new>[,<copy1>]...

  This command moves attributes around on an object.  The attribute <old> is
  renamed <new> (and is copied to <copy1>, <copy2> and so on if specified).
  If you cannot modify the <old> attribute (for instance if you are trying to
  move the Last attribute, or if it were owned by another player), then a new
  copy is made and the original is not removed.

  Related Topics: @set.

& @NAME
@NAME

  COMMAND: @name <object> = <new name>

  Changes the name of <object>.  <object> can be a thing, player, exit, or
  room, specified as <name> or #<dbref> or 'me' or 'here'.

  See '@list options' as to whether or not a player name may contain
  spaces.

& @NAMEFORMAT
@NAMEFORMAT

  COMMAND: @nameformat <object> [=<format>]

  By default, when an object is looked at, the object's name is shown.  And,
  if you can link to the object, its flag letters and dbref are also shown. 
  
  With @nameformat, you can control exactly what is shown to people who
  use 'look' while inside.  @nameformat is not used when people outside the
  object look at it.

  Related Topics: @conformat, @descformat, @exitformat

& @NEMIT
@NEMIT

  COMMAND: @nemit[/<switches>] <message>

  Sends <message> to everyone in your current location without prefixing it by
  your character name and without evaluating it.  You can also send the
  message to everyone in the room that contains the object you are inside with
  the /room switch.

  The following switches are available:

     /here  - Sends the message to everyone in the same location as you.
     /html  - Sends the message to HTML-flags players.
     /room  - Sends the message to everyone in the room that contains the
             object you are in.  Starting from your location, this switch
             'leaves' objects until it reaches a room, and @emits the message
             there.

  If both switches are specified, the message is sent to both places.  If
  neither is specified, /here is assumed.

  Some MUXes may restrict the use of this command.

  Related Topics: @emit, @femit, @oemit, @pemit, @npemit, @remit, SPOOFING.

& @NOTIFY
@NOTIFY

  COMMAND: @notify[/<switches>] <object>[/<attribute>][=<count>]

  Notifies the semaphore <object>, running the first command that waited on
  <object> using the '@wait <object>=<command>' or '
  @wait <object>/<time>=<command>' forms of the @wait command.  If <count> is
  specified, it indicates the number of times the semaphore is notified.
  If there are no commands (or less than <count> commands) pending for
  <object>, then subsequent @waits will not block until the semaphore count
  reaches zero again. @notify may also take an argument of the form
  <object>/<attribute>, which notifies commands that are being blocked on
  an attribute other than the default 'Semaphore'. This allows blocking of
  multiple sets of commands on a single object, using different attributes.

  The following switches are available:
     /first - (default) Notify the first command waiting on the indicated
              semaphore (or the first <count> commands).
     /all   - Notify all commands waiting on the semaphore and reset the
              semaphore count to zero.  <count> is ignored.
     /quiet - Suppress the 'Notified.' message associated with the command.

  Related Topics: @drain, @ps, @wait, SEMAPHORES

& @NPEMIT
@NPEMIT

  COMMAND: @npemit[/switches] <what>=<message>

  Almost exactly like @pemit and it takes the same switches. However,
  it does not evaluate <message> at all. So, @npemit differs from
  @npemit/noeval in that no space compression is done.

  Related Topics: @pemit

& @ODESCRIBE
@ODESCRIBE

  COMMAND:   @odescribe <object> = <message>
  ATTRIBUTE: Odesc

  Sets the message (prefixed by the player's name) that is shown to others in
  the room when someone looks at <object>.

  Example: @odesc vase = carefully inspects the vase.

  Related Topics: look, @adescribe, @describe, @idesc.

& @ODFAIL
@ODFAIL

  COMMAND:   @odfail <object> = <message>
  ATTRIBUTE: Odfail

  Sets the message (prefixed by the player's name) that is shown to others in
  the same room when someone tries to drop <object> but fails because they
  didn't pass the object's drop lock.

  Function references and %-substitutions are allowed in drop failure
  messages, and are evaluated when someone drops the object.  In function
  references, 'me' refers to the object being dropped, while %-substitutions
  that refer to the enactor (such as %n, %#, %p, etc) refer to the dropper.

  Example: @odfail sword = tries to put down the sword but it leaps back
                                       into %p hand.

  Related Topics: drop, @adfail, @dfail, @lock.

& @ODROP
@ODROP

  COMMAND:   @odrop <object> = <message>
  ATTRIBUTE: Odrop

  Sets the message (prefixed by the player's name) that is shown to others in
  the room when someone drops <object>, or to others in the room that the
  player arrives in after taking an exit.

  Example: <object> @odrop loadstone = puts down the loadstone and then
                                       wipes sweat from %p brow.
           <exit>   @odrop elevator = enters the elevator from the lobby.

  Related Topics: drop, @adrop, @drop, DROP-TO, EXITS.

& @OEFAIL
@OEFAIL

  COMMAND:   @oefail <object> = <command-list>
  ATTRIBUTE: Oefail

  Sets the message (prefixed by the player's name) that is shown to others in
  the same room as the player when he tries to enter the object but fails
  because the object is not ENTER_OK or the player fails the
  object's enter lock.

  The enter lock only affects the 'enter' command and its aliases (set via
  the @ealias command), it does not affect exits that lead to the object or
  teleporting in.

  This attribute is meaningful for players and things, and will never be
  automatically triggered on rooms or exits.

  Example: @oefail car = tries to open the car's door, but it is locked.

  Related Topics: @aefail, @aenter, @ealias, @efail, @enter, @oenter, enter,
      ENTER_OK.

& @OEMIT
@OEMIT

  COMMAND: @oemit <player>=<message>

  Emits <message> to everyone in the current location of <player> except
  <player>.

  Related Topics: @remit, @emit, @pemit, @npemit, SPOOFING.

& @OENTER
@OENTER

  COMMAND:   @oenter <object> = <message>
  ATTRIBUTE: Oenter

  Sets the message (prefixed by the player's name) that is shown to others in
  the location being entered when someone enters <object>.  Note that the
  message is shown to those inside the object, not those outside.

  This attribute is meaningful for players, things, and rooms, and will never
  be automatically triggered on exits.

  Example: @oenter wormhole = enters the wormhole from normal space.

  Related Topics: enter, @aenter, @enter, @oxenter.

& @OFAIL
@OFAIL

  COMMAND:   @ofail <object> = <message>
  ATTRIBUTE: Ofail

  Sets the others failure message for <object>.  This message is seen others
  in the same location as the actor when one of these events occurs:

    - For exits: Someone tries to traverse the exit but cannot because they
      fail the exit's default lock or the exit is not linked.
    - For players and things: Someone tries to pick up the object but cannot
      because they fail the object's default lock.
    - For rooms, players, and things: Someone looks around inside the room,
      player, or thing and fails the object's default lock.

  Substitution and evaluation is performed on the message before it is shown.

  Examples:
    > @ofail table = tries to pick up the table, but it is too heavy.  <thing>
    > @ofail doorway = tries the knob on the door, to no avail.         <exit>

  Related Topics: get, look, @afail, @fail, FAILURE.

& @OGFAIL
@OGFAIL

  COMMAND:   @ogfail <object> = <message>
  ATTRIBUTE: Ogfail

  Sets the message (prefixed by the player's name) that is shown to others in
  the same room when someone tries to give away <object> but fails because
  they didn't pass the object's give lock.

  Function references and %-substitutions are allowed in give failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the object being given away, while
  %-substitutions that refer to the enactor (such as %n, %#, %p, etc) refer
  to the (attempted) giver.

  Example: @ogfail blob = tries to give away a sticky blob of goo.

  Related Topics: give, @agfail, @gfail, @lock.

& @OKILL
@OKILL

  COMMAND:   @okill <object> = <message>
  ATTRIBUTE: Okill

  Sets the message (prefixed by the player's name) that is shown to others in
  the room when someone kills <object>.

  This attribute is meaningful for players, things, and rooms, and will never
  be automatically triggered on exits.

  Example: @okill guard = bashes in the guard's skull, killing him.

  Related Topics: kill, @akill, @kill, BEING KILLED, IMMORTAL, WIZARD.

& @OLEAD
@OLEAD

  COMMAND:   @olead <object> = <message>
  ATTRIBUTE: Olead

  Sets the <message> seen by others when <object> is lead.

  This attribute is only available if FIRANMUX is enabled.

  Related Topics: @lead, @alead.

& @OLEAVE
@OLEAVE

  COMMAND:   @oleave <object> = <message>
  ATTRIBUTE: Oleave

  Sets the message (prefixed by the player's name) that is shown to others in
  the location being left when someone leaves <object>.  Note that the
  message is shown to those inside the object, not those outside.

  This attribute is meaningful for players, things, and rooms, and will never
  be automatically triggered on exits.

  Example: @oleave wormhole = departs the wormhole to return to normal space.

  Related Topics: leave, @aleave, @leave, @oxleave.

& @OLFAIL
@OLFAIL

  COMMAND:   @olfail <object> = <command-list>
  ATTRIBUTE: Olfail

  Sets the message (prefixed by the player's name) that is shown to others in
  the same room as the player when he tries to leave it but fails because the
  player fails the object's leave lock.

  The leave lock only affects the 'leave' command and its aliases (set via
  the @ealias command), it does not affect going home, using an exit in the
  location, or teleporting out.

  This attribute is meaningful for players and things, and will never be
  automatically triggered on rooms or exits.

  Example: @olfail plane = thinks about jumping out of the plane without a
                           parachute, but wisely reconsiders.

  Related Topics: @aleave, @alfail, @lalias, @leave, @lfail, @oleave, leave.

& @OMOVE
@OMOVE

  COMMAND:   @omove <object> = <message>
  ATTRIBUTE: Move

  Sets the <message> that others in the same location see after the object has
  moved to that location from somewhere else, whether by using an exit,
  entering or leaving an object, teleporting, or going home.

  This attribute is meaningful for players, and things and will never be
  automatically triggered on other object types.

  Example: @omove car = coasts to a stop.

  Related Topics: @amove, @move.

& @OPAY
@OPAY

  COMMAND:   @opay <object> = <message>
  ATTRIBUTE: Opay

  Sets the message (prefixed by the player's name) that is shown to others in
  the room when someone pays <object> enough to satisfy its Cost attribute.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @opay Coke machine = slips some change into the coin slot on the
                                Coke machine.  You hear some rumbling from
                                inside the machine and a can of Coke appears
                                in the tray at the bottom of the machine.

  Related Topics: give, @cost, @apay, @pay.

& @OPEN
@OPEN

  COMMAND: @open[/<switches>] <direction list> [=<number>[,<direction list>]]

  Creates an exit in the specified direction(s). If <number> is specified,
  it is linked to that room. Otherwise, it is created unlinked. You or anyone
  else may use the '@link' command to specify where the unlinked exit leads.
  Opening an exit costs 1 coin. If you specify <number>, linking costs 1 more
  coin.  You can specify a second direction list (after the comma), which is
  automatically opened in the room that the new exit goes TO and which is
  linked back to where you are.  I.e.  @open north;n=#1234,south;s
  would open exit 'north;n' from here to #1234, and an exit 'south;s'
  from #1234 to here, assuming you have rights to open exits and link to
  the rooms in question.

  The following switches are available:
     /location  - Create the exit in your location (default).
     /inventory - Create the exit on yourself.

  Related Topics: @dig, @link, LINKING, OBJECT TYPES.

& @ORFAIL
@ORFAIL

  COMMAND:   @orfail <object> = <message>
  ATTRIBUTE: Orfail

  Sets the message (prefixed by the player's name) that is shown to others in
  the same room when someone tries to give <object> a thing that does not
  pass <object>'s receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  Example: @orfail merchant = tries to unload some worthless trash on Astinous.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @rfail, @lock.

& @OSUCCESS
@OSUCCESS

  COMMAND:   @osuccess <object> = <message>]
  ATTRIBUTE: Osucc

  Sets the message (prefixed by the player's name) that is shown to others in
  the room when someone picks up the named player or thing, goes through the
  named exit, or looks at the room and passes the room's lock.

  Setting Osuccess messages on all takeable objects and usable exits is
  considered good building practice.

  Examples: <object> @osucc vase = carefully picks up the vase.
            <exit>   @osucc doorway = opens the door and leaves the room.
                                      The door closes behind %o with a click.

  Related Topics: get, look, @asuccess, @success, SUCCESS.

& @OTFAIL
@OTFAIL

  COMMAND:   @otfail <object> = <message>
  ATTRIBUTE: Otfail

  Sets the message (prefixed by the player's name) that is shown to others in
  the same room when someone tries to teleport to somewhere he does not have
  permission.  You do not see this message if they couldn't teleport out of
  their present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @otfail here = thinks about teleporting to the Magic Room, but
                          decides against it at the last moment.

  Related Topics: @teleport, @atfail, @tfail, @lock.

& @OTOFAIL
@OTOFAIL

  COMMAND:   @otofail <object> = <message>
  ATTRIBUTE: Otofail

  Sets the message (prefixed by the player's name) that is shown to others in
  the same room when someone tries to teleport out of somewhere they do not
  have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport from their
  location.  In function references, 'me' refers to the player's location,
  while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @otofail here = thinks about teleporting from the Magic Room, but
                          decides against it at the last moment.

  Related Topics: @teleport, @atofail, @tofail, @lock.

& @OTPORT
@OTPORT

  COMMAND:   @otport <object> = <message>
  ATTRIBUTE: Otport

  Sets the message (prefixed by your name) that others in the room to which
  the object goes see when the object teleports there.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @otport me = appears in a flash of non-wizardly brilliance.

  Related Topics: @atport, @oxtport, @tport, @teleport.

& @OUFAIL
@OUFAIL

  COMMAND:   @oufail <object> = <message>
  ATTRIBUTE: Oufail

  Sets the message that others in the same room see when someone tries to
  use object but fails the object's use lock.  Note that the other functions
  controlled by the use lock (paying, listening, and $-commands) do not
  trigger Oufail.

  Example: @oufail robot = tries to activate the robot, but to no avail.

  Related Topics: @aufail, @ufail, @use.

& @OUSE
@OUSE

  COMMAND:   @ouse <object> = <message>
  ATTRIBUTE: Ouse

  Sets the message (prefixed by the player's name) that is shown to others in
  the room when someone uses <object>.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @ouse camera = takes a picture with the camera.

  Related Topics: use, @ause, @use.

& @OXENTER
@OXENTER

  COMMAND:   @oxenter <object> = <message>
  ATTRIBUTE: Oxenter

  Sets the message (prefixed by the player's name) that is shown to others in
  the location being left when someone enters <object>.  Note that the
  message is shown to those outside the object, not those inside.

  This attribute is meaningful for players, things, and rooms, and will never
  be automatically triggered on exits.

  Example: @oxenter wormhole = climbs into the wormhole and vanishes.

  Related Topics: enter, @aenter, @enter, @oenter.

& @OXLEAVE
@OXLEAVE

  COMMAND:   @oxleave <object> = <message>
  ATTRIBUTE: Oxleave

  Sets the message (prefixed by the player's name) that is shown to others in
  the location being entered when someone leaves <object>.  Note that the
  message is shown to those outside the object, not those inside.

  This attribute is meaningful for players, things, and rooms, and will never
  be automatically triggered on exits.

  Example: @oxleave wormhole = steps out of a hyper-spatial wormhole.

  Related Topics: leave, @aleave, @leave, @oleave.

& @OXTPORT
@OXTPORT

  COMMAND:   @oxtport <object> = <message>
  ATTRIBUTE: Oxtport

  Sets the message (prefixed by your name) that others in the room from which
  the object comes see when the object teleports out.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @oxtport me = disappears in a flash of non-wizardly brilliance.

  Related Topics: @atport, @otport, @tport, @teleport.

& @PARENT
@PARENT

  COMMAND: @parent <object> [=<parent>]

  This command sets the parent of <object> to <parent> (or clears the parent
  if <parent> is omitted.  You must control <object> and must either own
  <parent> or pass the ParentLock on a parent that is set PARENT_OK.

  Related Topics PARENT OBJECTS.

& @PASSWORD
@PASSWORD

  COMMAND: @password <old password> = <new password>

  This command changes your password.

& @PAY
@PAY

  COMMAND:   @pay <object> = <message>
  ATTRIBUTE: Pay

  Sets the message that is shown to the player who gives <object> enough
  money to satisfy its Cost attribute.

  This attribute is only meaningful for things, and will never be
  automatically triggered on other object types.

  Example: @pay Coke machine = You slip some change into the slot.

  Related Topics: give, @apay, @cost, @opay.

& @PEMIT
@PEMIT

  COMMAND: @pemit[/switches] <what>=<message>

  Emits <message> only to <what>, or to <what>'s contents of the /contents
  switch is given.  <what> must be either in the same location as you or
  be something you own.  You can also @pemit to distant players if
  pagelocks allow you to page them, and this costs as much as a page
  <This feature is not present in all MUXes>.  You cannot @pemit to the
  contents of something you don't own.

  The /list switch to this command allows you to @pemit a message to
  a list:  @pemit/list <object 1> [<object 2> <object N>] = <message>
  There can be any number of objects in the list. The objects must be
  specified by dbref number. This can be combined with other switches.

  The following switches are also available:

    /contents - Send the message to the contents of the named object.
    /html     - Send the message in HTML format (Pueblo).
    /noeval   - Do not parse the message.
    /object   - Send the message to the named object.

  Related Topics: page, @remit, @emit, @oemit, SPOOFING.

& @POLL
@POLL

  COMMAND: @poll [<message>]

  Sets a new poll message in the WHO report. The command is an
  alias for @doing/header.

  Related Topics: who, @doing

& @POWER
@POWER

  COMMAND: @power <object>=[!]<power> [[!]<power> [...]]

  This command allows the granting of special powers to objects of any type.

  Related Topics: powers list

& @PREFIX
@PREFIX

  COMMAND:   @prefix <object> = <prefix text>
  ATTRIBUTE: Prefix

  This attribute, when set, will be used as a prefix for all text forwarded
  by the 'audible' flag on an object or exit.  The default if this attribute
  is not set is 'From <object name>,' for objects, and 'From a distance,'
  for exits.

  Example:
    > @fo test=out
    > @set #378=puppet
    test> test grows ears and can now hear.
    > :does something silly.
    Wizard does something silly.
    test> From a distance, Wizard does something silly.
    > @prefix out=From some strange place
    Set.
    > :does something even sillier.
    Wizard does something even sillier.
    test> From some strange place Wizard does something even sillier.

  Related Topics: AUDIBLE, @filter, @forwardlist, @infilter, @inprefix.

& @PROGRAM
@PROGRAM

  COMMAND: @program <player>=<obj/attr>[:<prefix>]

  This command allows for small 'programs' within MUX. To understand this
  command, you must first understand the fact that it completely bypasses any
  commands, built-in or otherwise, and allows you to send user-input directly
  into your code.

  A simple example:

  @va me=$start:@prog %#=me/vb:Please enter a word:
  @vb me=@emit You entered %0!;@prog %#=me/vc:Please enter another word:
  @vc me=@emit This time, you entered %0. You're done!

  > start
  Please enter a word:
  > foobar       (Note that @program literally gives you a '>' prompt.)
  You entered foobar!
  Please enter another word:
  > hoopla
  This time you entered hoopla. You're done!

{ 'help @program2' for more }

& @PROGRAM2
@PROGRAM (continued)

  As you can see, this command basically takes what a user types at the
  prompt, stuffs it into %0 in the code in <obj/attr>, and then triggers
  that attribute. Note that when @program triggers an attribute, the enactor
  of that triggered attribute is <player>, and is inserted into %#.
  r-registers are preserved when @program triggers an attribute.

  An optional message, <prefix>, may be specified and will be output before
  the @program prompt. This is useful for telling the user what information
  they need to supply.

  A player caught in @program may send a command through to the normal
  command processor at the @program prompt by prefixing it with the '|'
  character, for example, '|WHO'.

  Related Topics: @quitprogram.

& @PS
@PS

  COMMAND: @ps[/<switches>] [<object>]

  Lists information about the commands you have on each of the queues.
  Unless the /summary switch is used, this command lists all the commands you
  have on the queues, optionally along with their enactor and arguments.
  Commands scheduled to be executed at a later time (by the @wait command)
  also show the number of seconds until they will be executed and/or the
  semaphore on which they are waiting.  If <object> is specified, only
  commands run by <object> are listed, otherwise all commands run by any of
  your objects is listed.  A summary of the number of commands listed and the
  total number of commands in the queues is also displayed.  This command is
  useful for identifying infinite loops in programs.

  The following switches are available:
     /brief   - (default) Display a brief summary that shows the semaphore
                number, time-to-wait, object running the command, and the
                command to be run.
     /long    - In addition to the information in the /brief report, display
                the name and number of the object that caused the command
                to be run (the enactor) and the arguments to the command.
     /summary - Display just the queue counts.

  Related Topics: @notify, @wait.

& @QUEUEMAX
@QUEQUEMAX

  COMMAND:   @quequemax <object> = <number>
  ATTRIBUTE: QueueMax

  This attribute sets an upper limit on the number, <number>, of
  outstanding commands in the queue for this <object>.  This attribute
  is only settable by a Wizard.

  In fact, the server has three overlapping constraints for developing
  an upper limit per player on the number of oustanding commands in the
  queue.  This attribute is part of just one of these constraints.  The
  rules (in priority order) are:

  1) @queuemax <number> described here.
  2) Current size of database (only applies if executor is Wizard).
  3) game-wide limit controlled by the player_queue_limit configuration option.

  That is, if @quequemax is set, it overrides the next two rules.  If
  <object> is a Wizard, the maximum number of outstanding queue entries
  is player_queue_limit or the size of the database (whichever is
  larger).  All other cases are covered by player_queue_limit.

  Related Topics: config(), player_queue_limit in wizhelp, @wait.

& @QUITPROGRAM
@QUITPROGRAM

  COMMAND: @quitprogram <player>

  Terminates the @program for player. If <player> is not specified, then it
  works upon the enactor (a player may quit a program while they are in it
  by piping out @quitprogram, see 'help @program').

  Related Topics: @program.

& @QUOTA
@QUOTA

  COMMAND: @quota

  Lists your total building quota and the amount you have remaining.
  Creating objects, digging rooms, and opening exits all consume quota.

  Related Topics: @create, @dig, @open.

& @REJECT
@REJECT

  COMMAND:   @reject <object> = <message>
  ATTRIBUTE: Reject

  This attribute is sent as a message to anyone who tries to page you but
  you have prevented them from paging you via your page lock (@lock/page).

  This attribute is only meaningful for players, and will never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player sees when he tries to teleport from somewhere
  he does not have permission.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport out of their
  location.  In function references, 'me' refers to the player's current
  location, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  Example: @tofail here = A psychic barrier prevents you from teleporting
           out.

  Related Topics: @teleport, @atofail, @otofail, @lock.

& @TPORT
@TPORT

  COMMAND:   @tport <object> = <message>
  ATTRIBUTE: Tport

  Sets the message that an object sees whenever it teleports.
  The message is displayed after the object moves to its new location.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @tport me = Hey! I teleported. Wow!

  Related Topics: @atport, @otport, @oxtport, @teleport.

& @TRIGGER
@TRIGGER

  COMMAND: @trigger[/<switch>] <object>/<attr> [=<param> [, <param>]... ]

  Invokes an action list stored in an attribute on an object.  The triggering
  object becomes the enactor and the positional parameters %0 through %9
  are set to the supplied parameters.

  The @trigger command supports the following switch:
    /quiet   - Inhibits 'Triggered.' acknowledgement messages.
    /notify  - Queues a '@notify' after all commands in the list.

  Related Topics: LOOPING.

& @UFAIL
@UFAIL

  COMMAND:   @ufail <object> = <message>
  ATTRIBUTE: Ufail

  Sets the message that someone sees when they try to use object but fail
  the object's use lock.  Note that the other functions controlled by the use
  lock (paying, listening, and $-commands) do not trigger ufail.

  Example: @ufail robot = The robot pointedly ignores you.

  Related Topics: @aufail, @oufail, @use.

& @UNLINK
@UNLINK

  COMMAND: @unlink <room/exit>

  This command removes drop-tos on rooms and clears the destination on exits.
  Once unlinked, an exit may be taken over by anyone with the @link command.

  Related Topics: @link, LINKING, OBJECT TYPES.

& @UNLOCK
@UNLOCK

  COMMAND: @unlock[/<whichlock>] <object>
           @unlock <object>/<attrib>

  The first form removes the lock on <object>, so that anyone may pass
  through (if an exit) never be
  automatically referenced on other object types.

  Example: @reject me = I _told_ you not to page me anymore...

  Related Topics: @away, @idle, page.

& @REMIT
@REMIT

  COMMAND: @remit <room dbref#> = <message>

  Sends <message> to the contents of <room>.

  Related Topics: @femit, @oemit, @pemit, @npemit, @emit, SPOOFING.

& @RFAIL
@RFAIL

  COMMAND:   @rfail <object> = <message>
  ATTRIBUTE: Rfail

  Sets the message that a player sees when he tries to give an object to
  someone else, but the receiver refuses to accept the object because
  the object didn't pass its receive lock.

  Function references and %-substitutions are allowed in receive failure
  messages, and are evaluated when someone tries to give away the object.
  In function references, 'me' refers to the intended recipient of the object,
  while %-substitutions that refer to the enactor (such as %n, %#, %p, etc)
  refer to the (attempted) giver.

  This attribute is only meaningful for players and things, and will never be
  automatically triggered on other object types.

  Example: @gfail merchant = The merchant doesn't want your worthless trash.

  Related Topics: give, @agfail, @arfail, @gfail, @ogfail, @orfail, @lock.

& @ROBOT
@ROBOT

  COMMAND: @robot <name>=<password>

  Creates a robot player owned by you.  The robot has its ROBOT flag set, so
  it may use the outputprefix and outputsuffix commands that some publicly
  available robot programs require.  This command costs 1000 coins.
  Note that some sites do not restrict outputprefix and outputsuffix to
  robots.

  Related Topics: outputprefix, outputsuffix, ROBOT, OBJECT TYPES.

& @RUNOUT
@RUNOUT

  COMMAND:   @runout <object> = <command list>
  ATTRIBUTE: Runout

  Sets the actions to be taken by <object> when another of its attributes is
  triggered (either automatically or via the @trigger command) and its
  Charges attribute is zero.  When this occurs, the Runout attribute is run
  INSTEAD OF the attribute that would have run normally.

  Example: @runout magic wand = :fizzles and turns to dust.; @destroy me

  Related Topics: @charges.

& @SAYSTRING
@SAYSTRING

  Command: @saystring <object> = <string>

  Sets the substitute string that is used instead of the default 'says,'
  when you talk in a location or on the comsys. The message is passed
  as %0 and the command (say, @fsay, or channel) as %1.

  Example:
    > @saystring me=barks
    > "Hello.
    Player barks "Hello."
    > @saystring me=case(right(%0,1),!,exclaims\,,?,asks\,,says\,)
    > "Hello!
    Player exclaims, "Hello!"

  Related Topics: say, ", @speechmod.

& @SEARCH
@SEARCH

  COMMAND: @search [<player>] [<class>=<restriction>[,<low>[,<high>]]]

  Displays information about objects that meet the search criteria.
  Because this command is computationally expensive, it costs 100 coins.
  <player> restricts the search to the named player, while <class>
  and <restriction> control the objects listed.  Type 'help search classes'
  for a list of the classes you may use.

  Except when getting lists of players ('@search type=player' or
  '@search flags=P'), you may only search for objects that you own.
  You may limit the range of the search with <low> and <high>, which specify
  the objects to start and stop the search at, respectively.  The default for
  <low> is #0 and the default for <high> is the last object in the database.

  Examples:
    @search flags=PWc              <-- search for connected wizards.
    @search type=room              <-- list all rooms owned by me.
    @search eval=gt(money(##),10)  <-- search for things worth more than 10.
    @search type=room,100,300      <-- Rooms between #100 and #300, inclusive
    @search object=Test,5000       <-- Things starting with Test from object
                                       #5000 to the end of the database.
  Related Topics: @find, search().

& @SET
@SET

  COMMAND: @set[/<switch>] <object>=[!]<flag1> [[!][<flag2> [...]]
           @set[/<switch>] <object>=<attribute>:<value>
           @set[/<switch>] <object>=<attribute>:_<fromobj>/<fromattr>
           @set[/<switch>] <object>/<attr>=[!]<attrflag>

  The first form sets (or clears) the indicated flag or flags on <object>,
  the second form sets the <attribute> attribute on <object> to <value>,
  creating a new user-named attribute if there is no attribute named
  <attribute>.  The third form copies an attribute from another object, and
  the fourth form sets (or clears) an attribute flag on the <attr> attribute
  of <object>.

  When setting attributes on an object, you may also use the command
  '@<attribute> <object> = <value>' if the attribute is a predefined
  attribute.  You may also use the command '&<attribute> <object> = <value>'
  to set either predefined attributes or user-named attributes.  Either of
  these is equivalent to the second form of the @set command.

{ 'help @set2' for more }

& @SET2
@SET (continued)

  The following flags may be set using the fourth form of the @set command:

     case       - $-command matching will not be case-sensitive.
                  Non-functional unless the 'R' flag is also set.
     no_command - Prevent $-commands and ^-patterns defined in the attribute
                  from being performed.
     no_inherit - Prevents children of the object from obtaining the
                  attribute.  From their perspective, the attribute does not
                  exist.
     no_name    - If set on an @o-attr, don't prepend the name of the
                  enactor.  This also affects @verb behavior.
     visual     - Anyone may see the attribute when they examine you, and
                  may get the attribute with get().
     hidden     - The attribute is only visible to wizards.
     html       - Emits from attr, oattr, aattr are not HTML-escaped.
     regexp     - When $-commands are matched, treat the pattern as a
                  regular expression rather than a wildcard glob pattern.
     trace      - The attribute will generate trace output.
     wizard     - The attribute may only be changed by wizards.

  The @set command takes the following switch:

     quiet      - Inhibit 'Set.' acknowledgement messages.

  Related Topics: ATTRIBUTE FLAGS, @lock, @lock, examine, FLAGS, &.

& @SEX
@SEX

  COMMAND:   @sex <object> = <gender>
  ATTRIBUTE: Sex

  Sets the gender for <object>, which is used to determine which pronouns to
  use when replacing %p, %o, %s, and %a parameters in messages that apply to
  <object>.  Genders that start with M or m are considered male, those
  starting with F, f, W, or w are considered female, those starting with
  P or p are considered plural, and anything else is considered neuter.

  Example: @sex me = female
           @sex me = No thank you (Silly, but possible.  Treated as neuter)

  Related Topics: GENDER.

& @SIGNATURE
@SIGNATURE

  COMMAND:   @signature <player> = <message>
  ATTRIBUTE: Signature

  Sets a message to be appended to every @mail message you send. It is
  appended directly at the end of the message, so if you wish to start the
  signature on a new line you should begin it with a %r.

  Example: @signature me=%rThis is a mail signature. (Note: You might want
  to include the %r at the front of the signature, other wise it will be
  combined with the @mail message.)

  Related Topics: @mailsucc, @amail, @mail.

& @SPEECHMOD
@SPEECHMOD

  Command: @speechmod <object> = <string>
  Attribute: SpeechMod

  Sets a filter to be applied to all of <object>'s speech. <string> is
  evaluated with the original speech as %0 and the command as %1. It is
  then displayed in place of the original speech. You can use this to
  colorize each word of what you say, say things backwards, etc.

  @speechmod affects: "  \\  ;  :  page  pose  say  whisper  @fpose
     @fsay  @wall  on-channel speech

  %1 may be one of: channel  channel/pose  page  pose  say  whisper
    @emit (for \\)  @fpose  @fpemit  @fsay  @wall

  Example:
    > @speechmod me=ucstr(%0)
    > "Hello.
    Player says "HELLO."

  Related Topics: say, ", @saystring.

& @STARTUP
@STARTUP

  COMMAND:   @startup <object> = <command list>
  ATTRIBUTE: Startup

  Sets a list of commands to be performed by <object> when the game is
  started up.  Typical actions include going home, cleaning visitors out of
  a room, resetting a puzzle or complex object to its initial state, or
  starting up an object that wants to run continuously.

  Example: @startup me = @vz me=MUX was last restarted at [time()].
           @startup me = home

& @STATS
@STATS

  COMMAND: @stats[/all] [<player>]

  Display the number of objects in the game.  @stats/all gives a
  breakdown by object types.  If <player> is specified, the breakdown
  for the named player is given.  You may only list individual counts
  for yourself.  If invoked with no arguments or switches this command is
  free, but if you specify either /all or <player>, then this command costs
  100 coins to run, because it is computationally expensive.

  Related Topics: stats().

& @SUCCESS
@SUCCESS

  COMMAND:   @success <object> = <message>
  ATTRIBUTE: Succ

  Sets the message that is shown to the player who successfully picks up the
  named player or thing, goes through the named exit, or looks at the room
  and passes the room's lock.

  Example: <object> @succ vase = You carefully pick up the delicate vase.
           <exit>   @succ doorway = You open the door and walk through the
                                    doorway.

  Related Topics: get, look, @asuccess, @osuccess, SUCCESS.

& @SWEEP
@SWEEP

  COMMAND: @sweep[/<switches>]

  This command tells you all of the objects, players, and exits that are
  listening in the room you are currently in, as well as the objects you are
  carrying.  Most objects only listen for a particular string or phrase, so
  they normally do not pose a problem if you need privacy.  You will have to
  be careful of players, puppets, and audible exits since they will hear
  everything you say and do.  There are several switches that may be used to
  limit the type of listeners that are checked for.  They are:
     /here      - Check the room I am in.
     /inventory - Check my inventory.
     /exits     - Check exits in the room.

     /commands  - Check for objects that have $-commands set on them.
     /connected - Check for connected players and their puppets.
     /listeners - Check for objects with @listen set to something.
     /players   - Check for players and their puppets, whether or not they
                  are connected.

  The default is to search for everything.  If you specify one or more
  switches from either category (either location or listener type then only
  that location or listener type is checked.

  Related Topics: @listen, AUDIBLE, PUPPETS.

& @SWITCH
@SWITCH

  COMMAND: @switch[/<switches>] <string>=<t1>,<c1> [,<tN>,<cN>]... [,<cD>]

  Compares <string> against the targets <t1>, <t2>, etc, until a match is
  found, at which time the corresponding list of commands is performed.

  #$ is substituted with the value of <string>. In this way, the commands in
  <c1>..<cN>..<cD> have a short-hand way of getting at the matched value.

  Wildcards match strings, and the < and > operators allowing matching by
  numeric value.  By default, any list whose target matches the string is
  executed (the targets are not mutually exclusive). If no target matches,
  the default list <cD> is executed.

  The following switches are available:

    /all    - (default) Perform the action lists associated with all targets
              that match <string>.
    /first  - Perform only the action list associated with the first target
              that matches <string>.
    /notify - Queues an '@notify' after all commands in the list.

  Related Topics: switch(), ifelse().

& @TELEPORT
@TELEPORT

  COMMAND: @teleport [<object>=] <room/thing>
           @teleport [<object>=] <exit>
           @teleport [<object>=] home

  The first form of the @teleport command moves <object> (or you) to the named
  room or thing.  The second form sends <object> (or you) to the destination
  of the named exit, while the third form sends <object> (or you) home.
  If the destination room has a drop-to, the object will go to the drop-to
  instead of the named location.

  For the first form of the @teleport command, the object being teleported
  must pass its location's TeloutLock; and you must control the destination,
  or it must be JUMP_OK and you must pass the destination's TportLock.

  The second and third forms let you remove any object from locations you
  control by sending them through an exit or to their home.

  The following switches are available:
     /quiet - Teleports without setting off success or failure messages.
     /list  - Interpret <object> as a space-delimited list of objects.

  Related Topics: JUMP_OK, @lock (TportLock and TeloutLock), @tfail, @otfail,
      @atfail, @tofail, @otofail, @atofail.

& @TFAIL
@TFAIL

  COMMAND:   @tfail <object> = <message>
  ATTRIBUTE: Tfail

  Sets the message that a player sees when he tries to teleport to somewhere
  he does not have permission.  You do not see this message if you couldn't
  teleport out of your present location.

  Function references and %-substitutions are allowed in teleport failure
  messages, and are evaluated when someone attempts to teleport to the
  specified destination.  In function references, 'me' refers to the teleport
  destination, while %-substitutions that refer to the enactor (such as %n,
  %#, %p, etc) refer to the player attempting the teleport.

  When a player teleports another object (@tel <object>=<destination>), the
  lock is checked against the player, not the object.

  Example: @tfail here = A psychic barrier prevents you from teleporting there.

  Related Topics: @teleport, @atfail, @otfail, @lock.

& @TOFAIL
@TOFAIL

  COMMAND:   @tofail <object> = <message>
  ATTRIBUTE: Tofail

  Sets the message that a player see