pennmush/game/
pennmush/game/data/
pennmush/game/log/
pennmush/game/save/
pennmush/game/txt/evt/
pennmush/game/txt/nws/
pennmush/os2/
& FLAGS
  @set <object>=[!]<flag name>

  Flags give objects certain abilities or qualities. For example,
  a wizard player has wiz powers because s/he has the WIZARD flag 
  set. 

  Some flags can only be set on certain types of objects, such as
  just players or just rooms. Other flags, like VISUAL, can be set
  on any kind of object (player, room, exit, thing). 

  To un-set a flag, use the exclamation point (!) before the flag
  name. For help on any particular flag, type help <flag name>.

  The list of flags is available in: help flag list

(continued in help flags2)
& FLAGS2
  To go into more detail, all objects in the MUSH, like players, rooms, 
  exits, and things, are essentially the same on the program level. The 
  MUSH tells things apart by the flags that are set on them. For example,
  all rooms have the ROOM flag set on them, just as all players have the
  PLAYER flag.

  You can see the list of flags set on an object if you are allowed to
  examine it. The flags are listed on the line just below the object's
  name, after the word "Flags:". Flag abbreviations are also visible 
  after the object's name in the room description (if the object is not
  set OPAQUE). 

See also: examine, hasflag(), orflags(), andflags()
  
 
& FLAG LIST
& FLAGS LIST
Flag  Title           Flag  Title              Flag  Title
-----------------------------------------------------------------------
  A - Abode, Ansi       C - Chown_Ok, Color     D - Dark
  E - Exit (type)       F - Floating, Fixed     G - Going
  H - Haven             I - Inherit             J - Jump_Ok, Judge
  L - Link_Ok           M - Monitor             N - Nospoof, No_Tel, No_Leave
  O - Opaque            P - Player (type)       Q - Quiet
  R - Room (type)       S - Sticky              U - Unfindable
  V - Visual            W - Wizard              X - Safe
  Z - Zone, Z_Tel
  
  a - Audible           b - Debug               c - Connected, Cloudy
  d - Destroy_Ok        e - Enter_Ok            f - Force_White
  g - Gagged            h - Halt                j - Jury_Ok
  l - Light             m - Myopic              n - No_Command 
  o - On-Vacation       p - Puppet              r - Royalty
  s - Suspect           t - Transparent         u - Uninspected
  v - Verbose           w - No_Warn             x - Terse
  z - Startup           ? - Unregistered
---------------------------------------------------------------------
Some flags may not be enabled on some MUSHes.

& ABODE
  Flag:  ABODE  (rooms)

  If a room has the ABODE flag set, any player can set his home there,
  and can set the homes of objects there.  It does not mean that a
  player can open an exit to that room, only that they can set their
  home there.  This flag should not be set unless you want to make the
  room a public 'living area'.

  To make a room your home, type '@link me=here' while standing in the
  room.

See also: @link
& ANSI
  Flag:  ANSI  (players)
  
  When set on a player, this flag bold-hilites the names and owners
  of attributes when the player "examines" an object. This makes it
  much easier to pick out where attributes begin and end, when examining
  complex objects. You must be using a terminal which supports ANSI
  control codes in order for this to work. Additionally, some MUSHes
  may not support ANSI. Check @config to see.
  
  See also the COLOR flag. If COLOR is not set, and ANSI is, you will
  see vt100 ANSI codes, but not color ANSI codes.

See also: COLOR, ansi(), @config
& AUDIBLE
  Flag:  AUDIBLE  (all types)

  Exits that are AUDIBLE propagate sound to their destinations. In
  other words, any message - emit, say, or pose - that is heard in the
  source room of the exit is passed on to the contents of the exit's
  destination room. The message is prepended with the exit's @prefix
  attribute; if there is no @prefix, the default is used:
  
  "From <name of the exit's source room>,"
  
  Messages matching a certain pattern may be filtered out by using
  @filter on an exit; read 'help @filter' for more.
  
  In order for exits in a room to propagate sound, the room must also
  be set AUDIBLE. If the room is audible, exits that are audible show 
  up on a @sweep, even if they are set DARK.
   
  See "help AUDIBLE2" for more.
 
& AUDIBLE2
  This flag is also valid for things. If an object is set AUDIBLE,
  any messages which originate from its contents will be broadcasted
  to the outside world. This makes it very simple to program vehicles.
  Like AUDIBLE on exits, the message is prepended with the thing's
  @prefix attribute, and messages matching certain patterns may be
  filtered with @filter. If there is no @prefix, the message will be
  prepended with "From <name of AUDIBLE object>,"
  The AUDIBLE object does not receive its own propagated messages.
 
  The AUDIBLE flag allows most "emitters" (objects that listen for
  messages and broadcast them to other rooms) to be eliminated. The
  message is propagated only to the next room and no farther, so 
  there is no danger of looping.
& BUILDER
  BUILDER 

  BUILDER is actually an @power rather than a flag. Some MUSHes choose
  to limit the building commands (@dig, @open, and sometimes even 
  @create) to registered builders only. If you are on a MUSH that does
  this, you will not be able to use these commands unless you have the
  power. Only wizards can grant @powers. To see if building is limited, 
  check @config.

See also: POWERS, @power, @dig, @open, @create, @config
& CHOWN_OK
  Flag:  CHOWN_OK  (things, rooms, exits)

  You can set this flag on an object you own to allow other players 
  to transfer ownership of the object to themselves (using @chown).
  You must be carrying the thing, or in the room in order to set the
  flag, unless you use the DBREF number.

See also: @chown
& CLOUDY
  Flag:  CLOUDY (exits)

  If this flag is set on a (non-TRANSPARENT) exit, when a player looks
  at the exit they will see the contents of the destination room
  following the exit's description.

  If the flag is set on a TRANSPARENT exit, when a player looks at the 
  exit they will see only the description of the destination room
  following the exit's description, and will not see contents.
& COLOR
  Flag:  COLOR  (players)
  
  When set on a player, this flag allows the player to see ANSI color.
  The ANSI flag must also be set.

See also: ANSI, ansi()
& CONNECTED
  Flag:  CONNECTED  (players)

  This flag applies only to players and it shows if the 
  player is connected or not. Thus, each time you are connected to 
  the game, you should see the 'c' flag set, otherwise, you are DEAD!
  You cannot reset this flag, and it is used internally by the code 
  for things like tabulating players for the WHO list, etc. You cannot
  see whether other players are CONNECTED using this flag.

See also: conn()
& DARK
  Flag:  DARK  (all types)

  If a room is DARK, then no items are shown when a person 
  'looks' there. If a thing is DARK, then "look" does not list that 
  object in the room's Contents:, and if an exit is DARK, it doesn't 
  show up in the Obvious Exits: list.  Puppets and objects that can 
  listen cannot be DARK. Note that players, puppets, and other "hearing"
  objects still trigger enter/leave messages when in DARK areas.
  There is a config option for "full invisibility": players and objects
  that are dark will be slightly disguised in speech and poses.  Such
  actions by these objects will show as being from Someone or Something
  depending on whether it was an object or wizard player.
  
  See 'help DARK2' for more.
  
& DARK2
  Players who can hide from the WHO list should use @hide/on and
  @hide/off to control this, not the DARK flag. While any player
  can turn off their DARK flag, only Wizards can set their DARK flag.

  Wizards who are DARK "disappear" completely -- they are not on the WHO
  list, do not announce connects and disconnects, etc.
& DEBUG
  Flag: DEBUG  (all types)
  
  The DEBUG flag is used for debugging MUSHcode. It is meant to be used
  in conjunction with the VERBOSE flag. If an object is set DEBUG, all
  parser evaluation results will be shown to the object's owner, in the
  format: #<object dbref>! <string to evaluate> => <evaluated string>
  Note that verbose output is "#obj]" - debug output is "#obj!".
  
  Because the parser does recursive evaluations, you will see successive
  messages evaluating specific parts of an expression. This enables you
  to pinpoint exactly which evaluation is going wrong.
  
  Objects run under this flag are computationally expensive.
  Avoid leaving it set on objects.
  
  During a DEBUG evaluation, the flag is temporarily reset; therefore,
  a test for HASFLAG(), FLAGS(), etc. in the debug execution will show
  that the DEBUG flag is not set (although the actual output will be
  correct.)
  
  See "help DEBUG2" for more.
& DEBUG2
  
  Create test, and set it DEBUG.
  
  > @va test=$wc *:"String %0 has [strlen(%0)] letters and [words(%0)] words.
  > wc This is my test string
  #14! String %0 has [strlen(%0)] letters and [words(%0)] words. => String
       This is my test string has 22 letters and 5 words.
  #14! strlen(%0) => 22
  #14! %0 => This is my test string
  #14! words(%0) => 5
  #14! %0 => This is my test string
  Test says, "String This is my test string has 22 letters and 5 words."
& DESTROY_OK
  Flag:  DESTROY_OK  (things)

  The DESTROY_OK flag allows anyone who is holding an object to
  @destroy it. This is good for "temporary" objects like "Can of
  Cola". DESTROY_OK takes precedence over SAFE.

& ENTER_OK
  Flag:  ENTER_OK  (all types)
 
  If an object or person is ENTER_OK, other players may 
  enter the object or person by using 'enter <object/person>.
  Only objects which are ENTER_OK may be entered, regardless of the
  enter lock. Players must also have the ENTER_OK flag set if they wish
  to be able to receive  things given to them by other players via the 
  command 'give <player> = <object>'.  

  This flag has no effect on rooms.

See also: enter, leave, give, @lock
& FIXED
  Flag: FIXED (players)
  
  When this flag is set on a player, it prevents them or any of their
  objects from using the @tel or home command. The only exception is
  that a player's objects are permitted to @tel themselves to the
  player's inventory.
& FLOATING
  Flag:  FLOATING (rooms)

  If a room is set floating, you will not be notified every 10 
  minutes or so that you have a disconnected room.
  A disconnected room may mean (depending on how the MUSH is
  configured) a room that can't be reached from room #0, or
  a room that can't be reached from room #0 and has no exits.
& FORCE_WHITE
& WEIRDANSI
& WHITE
  Flag: FORCE_WHITE (players)

  When set on an ANSI player, this player causes the ansi code to
  reset the font color to white to be sent after everything the player
  sees. Necessary for players with broken ansi clients which "bleed".

  This flag is aliased to "WEIRDANSI" as well.

& GAGGED
  Flag: GAGGED (players)

  When set on a player, it disables him from doing anything 
  except moving and looking.  He cannot talk, page, build, pose, get 
  or drop objects. Normally used as a penalty for those who break
  MUSH rules.

  Only wizards can set this flag.
& GOING
  Flag:  GOING  (all types)

  Used internally for the @destroy command, it is set on things that
  are scheduled to be destroyed. To prevent a GOING object from being
  destroyed, use the @undestroy (or @unrecycle) command. You can no
  longer @set the object !GOING.

& HALT
  Flag:  HALT   (all types)

  While this flag is set, the object cannot perform any mush 
  actions, listen, be triggered, evaluate functions or substitutions,
  etc.

See also: @halt, @restart
& HAVEN
  Flag:  HAVEN (players, rooms)

  If a player is set HAVEN, she cannot be paged and anyone paging them
  will be sent a brief notification. You can also set a longer @HAVEN
  message if you wish. You may prefer to use @lock/page to block out
  only specific individuals.

  If a room is set HAVEN, the 'kill' command cannot be used in that room.

See also: @haven, kill
& INHERIT
  Flag:  INHERIT  (all types)

  Inherit is a security flag used to prevent objects without authorization
  from using @force, @set, and @trigger on other objects.
  Authorization is successful if:
 
     1. The enactor is WIZARD.
     2. The enactor's owner is INHERIT.
     2. The enactor is INHERIT.
     3. The target is not INHERIT.
 
  Only INHERIT or WIZARD objects may force their owners. Players can
  always @force, @set, and @trigger their objects. 
 
  Read "help Inherit2" for more.
 
