& help This is the TinyMUSH 3 online help facility. (IMPORTANT: see 'help Revision'.) Type 'help About Help' for help on using help, and other related details. Type 'help Tutorial' for a "quick start" guide for first-time MUSHers. Type 'help Syntax' for a brief explanation of the syntax of MUSH commands. For a list of recent changes to the MUSH server, type 'help Patchlevel'. --------------------------------------- Type 'qhelp' for the quick-reference help. This is strongly recommended over the regular help, unless you absolutely need all the gory details! --------------------------------------- Type 'help Topics' for a more extensive list of help topics. Many MUSHes also have local help files. Type '+help' to access them. Most MUSHes also have local information files. Type 'news' to read them. Wizards can type 'wizhelp' to read the administrator help files. & Revision The TinyMUSH 3 help facilities are currently under revision. When this revision is complete, the help files will be divided into 'qhelp' (quick help for the ordinary player who doesn't need every little subtlety and possibility), and 'help' (very detailed explanations for the advanced MUSH programmer). Furthermore, the structure of help is being altered to group related topics together, on the basis that people are usually looking for help with concepts, trying to find "what" something does (often, trying to find the name of a command, function, etc. that does what they want), before they look at "how" that something does it. As of this beta release, this rewriting is still ongoing. Thus, the help files are a sometimes-confusing mixture of the old way and the new way. Please be patient; this will get fixed. & About Help In all help entries, the following notations mean special things: [text] - Text enclosed in []'s is optional. The []'s are never typed in as part of the command. - A parameter for a command, usually a variable that you fill in yourself. For example, usually means the name or dbref of an object. The <>'s are never typed in as part of the command. - A parameter for a command that could be one of several values. 'opt1' and 'opt2' are literal strings, in this case, not and parameters. See 'help Conventions' for common values of abbreviations. These conventions are important; please make sure you read this entry, or some of the more complex command and function syntax might not make any sense to you. Continued in 'help About Help2'. & About Help2 To read a help entry, type 'help '. You don't need to type the complete topic name, just enough of it to make the word unique. For instance, instead of typing 'help @switch', you can type 'help @swi'. Topic names are not case-sensitive. Almost all help entries are primarily intended as a reference guide, not a tutorial. As such, they are intended to be as exhaustive as possible, detailing exactly how things work. The vast majority of players will not need the reams of detail contained in many of the help entries. They are likely to find the QuickHelp ('qhelp') and its short, simplified help entries for the frequently-encountered MUSH commands and concepts to be much more helpful. Type 'qhelp' to get the QuickHelp index. First-time players should type 'help Tutorial' for an introduction to MUSHing. If you are trying to learn how to code and build in MUSH, you might also find external documentation to be more helpful. Some MUSHes have a MUSH Manual online; type 'man' to access it, if it's available. & Conventions These help entries use a variety of abbreviations and conventions when describing the for commands, functions, and so forth. In many cases, these are quite standard entities, and therefore will be notated in a shorthand. This help entry describes those shortcuts. A single switch to a command, modifying its behavior. Equivalent to /// Multiple switches to a command, modifying its behavior. A 'wildcard' pattern, i.e., one that contains '*' and '?'. See 'help Wildcards' for details. A regular expression. See 'help Regexps' for details. Continued in 'help Conventions2'. & Conventions2 A string, made up of arbitrary characters. The first character in a string is numbered 0, the second character in a string is numbered 1, and so forth. A number of strings, separated by a delimiter, . Each string is called a 'word' or an 'element'. The first element in a list is numbered 1, the second element in a list is numbered 2, and so forth. 'cat dog bird' is a space-delimited list with three words. 'cat|dog|bird' is a '|'-delimited list. A delimiter. A single character used to separate elements in a list from one another. An output delimiter. A special type of delimiter. Equivalent to [,] See 'help Delimiters' for more on delimiters and defaults. Continued in 'help Conventions3'. & Conventions3 The dbref of an object. A player, specified by his full name, alias, or dbref. Often, for a connected player, a partial name, as long as it's unique, will be sufficient. 'me' is normally also valid. An object. Normally, an object can be referred to by its dbref, or part of its name (or part of its name), or as 'me' or 'here' if appropriate; players can also be referred to by *. Non-wizards without the Long_Fingers power might not be able to manipulate objects that are not near them. See 'help Matching' for details. Equivalent to but the object must be a player or thing. The full name of an attribute. Continued in 'help Conventions4'. & Conventions4 Equivalent to / An object/attribute pair, such as '#10/VA', referring to the VA attribute on the object with the dbref #10. Equivalent to [/] An "attribute reference". This is an object/attribute pair, where if the object is not specified, 'me' is implied. In other words, '#10/VA' is a valid parameter for , as is 'VA' (which implies 'me/VA'). A wildcard attribute. It matches every attribute (normally on a specified object) whose name matches this wildcard pattern. & Syntax The syntax of most MUSH commands takes one of following forms: [/] [/] [/] = [/] = ,[...,] For example: look look/outside @teleport #0 @teleport me = #0 @teleport/quiet me = #0 @open North;n = #0, South;s Continued in 'help syntax2'. & Syntax2 The help entries list the proper syntax for each command and function. Most, but not all built-in MUSH commands begin with an '@' sign. All built-in MUSH commands are not case-sensitive. Thus, 'look', 'LOOK', 'Look', and 'LooK' all indicate the same command, 'look'. Many MUSHes have special local commands unique to that MUSH, as well. By convention, such commands usually begin with a '+' sign. & Attributes With a handful of exceptions, help topics related to built-in attributes have either grouped attributes under the commands or flags that utilize them (especially true of "verb" attributes), or into single entries that discuss closely related attributes. The appropriate help entries to consult are listed below. look: @desc set, @idesc, @succ set, @fail set drop: @drop set, @dfail set enter: @ealias, @enter set, @efail set, @oxenter give: @gfail set, @rfail set goto: @succ set, @fail set, @drop set kill: @kill set leave: @lalias, @leave set, @lfail set, @oxleave page: @away, @idle, @reject use: @use set, @ufail set @clone: @aclone @last: @last, @lastsite, @logindata @mail: @amail, @mailsucc, @signature @teleport: @tport set, @tfail set, @tofail set, @oxtport Continued in 'help Attributes2'. & Attributes2 @aconnect: @aconnect, @adisconnect @forwardlist: @filter, @forwardlist, @infilter, @inprefix, @prefix @listen: @listen, @aahear, @ahear, @amhear Charges: @charges, @runout Vendors: use of machines, @pay set, @cost Moving: @move set Individual attribute entries: @allowance @comment @conformat @daily @exitformat @exitto @nameformat @newobjs @sex @speechformat @startup @timeout @va All available attributes can be listed with '@list attributes'. See 'help Attributes3' for a definition of what attributes are, a definition of what verbs are, and how to set built-in attributes, and how to set user-defined attributes. & Attributes3 An "attribute" is a piece of data that's stored on an object, under a specific name. For example, an object's description (what you see when you 'look ') is stored in its Desc attribute. Attribute names are not case-sensitive, and must be under 32 characters long. In general, letters, numbers, underscores, dashes, and periods can be safely used in attribute names, though there are some other special characters permitted, as well. To set an attribute on an object, use: & = MUSH also has a variety of built-in attributes, attributes which have a special meaning to the MUSH server. To set the value of a built-in attribute object on an object, use: @ = For example, '@desc balloon = A red balloon.' would set the description of a balloon object. Continued in 'help Attributes4'. & Attributes4 Attributes can have owners that are different from the owners of the objects. Attributes can be locked, preventing anyone from changing their value. Attributes can also have flags, which give the attributes special properties. These flags can apply to a specific attribute on a specific object ("attribute's flags"), or to all attributes with this name on the MUSH ("attribute's access flags"). In brief, the syntax for the commands that alter attribute properties: @chown / = @lock / @unlock / @set / = @attribute/access = @admin attr_access = See 'help Attribute Owners', 'help Attribute Flags', 'help @chown', 'help @lock', 'help @unlock', 'help @set', 'wizhelp @attribute', and 'wizhelp attr_access' for additional details.) Continued in 'help Attributes5'. & Attributes5 Some built-in attributes act in special ways when a player takes a specific kind of action. They show a message to the player who took the action, show a message to the other objects in the player's location, and trigger a sequence of action commands. These attributes are known as "verbs", or as '@attr/@oattr/@aattr sets' -- for the message shown to the player, the message shown to Others, and the Action taken, respectively. For example, when you look at an object, the MUSH utilizes the @desc / @odesc / @adesc attribute set (the Desc, Odesc, and Adesc attributes, set by the @desc, @odesc, and @adesc commands). It shows you, the player looking at the object, the Desc attribute set on the object, evaluated (which expands percent-substitutions and functions). It shows everyone else in your location the Odesc attribute on the object, evaluated; it prepends your name to the message. Then, it queues up for execution, the semi-colon-separated list of actions given in the object's Adesc, which the object then executes. Continued in 'help Attributes6'. & Attributes6 For example: @desc balloon = A red balloon. @odesc balloon = looks at a red balloon. @adesc balloon = @emit The red balloon drifts away. When you, a character named Figment, type 'look balloon', you are shown the message 'A red balloon.' Everyone else in your location sees, 'Figment looks at a red balloon.' The balloon object itself queues the command '@emit The red ballon drifts away.' and a second later, everyone in the balloon's location sees 'The red balloon drifts away.' You can avoid having the actor's name being prepended to an @o-attr via the use of the 'no_name' attribute flag. For example: @osucc exit = A breeze comes up and sweeps %N eastwards. @set exit/osucc = no_name Running actions from an @aattr costs charges from the @charges attribute, and may trigger @runout. See 'help Charges' for details. & Attribute Flags Topic: Attribute Flags The following are the possible attribute flags: dark - Attribute which can only be seen by God. Global only. (d) god - Attribute which can only be changed by God. Global only. (g) hidden - Only those who are Wizards, Royalty, or have the attr_read power, can see this attribute. (m) wizard - Only Wizards, or those who have the attr_write power, can set/change this attribute. (w) visual - Anyone may see the attribute, including obtaining it with a function such as get(). (V) locked - Cannot be changed by anyone. Set via '@lock /' and '@unlock /', not @set. Local only. (+) const - Cannot be changed by anyone. Global only. Continued in 'help Attribute Flags2'. & Attribute Flags2 no_command - Prevent $-commands and ^-patterns defined in the attribute from being performed. ($) no_parse - When $-commands/^-listens are matched, the unparsed (non-evaluated) string is used. Useful for MUSH editors. Local only. (P) case - Treat regular expression patterns as case-sensitive. Affects $-commands, ^-listens, @filter, @infilter, and @listen. Local only. (C) regexp - Treat patterns as regular expressions rather than wildcard glob patterns. Affects $-commands, ^-listens, @filter, @infilter, and @listen. Local only. (R) rmatch - Set wildcard matches into x-variables. Local only. (M) now - Execute matches now, instead of queueing. Local only. (Q) Continued in 'help Attribute Flags3'. & Attribute Flags3 no_inherit - Prevents children of the object from obtaining the attribute. From their perspective the attribute does not exist. (I) no_clone - Prevents attribute from being copied when an object is cloned. Global only. (c) default - Checks the attr_defaults object of the appropriate type for the attribute, whenever attr/oattr/aattr invocation is done (including @verb). See 'wizhelp attribute defaults' for more information. Global only. (D) html - When used as part of an Attr/OAttr/AAtr trio (as in @verb, @enter, etc.), the Attr is not HTML-escaped (see Pueblo). Local only. (H) no_name - If used as an @o-attr (including with @verb), don't prepend the name of the actor. Also affects @speechformat. (N) Continued in 'help Attribute Flags4'. & Attribute Flags4 structure - Contains structure data set via write(). Cannot be read by other means. Local only. (S) internal - Cannot be read or written to by any means. Used only for attributes that should be directly altered by the server itself. Global only. ignore - Prevents the automatic creation of an @-command for a built-in attribute. Global only. Continued in 'help Attribute Flags5'. & Attribute Flags5 The "global attribute" (the "definition" of all attributes on the MUSH with a given name) has a set of flags that applies to all attributes with that name. Each individual instance of an attribute (i.e., each attribute that is set on an object) can also have flags. Some flags are only checked locally; some flags are checked only globally; some flags are checked both globally and locally. The global flags of a user-defined attribute are changed via the command '@attribute/access = '. Such changes are permanent. The global flags of a built-in attribute are changed via the command '@admin attr_access = '. Such changes are not permanent, and must be put in the conf file (with 'attr_access ') for permanence across startups. The flags of an individual attribute are changed using the command '@set /='. The exception is the 'locked' flag. & Attribute Owners Topic: Attribute Owners If you own an attribute, you can view it, lock/unlock it, and @chown its ownership, even if you do not control the object that the attribute is on; however, you cannot change or remove the attribute, unless you control the object it's on. When checking an attribute lock against an object, the lock will always fail if the locked object is not owned by the same player as the attribute being tested. The comparison specified in the lock is only performed if the owner of the locked object also owns the attribute on the object being checked. & Tutorial Topic: Tutorial Coming soon. & COMMANDS Flag: COMMANDS ($) When set on an object, when a command match is done, it checks the object for attributes of the form '$:'. If the command matches the pattern, then is executed. In other words, it checks the object for arbitrary user-defined $commands. Depending on your MUSH configuration, this flag might or might not be necessary for User Commands to be checked. See 'help User Commands' for more details. & Command List Messaging: @@ @emit @eval @femit @fpose @fsay @npemit @oemit @pemit page pose say think whisper Movement: @teleport drop enter get give goto home leave Database alteration: @alias @chown @chzone @clone @cpattr @create @destroy @dig @edit @link @lock @mvattr @name @open @parent @power @quota @robot @set @unlink @unlock @wipe Continued in 'help Command List2'. & Command List2 Program execution: @dolist @drain @force @halt @notify @program @ps @quitprogram @redirect @sql @switch @trigger @verb @wait use Other: @cron @crondel @crontab @decompile @doing @entrances @find @floaters @last @list @listcommands @listmotd @password @reference @search @stats @sweep examine inventory kill look score version DOING INFO LOGOUT OUTPUTPREFIX OUTPUTSUFFIX PUEBLOCLIENT QUIT SESSION WHO You are strongly encouraged to check if there is QuickHelp on something before consulting the "regular" helpfile. Type 'qhelp' for an index of QuickHelp topics and commands. Type 'help ' for details about a specific command. & Topics Help is available on the following topics: About Help Attributes Attribute Owners Attribute Flags Boolean Values Caller Command List Comsys Conn Reasons Control Conventions Costs Credits Delimiters Enactor Exits FAILURE FLAG LIST FLAGS FUNCTION LIST FUNCTIONS HOMES LINKING LISTENING LISTS LOCAL REGISTERS Location Locks LOOPING Matching Modules MONEY Moving OBJECT TYPES PARENT OBJECTS Patchlevel PIPING PUEBLO PUPPETS REGEXPS ROBBERY Scan Order SEARCH CLASSES SEMAPHORES SPOOFING STACK SUBSTITUTIONS SUCCESS SWITCHES Syntax User Commands Zone Control ZONE OBJECTS & throw & drop Command: drop[/quiet] drop[/quiet] When you drop an exit, it is removed from your list of carried exits, and added to the exits from your current location; the exit behaves just like an exit that was @open'd directly out of that location in the first place. You can only drop exits in a location that you could normally @open an exit out of. Under normal circumstances, dropping an object removes the object from your inventory, and places it in the contents of your current location. If the object has a DropLock, you must be able to pass the lock (or be a Wizard), in order to drop the object; if you can't drop the object, then the object runs its @dfail verb set. When you drop an object, several things occur. See 'help Moving' for an expansion of some of these steps. The object being dropped is the mover, its current location is you (the player dropping it), and its destination is your current location (the room it's being dropped into). Continued in 'help drop2'. & drop2 The following happens when an object is dropped: - The mover leaves its current location. - The mover's destination is registered. - The mover's @move verb set is run. - The mover enters its destination. - The mover is given the message, "Dropped." - If the mover has a @drop set, you are shown that message; otherwise you get the message, "Dropped." - The drop is considered "quiet" if the /quiet switch was specified, and you control the mover. - If the drop is not quiet, everyone in the new location other than you is shown the mover's @odrop (or " dropped ." if it doesn't have one). - If the drop is not quiet, the mover runs its @adrop. - If the mover is STICKY, it is sent home, as are its KEY contents (see 'help Movement Key'). - If the mover is not STICKY, the new location has a drop-to, and the new location is not STICKY, then the mover is sent to the drop-to location, and its KEY contents are sent home. Continued in 'help drop3'. & @dfail & @odfail & @adfail & drop3 Example of a @dfail verb set: @dfail sword = The sword has welded itself to your hand. @odfail sword = tries to put down the sword but it leaps back into %p hand. @adfail sword = @emit/room The cursed sword in [name(loc(me))]'s hand gleams with unholy light. Example of a @drop verb set: @drop vase = You gently put down the delicate vase. @odrop vase = gently puts down a delicate vase. @adrop vase = :shatters.; @destroy/instant me The @drop verb set of an exit is used when an object goes that exit; see 'help goto' for the details and an example. & @ealias & enter Command: enter[/quiet] If you are in the same room as an object, you might be able to enter it. There are two ways to do that: either type 'enter ' or type the "enter alias" of the object. (Wizards and those with the Long_Fingers power are also able to 'enter ' to enter objects in other locations.) Enter aliases take the same format as exit names, with multiple aliases separated by semi-colons. They are attributes, set with the command '@ealias = '. For example, an "airplane" object might be aliased as follows: @ealias airplane = plane;fly;board airplane This would allow 'plane', 'fly', or 'board airplane' to be used in order to enter the airplane object. If you control the object being entered, and you specify the /quiet switch, the move is treated as "quiet". Continued in 'help enter2'. & enter2 If the object is not ENTER_OK and you do not control it, then you will be shown the object's @efail message if it has one, or "Permission denied." if it does not. If the move is not quiet, others in your location will be shown the object's @oefail, and the object will run its @aefail. If the object has an EnterLock and you do not pass that lock, then will be shown the object's @efail message if it has one, or "You can't enter that." if it does not. If the move is not quiet, others in your location will be shown the object's @oefail, and the object will run its @aefail. Continue in 'help enter3'. & enter3 If you can enter the object, then several steps occur; see 'help Moving' for an expansion. You are the mover, the current location is the room you're in, and the new location is the object you are entering. The steps are: - The mover leaves its current location. - The mover's new location is registered. - The mover's @move verb set is run. - The mover enters its new location. - Mover contents set KEY are sent home. - The old room's drop-tos are activated. Continued in 'help enter4'. & @efail & @oefail & @aefail & @enter & @oenter & @oxenter & @aenter & enter4 Example of an @efail verb set: @efail car = The car's door is locked. @oefail car = tries to open the car's door, but it is locked. @aefail car = &LAST_FAIL me = [time()] Example of an @enter verb set and @oxenter: @enter car = You climb into the car and buckle your seatbelt. @oenter car = joins you in the car, and buckles %p seatbelt. @aenter car = @trigger me/START_ENGINE @oxenter car = climbs into the car. Note that when you enter an object, the @oxenter is shown to those in the location you just left, and the @oenter is shown to those in the object that you just entered. & examine Command: examine[/] [/] Displays all available information about . may be an object, 'me' or 'here'. You must control the object to examine it, or it must be set VISUAL. If you do not own the object, you will just see the name of the object's owner, and optionally any public attributes and attributes owned by you set on the object. If an attribute is owned by a player other than the owner of the object, the number of the attribute owner is shown in brackets immediately following the attribute name. Flag letters may appear within the brackets also, to indicate the status of the attribute; if the flag letters are in parentheses, they indicate flags for the global definition of all attribute with that name. See 'help @set2' for details. If you specify a wildcarded attribute name, then only those attributes that match are shown. So, 'exam me/v?' will show all your attributes that start with v and are two characters long. Continued in 'help examine2'. & examine2 The following switches are available: /brief - Don't show the attributes on the object. /full - When examining an object you don't control, show any public attributes set on the object in addition to the owner's name. /owner - Show only the owner of the object. /parent - Includes attributes that are not present on the object itself but which are inherited from the object's parent. /pretty - Pretty-print, in a format suitable for a MUSH unformatter. /pairs - Shows matches in parentheses, brackets, and braces. Each level ("nesting") of these is highlighted in a different ANSI color (in order, green, yellow, cyan, blue, and magenta). If an error is encountered, where the pairs don't match, the offending character is highlighted in red. The rest of the string is then printed out; no further pair-matching will occur. Escaped-out characters are not highlighted or counted. /debug - Wizards only. Displays additional information about the object. Shows the Owner, Exits, Next, and Contents fields of the object in numeric form only. Includes an attribute list. See also: look, @decompile, VISUAL, ATTRIBUTE OWNERSHIP. & take & get Command: get[/quiet] get[/quiet] get[/quiet] 's When you get an exit, it is removed from the exits from your current location, and added to your list of carried exits. This effectively makes you the source of the exit; anyone inside you can then use the exit to move to its destination. You can only get exits that you control, or whose source is a location that you control. When you get an object, it removes the object from the contents of its current location, and places it in your inventory. You can use the 'get' command to get objects from other's inventories, as long as you control the possessor, or the possessor is set ENTER_OK and is not DARK or OPAQUE. Checking the objects of a possessor is recursive; i.e., you can do: get 's 's 's Continued in 'help get2'. & get2 If the object you are trying to get has a basic Lock, you must be able to pass the lock, in order to get the object. If you can't: - You are shown the @fail of the object. If the object does not have one set, you are told, "You can't take that from there." if you are trying to get an object that someone else is carrying, or "You can't pick that up." otherwise. - If the /quiet switch was not specified, everyone in your location sees the object's @ofail. - If the /quiet switch was not specified, the object runs its @afail. If your current location is not a room, you cannot 'get' anything (including exits), unless you control your current location, or it is set ENTER_OK. You can only get nearby things, unless you are a Wizard or have the Long_Fingers power, in which case you can get remote things via 'get '. Continued in 'help get3'. & get3 If you successfully get an object, several steps happen. See 'help Moving' for the details of some of these steps. The object that you have gotten is the mover, the old room is the location it was taken from , and the destination is you. The move is considered "quiet" if the /quiet switch was specified. The steps are: - If the mover is being taken from someone else's inventory, its current possessor is told, " was taken from you." - The mover leaves its current location. - The mover's destination is registered. - The mover runs its @move verb set. - The mover enters its destination. - The mover is told, "Taken." - You are shown the mover's @succ message, or "Taken." if the mover does not have one. - If this is not quiet, those in your location see the mover's @osucc. - If this is not quiet, the mover runs its @asucc. Continued in 'help get4'. & get4 Example of a @fail verb set on an object: @fail table = The table is too heavy to lift. @ofail table = strains to lift the table, but it is too heavy for %o. @afail table = &LAST_TRY me = [time()] Example of a @succ verb set on an object: @succ sword = You wield the magic sword. @osucc sword = wields a magic sword. @asucc sword = @wait 10 = @emit The magic sword glows brightly. & give Command: give[/quiet] = give[/quiet] = You can give money, or objects that you're carrying, to someone else, as long as the recipient is not a Guest character. The recipient must be nearby, unless you're a Wizard or have the Long_Fingers power, in which case you can specify the recipient as * or . If your gift (the right-hand side of the '=' sign) is a number, your gift is assumed to be money; otherwise, it is assumed to be an object. If you try to give someone a negative number, this is treated like trying to take away money from them. You can only do this if you are a Wizard or you have the Steal_Money power. Otherwise, you will be told, "You must specify a positive number of ." Continued in 'help give2'. & give2 If you are not a Wizard, and you try to give money to a player, you will be told, "That player doesn't need that many !" if the amount they would have after your donation would exceed the value of the configuration parameter earn_limit. If you are not a Wizard, and you try to give money to someone else, you must be able to pass their GiveLock. Otherwise, you are told, " won't take your money." You must have sufficient money to cover the amount that you are giving someone else. Wizards, those set IMMORTAL, and those with the Free_Money power are considered to have infinite money. If the recipient of money is a player, the /quiet switch suppresses any messages; otherwise, you will be told that you have given the player money, and the player will be told that you've given him money. Continued in 'help give3'. & give3 If the recipient of money is not a player, then this is considered an attempt to "pay" a machine. See 'help @pay' for the details of what happens when you do so. If you try to give an object to someone else, the recipient must be someone you control, or they must be set ENTER_OK. If not, you will be told, "Permission denied." If the object you're trying to give away has a GiveLock, and you don't pass the lock, then you will be shown the object's @gfail (or the message, "You can't give away." if the object doesn't have a @gfail), the others in your location will be shown the object's @ogfail, and the object will run its @agfail. If the recipient has a ReceiveLock, and you don't pass the lock, then you will be shown the recipient's @rfail (or the message, " doesn't want ." if the recipient has no @rfail), the others in your location will be shown the recipient's @orfail, and the recipient will run his @arfail. Continued in 'help give4'. & give4 If you successfully give an object away, several steps happen. See 'help Moving' for the details of some of these steps. The gift is the mover, the old room is the gift's former location (normally your inventory), and the destination is the recipient. The move is considered "quiet" if the /quiet switch was specified. The steps are: - The mover leaves its current location. - The mover's destination is registered. - The mover runs its @move verb set. - The mover enters its destination. - Mover contents set KEY are sent home. - If this is not quiet, the recipient is told, " gave you ." - If this is not quiet, you are told, "Given." - If this is not quiet, the gift is told, " gave you to ." - The mover runs its @drop verb set; you are considered the enactor. - The mover runs its @succ verb set; the recipient is considered the enactor. Continued in 'help give5'. & @gfail & @ogfail & @agfail & @rfail & @orfail & @arfail & give5 Example @gfail verb set: @gfail sword = The cursed sword leaps back into your hands. @ogfail sword = tries to give away %p cursed sword, but it leaps back into %p hands. @agfail sword = @wait 10 = @emit The cursed sword gleams with unholy light. Example @rfail verb set: @rfail merchant = The merchant doesn't want your worthless trash. @orfail merchant = fails to unload some worthless trash on the merchant. @arfail merchant = :kicks %N out of his store.; @tel %# = home & goto Command: goto[/quiet] The 'goto' is usually referred to by its alias, 'move'; i.e., you can type 'move ' instead of 'goto '. You can also 'goto home'; this is just like typing 'home' (see 'help home'). You can move directly through an exit by just typing the name of the exit (or one of the aliases in the exit's full name). However, there are some subtle differences in the way the server goes about looking for an appropriate exit, depending on whether you type 'goto ' or just ''. When you just type '', the server checks for a matching local exit (one in your current location, whether directly there or inherited from a parent room). If there isn't a match, then it checks for a global exit (one in the master room). If there isn't a match still, then it will check zone exits. If, at any of those levels, multiple exits match, one of the matches will be chosen at random. Continued in 'help goto2'. & goto2 When the configuration parameter move_match_more is not enabled, 'goto ' only checks a matching local exit; if more than one local exit is found, the message "I don't know which way you mean!" will be returned. If move_match_more is enabled, 'goto ' checks for an exit match in the exact same way '' does. If the config parameter exit_calls_move is enabled, typing '' is exactly like typing 'goto '. In general, MUSH administrators will only enabled this configuration if @addcommand or @hook has been used to override or alter the standard behavior of movement. Once an exit is matched, its endpoint (where it is @link'd to) is checked. If the exit was @link'd to "variable", the endpoint is determined at this point, by evaluating the @ExitTo on the exit. Continued in 'help goto3'. & goto3 The Lock of the exit is also checked, if it exists. If you are not able to pass the lock, or the exit's endpoint is someplace invalid (such as a Garbage object) then the following things occur: - You are told the exit's @fail, or if it doesn't have one set, "You can't go that way." - Others in your location see the exit's @ofail, unless you specified the /quiet switch or are DARK. - The exit runs its @afail, unless you specified the /quiet switch, or you are DARK and the dark_actions config parameter is not enabled. If you do pass the lock, then a series of steps occur. See 'help Moving' for an expansion of some of these. You are the mover, the location you are leaving is the old room, and the endpoint of the exit is the destination. Continued in 'help goto4'. & goto4 The move is considered "noisy", unless the mover is set TERSE and the configuration parameter terse_shows_move_messages is disabled. The move is considered "visible", unless the /quiet switch was specified, or the mover is a Dark Wizard/Cloaker. The move is considered "active", unless the /quiet switch was specified, or the mover is a Dark Wizard/Cloaker and the dark_actions configuration parameter is not enabled. The steps are as follows: - If the move is noisy, the mover is shown the exit's @succ message. - If the move is visible, everyone in the old room sees the exit's @osucc. - If the move is active, the exit runs its @asucc. - The mover leaves its current location. - The mover's destination is registered. - If the move is noisy, the mover is shown the exit's @drop message. - If the move is visible, everyone in the destination sees the exit's @odrop. - If the move is active, the exit runs its @adrop. - The mover runs its @move verb set. - The mover enters its destination. - Mover contents set KEY are sent home. Continued in 'help goto5'. & goto5 Example of a @fail verb set on an exit: @fail iron door = The door is stuck. You can't budge it. @ofail iron door = attempts to open the iron door, but it's stuck. @afail iron door = @wait 60 = @unlock me; @@ Silently "unstick" myself. Example of a @succ verb set on an exit: @succ iron door = You push open the heavy door, and walk through. @osucc iron door = pushes open the iron door, and walks through. @asucc iron door = @lock me = #0; @@ Silently lock myself. Example of a @drop verb set on an exit: @drop iron door = You emerge on the other side of the iron door. @odrop iron door = walks in from the prison cell behind the iron door. @adrop iron door = &LAST_USED me = [time()] Most MUSHes have a building code that requires or strongly encourages builders to put @osucc and @odrop messages on their exits. Many also encourage the use of a @succ message on an exit. @drop messages are rarely used on exits. & home Command: home A mobile object can use the 'home' command to return to its home. Note that typing 'home' or 'goto home' is different from typing '@teleport home'; the latter is treated like a teleportation and behaves like other teleportations (see 'help @teleport'). If an object is set FIXED, or its owner is set FIXED, and it is not a Wizard or Royalty, it will not be able to use the 'home' command. Otherwise, objects are always able to go home. Continued in 'help home2'. & home2 Several steps occur when an object uses the 'home' command. See 'help Moving' for an expansion of some of these. The mover is the object going home, the old room is the object's current location, and the destination is the object's home. - Everyone in the old room sees, " goes home." unless the mover is DARK, or the old room is DARK. - The mover is told three times, "There's no place like home..." - The mover leaves its current location. - The mover's destination is registered. - The mover runs its @move verb set. - The mover enters its destination. - Mover contents set KEY are sent home. - The old room's drop-tos are activated. & info Command: INFO This command is intended for the use of external automated programs. It displays commonly-requested pieces of information about the MUSH, in an easy-to-parse format. That format is as follows: ### Begin INFO Name: Uptime: