Help - A Directory Based on Mastery and Need [text] - Text enclosed in [ ]'s is optional. The [ ]'s are never typed in as part of the command. - Information parameter for a command. The < >'s and what's in them are never typed in as part of the command. It is meant as a generic. Mastery Level Command to Type * Begin 'help begin' * Communicate 'help commun' * Build 'help build' * Command 'help command' * Program 'help program' * Master 'help master' See also 'news introduction'. ~~~ begin Beginner Help - Setting up Your Character Three main settings are required for a start in Divweb. The fourth, Communication, is at the next mastery Level. * Set up your character Type '@desc me = ' where is what you look like in the realm of Divination Web. Do not use hard returns. Type no more than a few lines of text. Try to be imaginative and literate. Type '@set me = sex:' where is your physical gender in Divination Web. Typically people choose one which is meaningful to the game, such as 'male', 'female', 'neuter' or 'unassigned'. Type 'whereok on' so others may locate you, and '@doing me=' where is what you'd like to show up on the 'WHO' screen. To learn about Perception and Movement, type 'help begin2'. ~~~ begin2 Beginner Help - Perception and Movement * Perception Divination Web has a largely visual command-structure. One perceives the world by typing 'look' or just 'l'. In this way you'll see the room in which you stand. Followed by an Objectname within your Room, it shows you that Object. Example: type 'l me'. If you followed the instructions in 'help begin' you will see what you look like in Divination Web. * Movement To move about, simply look for the 'Obvious exits' list within the room you stand. It will have things like 'Epidauros (ep)'. You can type 'go Epidauros', simply 'Epidauros', or you can just type the abbreviation shown in the (parens) 'ep'. Many exits also have hidden abbreviations which work just as well. Typing 'epi' would probably work too. You're ready for the next step. Type 'help communication'. ~~~ communication|communications|commun|comm|talking There are several communication-types to be found in this Muck: 'say' (abbreviated with a quotation mark), 'emote' (abbreviated with a colon), page, and mail. First example: You (Mr.Magick) type: "When I turned the Prince to a frog, he croaked. Others in your Room see: Mr.Magick says, "When I turned the Prince to a frog, he croaked." You see: You say, "When I turned the Prince to a frog, he croaked." For more examples, see: communication2. ~~~ communication2 Second example: You (Ms.Wizardress) type: :flicks her wrist and lightning sizzles your socks. Everyone in your Room sees: Ms.Wizardress flicks her wrist and lightning sizzles your socks. Third example: You (Fabula.ful) type: p judy = How did you get into the Void? You see: Your message has been sent. Judy sees: Fabula.ful pages: "How did you get into the Void?" Also see: mail, page. ~~~ build|builder Builder Help Email or page xiwangmu or Shawn for a Builder-bit, (see 'news management'). Beginning quota is 50 Coins. Come and let us know when you need more. See 'info new-web-prop' for more information about our (lack of) Building Policy. Once an area is opened to the public it is subject to the whim of the DivWeb Managers, who may make changes according to their tastes. See also the divweb-builders Yahoolist! http://groups.yahoo.com/group/divweb-builders ~~~ index|indices|command|commands|+help|globals Command Indices There are three indices for commands: Index1 contains Regular Commands Index2 contains @Commands Index3 contains Flags and Topics Type 'help ' in order to access these lists. ~~~ program|programmer Programmer Help Programming ability (called 'Mucking', enabled by a 'Mucker-bit') is dispensed by Shawn. Send him page #mail or email (see 'news management'). The general language for programming is called 'MUF' and is a Forth-derivative. Files concerning this may be obtained from Hollyfeld at: http://www.hollyfeld.org/heaven/Telnet/Divweb/reference/muf It might be considered helpful to type 'info' to see with what (massive) files one may spam one's screen (be prepared). There is also another programming language available for other projects, and this is called 'MPI'. To see more information on this, type 'mpi' and use the command to explore from there. You may also find files in the 'info' and ftp file site mentioned above. See also: 'help Mucker'. ~~~ more|master More Help - Things to Explore if You've Mastered the Basics * PropDirs - see 'help propdirs'. * Linking/Meta-links - see 'help action2'. * MPI - type 'mpi'. * Zombies - type 'help zombies'. * Mucking - see 'help mucker'. And if you're still looking for things to do, contact the management. We've got a help staff that would benefit from your volunteered time. ~~~~~ ~~~ INDICES ~~~ index1 Index1 CAPITALIZED fragments are acceptable abbreviations. Commands bogus detail drop edetail edit emote Examine get give go gripe Help home interests Inventory Kill Look mail man move News notices outputprefix outputsuffix Page put QUIT Read rmdetail Rob SAy score take throw where whereok WHO ~~~ index2 Index2 CAPITALIZED fragments are acceptable abbreviations. Technical @Commands @chlock @chown @conlock @contents @doing @entrances @find @force @lock @owned @password @propset @set @stats @sweep @TELEport @trace @unlock Building and Linking @Commands @action @attach @create @DESCribe @dig @drop @fail @IDESCribe @link @name @odrop @ofail @open @OSUCCess @RECycle @SUCCess @unlink For the Mucking and Management @commands from index2, see indexm. ~~~ indexm Mucking/Programming @Commands @edit @list @kill @program @ps @uncompile Management @Commands @armageddon @boot @bootme @dlt @dump @newpassword @restart @rmproject @shutdown @toad @tune @usage @wall ~~~ index3 CAPITALIZED fragments are acceptable abbreviations. Flags: Abode Builder Chown_ok Dark Haven Jump_ok Kill_ok Link_ok Mucker Quell Silent/Sticky Wizard Vehicle Zombie Topics: administration bogus build classes coins commands communication control costs dbref drop-to email failure flags gender goal gods here homes index killing linking manager management master me metalinks money mucker MUFmail new number object objective program pronoun propdirs pseudo purpose quota robbery sex strings substitutions success talking theme timestamps tinysex transportation types ~~~~~ ~~~ INDEX 1 ~~~ detail detail : [;tag2;tag3;tag4...] = Inserts a detail on the Object, that can be seen by typing 'Look Object=detail' or simply 'Look detail' if the Object is the current Room. Example: In the description of the current Room, a bookcase is mentioned. To add the details of the bookscase to the Room without having to create a separate Object, you can do: detail here:bookcase;books=The bookcase is full of pretty books. This is perfect for Objects which are only Look'd at and not interacted with in any other way. Details generally improve the quality of a building project highly. PLEASE USE INSTEAD OF BOGUS COMMANDS WHEREVER POSSIBLE! Reserve bogus Commands for Actions, not for "Objects" in Rooms. See also: bogus, edetail and rmdetail. ~~~ drop|throw|put drop [=container] Drops the if you are holding it. It moves the Object to the Room you are in, unless is specified, its Sticky Flag is @set, or the Room has a drop-to. Programs are much like Objects but are not affected by Room drop-to's or Sticky Flags. A 'drop' message can be defined, which will be shown to the Player dropping the Object, and an 'odrop', which will be shown to the other Players in the Room. 'Throw' and 'put' are aliased to drop. See also: container, drop-to, Objects, @drop, @odrop, and @set. ~~~ edetail edetail =:// Use this command to edit the text of details. At this time the format is pretty exact, sometimes spaces cause it to fail. See also: detail, edit, rmdetail and @edit. ~~~ edit edit = ;// edit = :// Allows owner to change the textString in the specified or from to without having to retype the entire thing. If the semicolon is used, can be: name, desc, succ, osucc, fail, ofail, drop, or odrop. If the colon is used, can be any property on the object. See also: objects and strings. ~~~ emote : This Command sends a description of your activity to all Players in the same Room as your character. An example follows. You (Ms.Wizardress) type: :flicks her wrist and lightning sizzles your socks. Everyone in your Room sees: Ms.Wizardress flicks her wrist and lightning sizzles your socks. See also: character, communication, mail, Player and Room. ~~~ examine Examine [=Propdir] If you control , EXamine will give you a complete breakdown of all fields, Flags, etc. that are associated with the Object. If the optional Propdir field is supplied, then it instead lists out all the properties directly under that Propdir. To list the base propdir of an Object, use 'ex =/'. Program-executing fields are displayed as their true text, rather than executing the Program in question. If you do not control , however, it prints the owner of the Object in question, and, again, displays the true text of the description. See also: Look, @owned and @status. ~~~ get|take get Attempts to pick up . The lock on is checked for a success (true), and the normal path of success/fail is then taken. On success the Object is placed in your Inventory. Another variation on this is: get = Attempts to get from the given container. The _/clk lock property on is tested, and if it is true, then it checks to see if the standard _/lok lock property on tests true. If both locks pass, then is moved into the Player's Inventory. If there is no _/clk property on it defaults to failing. The _/lok property, on , on the other hand, defaults to passing. @succ/@fail messages are not displayed, when fetching something from a container. See also: drop, give and @TELEport. ~~~ give give = Gives coins from your supply to . Non-Managers may only give positive amounts and may not cause a Player to have more than 10000 coins. Managers do not affect their coin supplies by giving to others, and may also give coins to Objects, changing that Object's value. See also: coins, costs and get. ~~~ go|move|movement|transportation|going|moving [go/move] ; [go/move] Home Sends the character toward the specified direction. 'Home' is a special Command that returns you to your starting location. 'move' is the same as 'go'. The words 'go' and 'move' are optional. See also: character, Home and homes. ~~~ gripe gripe Sends to the system maintainer. Gripes are logged for later reference; also, if the system maintainer is connected she will receive the gripe real-time when the gripe is made. See also: Managers, purpose, and news management. ~~~ help Help Shows help regarding should such a listing be defined. Topics (Commands, concepts, etc.) can be found in one of three separate indices: index1: normal Commands (drop, Look, etc) [Most of these Commands are used to actually 'do' things, communicate, interact with others, etc.] index2: @Commands (@action, @fail, etc) [Most of these Commands are related to building, programming, or the technical aspect of the Muck. The balance of index2 can be found in indexm.] index3: concepts, terms, and Flags (Objects, Builder, Sticky) For a list of , try 'help index1','help index2', or 'help index3'. ~~~ home Home Sends you Home, no matter where you are. You retain your coins, but any Objects you were carrying leave your Inventory and return to their own homes if they weren't at their home already. You can change your home location with the @link Command. See also: coins, Inventory, homes. ~~~ info info Alone, the command brings up a list of topics from which to select. Careful, most of these are single-SPAM docs which can be found at ftp sites. Some are fairly large. ;> See also: man and mpi. ~~~ interests interests [#set []] [#what ] [#match ] The interface for the Interests database. Using the #set option will set your interests to (or clear your interests if you type #set with no text). Using the #what option will allow you to look up a particular Player's interests. Using the #match option will search the interests database for interests containing . For example, if you type 'interests #match foo', it will find interests containing 'food', 'foober', 'foom', etc. See also: news information. ~~~ inventory Inventory Lists what you are carrying. This can usually be abbreviated to 'inv' or 'i'. See also: Examine, Look, @owned and @status. ~~~ kill|rob|kill_ok|robbery|killing Killing, robbing, and the kill_ok Flag are DISABLED. Kill and rob were useful Commands on combat Mu*s. As DivWeb has other purposes than adventuring, slaying things and getting the treasure, this function has, along with rob, been disabled. So have functions which pertained to these, such as the Flag 'kill_ok'. See also: index, purpose and news introduction. ~~~ look Look Directs your character to see the contents of current Room, or at if specified. For Players, displays their description (desc-field) and Inventory, for Things, their description, and for Rooms, their Name, description, @SUCCess/@fail message, and contents. It also triggers @OSUCCess/@ofail messages on Rooms @lock'd to the Player. Programs are triggered accordingly on @DESCribe/@SUCCess/@fail fields. See also: fields, Inventory, Object, Player, Room, @DESC, @fail, @name, @lock, @ofail, @OSUCCess and @SUCCess. ~~~ mail|MUFmail|email mail [] Initiates the Web's MUFmail facility. If there is MUFmail outstanding, then a list of items unread will appear, preceded by their identifying numbers. If there is no outstanding MUFmail waiting, then the Command requires an argument to begin composition. When composition begins, the first request will be for the of the MUFmail. Once this is given, the editor will be engaged. For help with the MUFmail editor, type '.h' and return while engaging it. To exit the MUFmail editor, type '.end' and return. The rest is self-explanatory. See also: communication, page #help and news networking. ~~~ man man [] Displays the programmer's manual or a quick reference. ~~~ news news [] Displays the current news file. Must be typed in full. If is given, then it displays the information on that specific topic. Type 'news index' for a list of topics. See also: help, info, man and mpi. ~~~ notices notices (to read present messages) notices (to add a message) notices * (add/assign permanent message-re notices - (to remove a message that you wrote) notices + (to renew a message that you wrote) notices #help (this help set) 'Notices' is a bulletin board which can be posted to and read from. Messages last two weeks, but can be renewed. Each time a message is renewed, it will remain for at least two weeks after the date of renewal (unless it is renewed again.) Messages may not be more than 365 characters (about 5 lines) long, and are seen in the format: ::: 'Notices' now supports a priority user list. Priority users have access to all functions, as do Managers and the owner of the Program. These users can post permanent messages, assign previously temporary messages to permanency (both theirs and others), and renew or remove messages (theirs and others). See also: news networking. ~~~ outputprefix OUTPUTPREFIX [String] Must be in all capitals, and typed in full. Prints the given line before the output of every Command, setting them apart from other messages. Only robots may use this Command. See also: OUTPUTSUFFIX and ROBOT. ~~~ outputsuffix OUTPUTSUFFIX [String] Must be in all capitals, and typed in full. Prints the given line after the output of every Command, setting them apart from other messages. Only robots may use this Command. See also: OUTPUTPREFIX and ROBOT. ~~~ page page [#mail] [=] This Command is used to send to another Player anywhere in the Web. If no is specified, then they will get a note in the form of: 'You sense that has just paged you from .' You can also use the '#mail' option to send a message to a Player not currently online. If a Player is set Haven, you cannot page them, and they may not be notified that you tried. You may instead be told 'That Player does not wish to be disturbed.' Page has many other options. For more detailed information on paging, see 'page #help'. See also: communication, emote, haven, mail and Player. ~~~ quit QUIT Must be in all capitals, and typed in full. Logs out of your character and leaves the Muck. Your character remains at the location you are in when you log out, although it might be moved elsewhere while you are 'asleep.' See also: home and @bootme. ~~~ rmdetail rmdetail : Removes from . Presently the entirety of the 's name must be specified to remove a detail. See also: detail. ~~~ says Say ; " This Command generates 'spoken' text within your character's current Room. An abbreviation for this Command is the single quotation mark ("). You (Mr.Magick) type: "When I turned the Prince to a frog, he croaked. Others in your Room see: Mr.Magick says, "When I turned the Prince to a frog, he croaked." You see: You say, "When I turned the Prince to a frog, he croaked." See also: character, communication, emote, mail, page and Player. ~~~ score score Displays how many coins you are carrying. See also: coins, purpose and robbing. ~~~ where where Displays a list of Players connected to the Muck and their locations. If a Player has not enabled location with whereok, their location will appear as 'Unknown'. where will not list Players set Dark. See also: Dark, whereok and WHO. ~~~ whereok whereok [on|off] Enables or disables location of you by the where Command. See also: where and WHO. ~~~ who WHO [] Must be in all capitals, and typed in full. Lists the name of every Player currently logged in, how long they have been inactive, and what they are doing (as specified by them using the @doing Command). If given a Player name, it displays only the matching names and idle times. Managers can also get a display of the host from which the Player is connected. See also @doing. ~~~~~~ ~~~ INDEX 2 ~~~ @action|action @action = [=] Creates a new Action and @attach's it to the Thing, Room, or Player specified. If a is specified, then the _reg/ property on the Player is @set to the dbref of the new Object. This lets Players refer to the Object as $ (i.e.: $mybutton) in @lock's, @set's, etc. You may only @attach Actions you control to Objects you control. The Action can then be @link'd with that Command (@link). Also see 'HELP ACTION2' for more. See also: action2, control, @attach, @link, @lock, @open and @set. ~~~ action2|linking Action/Exits and Linking Basic command sequence: 1) @action = 2) @link =[;; etc.] The first command fixes the Source. The second designates the Destination(s). The @link in 2) may also be @set Sticky for additional effects. See additional information in action3. ~~~ action3 --------------------------------------------------- EXAMPLE @action open box = Box This defines the Source of the Action/Exit. Source = 'open box'. @link open box = P1; P2 This defines the Destinations of the Action/Exit. Destination = P1 & P2. Activating the action by typing 'open box' brings P1 & P2. ---------------------------------------------------- For more information about Linking, see action4. ~~~ action4 Source/Destination List: Room1/Room2 - Moves Player from Room1 to Room2 (a normal Exit). Room/Thing - Moves Thing into Room. Room/Player - Moves the Player activating the Source Action/Exit in Room to the Player who is the Destination. For more information about Linking, see action5. ~~~ action5 (See 'help action7' for notes pertaining to Source-Thing.) Thing/Room - Moves Player activating the Source-Action/Exit at Thing into Room. Thing/Thing - a) Source's Action/Exit is @set Sticky - Moves Destination-Thing to Source-Thing location. b) Source's Action/Exit is not @set Sticky - Moves Source's Thing home and Destination-Thing into Source-Thing's original location. Thing/Player - Moves the Player activating the Source's Action/Exit at Thing to the Player who is the Destination. For more information about Linking, see action6. ~~~ action6 (When Source=Player, the Action/Exits can only be activated by the Source-Player.) Player/Room - Moves the Source-Player to the Destination Room. Player/Thing - Moves the Destination-Thing into the inventory of the Source-Player. Player/Player - Moves the Source-Player to the location of the Destination-Player. However, a Player cannot use an Action that is @link'd to another Player if the Destination Player is not @set Jump_ok. For more information about Linking, see action7. ~~~ action7 Links with Source: Thing If we activate a link with a Source-Thing and that link is a Sticky link to another Thing, and the Source-Thing is in our inventory, then the Source-Thing will remain in our inventory after the link is activated. If the link does have another Thing as the Destination, the Destination Thing will appear in our inventory regardless of any flags which have been @set. Multiple Destinations Yes, you can @link a Source-Destination link to more than one Destination. It's treated as though the single link was multiple links. For example, if we have an S-D link linked from a Room to both another Room and a Thing, the activating Player will be taken to the Destination Room and the Destination Object will be moved into the Source Room. This is particularly useful with what are called 'metalinks'. For information on metalinks, see action8. ~~~ action8|meta|metalinks Metalinks It is possible to link Action/Exits and their links to other Action/Exit Sources, causing chain-reactions. A Destination of another Destination-link invokes that particular linkage when the first Source-Destination link is activated. For example, if we want an Source-Destination link to move a Thing into another room, we would simply @link the initial link to a Source-Destination link in the second room. The second link's Destination would be the Thing. For more information about metalinks, see meta2. ~~~ meta2|action9|metalinks2 Important Notes about Metalinks: a) Locks do not work through metalinks. If the S-D link my metalink is linked to is locked against me, but the metalink is not, then I can still activate the S-D link through the metalink. b) Similarly, any messages associated with Destination-links are not displayed to anyone. See also basic notes on Action/Exits and Linking ('help action2'). ~~~ @armageddon @armageddon Manager-only Command. Causes the Server to shut down immediately, without saving any updates to the database. This Command should not in general need to be used. However, it might be useful should some catastrophe occur which causes a massive corruption of the database. ~~~ @attach @attach = Attaches an Action/Exit to a new . You must control the Exit and the proposed Source. See also: @action, @link, @open. ~~~ @boot @boot Disconnects a Player from the Muck. If a Player is connected more than once it affects the most recent connection. Only a Manager may use this Command. See also: connect, disconnect and @bootme. ~~~ @bootme @bootme Severs all of your connections except the most recent one from the Muck. Useful if you are disconnected accidentally and leave a 'ghost' login. See also connect, disconnect and @boot. ~~~ @chlock @chlock = Defines the Chown_ok on . This determines who is permitted to @chown an Object which is @set Chown_ok. For example, to make an Object's Key _not_ Shawn: @chlock Object=!*Shawn and everyone but Shawn will be able to @chown it when it is @set Chown_ok. (If it's not Chown_ok, only the owner can @chown it regardless of the @chlock Key.) '!' is a 'Boolean' operator. See also Chown_ok, Boolean, Keys, ownership, @chown and @lock. ~~~ @chown @chown [=] Changes the ownership of to , or if no Player is given, to yourself. All Players are allowed to take possession of Objects, Rooms, and Actions which have the Chown_ok Flag @set. NonManagers cannot @chown a Room unless they are standing in it, and may not @chown an Object unless they are holding it. Managers have absolute power over all ownership. See also: Chown_ok, Flags, Objects, ownership, @chlock. ~~~ @conlock @conlock = Defines the container on . This determines who can put Objects into or remove them from . The format is the same as for @lock. See also: Keys and @lock. ~~~ @contents @contents [] [= = []] Searches the given Object for items & Exits that match the given Flag String. Flags or types can be specified to check for or against certain ones. (A ! before the Flag indicates that it is to be excluded.) A "U" in the Flags list indicates an @unlink'd item. An "@" matches only Old Objects, unused for more than 90 days. The output types that can be specified are owners, links (which outputs either *UNLINKED*, the Object to which the item is @link'd, or *METALINK* for Exits @link'd to more than one Object), location and count. Valid Flags: ABCDHJKLMQSW Flags of E, F, G, P, R, and T will match Exits, Programs, Garbage, Players, Rooms, and Things, respectively. U will match @unlink'd Objects. O will match Old Objects, unused for more than 90 days. 0, 1, 2, or 3 will match Mucker Levels or Priority Levels. Example: @contents here=DE=owner Will list all Dark Exits who's Source is your current location, giving the owner of each one. See also: @find, @owned, @entrances. ~~~ @create @create [=] Constructs a new Object and places it in your Inventory. If a is specified, then the _reg/ property on the Player is @set to the dbref of the new Object. This lets Players refer to the Object as $ (ie: $mybutton) in @lock's, @set's, etc. Only a Builder may use this Command. See also: Builder, Inventory, Objects, Players, @lock and @set. ~~~ @describe @DESCribe [=] Defines the 'description field' of to . If is not specified, the description field is cleared. A description is what is seen when a Player Look's at something. Using @DESCribe is the same as using '@set =_/de:[text]'. See also: building, edit, Look, Strings and @set. ~~~ @dig @dig [= [=]] Constructs a new Room, @sets its parent, and gives it a personal registered name. If no parent is given, it defaults to the first Abode Room down the environment tree from the current room. If it fails to find one, it @sets the parent to the global environment, which is typically Room #0. If no regname is given, then it doesn't register the Object. If one is given, then the Object's dbref is recorded in the Player's _reg/ property, so that they can refer to the Object later as $. You must be able to @link to the parent Room if specified. Only a Builder may use this Command. See also: building, Objects, parents and @set. ~~~ @dlt @dlt Only Manager may execute this Command. Saves a delta-dump of the database (changed Objects only) to the Server machine. This normally happens automatically at regular intervals. ~~~ @doing|doing @doing me= Defines your 'doing field' as . When someone types WHO, they will see a list of who's connected, including to whatever they define for their doing fields. Examples: @doing me=Trying to write a Program. @doing me=Clueless and looking for help! @doing me=Managing a Muck. See also: connect, fields and WHO. ~~~ @drop @drop [=] Defines the 'drop field' of as . If is not specified, the drop field is cleared. The drop field on an Object is displayed when you drop it. On an Exit, it is displayed upon entering the Destination Room. This is the same as '@set =_/dr:[text]'. See also: drop, fields and @odrop. ~~~ @dump @dump [Filename] Only Managers may use this Command. Saves the database from memory to disk. Automatically occurs every three hours, and when @shutdown is used. It does slow down the Server, so only use if you fear a Server crash is imminent. If a Filename is given, it will save the db to that file, and save any subse- quent dumps to it as well. This option should not normally be used. ~~~ @edit @edit Searches for and if it is found, puts the Player into edit mode. Programs must be constructed with the Command, @program. See also: Mucker and @program ~~~ @entrances @entrances [] [= = []] Searches through the database for items that you control @link'd to . Flags or types can be specified to check for or against certain ones. (A "!" before the Flag indicates that it is to be excluded.) A "U" in the Flags list indicates an @unlink'd item. An "@" will match only Objects that have been unused for more than 90 days. The output types that can be specified are owners, links (which outputs either *UNLINKED*, the Object to which the item is @link'd, or *METALINK* for Exits @link'd to more than one Object), location and count. Valid Flags: ABCDHJKLMQSW Flags of E, F, G, P, R, and T will match Exits, Programs, Garbage, Players, Rooms, and Things, respectively. U will match @unlink'd Objects. O will match Old Objects unused for longer than 90 days. 0, 1, 2, or 3 will match Mucker or Priority Levels. Example: @entrances here=ED=location Will list all Dark Exits that are @link'd to your current location, giving the location of each one. See also @contents, find and @owned. ~~~ @fail @fail [=] Defines the 'fail field' for as . The field is displayed when a Player fails to use . can be a Thing, Player, Exit, or Room, specified as or # or 'me' or 'here'. Without a argument, it clears the field. This is the same as '@set =_/fl:[text]'. See also: fields, use, @ofail, @OSUCCess and @SUCCess. ~~~ @find @find [] [= = []] Searches through the database for items that you control matching . Players control only Objects they own; Managers control all Objects, so @find searches the entire database when they use it. Take care, for this the Command is computationally expensive. Flags or types can be specified to check for or against certain ones. (A "!" before the Flag indicates that it is to be excluded.) A "U" in the Flags list indicates an @unlink'd item. An "@" matches only Objects unused for more than 90 days. The output types that can be specified are owners, links (which outputs either *UNLINKED*, the Object to which the item is @link'd, or *METALINK* for Exits @link'd to more than one Object), and location. For more information on this command, see 'help @find2'. ~~~ @find2 The matching on names is as follows: Individual words can be matched as {word1|word2|...} Individual characters can be matched as [abc...]. A ? matches any character. A * matches any number of characters, including none. Any of these special charcters can be matched by putting a \ before it. Examples of use: @find north = EU = location finds all of your @unlink'd Exits named "north" and prints them along with their locations. @find {big|little} = R!L finds all your Rooms whose names contain "big" or "little" and are not Link_ok. For more examples, see @find3. ~~~ @find3 More examples: @find w[ei]ll finds everything you control whose name contains "will" or "well." @find =E=links lists all Exits that you control, and display where they are @link'd to. @find button==locations lists all Objects you control with 'button' in the name, and it will display where they are located at. See also @owned, @entrances, @contents. ~~~ @force @force = Processes as if typed by . The CEO character (Siva on DivWeb) cannot be @force'd. Only Managers may @force another Player. ~~~ @idescribe @IDESCribe [=] Defines the 'idescription field' of as . If is not specified, the idescription field is cleared. This is the same as '@set =_/ide:[text]'. An idescription is what is seen on the inside of a Vehicle, when a Player inside it Look's around. See also: fields, Look, Vehicles, @DESCribe and @set. ~~~ @link @link = [; ; ... ] Joins to , provided you control , and is either controlled by you or @link'able. Actions may be @link'd to more than one Object, specified in a list separated by semi-colons. See also: Actions, control, Objects and @unlink. ~~~ @list @list [=[line1] [-] [line2]] Lists Lines in a Program, provided you control it or it is @set Link_ok. Zero, one, or two Line numbers may be specified, denoting the range of Lines to list. If no Lines are given, the entire Program is listed. ~~~ @lock @lock =[|...][&...][!...] Restrains use of to specific . can be specified as or #, or as 'me' or 'here'. Boolean expressions are allowed: using '&' (and), '|' (or), '!' (not), and parentheses ('(' and ')') for grouping. To @lock to a Player, prefix their name with '*' (ex. '*Igor'). A Key may be a Player, an Object, or 'property:value'. See also Boolean, Keys, use and @unlock. ~~~ @kill @kill If passed a processid (a number without a '#' preceeding it), it will kill the given process, if the Player controls it. If passed a Player Name, it will kill all the processes controlled by that Player. If passed a Program dbref, it will kill all processes in which that Program is running. If the argument passed is "all", and the Player is a Manager, it will kill all processes on the timequeue. ~~~ @name @name = [] Defines the 'name field' of as . cannot be empty; a null Name is illegal. must be supplied to @name a Player, even yourself. Manager can @name any Player but still must include . See also: fields, @newpassword, and @password. ~~~ @newpassword @newpassword [=] Only Managers may use this Command. Changes 's password, informing that you changed it. Must be typed in full. See also: @name and @password. ~~~ @odrop @odrop [=] Defines the 'odrop field' of as . If is not specified, the odrop field is cleared. The odrop field on an Object is displayed prefixed by the Player's Name when she drops that Object. On an Exit, it is displayed upon a Player's arrival to the Destination Room (or the location of the Destination Player). On a Room, it is displayed when an Object is dropped there, prefixed by the Object's Name. This is the same as '@set =_/odr:[text]'. See also: building, drop, fields and @drop. ~~~ @ofail @ofail [=] Defines the 'ofail field' on as . The ofail field, prefixed by the Player's Name, is shown to others when a Player fails to use within their Room. Without , it clears the field. can be a Thing, Player, Exit, or Room, specified by or #, 'me' or 'here'. This is the same as '@set =_/ofl:[text]'. See also: fields, Objects, use, @fail, @OSUCCess and @SUCCess. ~~~ @open @open [= [; ; ... ] [=]] Constructs an Exit in the current Room, optionally attempting to @link it simultaneously. If a is specified, then the _reg/ property on the Player is @set to the dbref of the new Object. This lets Players refer to the Object as $ (ie: $mybutton) in @lock's, @set's, etc. You must control the Room where an Exit is @open'd. ~~~ @osuccess @OSUCCess [=] Sets the osuccess message for . The osuccess message, prefixed by the Player's name, is shown to others when the Player successfully uses . Without a message argument, it clears the @OSUCCess message. can be a Thing, Player, Exit, or Room, specified as or # or 'me' or 'here'. This is the same as '@set =_/osc:[text]'. See also: @fail, @ofail and @SUCCess. ~~~ @password @password = This changes your own password. See also: character, home and @link. ~~~ @program @program Create a new Program, or enter edit mode on an existing one. See @EDIT and Programmer's Reference. See also: Mucker and @edit. ~~~ @propset @propset =:: Sets on to of the specified , where is one of the following: String, int, dbref, lock, or erase (which erases the property). See also Propdirs, @set. ~~~ @ps @ps Lists the status of the currently running MUF Program processes. This lists all processes for a Manager. Non-Managers only see the MUF processes that they can @kill. See @KILL. ~~~ @recycle @RECycle Destroy an Object and remove all references to it within the database. The Object is then added to a free list, and newly created Objects are assigned from the pool of @RECycled Objects first. You *must* own the Object being @RECycled; even Managers must use the @chown Command to @RECycle someone else's belongings. ~~~ @restart @restart Manager-only Command. Is supposed to make the Server shut down and then immediately restart. Unfortunately, this restart is currently manual, so this Command is similar to @shutdown, which should be used instead. ~~~ @rmproject @rmproject = = yes @RECycles all Objects in owned by and removes the project and its quota from the Player. Only a Manager may @rmproject someone else's project. The "=yes" is required, just to prevent you from typing it inadvertently. ~~~ @set @set = [!] -or- @set = : [ ] -or- @set = : Using the first format, you may define Flags. You can also @set the Mucker (or Priority) Level of an Object by using 0, 1, 2, or 3 as the Flag name. The second format defines on to , or if is not given, removes . The third format removes all properties from an Object. See also: Flags, Mucker, Objects and properties. ~~~ @shutdown @shutdown Only Managers may use this Command. Shuts down the Muck. Must be typed in full. ~~~ @stats @stats [] For non-Managers, returns the highest number in the database, which includes garbage that has been generated with @RECycle. For Managers, gives this number as well as a breakdown of each type of Object: Rooms, Exits, Things, Programs, Players, and Garbage. Managers may also specify which returns a similar display limited to the possessions of . ~~~ @success @SUCC[ess] [=] Sets the success message for . The message is displayed when a Player successfully uses . Without a message argument, it clears the message. can be can be a Thing, Player, Exit, or Room, specified as or #, or as 'me' or 'here'. This is the same as '@set =_/dr:[text]' See also: use, @fail, @ofail and @OSUCCess. ~~~ @sweep @sweep Displays a list of all Objects (including Players) who can hear things said/done in your current environment. ~~~ @teleport @TELEport [=] Teleports to . Non-Mangers may only @TELEport Objects under their control to places under their control. If no is given, the Command moves the user to . Managers may @TELEport anything from anywhere to anywhere else. See also: transportation. ~~~ @toad @toad = Only Managers may use this Command. Turns into a slimy toad, destroying their character. All possessions of are @chowned to . Must be typed in full. ~~~ @trace @trace [=] Starts with and traces all location fields, until the global-environment Room is reached or the optional is specified. This is generally useful for finding which Rooms are parents in your heirarchy. If you cannot @link to a particular location its name is replaced by stars ***. ~~~ @tune|tune @tune [ [=]] [load|save] Manager-only Command which allows certain parameters of the Muck, such as costs and names and other defaults, to be reset without the Server being shut down or recompiled. With no parameters, @tune lists all the tuneable parameters and their current values. With one parameter, it lists the current value of that parameter. With specified, it resets to that value. @tune save will save the tuned parameters to the parameters file which is loaded on startup. @tune load will force a reload of the parameters. ~~~ @uncompile @uncompile Manager-only Command which decompiles all Programs in memory. This frees up memory but the Server will be slowed down in the near future as each Program must be recompiled when called for the first time. ~~~ @unlink @unlink ; @unlink here Removes the @link on the Exit in the specified direction, or removes the drop-to on the Room. @unlink'd Exits may be picked up and dropped elsewhere. Be careful, anyone can relink an @unlink'd Exit, becoming its new owner. See also @link. ~~~ @unlock @unlock Removes the lock on . See also @lock. ~~~ @usage @usage A Manager-only Command that gives system resource usage stats for the Muck Server process. ~~~ @wall @wall Only Managers may use this Command. Shouts something to every Player connected. Must be typed in full. ~~~~~~ ~~~ MUF COMMANDS (NOT YET FUNCTIONING) ~~~ @when @when If you control the object, this will display the Flags, ownership, and timestamps associated with that Object. If you do not control it, you are only told the Object type and ownership information. This Command works with either a dbref or an Object name. ~~~ @purge @purge =yes @RECycles all Objects owned by that Player, but leaves the player. You must specify 'yes' in order for this to take. WARNING: Make sure the Player owns no public Rooms or areas. Only a Manager may use this Command. ~~~~~~ ~~~ INDEX 3 ~~~ bogus|pseudo Bogus Commands Bogus Commands can be made using Exits. For example, to make a 'sit' Command, one could "@open sit", then "@link sit=here" (because @unlink'd Exits can be stolen), "@lock sit=me&!me" (impossible to be both at once, therefore always fails), and "@fail sit=You sit on the chair."; "@ofail=sits on the chair.". Since nobody can go through it, it always fails. The @fail message is displayed to the Player, and the @ofail message (preceded by the Player's Name) to everyone else. ~~~ control Control There are 5 rules to controlling Objects: 1) You control anything you own. 2) A Manager or CEO controls everything. 3) Anybody controls an @unlink'd Exit, even if it is locked. Builders should beware of 3, lest their Exits be @link'd or stolen. 4) Players control all exits which are @link'd to their areas, to better facilitate border control. 5) If an Object is set Chown_ok, anyone may @chown =me and gain control of the Object. (see chown_ok) See also: build, CEO, Chown_ok, Object, @link and @unlink. ~~~ costs Costs Owing to the implementation of quotas, costs are greatly reduced on Divination Web, as money is effectively useless. See also: build, coins, @quota and 'info new-web-prop'. ~~~ drop-to Drop-to When the @link Command is used on a Room, it sets a drop-to location. Any Object drop'd in the Room (if it isn't Sticky) will go to that location. If the Room is Sticky, the drop-to will be delayed until the last person in the Room has left. See also: drop, Objects, Sticky and @link. ~~~ failure Failure You fail to use a Thing when you cannot take it (because it's @lock fails). You fail to use an Exit when you cannot go through it (because it's @unlink'd or @lock'd). You fail to use a person when you fail to rob them. You fail to use a Room when you fail to Look around (because it's locked). Ultimately context determines the nature of failure anyway. See also: Look, Objects, rob, @link, @lock and @unlink. ~~~ flags Flags The Flags are displayed as letters following an Object's ID number. Flags are set with the @set Command. The Flags are: W(izard), S(ticky), L(ink_OK), D(ark), J(ump_OK), K(ill_OK), C(hown_OK), H(aven), A(bode), B(uilder), V(ehicle), Z(ombie). The Flags R(oom), E(xit), and P(layer) are also used. Debug is the same Flag as Dark, Silent as Sticky, and Bound as Builder. F refers to a Muck Forth Program. An M followed by a 1, 2, or 3 gives the Mucker Level. (Priority Level for Exits.) See also: Mucker, Objects, @set and individual Flagnames. ~~~ abode Flag: Abode If a Room is set Abode, Players can set their Homes there, and can @set the Homes of Objects there. (Link_ok is now used only for Exits, and Abode is for Players and Objects.) When set on a Program, it means AUTOSTART. This means that when the Muck is first started up, the Program will automatically be run with a trigger of #-1 and a 'me @' of the owner of the Program. This is useful to restart processes that run in the background periodically. See also: Flags, Homes, Objects, Players and @set. ~~~ Builder Flag: BUILDER Some MUDs restrict building Commands to Players whose Builder Flag is @set. The Builder Flag, BUILDER, is only meaningful for Players. On such systems, only Builders can @create, @dig, @link, @open, or pick up @unlink'd Exits. Only a Manager can @set this Flag. When BUILDER is set on a Program, it is called "BOUND" and it causes any functions within the Program to run in preempt mode, regardless of the multitasking mode that the process had before calling this Program. When the execution Exits this Program, the multitasking mode returns to what it was before the function was called. This lets libraries of atomic functions be written. See also: Flags, Players, @link, @open, and 'news building'. ~~~ chown_ok Flag: Chown_ok When set, this Flag indicates that any Player may use the @chown Command to claim ownership of the item, provided the Object is not @chlock'ed against them. See also: Flags, Objects, ownership, @chown, @chlock. ~~~ dark Flag: Dark If a Room is Dark, then when people besides the owner 'look' there, they only see Things they own. If a Thing or Player is Dark, then "look" does not list that Object in the Room's Contents:. Players can @set rooms they own Dark, and may also set Objects they own Dark, but they cannot drop Dark Objects in Rooms they don't control. Managers can set Players Dark. When a Program is set Dark, it is called DEBUG, and a running stack trace is printed out to any users of the Program for each instruction executes. See also: drop, Flags, look, Objects, Players, programming, @owned and @set. ~~~ haven Flag: Haven If a Player is set Haven, she cannot be paged. Haven, when set on a Program is called HARDUID, and causes that Program to run with the permissions of the owner of the trigger, rather than with the permissions of the user of the Program. When this is set in conjunction with the Sticky (SETUID) Flag on a Program, and the Program is owned by a Manager, then it will run with the effective Mucker level and permissions of the calling Program. If the caller was not a Program, or the current Program is NOT owned by a Manager, then it runs with SETUID permissions. See also: Flags, ownership, page and 'page #help'. ~~~ jump_ok Flag: JUMP_OK The Jump_OK Flag is used in several ways. Unprivileged Programs cannot use MOVETO on an Object unless the Player either controls the Object, the Room it's being moved from, and the room it's being moved to, or else they are @set Jump_OK. A Player cannot use an Action that is @link'd to another Player unless the other player is @set Jump_OK. See also: Action, Flags, Objects, Players, @link and @set. ~~~ link_ok Flag: Link_ok If a Room is Link_ok, anyone can @link Exits to it (but still not from it). It has no meaning for characters, Things, or Exits. A Program that is Link_ok can be called by any other Program, and can be run from Actions and propqueues not owned by the owner of the Program. See also: Action, Exitnames, exits, Flags, Objects @link, @owned and @set. ~~~ quell Flag: Quell A Manager set Quell is effectively a normal Player with no Manager powers. Programs that test to see if a Player is a Manager (Wbit) will get a false response from '"wizard" Flag?' when the Player is Quelled. W-bitted Programs will still act w-bitted whether or not the owner is Quell'd. See also: Flags, Managers and Players. ~~~ silent Flag: Silent A Player can @set themselves "Silent" and not see all the dbrefs and Dark Objects that they own. They won't see objects in a Dark Room either. They still control the Objects though. Silent is the same Flag as Sticky. See also: Flags, control, Objects, Players, Sticky and @set. ~~~ sticky Flag: Sticky If a Thing is Sticky, it goes Home when dropped. If a Room is Sticky, its drop-to is delayed until the last person leaves If a Player is Sticky (Silent), they don't see the dbrefs on Things they own, and they do not see Dark Objects. If an Exit is @link'd to a Thing, and it is located on another Thing, then if the Exit is not Sticky, the Thing the Exit is located on will go Home when the exit is triggered. If a Program is Sticky (SETUID) it runs with the permissions of the owner of the Program, not the perms of the user. See also: drop-to, exits, Flags, Homes, Silent and @link. ~~~ vehicle Flag: Vehicle Objects of Type Thing, that have the Vehicle Flag set, can contain Players. To enter a vehicle, you can either use a MUF Program to transport you to it via MOVETO, you can get a Manager to @TELEport you into it, or else you an use an Action that is both attached and @link'd to the vehicle to enter it. This means that you can only enter a vehicle from the same Room that it is in, and you cannot use far links to enter it. This prevents the use of vehicles to get around locks. Inside the vehicle, you will see it's @idesc, instead of it's @DESCribe, and you will not be shown it's @succ or @fail. Objects dropped in a vehicle will not go away to the their Homes, as a vehicle cannot have a dropto field defined in it. Things with the Vehicle Flag @set cannot enter Rooms or use Exits that have the Vehicle Flag @set. This allows a way to prevent vehicles from entering areas where it would be illogical for them to be. See also: ~~~ zombies Flag: Zombie @force and the FORCE MUF Primitive can be used on Objects of type THING, if they have the Zombie Flag @set. Objects act as if they have the permissions of their owner. If an Object is @lock'd against a Player, it will also be @lock'd against anything that that player owns, that tries to test the @lock. Things with the Zombie Flag @set cannot enter Rooms or use Exits that have the Zombie Flag @set. This allows a way to prevent zombies from entering areas where they are not wanted. If you try to run a Program that you control, that has its Zombie Flag @set, it will drop you into the MUF debugger. This lets you step line by line, or instruction by instruction through a MUF Program, setting breakpoints to stop at, and other nice things. There is help available within the debugger, via the 'help' Command. See also: Flags, Objects, ownership, @force, @lock and @set. ~~~ gender|sex|male|female @set me=sex:unassigned|male|female|neuter Default unassigned. If a Player's sex is @set, %-substitutions will use the appropriate pronoun for that Player. Only meaningful for players. See also: Flags, messages, Players and substitutions. ~~~ here Here The word 'here' refers to the Room you are in. For example, to rename the room you're in (if you control it), you could enter "@name here=". See also: me, Objects and @name. ~~~ Homes Homes Every Object or Player has a Home. This is where players when they go Home or Things with the Sticky Flag @set go when dropped. Homes are defined with the @link Command. A Thing's Home defaults to the Room where it was @create'd if you control that Room or your Home. You can have an Exit send Players Home (with their Inventory) using "@link =home". Drop-tos can also be set to 'Home' @TELEport accepts 'Home' as an argument, so you can @TELEport Things (and Players if you are a Manager) to their Home. See also: drop-tos, Home, Inventory, Manager, Player, Room, Thing, @create, @link, @set and @TELEport. ~~~ manager|management|wizards|gods|administration Managers/Administration Managers are the people that will help you with orientation, acquiring the ability to build, program or connect to the Web in many ways. In other MUDs these are called 'Wizards', but in Divination Web we have taken steps to keep the distinction clear between responsibility for administration of the Mu* and any assessment of wisdom or insight. These are best assessed by the individual Player and may not have anything to do with management. To see the list of Managers on DivWeb and their responsibilities, see 'news management'. See also: Mucker, Player, purpose. ~~~ money|coins Money/Coins On some MUDs, Building and Actions cost money. Divination Web uses a Quota system to ensure the security of the database. We are currently working out effective use for coins. See also: Action, Builder, costs, @quota and 'news intro'. ~~~ Mucker levels|0|1|2|3|ML0|ML1|ML2|ML3|Priority Levels Mucker Levels The Mucker level of a Player or Program specifies whether or not a Player can make MUF Programs, and what permissions they will have when the Programs are run. Only a Manager may @set the Mucker level of a Player, and a normal player may only @set the Mucker level of Programs they own to less than their current Mucker level. A Program cannot be @set to Mucker level 0, since it doesn't mean anything. When the Mucker level of an Exit is set, is it called the exit's priority level. The priority levels let you specify that certain Exits are not overidable by local Actions. When an Exit is searched for, in the matching routines, it will match like it used to, except that if it finds an Exit, later in the search order, that has a higher priority level, it will choose that Exit instead. You can set the priority level of an Exit by @set'ing its Mucker Level. (ie: @set Exit=2) A level of 0 is the lowest priority, and a level of 3 is the highest priority. Only a Manager can @set the priority level of an Action or Exit. When the Server looks for the standard "connect", "disconnect", or "look" Actions, it will ignore any actions with a priority Level of 0. When an Action is @attach'd to another Object, @name'd to something else, or @unlink'd, its Priority Level is reset to 0. See also: 'man mucker levels'. ~~~ new|me New/Me The word 'me' refers to yourself. Here are some things to do when starting out: 1) give yourself a description with "@DESCribe me=", then look at yourself with "look me". 2) set your gender, if you wish it known, with "@set me=sex:male" or "@set me=sex:female" (or "@set me=sex:neuter" to be an 'it'). See also: 'help' and 'help begin'. ~~~ number|dbref|objref Dbref/Number/# Each Object has an ID number (the 'dbref'), which appears after the name of an Object, and is followed by any Flags on the object; i.e. foo(#3672PM) is a Player, Male, named foo, with #3672. This number is a database reference, and is used to specify Objects at a distance; i.e. ex #. You will only see the ID number of Objects you own, or which are @set Link_ok, Abode, or Chown_ok. Managers can see the numbers and Flags on all Objects. See also: Flags, Managers, Objects, ownership, sex, and @set. ~~~ objects|classes Objects/Classes You can specify Objects (Things, Players, Exits, and Rooms) by name if they're in your Inventory or in the same Room as you. You need only type enough letters of the name to be unambiguous. You can also specify Objects anywhere by their ID numbers, in the form #. Players in other Rooms may be specified in the form *. The keywords 'me' can be used for yourself, and 'here' for the Room you're in. See also: here, home, inventory, me, numbers and Objects. ~~~ propdirs PROPDIRS Properties are stored in AVL trees, and organized into directories of properties. This speeds things up, and keeps you from being spammed on EXamine's. To EXamine the properties on an Object, use 'ex ='. where to EXamine the base properties in an Object, would be '/'. You can see the value of a single property with 'ex ='. Propdirs are a method of storing and organizing properties to speed access and to provide a sort of built-in organization. The basic idea is to make something similar to a 'filesystem' for properties. In this analogy, each person would be a filesystem, with a root directory and (theoretically) an infinite number of properties beneath that. A property has been expanded with the idea that each property may now contain a new property list -- the 'Propdir'. properties can both have a value (either integer or String as before) _and_ contain other properties. See 'help Propdirs2' for more. ~~~ Propdirs2 The actual directory entries may ALSO contain data. Propdirs' only real 'visible' changes are in the names of properties -- '/' is used as the property directory separator, and so will not appear in the names of the properties when listed through 'EXamine' or MUF Programs. Property protections have also been expanded -- the . and _ may appear either at the beginning of the property name or immediately following a '/', and that property will have the appropriate protections. For example, the property '/mail/.inbox/mesg/#' would have the same protections as '.mesg#' would now. See 'help Propdirs3' for more. ~~~ Propdirs3 There are two ways to remove a property list: * First, and most straight forward, is to remove the property that contains it. so, in the previous example, removing the property '/mail/.inbox' would (recursively) remove all properties under .inbox before removing .inbox itself. * The second way is to remove all properties within the property list yourself. When the last property is removed, the parent property (the one that contained the property list) is EXamined to see if contains data. If it does, then the property list only is removed. If the property doesn't contain data then it is removed also. Because of the first method of removing Propdirs, the ability to have a property list and value in the same property should be used sparingly. If you try to access a property ending in '/', in MUF, it will give a programmer error, except in NEXTPROP, in which it will give the name of the first property in that Propdir. See 'help Propdirs4' for more. ~~~ Propdirs4 The last visible, non-MUF change that Propdirs bring is that 'EXamine' will no longer show properties _directly_. Instead, where the properties would normally be shown, it will say: "[ Use 'EXamine =/' to list root properties. ]" Examine now can take an argument which is the property or Propdir to view. If the property name given ends with a '/', all properties in property directory will be listed, otherwise the single property named will be shown. Internally, a few things changed. property lists are now stored as AVL trees instead of straight lists, so there is a speed increase even if Propdirs are not directly used. This also means properties are kept in sorted order and will be displayed that way. See 'help Propdirs5' for the last of this. ~~~ Propdirs5 'addprop' will no longer allow a ":" in the property name. To clear a Propdir's value without deleting the proptree below it, from MUF do a '"" 0 addprop' to it. A property can *not* have both a String and integer stored at the same time anymore. The old property.c was lax and allowed this, even though the integer value would be lost on dbload. See also PROPDIRS-EXAMPLE. ~~~ PROPDIRS-EXAMPLE|props-example|property-example|properties-example Property and Propdir Usage Examples: Lines indented only 2 spaces are what the user is typing. Lines indented 6 spaces are what the Muck is returning to the user. Lines in []'s are comments on what's going on. [first, lets @set up a bunch of properties] @set me=first:a property. @set me=second:another property. @set me=first/one:A property in a Propdir @set me=first/two:Another property in a Propdir @set me=third/prime:three See 'help propex2' for more. ~~~ propex2 [Okay, now lets see what properties we have. We use the EXamine Command to do that, with a second argument, to tell it what we want to list in the way of properties. In this case, since we want to list the base level properties, we use '/'.] ex me=/ first/: (String) a property. second: (String) another property. third/: (no value) See 'help propex3' for more. ~~~ propex3 [Okay, it has a few properties with the first part of the names of the properties that we @set. The /'s at the end of some of the property names means that there are sub-properties that we can list. When we @set a property like 'first/one', it's actually creating a sub-property named 'one' beneath a property named 'first'. If 'first' doesn't already exist, then it will create that property. Let's list what sub-properties we created under 'first'.] ex me=first/ first/one: (String) A property in a Propdir. first/two: (String) Another property in a Propdir. [Here we see the properties that we @set as sub-properties under 'first'. We EXamined for 'first/' to list the sub-properties. The / at the end of the name tells the Muck that we want it to list the sub-properties of that property, and not that property's value itself.] See 'help propex4' for more. ~~~ propex4 [Lets see what value the property 'first' has, itself. To do this we leave off the '/'] ex me=first first/: (String) a property. [Okay, lets say that we just want to see the value of the sub-property named 'one', under the property 'first'. We can list it as follows:] ex me=first/one first/one: (String) A property in a Propdir. [If the property or sub-property that you specify does not exist, it will complain about it.] ex me=first/three No property found. See 'help propex5' for more. ~~~ propex5 [if a property was created to contain a sub-property, but was never given a value itself, it is listed as having no value. It has sub-properties, however.] ex me=third third/: (no value) [Let's list those sub-properties.] ex me=third/ third/prime: (String) three See 'help propex6' for more. ~~~ propex6 [Okay, let's delete the sub-property 'prime', from under the property 'third'. To do this, we act like we are @set'ing the variable again, except that we are giving it no value this time.] @set me=third/prime: ex me=third/ No properties listed. [There. It's gone. Now let's list the bottom level properties again.] ex me=/ first/: (String) a property. second: (String) another property. [Whoops! The property 'third' is gone too! This is because properties with no values are automatically deleted when their last sub-property is deleted. Let's delete a subproperty from 'first', now.] See 'help propex7' for more. ~~~ propex7 @set me=first/one: ex me=/ first/: (String) a property. second: (String) another property. [The property 'first' still exists, with it's String value, and it still has sub-properties. Lets list those.] ex me=first/ first/two: (String) Another property in a Propdir. [Here we see that the sub-property 'one' is gone, as we expected. Let's see what happens when you erase a property that has sub-properties.] See 'help propex8' for more. ~~~ propex8 @set me=first: ex me=/ second: (String) another property. [The property 'first' is gone.] ex me=first/ No properties listed. [And the subproperty it had is gone too! Let's remake the 'first' prop.] @set me=first:again, a property. ex me=/ first: (String) again, a property. second: (String) another property. See 'help propex9' for more. ~~~ propex9 [We have two properties again, and no sub-properties. It should be noted that sub-properties can have sub-sub-properties, and they can contain even subbier properties, and so on and so forth.] @set me=first/one:uno @set me=first/one/example:dos @set me=first/two/example:tres @set me=first/one/example/cat:meow ex me=first/ first/one/: (String) uno first/two/: (no value) ex me=first/one/ first/one/example/: (String) dos ex me=first/one/example/ first/one/example/cat: (String) meow See 'help propex10' for more. ~~~ propex10 [There is a special case in EXamine to let us list ALL the properties and sub-properties of a prop. To use it, we just specify '**' as a Propdir. For example, to list all sub-properties and sub-sub-properties, etc., under 'first', you would do the following:] ex me=first/** first/one/: (String) uno first/one/example/: (String) dos first/one/example/cat: (String) meow first/two/: (no value) first/two/example/: (String) tres [Let's delete all the properties on the Object, now. To do that, we specify no property name or value when we use @set. Nothing but a colon.] @set me=: ex me=/ No properties listed. [All gone!] ~~~ strings Strings Objects have several standard Strings: 1) a name string 2) a description string (_/de property) an inside desc (vehicles) (IDESC) (_/ide property) 3) a success string (seen by the Player) (_/sc property) 4) a fail string (seen by the Player) (_/fl property) 5) an osuccess string (seen by others) (_/osc property) 6) an ofail string (seen by others) (_/ofl property) 7) a drop string (seen by the Player) (_/dr property) 8) an odrop string (seen by others) (_/ofl property) See also: fields, objects, substitutions and types. ~~~ substitutions|%s|pronouns Substitutions @OSUCCess, @ofail, and @odrop messages may contain %-substitutions, which evaluate to gender-specific pronouns if the Player's sex is @set. They are: %a (absolute) = Name's, his, hers, its. %n (Player's Name) = Name. %o (Objective) = Name, him, her, it. %p (possessive) = Name's, his, her, its. %r (reflexive) = Name, himself, herself, itself. %s (subjective) = Name, he, she, it. Capitalized pronouns are also available with %A, %S, %O, %P, and %R. If you need a '%', use %%. Ex. '@ofail teapot=burns %p hand on the hot teapot.' See also: gender, messages, Player, sex, @ofail, @odrop and @OSUCCess. ~~~ success Success You successfully use an Object when you take it. You use an Exit successfully when you go through it. You use a person successfully when you successfully rob them. You successfully use a Room when you look around. See also: Strings, @SUCCess, and @OSUCCess. ~~~ theme|goal|Objective|purpose Theme/Goal/Purpose There is no ultimate goal except, perhaps, to have fun, network, and experiment with the Muckspace. There are visualizations to encounter, symbolic constructs to explore, and people to meet. Everyone is a winner as we explore ourselves and our reflections. See also: building, character, coins, Player. ~~~ timestamps Timestamps Every Object has a timestamp, which includes the time last used, the time last modified, the time the Object was created, and the number of times that that Object has been used by a Player. They are shown by using EXamine. 'Usage' is defined as follows: Players - when they connect Rooms - when entered or 'look'd at Exits - when invoked (by a 'go' Command) or 'look'd at Things - when 'look'd at or 'take'n/'drop'd Programs - when run by a Player Examining an Object does not count as looking at them. See also: connect, drop, EXamine, look, go, Objects, and Players. ~~~ tinysex Tinysex Since the early days of MUDplay, there have been an intrepid cadre of adventurous explorers that sought to connect with fellow cybernauts in a sexual way via computer. Whole MUDs were established to facilitate such connection, and psychologists have made studies of the phenomenon. See also: gender, purpose and substitutions. ~~~ types|letters Types There are 5 types of Objects: Things, Players, Exits, Rooms, and Programs. The first letter following an Object's ID number indicates the type: F as in MUF for Programs, P(layer), E(xit), R(oom), otherwise, Thing. Things are inanimate Objects that can be carried. Players are animate Objects that can move and carry. Exits are the means by which objects move. Rooms are locations that contain Objects and @link'd Exits. Programs are Player-written extensions to the Muck. See also: Exits, Objects and Players. ~~~ ver version revision rev 02/02/22 1104pm ~~~