& INHERIT2
 
  Authorization is only denied if the enactor is neither a player nor
  INHERIT, and the target is WIZARD, INHERIT, or is a player.
  The INHERIT protection against @trigger may be overridden by setting
  the target object LINK_OK.
  Objects which are WIZARD are not subject to any special criterion,
  although they are automatically considered to be INHERIT.
  The normal criteria for object control still apply.
 
  For zoned objects, the INHERIT flag protects against an object from
  being controlled by anything not owned by its owner. This prevents
  someone who controls a zone from doing things like @forcing an
  INHERIT object to @force its owner.
& JUDGE
& JURY_OK
  Flags: JUDGE and JURY_OK (players)
 
  These flags may be used by the MUSH to support some form of Judged
  RP system. Or they may not be compiled in. See @config for more
  information.
& JUMP_OK
  Flag: JUMP_OK  (rooms)

  When a room is set JUMP_OK, then that room can be teleported into
  by anyone. See @teleport.
& LIGHT
  Flag:  LIGHT (all types)

  Objects, players, and exits which have the LIGHT flag set on them
  (and are not also set DARK) appear in the contents of DARK rooms.

See also: DARK
& LINK_OK
  Flag: LINK_OK  (rooms, things)

  If a room or object is LINK_OK, anyone can link exits to it (but 
  still not from it). Also, LINK_OK overrides the INHERIT protection
  against @trigger (although not @force or @set). This also allows 
  others to @parent their objects to the thing set LINK_OK.

See @link, INHERIT, @parent, PARENTS
& MONITOR
  Flag:  MONITOR  (players)
  
  When set on a player, this flag notifies that player when anyone connects
  to or disconnects from the MUSH. It is valid only for players, and must be
  set by a wizard (although royalty may set themselves MONITOR).

  Flag:  MONITOR  (things, rooms)
 
  When set on a thing or room, this flag activates the ^ listen patterns on
  the object. Objects which have ^ listen patterns but are not set MONITOR
  do not check those patterns, although they are flagged on a @sweep as
  listening.
& MORTAL
  The MORTAL flag is no longer available in PennMUSH. Please see help
  changes for more information.
& MYOPIC
  Flag:  MYOPIC  (players)

  Myopic is a flag which suppresses the printing of an object's dbref
  number and abbreviated list of flags when it is looked at. It makes
  the world appear like you don't control any of it, even if you're a
  wizard or royalty. It's useful if you don't like to see object numbers.
  This flag is only valid for players; objects belonging to MYOPIC
  players are automatically considered to be MYOPIC.

See also: DBREF
& NO_COMMAND
  Flag:  NO_COMMAND  (all types)
  
  The NO_COMMAND flag disables the checking of $-commands on an object.
  Most MUSHes will be configured to automatically set this flag on rooms
  and players. The server runs faster when fewer objects are checked for
  $-commands; thus, any object which does not have $-commands on it should
  be set NO_COMMAND. Many MUSHes choose to have all objects initially set
  NO_COMMAND at creation.

See also: USER-DEFINED COMMANDS
& NO_LEAVE
& NOLEAVE
  Flag: NO_LEAVE (objects)
  
  When this flag is set on an object, players can not "leave" it. 
  Attempts to leave the object will trigger its @LFAIL, @OLFAIL,
  and @ALFAIL, if set.

See also: leave
& NO_TEL
  Flag:  NO_TEL  (rooms)

  The NO_TEL flag prevents objects in a room from being @teleported;
  mortals in the room cannot use @teleport, nor can other objects 
  @teleport them out. This flag is checked on the "absolute room" of an
  object; thus, if you are in a container in a room which is NO_TEL,
  you cannot use @teleport from that container. There is no way to
  get out of a NO_TEL room except by exiting in some "normal" manner,
  or by going "home". Puzzle rooms, prisons, and similar locations would
  probably benefit from this flag.
& NO_WARN
& NOWARN
  Flag: NO_WARN  (all types)

  This flag is enabled with the MUSH building warning system.

  When this flag is set on an object, its owner will not receive
  any building warnings from that object. When it is set on a player,
  that player will not receive any building warnings at all.

  See also 'help warnings', 'help @warnings', and 'help @wcheck'

