& +ICFINGER & +OOCFINGER The +icfinger/+oocfinger command takes one piece of input: a character name. The name MUST match either the login name or alias of the char. The commands will show you information of a possibly useful nature. For +icfinger, the command shows you information about the character. For +oocfinger, you will find out information about the player. All information is optional, and if nothing is entered, then you'll just see a blank form. Players can easily edit the finger info by manipulating the extended attributes on their characters. Here are the attributes and their uses: ATTRIBUTE USE IC or OOCFINGER? ------------------------------------------------------------------- ICFULLNAME Char's full name +icfinger ICAGE Character's age +icfinger ICJOB Character's occupation (job) +icfinger ICBIRTHPLACE Character's place of birth +icfinger ICRESIDENCE Where the character lives +icfinger ICPROFILE Character's background/profile +icfinger ICPOWERS Character's skills/abilities * ICWEAKNESSES Character's shortcomings * EMAIL Player's email address +oocfinger ICQ Player's ICQ number +oocfinger AIM Player's AIM username +oocfinger RLJOB Player's occupation (job) +oocfinger AGE Player's age +oocfinger WEB Player's website address +oocfinger RLINFO Player's notes/comments/etc +oocfinger * - These two are stored but not shown on the +icfinger (yet). Any of the above attributes can be changed by the user, by editing the abovementioned extended attribute. For example you could set your character's age to 30 by typing '&ICAGE me=30'. Note: This does NOT give you permission to arbitrarily change character abilities and attributes! You must still get permission from the character staff, theme staff, or TP staff first. For more information on extended attributes (which can be used for many other features, including such things as extra descs), please see "help non-standard attributes". & +COMMANDS There are several extended commands added to the game by the GD2K staff. Here's a few of them. +KNOCK - allows you to knock on an exit/door and have people on the other side hear you. +SHOUT - People in adjacent rooms will hear what you +shout. +CHARS - Shows a list of available feature characters. There are also some undocumented commands like @scarf and @bap that have been added as a joke. See if you can find them all! <^_^> & CHAT & comsys CHAT SYSTEM The MUSH has a built-in chat system with many different channels. These channels vary from MUSH to MUSH; ask at your local site or use @channel/list to see which ones are available. You can talk to many people on the MUSH via the chat system, without needing to be in the same room as them. Use the "@channel" command to join, leave, or check who is on a channel, and use the "@chat" or "+" command to communicate. If you examine yourself, you will see a list of channels that you are currently listening to. Some channels are restricted to wizards or administrators only. See the following help topics for details: @chat, @channel, @cemit, @clock, cwho() & + & @chat @chat = + This tells everyone on your . You can prepend with ':' or ';' to pose instead of talk. This command can also be formatted: + You do not need to type the complete name of the channel, only as many letters as needed to make it distinct from another channel that you're also on. Note: if you use the '+' form of this command, and you do not use the name of a known channel, your command will be processed as normal, preventing user-defined commands like "+last" from being clobbered by the chat system. See also: chat & @cemit @cemit[/noisy][/noeval] = This command allows to be directly broadcasted to the players on . No channel-prefix is prepended unless the /noisy switch is given. If the /noeval switch is given, the is not evaluated. This command is intended for use in writing extended chat systems. See also: chat & @channel @channel/list [] @channel/what [] @channel/on [=] @channel/off [=] The basic form of this command allows you to see the available channels, and join or leave a channel. You do not need to type the complete name of the channel, only as many letters as needed to make it distinct from other channels. Wizards may add and remove other players from channels by providing a player name as a second argument. Some channels may be restricted in who can join them and/or speak on them. If the Extended Chat System is enabled, @channel/list will show you the channel's name, number of users, number of message since last restart, access information, and your status. See "help channel-list" for an explanation of how to read the listing. @channel/what will show you the channel's name, access information, and a description of the channel's purpose. More details are provided in "help @channel2". See also: chat & @channel2 @channel/who @channel/hide = @channel/title = The @channel/who command shows you who is currently on a channel, if you are permitted to see it. Some channels allow their users to hide from the @channel/who list. If you're on such a channel and are permitted to hide, you can use @channel/hide =yes to hide yourself, and @channel/hide =no to reappear. @channel/title lets you set a title to appear before your name when you speak on the channel. If you leave the channel, your title is cleared; use @channel/gag instead (see help @channel3). See "help @channel3" for more. & @channel3 @channel/mute = @channel/gag = Some channels broadcast messages when players connect or disconnect from the MUSH. If you're on such a channel and don't want to hear those messages, use @channel/mute =yes. To resume hearing the messages, use @channel/mute =no. If you want to remain on a channel but not receive any messages on the channel, use @channel/gag =yes. To resume hearing, use @channel/gag =no. If you disconnect, the channel will be automatically ungagged for you. See "help @channel4" for more. & @channel4 @channel/add [= ] @channel/delete @channel/desc = @channel/rename = The "add" switch creates a new channel. On some MUSHes, any player can create a new channel, though there will be a cost associated with creation (see @config chat). The possible access specifications are "player" (players may use the channel), "object" (objects may use the channel), "admin" (you must be royalty to use the channel), "wizard" (you must be a wizard to use the channel), "quiet" (the channel will not broadcast connection messages), "open" (you may speak on the channel without joining it) and "hide_ok" (users can hide from the who list). Combinations are allowed. If none are given, "player" is used as the default. @channel/delete allows a Wizard or the channel's owner to delete the channel. @channel/desc sets the channel's description, shown on @channel/what. Descriptions are limited to 256 characters. @channel/rename is used to rename a channel. See "help @channel5" for more. See also "help @clock". & @channel5 @channel/priv = @channel/quiet = @channel/wipe @channel/decompile[/brief] @channel/chown = The "priv" switch changes the channel's access privileges. The "quiet" switch turns the quiet status of a channel on and off. The "wipe" switch clears a channel of players without deleting it. The "decompile" and "chown" switches can only be used by Wizards. @channel/decompile produces a decompile of matching channels. If the /brief switch is included, players on the channel aren't listed. @channel/chown allows a Wizard to change the owner of a channel. & channel-list Here's the legend for reading the @channel/list output: Channel Name Num Users Num Msgs Access Locks Status Sample 1 0 [DPOWQHo jsmvh*] [On QH] ||||||| |||||| | || Channel is DISABLED----------------------------/|||||| |||||| | || Channel allows PLAYERS--------------------------/||||| |||||| | || Channel allows OBJECTS---------------------------/|||| |||||| | || Channel is Wizard-only (W) or Admin-only (A)------/||| |||||| | || Channel is QUIET-----------------------------------/|| |||||| | || Channel is HIDE_OK----------------------------------/| |||||| | || Channel is OPEN (non-members can speak on it)--------/ |||||| | || Channel has @clock/join set----------------------------|||||| | || Channel has @clock/speak set----------------------------/|||| | || Channel has @clock/mod set-------------------------------/||| | || Channel has @clock/see set--------------------------------/|| | || Channel has @clock/hide set--------------------------------/| | || Player is the owner of the channel--------------------------/ | || Player is currently on/off/gagging the channel------------------/ || If on, player has the channel muted---------------------------------/| If on, player is hiding on the channel-------------------------------/ & @clock @clock/join [= ] @clock/speak [= ] @clock/see [= ] @clock/hide [= ] @clock/mod [= ] The @clock command modifies the a lock on a chat channel if the extended chat system is in use. If no key is specified, the lock is unlocked. Evaluation locks will not work with @clock. See help @clock2 for information on using indirect locks. The "join" lock restricts who can join the channel. The "speak" lock restricts who can speak to the channel. The "see" lock restricts who can see the channel on @channel/list The "hide" lock restricts @channel/hide if the channel is hide_ok. The "mod" lock restricts who can modify the channel. If you pass the mod lock on the channel, you can do anything short of deleting it. When new channels are added, the mod lock is set to the creator/owner, and all other locks are unlocked. See help @clock2 for how to use indirect locks to lock a channel to anything. & @clock2 If user-defined locks are available, you can use indirect @clocks to lock a channel to a lock of any type (including evaluation locks) on a VISUAL object. This channel can only be joined by an UNFINDABLE player: >@clock/join unfindchannel=@#10 >@lock/user:ChanJoinLock #10=isunfind/1 >&isunfind #10=[hasflag(%#,unfindable)] >@set #10 = VISUAL @clock Corresponding user: lock for object join ChanJoinLock speak ChanSpeakLock see ChanSeeLock hide ChanHideLock mod ChanModLock & COMMANDS Help is available for the following MUSH commands: ahelp anews brief DOING drop examine enter events follow get give go index kill leave LOGOUT look move news page pose QUIT read rules say score slay take teach think unfollow use whisper WHO with " : ; + In addition to these, there are several types of '@' commands. @-commands are usually commands which have permanent effects on the MUSH (such as creating a new object). Here are the help topics on @-commands: @-ATTRIBUTES @-BUILDING @-GENERAL @-WIZARD & @-ATTRIBUTES These '@' commands set standard message/action sets on objects. Each comes in 3 versions: @, @o, and @a. Only the @ version is listed below, but help is available for each: @death @describe @drop @efail @enter @failure @follow @idescribe @leave @lfail @move @payment @success @tport @ufail @unfollow @use @zenter @zleave These '@' command set other standard attributes on objects that don't follow the pattern above: @aahear @aclone @aconnect @adisconnect @amhear @away @charges @cost @conformat @ealias @exitformat @filter @forwardlist @haven @idle @infilter @inprefix @lalias @listen @nameformat @oxenter @oxleave @oxmove @oxtport @prefix @runout @sex @startup See also: ATTRIBUTES, NON-STANDARD ATTRIBUTES & @-BUILDING These '@' commands are building-related (they create or modify objects): @atrlock @atrchown @chown @chzone @clone @cpattr @create @destroy @dig @elock @eunlock @firstexit @link @lock @mvattr @name @nuke @open @parent @recycle @set @undestroy @ulock @unlink @unlock @uunlock @wipe & @-GENERAL These '@' commands are general utility and programming commands: @@ @alias @break @channel @chat @cemit @command @config @decompile @doing @dolist @drain @edit @emit @entrances @find @force @function @gedit @grep @halt @lemit @listmotd @mail @map @notify @oemit @password @pemit @ps @remit @restart @rwall @rwallemit @rwallpose @scan @search @select @stats @sweep @switch @teleport @trigger @verb @version @wait @whereis @zemit & @-WIZARD These '@' commands are only usable by wizards or privileged players: @allhalt @allquota @boot @chownall @chzoneall @comment @dbck @disable @dump @enable @hide @kick @log @motd @newpassword @pcreate @poll @poor @power @purge @quota @readcache @rejectmotd @shutdown @sitelock @squota @uptime @wall @wallemit @wallpose @wizemit @wizmotd @wizpose @wizwall cd ch cv & @@ The "@@" command is a special kind of command; it signals the start of a comment. The comment lasts until a semi-colon is found, just like other MUSH programming statements terminate with a semi-colon. It cannot be put into the middle of a statement, like @va me = $testing:@emit Test. @@ Just a test @@; @vb me=Testing. That will result in the object emitting "Test. @@ Just a test. @@" The correct usage is to make the comment a statement by itself: @va me = $testing:@emit Test.; @@ Just a test @@; @vb me=Testing. It is not necessary to use a closing '@@', but doing so makes the comment stand out much more clearly. A space between the first '@@' and the word following it is necessary. & @aahear @aahear = An aahear on an object is activated whenever the object's listen pattern is matched by anything done/said by either anything else in the room OR the object itself. In contrast, an ahear on an object cannot be activated by anything the object itself does. See also: @listen, @ahear, @amhear, LISTENING & @aclone @aclone = Sets the actions to be taken whenever is @cloned. This command can be useful for notifying the owner of a vending machine or parent object when someone uses the machine. Please note that there is no @oclone, and that @clone is always a command, not an attribute. See also: @clone, @create, ACTION LISTS & @aconnect @aconnect = Sets the actions to be taken by a player right after connecting to the game. Example: @aconnect me = :stretches luxuriously, as if waking from a nap. Note that long and spammy @aconnect messages, whether in your room or on a channel, are frequently found annoying by other players. The player's location, and zone object/objects in the zone parent room of the location, as well as objects in the master room, are also checked for an @aconnect. If one is found, it will be executed when a player connects in that location or zone (or, in the case of the master room, anywhere). See also: @adisconnect, ACTION LISTS & @adeath @adeath = Sets the actions to be taken after is killed. See also: @odeath, @death, kill, BEING KILLED, ACTION LISTS & @adescribe @adescribe = Sets the actions to be taken when is looked at. A common use of this command is: @adesc me=think %N just looked at you. which will inform you whenever someone looks at you. %N will be replaced by the name of the person who looked. While it is possible to set a message to be broadcasted to everyone in the area when someone looks at you, this is strongly discouraged, as many people find it annoying. See also: @describe, @aidescribe, look, SUBSTITUTION, ACTION LISTS & @adestroy @adestroy = Sets the actions to be taken by the object when it is destroyed (via @rec or @nuke). This can only be set by a Wizard. If @adestroy doesn't work, try &adestroy. :) & @adisconnect @adisconnect = Sets the actions to be taken by a player right after disconnecting from the game. Example: @adisconnect me = home The player's location, and zone object/objects in the zone parent room of the location, as well as objects in the master room, are checked for an @adisconnect. If one is found, it will be executed when a player disconnects in that location or zone (or, in the case of the master room, anywhere). See also: @aconnect, ACTION LISTS & @adrop @adrop = Sets the actions to be taken when is dropped. If is an exit, sets an action to be done after a player has passed through the exit. See also: @odrop, @drop, drop, ACTION LISTS & @aefail @aefail = Sets the actions to be taken by the object when someone fails to enter it. See also: enter, FAILURE, ACTION LISTS & @aenter @aenter = Sets the actions taken by the object whenever someone enters it. See also: @enter, @oenter, enter, ACTION LISTS & @aufail & @oufail & @ufail @ufail = @oufail = @aufail = Sets message shown to a player who fails to use an object via the 'use' command (@ufail), message shown to others in the room (@oufail), and action for the object to take (@aufail). Note that these attributes are @ufail, NOT @ufailure, for TinyMUSH compatibility. & @afailure @afailure = Sets the actions to be taken on failure to pass the @lock on an object. For players and things, this means failure to pick them up with get/take. For exits, this means failure to go through an exit. May be abbreviated @afail. See also: @fail, @ofail, get, EXITS, @lock, ACTION LISTS & @afollow @afollow = Sets the actions to be taken after someone or something begins following the object. See also: follow, unfollow, followers(), @follow, @ofollow, ACTION LISTS & @aunfollow @aunfollow = Sets the actions to be taken after someone or something stops following the object. See also: follow, unfollow, followers(), @unfollow, @ounfollow, ACTION LISTS & @ahear @ahear = Sets the actions to be taken after the object's @listen is matched. Note that @ahear ignores any messages that the object itself creates, so it can only be triggered by other things. If you want the object to be able to trigger itself, try using @amhear or @aahear. See also: @aahear, @amhear, @listen, ACTION LISTS, LISTENING & @aleave @aleave = Sets the actions to be taken whenever someone leaves the object. See also: leave, @leave, @oleave, ACTION LISTS & @alfail @alfail = Sets the actions to be taken whenever someone tries to leave the object and fails (because the object is set NO_LEAVE or because the person fails the @lock/leave on the object). See also: leave, @lfail, @olfail, ACTION LISTS & @alias @alias = @alias is a special attribute. When a player sets an @alias, he is effectively giving himself a secondary name; he can be paged by his @alias, and matched with *, and all other game functions which look up player names will also accept the alias. The attribute is visible to all players. Aliases cannot be longer than the limit allowed for player names, cannot contain spaces, and must be unique -- no other player may have the same alias or name as any other player's alias or name. & @allhalt @allhalt This command halts all objects in the game in an effort to free up the queue. Wizard-only command. This command is equivalent to "@halt/all". See also: QUEUE, @ps & @allquota @allquota[/quiet] [] This is a God level command that is only available if the quota system is being used. It displays the current max and owned objects of every player (unless the /quiet switch is used) and resets their quota left to the new limit minus the current number owned if a limit is given. & @amhear @amhear = Sets the actions to be taken whenever the @listen on the object is matched by something that the object itself does. It will not react if anyone else in the area does anything that matches the @listen pattern. If you want other objects to be able to set off the action list, try using @ahear or @aahear. See also: @listen, @ahear, @aahear, LISTENING, ACTION LISTS & @amove @amove = This is the action to be taken whenever an object moves. See also: @move, @omove, @oxmove, ACTION LISTS, go & @apayment @apayment = Sets the actions to be taken after a player gives an object some amount of pennies. See also: give, @pay, @opay, @cost, MONEY, ACTION LISTS & @atport @atport = Sets the list of actions that will perform when it is teleported. These actions are done after has arrived in its new location. See also: @tel, ACTION LISTS & @atrchown @atrchown / = . Like @chown except it changes the control of an attribute from one person to another. You may only @atrchown attributes that you can normally set, and unless you're a wizard, you can only @atrchown attributes to yourself. See also: @atrlock, ATTRIBUTES, NON-STANDARD ATTRIBUTES & @atrlock @atrlock / = [on|off]. If 'on' is specified, it 'locks' the specified attribute on the object. If the attribute is owned by someone other than you, you will gain ownership of it. If an attribute is unlocked, then anyone who controls the object may change it. If it is locked, only wizards and the attribute's owner (Assuming the owner controls the object) can change it. Wizards may lock/unlock anyones attributes. If you specify 'off' it will unlock a locked attribute. Specifying neither will return the current value of the lock. You can only lock or unlock attributes you can normally set. See also: @atrchown, ATTRIBUTES, NON-STANDARD ATTRIBUTES & @asuccess @asuccess = Sets the actions to be taken when the @lock of an object is passed. For things/players, this means picking them up. For exits, this means going through them. See also: @success, @osuccess, get, @lock, EXITS, ACTION LISTS & @attribute @attribute @attribute/access[/retroactive] = @attribute/delete @attribute/rename = @attribute is a wizard-only command which modify's the MUSH's table of standard attributes (use @list/attribs to list them). A standard attribute is one that can be set with @ instead of &, and which, when set, has a predefined set of initial permissions. *** Unlike TinyMUSH, changes to the PennMUSH attribute table *** are not saved across shutdowns. Use these commands from *** God's @startup to insure they are run at each startup. Used without switches, @attribute shows info about a standard attrib. @attribute/access adds a new standard attribute into the table, associating it with the given space-separated list of permissions. See 'help @set' for possible permissions. If the /retroactive switch is added, the permissions are applied to all objects in the database which have the attribute set already. @attribute/delete removes a standard attribute from the table. @attribute/rename renames a standard attribute. & @ause @ause = Sets the actions to be taken when an object is successfully "used". See also: use, @use, ACTION LISTS, @charges, @runout & @away @away = This message is sent to a player who tries to page you when you are not connected, if it evaluates to something non-null. Example: @away me=I'm not here, please send me @mail instead. & @boot @boot @boot/port @boot/me Disconnects the player from the game. The /port switch takes a descriptor number instead (the "Port" number in WHO for wizards). The /me switch boots any single descriptor for the same player which has been idle for at least 1 minute. Players can use this command to terminate hung connections. Only admin and those with the "boot" power can @boot other players. & @BREAK @break @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;@break %0;@pemit %#=After break > testme 0 Before break After break > testme 1 Before break > @force me={@switch 1=1, think Third; think First; @break 1; think Second} First Third (The @switch is run, which queues 'think Third', think First is run, displaying 'First', command execution is broken (so we never think Second, and then the queued 'think Third' is run, displaying Third. If you figured that out, you have a very good understanding of the PennMUSH queue. :) See also: ACTION LISTS, QUEUE, BOOLEAN VALUES & @charges @charges = Allows you to limit the number of times an object can be "used". The "charges" attribute will be decreased by one each time the object's @ause is triggered, and once it reaches zero, the object cannot be used anymore. See also: use, @runout, @ause & @chown @chown[/preserve] = Changes the ownership of to . You can chown things, rooms, or exits. To chown a thing, you have to be carrying it. If you do not own an object, you can only chown it if it is CHOWN_OK. If you're not a Wizard, you can only @chown objects to yourself or to a Zone Master whose zone-lock you pass. Normally, @chown'ing an object clears privileged flags and powers, and sets the object halt. Wizards may use @chown/preserve to chown an object, preserving these privileges and not setting the object halt. Doing this to an active object with queued commands is not recommended, and may have strange and insecure effects. Examples: (for a room) @chown here=me (for an object) @chown box=Soundwave Players can't be @chowned; they always own themselves. See also: CHOWN_OK, Zone Masters & @chownall @chownall [= ] Transfers ownership of all the objects that the player owns to . If the target player is not included, then all the objects are chowned to the person executing the command. This is a wizard-only command. See also: @chown & @chzone @chzone = @chzone =none The first form of this command changes the ZONE of to . This puts the object on that zone and allows anyone who passes the zone-lock of the zone object to make changes to the object. Any kind of object can be @chzoned, but exits cannot be used as zone objects. The second form of this command resets the zone of to *NOTHING*. Anyone can reset the zone of an object s/he owns. If a player is @chzoned, anything s/he makes afterwards will start out with that Zone, but none of the objects that s/he presently owns will have their Zone changed. Players can @chzone themselves to an object if they own it. Otherwise, only wizards can @chzone players. (continued in help @chzone2) & @chzone2 To see the Zone of an object, you can use either 'brief' or 'examine' to examine it. The Zone is listed on the same line as the Owner of the object. Players can @chzone objects they own if they own the zone object or if they pass its @lock/chzone. Wizards can @chzone objects to any zone object as long as the object has a zone-lock. Whenever an object besides a player is @chzoned to a zone object, the WIZARD, ROYALTY, and TRUST flags will be reset, as will all @power's (for security purposes). For similar reasons, it is strongly recommended that you do not @chzone admin- or wizard-owned objects to any zone that less privileged players have access to. See also: ZONES, @chzoneall & @chzoneall @chzoneall = Changes the zone of all objects owned by to . If is "none", the zone is reset to NOTHING. Only wizards may use this command. See also: @chzone, ZONES & @clone @clone @clone/preserve For objects, creates an exact duplicate of it and puts it in the current room. For exits, it creates an exact duplicate of that exit, except the clone's source is the current room rather than whatever the original exit's source was. For rooms, creates an exact duplicate of the room, without contents or exits. If creation times are enabled, a clone will have a different creation time than the object it was cloned from, but will have the same modification time, to make tracking revisions of code easier. A wizard may use @clone/preserve, which has the effect of preserving all the bits, powers, and warnings of the original object. To clone a room and all its exits, use code like: @tel [setq(0,%l)][clone(here)]; @dol lexits(%q0)=@clone ## See also: @create & @command @command @command/ @command provides information about and controls the availability of other commands. With no switches, @command shows all sorts of interesting information about how a command is parsed. Switches include: /disable : Disable the /off : Synonym for /disable /enable : Enable the /on : Synonym for /enable /quiet : Don't make noisy output when doing one of the above See HELP RESTRICT for more. & @comment @comment = This is a wizard-only command which sets a COMMENT attribute on . The comment can only be seen by other wizards and royalty. & @config @config/functions @config/commands @config/attribs @config/list[/lowercase] [] @config/set option=value This command lists the MUSH configuration parameters, indicating what special things are enabled, and the cost of certain commands. Switches include: /functions -- Lists all functions. /commands -- Lists all commands. /attribs -- Lists all standard attributes. /list -- Lists the value of a particular