& NOSPOOF
  Flag: NOSPOOF  (players)

  If a player is set NOSPOOF, @emits of all sorts will be tagged with the
  name of the person/object making them. This prevents spoofing and lets
  you see where such messages originated. Objects belonging to NOSPOOF 
  players are automatically considered NOSPOOF. 
  
  Note that NOSPOOF output can be spammy and that the output format of
  NOSPOOF can mess up @listen and ^ patterns, giving unexpected results.

  Sample output:
    @set me=nospoof
    > Flag set.
    @pemit me=Testing
    > [Cyclonus->Cyclonus] Testing

See SPOOFING, @emit, @pemit, @remit, and @oemit.
& ON-VACATION
  Flag: ON-VACATION (players)

  This flag may be used by the MUSH to allow players to indicate when 
  they have left for vacation, to prevent themselves from being purged
  for inactivity. It is automatically cleared whenever a player logs in,
  so players should @set it just prior to leaving the net.
& OPAQUE
  Flag:  OPAQUE  (all types)

  When set on yourself, it prevents other players from 
  seeing what you are carrying in your inventory. This applies to
  everyone and everything, even wizards and royalty, or to stuff
  that you own. It works the same way on objects.

  When set on an exit in a TRANSPARENT room, the exit is displayed
  as if the room weren't TRANSPARENT.

  Meaningless for rooms.

See also: TRANSPARENT, look
& PLAYER
  Flag:  PLAYER  (player)

  The PLAYER flag identifies you as a player. This flag cannot
  be reset by any player, not even a Wizard (although the @toad command
  changes a player to an object). It is used mainly by hardcode to 
  identify your commands, check for validity of commands or locks, etc.
  You can just pretend it isn't there. 
& PUPPET
  Flag:  PUPPET  (things)
  
  Setting this flag on a thing turns it into a sort of extension of its
  owner, making it grow eyes and ears. It then relays everything sees
  and hears back to its owner.

See: @force, PUPPETS
& QUIET
  Flag:  QUIET  (all types)

  This flag when set on yourself prevents you from hearing 
  the 'set' or 'triggered' messages from any objects you own.  When 
  set on an object, only that object will not relay its messages.
& ROOM
  Flag:  ROOM  (rooms)

  This flag is automatically set on rooms when you @dig a new
  room. It cannot be changed.
& ROYALTY
  Flag:  ROYALTY  (all types)

  If this flag is set on any type of object, then that object will
  be able to @tel and examine as if it was a wizard. Royalty players
  do not need money, nor are they affected by quotas or restricted
  building. Royalty is not able to change things like a wizard could. 
  Only wizards may set it on players, although players who are ROYALTY
  may set their objects ROYALTY.
& SAFE
  Flag:  SAFE  (all types)

  The SAFE flag protects objects from destruction. If the REALLY_SAFE
  option was set when the MUSH was compiled (see @config), the only
  way to destroy an object set SAFE is to explicitly reset the SAFE
  flag and then @dest it. If the REALLY_SAFE option is not set,
  @destroy/override (or @nuke) will override the SAFE flag and destroy
  the object.
& STARTUP
  Flag:  STARTUP  (all types)

  This flag is automatically set or reset when you set or clear the
  STARTUP attribute on something. Players may not set this flag.
  The presence of this flag just shows that an object has a STARTUP
  attribute on it.

See also: @startup
& STICKY
  Flag:  STICKY  (all types)

  If a thing is STICKY, it goes home when dropped (See HOMES).
  It also goes home when an object carrying it teleports or goes home.
  If a room is STICKY, its drop-to is delayed until the last person leaves 
  (See DROP-TOs). This flag is only meaningful for things and rooms.  
& SUSPECT
  Flag:  SUSPECT  (players)

  This flag is only settable by wizards. Players with this flag have
  their connects, disconnects, name changes, and kills reported to
  all connected wizards. All their actions are also logged to the MUSH
  log files.
& TEMPLE
  The TEMPLE flag is no longer available in PennMUSH. Please see help
  changes for more information.
& TERSE
  Flag:  TERSE  (players)

  When an object is set TERSE, it does not see the descriptions or
  success/failure messages in rooms. This is a useful flag if you're
  on a slow connection or you're moving through a familiar area and
  don't want to see tons of text. This flag is only valid for players;
  objects belonging to TERSE players are automatically considered to
  be TERSE.
& TRANSPARENT
  Flag:  TRANSPARENT  (all types)

  If this flag is set on a room, it will display exits in "long" format.
  Instead of putting all the exits on one line under "Obvious exits:"
  it prints each exit on a line by itself, in the format:
  <Exit Name> leads to <Exit Destination>.
  Thus, you might have:
     Obvious exits:
     South leads to Joe's Room.
     East leads to City Park.
  instead of
     Obvious exits:
     South  East

  Exits set OPAQUE are still shown in the short format, so you can mix
  the two.

(continued in help transparent2)
& TRANSPARENT2

  If this flag is set on an exit, when a player looks at the exit they
  will see the description and contents of the destination room following
  the exit's description.  The exit list and succ/fail messages of the
  room will NOT be displayed. See also CLOUDY.

See also: CLOUDY, OPAQUE, EXITS, @exitformat
& UNFINDABLE
  Flag:  UNFINDABLE  (all types)
  
  If a player is set UNFINDABLE, he cannot be found by the @whereis 
  command. You also cannot use loc(), locate(), and similar functions
  to find his location.
  
  If a room is set UNFINDABLE, you cannot locate any of its contents
  via any means (@whereis, the loc() function, etc.)
  
  If a wizard is set UNFINDABLE, and he is idle past the allowable 
  maximum idle time, he will be set DARK automatically.
& UNINSPECTED 
  Flag: UNINSPECTED (rooms)

  This flag may be used by the MUSH to indicate rooms which have not been
  inspected by the Building Council, Administration, etc.
& UNREGISTERED
  Flag: UNREGISTERED (players)
  
  This flag may be used by the MUSH to support on-line registration.
  The only restriction on UNREGISTERED players is that they may not
  be granted @powers.
& VERBOSE
  Flag:  VERBOSE  (all types)

  An object set VERBOSE echoes the commands it executes to its owner
  before executing them. This differs from the PUPPET flag in that the
  owner sees the command itself, rather than the output from the command.
  This flag is extremely useful in debugging, especially if used in
  conjunction with the PUPPET flag. VERBOSE output follows the format
  "#<object>] <command>". Something like "#1300] @trigger me/test" is a
  good example of typical VERBOSE output.

See also: PUPPET, DEBUG
& VISUAL 
  Flag:  VISUAL  (all types)

  When this flag is set on an object, it allows any other player to
  examine it and see all the object's attributes as if they owned it.
  It does not enable them to make changes to the object. Very useful
  for getting help with code.

See also: examine, brief
& WIZARD
  Flag:  WIZARD    (all types)

  If a person is WIZARD, they are a wizard, unkillable, 
  subject to fewer restrictions, and able to use wizard commands.  
  In general, WIZARDs can do anything using #<number> or *<player>. 
  Only player #1 can set and unset the WIZARD flag of other players. 
  No WIZARD can turn their own WIZARD flag off.

  Other objects may also be set WIZARD, and they then have all the 
  powers of a Wizard except that they cannot @nuke/@toad players.
  Only Wizards may set the WIZARD flag on objects.

See also: ROYALTY, @power
& Z_TEL
  Flag:  Z_TEL  (all types)

  The Z_TEL flag, when set on a zoned room or on the ZMO of a room, 
  prevents objects in the room from being @teleported out of the
  zone - that is, objects can only be @teleported to a room which
  is zoned to the same ZMO. Setting this flag on the ZMO affects all
  rooms zoned to it. Like NO_TEL, the "home" command will still work.
  This flag is intended for use in puzzle rooms and IC areas.

See also: ZONES, ZONE MASTERS, @chzone, ZONE MASTER ROOMS
& ZONE
  Flag:  ZONE   (players) 

  The ZONE flag is used to designate a player as a Zone Master.
  Objects owned by a Zone Master are controlled by anyone who passes the 
  player's zone lock.  This allows zoning based on ownership rather than 
  on the zone field and is more secure, although it does not allow for 
  the "local globals" ability of standard zones.

See also: ZONES, ZONE MASTERS, @chzone, ZONE MASTER ROOMS