Creating YOUR PERSONALITY

Editing Your Character:
        These are a bunch of the properties that you can tailor to your character  to make it more fun and interesting!    The important command parts are highlighted in XXX. These commands you can cut and paste and then substitute your own wording.
     @set me=species:<species name>
         Self explanatory. Can be pretty much whatever you want
     @set me=sex:<gender>
         Self explanatory. Can be "male", "female", or "neuter", and possibly others, but some references that depend on these may come out weird.
     @set me=say_prefix:<what you see onscreen when you 'speak'>
          Self explanatory. Can be pretty much whatever you want.
     @set me=osay_prefix:<what everyone else sees onscreen when you 'speak'>
         Self explanatory. Can be pretty much whatever you want. An example would be Tiger purrs, "Hello."
          The result of @set me=osay_prefix:purrs and you type "Hello.
     @set me=_scent:<whatever you want to smell like>
          Pretty straight forward. This will literally be the text that is returned to the fur that sniffs you, so it can be pretty much whatever you want.
     @set me=_smell_notify:%n just sniffed you!
          Whereas %n substitutes your character's name, simple notification. Will tell you when someone sniffs you.
     @set me=_desc_notify_looked:%n just looked at you.
         Whereas %n returns your character's name, simple notification to let you know someone looked at you.
     @set me=_desc_notify_looker:%n knows you looked.
         Whereas %n returns your character's name. Will tell the other character that you know they looked at you.
     @desc me={look-notify:{list:mydesc}}
         Sets you character's 'look' description to whatever you want in <mydesc>. Whereas <mydesc> can be any description you choose, so long as it's referenced in the 'lsedit' command (below) identically.
     wd s:<something something something>
        This is your "WhatDoing" Sticky Message. It is what's displayed in the 'wd' listing. When wd is typed a list of all online characters is listed as well as what they are doing.
     lsedit me=mydesc
         Brings up the list editor that you can use to enter your character's description. Whereas <mydesc> can be any description you choose, so long as it's referenced  in the @desc me={look-notify:{list:mydesc}} command (above) identically. Lsedit is your friend. Use it to set descriptions longer than a few lines. Also you can use it to set different descriptions my numbering them: lsedit me=mydesc1, lsedit me=mydesc2, ect. Remember to also set a corresponding @desc me={look-notify:{list:mydesc2}} for each different one when you want to it to be seen. You can then switch back and forth between different descriptions.

Creating items
or toys in the attic.

        Now that you look like something, every well dressed character needs some posessions. Whether it is a box of fudge, a golden ring or a fully loaded rail gun, this is a basic walkthrough.

     @create<item>
          whereas <item> is the literal name of the item. There is no = here.
     @desc <item>=<description>
          whereas <description> is the text returned by the "look <item>" command
     @link<item>=here
          whereas 'here' assumes you want the item to be placed in the room you're in. Can also be 'me' or a dbref# of a room if you own that room. You can only link to rooms or other items that you own already or have been given permission to from another character.
     @lock <item>=me
          locks the item to you so no one can take it or pick it up. 'me' can also be 'here' or a dbref# of a room if you own that room.

Attaching Actions to items:or .. Build a Better Mousetrap

    Now that you have an object. Make it so it can "do" something.

    See @create and @desc from above (if you have attached any actions, you should mention it in your
          description text, so other folk can be aware of them)
     @act <action>=<item>
          whereas <action> is the literal name of the action that the object can do
          whereas <item> is the literal name of the item you are creating the action for
     @link <action>=#<dbref#>
          whereas <action> is the literal name of the action that the item can do
          whereas <dbref#> is the dbref# of the item the action is associated with. When you create an action or a door or a room it will be assigned a dbref#. It is a good practice to write these down because you will need them later.
     @succ <action>=<text>
          whereas <action> is the literal name of the action that the item can do
          whereas <text> is the text returned to the character doing <action>
     @osucc <action>=<text>
          whereas <action> is the literal name of the action that the character can do
          whereas <text> is the text returned to everyone else in the room, appended to the character's name that is doing <action>
     @fail <action>=<text>
     whereas <action> is the literal name of the action that the character tries to do
          whereas <text> is the text returned to you, who is doing <action>. This will be seen only if the character fails to complete the action. An example would be a locked door or an item that needs something "extra" to function. Also an item that locked against use.
    @ofail <action>=<text>
          whereas <action> is the literal name of the action that the character tries to do
          whereas <text> is the text returned to everyone else in the room, appended to the character's name that is trying to do the <action>
        Note: in your text place a %p in every spot where the words HIS, HERS or ITs would be. The sentence will show up as gender correct automatically.
        Also:
       %a = Name's, his, hers, its.
        %s = Name, he, she, it.
        %o = Name, him, her, it.
        %p = Name's, his, her, its.
        %r = Name, himself, herself, itself.
        %n = Name of player.

BUILDING YOUR HOME

The first thing you need to give is a sense of realism is a description. The basics for room building having been tried, you need to show people where you live. The descriptions here are examples. You can substitute any type of description your heart desires. Bear in mind that a really long description will spam and bore your guests. All important commands are in XXX

       Creating Rooms:
     @dig <roomname>
          whereas 'roomname' is the literal name of the room
     @desc <roomname>=<description>
     Thiswill only work with short descriptions of a room. For long descriptions you will need to use the lsedit commands below.
     @desc <roomname>={list:roomdesc}
          whereas 'roomname' is the literal name of the room (if all else fails, try "here")
     lsedit <roomname>=roomdesc
          whereas 'roomname' is the literal name of the room (if all else fails, try "here")
     (enter text description of the room. When done, type "enter" then ".end" This will exit the lsedit editor and save the room description.

        Creating Exits:

       Now that you have made a room or two, you need to open doors between them. This is done in two steps as the doors are two sided.
     @open <name of exit>
     This can be "Wooden door" or even the name of the room on the other side. It will not be seen and it is reccomended that you include a lot of possibilities seperated by semi-colons. For example:
@open east;e;kitchen;k Typing any of those choices will activate the exit. It is a good practice to include at least one of the exit names for each exit in your description of the room. Of course, @open just creates an exit leading into nowhere. You'll need to @link it somewhere before people can go through it!
    @link <name of exit>=#2345
        Do this step standing in your room. The #2345 is the dbref# number of the room you want the exit to go to.Now, typing any of the exit names will put you through into the room you linked to. Now, standing in your next room, you have to make the exit going back the other way.
    @open west;w;livingroom;l;L;out;o
     This now makes an exit that any of those names will open. Out and o is handy to use if there is only one door to someplace like a closet or bathroom. Now link this exit back to the room you came from.
    @link west=#1234
     Use the dbref# of the first room and now you will be able to walk back and forth between them. When making multiple exits in one room beware of using the same name twice for two different exits.

       You can also attach the following messages to your exits to make them more interesting
     @succ <exitname>=You open the door and go in.
    @osucc <exitname>=opens the door and goes through it.
    @fail <exitname>=You can't. It's locked.
    @ofail <exitname>=rattles the door and kicks it, but it will not open.
     Of course you can substitute any message you like but this gives you an idea of how each one works.
     @drop <exitname>=<text>
          whereas <exit> is the name of the exit that the character has taken
          whereas <text> is the text returned to the character after having gone through the <exit>
     @odrop <exit>=<text>
          whereas <exit> is the name of the exit that the character has taken
          whereas <text> is the text returned to everyone in the room that the character is entering into, appended to the character's name that has used <exit>

       Making Exits Interesting:
     @osucc, @odrop, and @ofail messages may contain %-substitutions, which evaluate to gender-specific pronouns if the player's sex is set. Capitalized pronouns are also available with %A, %S, %O, %P, and %R. If you need a '%', use %%.
        %a (absolute)       = Name's, his, hers, its.
        %s (subjective)     = Name, he, she, it.
        %o (objective)      = Name, him, her, it.
        %p (possessive)     = Name's, his, her, its.
        %r (reflexive)      = Name, himself, herself, itself.
        %n (player's name)  = Name.
 




Creating "shortcuts" for your character:

    @act <exitname>=me
          creates an "exit" and attaches it to you
          whereas <exitname> is the literal name of the exit that gets created
     @link <exitname>=#<dbref#>
          whereas <exitname> is the literal name of the exit (what you used above)
          whereas <dbref#> is the dbref# of the room that you wish the "exit" to go. This can be used to go to any room that you own from anywhere you might be. Sort of a portable door you keep with you.

        You can also make exits retrieve items for you. Normally, if you want to retrieve an object you have to @tel #1234=me. However, you can @link an exit to the item, and, whenever you typed the name of the exit, the item would jump into your inventory, no matter where it had been before. To make an exit called 'getcoffee' that would always call your Coffee into your inventory, you would type:

     @act getcoffee=me        (creates an exit called 'getcoffee', attached to you)
     @link getcoffee=Coffee       (links 'getcoffee' to the Transporter)

Now, whenever you type 'getcoffee', your Coffee will appear in your possession, as if by magic. To see your inventory, type 'i'.

Checking Exits:
     ec
          checks/identifies a room's exits
     qe <exitname>
          QuickExit checker
          whereas <exitname> is the name of the exit to be checked

   Fixing Mistakes:
     @name <oldname>=<newname>
          whereas <oldname> is the current name of the item
          whereas <newname) is the name that you want the item to have
     @relink <exitname>=#<dbref#>
          whereas <exitname> is the name of the "exit" from the room
          whereas <dbref#> is the dbref# of the new room that you want the "exit" to go to
     ex<roomname>
          whereas <roomname> is either the literal name of the room, it dbref#, or 'here' if all else fails. This will show who the owner is, or if you're the owner, can be good way to see all the room's/object's attributes.

        Recycling Things you Own:
          A big database makes for a slow MUCK with lots of lag. You can play a part in keeping your MUCK lag minimized by getting rid of all those things, actions, exits, and whatever else you have (zombies too) that you don't need or use anymore.
     @recycle #<dbref#>
          whereas <dbref#> is the dbref# of the thing/exit/action/room that you own.
          you can also reference stuff by name, but this can get tricky so it's always better to use the dbref# because there's only one of those in the entire database. To @recycle an exit, you have to be in the room where it is connected. You can also @recycle here if you want to get rid of the room you're in, but you'll want to make sure you do a @link<object>=me for EVERYTHING in the room and that you're holding that you want to keep, otherwise, things can vanish, never to be found again! You will go to your home as the room is "destroyed", and everything you're carrying will be sent to its home unless it's @linked to you.

LOCKS

           Locks can be put on exits or actions attached to objects. You can lock a door to a room against any unwanted entry. You can also use it to make interesting objects. An example is a cannon I made that will fire but not unless you have fetched a cannonball and a torch to light it with.

                    Boolean operations are allowed. Recognized operators are:
          '&' '|' '!' '(' ')' ':' ';'
          AND OR NOT PRECEDANCE MEMBERSHIP SPLITTER

          For example to restrict use of an exit to people carrying
          a Red Key, type:
        @LOCK <exitname>=Red Key

          If you want to create a complex set of criteria for using
          an exit, you can use boolean operators, for example:
          @LOCK <exitname>=Red Key | Invitation | me

          Which means only people with a red key, OR those that
          have an invitation, or yourself can pass through the door.

          AND has higher precedence than OR, but when in doubt, use
          parenthesis, ie: @lock THING=(A|B) & (C|D)

Lock OPERATORS



          Operators used In locks:
          & - means AND, @lock gate = key & passport means BOTH are necessary.
          | - means OR, @lock gate = Key | Passport means one of them is enough.
          ! - means NOT, @lock gate = !gun means that you can't pass with a gun.

          ()- declare precedence, @lock Gate=(key|passport)&!gun
          means a key, or a passport (or both) as long as there's no gun.

Lock building can be tricky. Here are some transformational rules you can follow to try to word locks more concisely
         !Key & !Gun (---) !(key|gun) (can't have either one)
         !key | !gun (---) !(key&gun) (can have none, one, but not both)
         !dog&key | !dog&axe (--) !dog&(key|axe)

          Be careful:
          !dog|key & !dog|axe is the same as: !dog | (key & !dog) | axe
          NOT the same as: (!dog | key) & (!dog | axe)
          (!dog|key) & (!dog|axe) (---) !dog | (key & axe)

Zombies 101
     Or confuse your friends and annoy everyone else

    @create <zombiename>
          whereas <zombiename> is the literal name of your zombie. (remember the dbref#)
     @set <zombiename>=z
          whereas <zombiename> is the literal name of your zombie
          whereas 'z' makes the item a Zombie
     @set <zombiename>=x
          whereas <zombiename> is the literal name of your zombie
          whereas 'z' makes the item xForceable
     @flock <zombiename>=me
          whereas <zombiename> is the literal name of your zombie. Sets the ForceLock so only You can use your Zombie
     @action zom=me
          creates and action named 'zom' so you can control your Zombie.
     @lock zom=me&!me
          don't ask: this action must always fail --> me&!me is false
     @set zom=h
          action 'zom' must be set 'h' to allow MPI to work
     @fail zom={force:#<dbref#>,{&arg}}
          the fail section of the action to run the MPI program that sends your commands to the Zombie.
          whereas <dbref#> is the dbref# of your Zombie
     @lock <zombiename>=me
          whereas <zombiename> is the literal name of your zombie
          whereas 'me' locks it to you so no one can run off with it
     @link zom=$nothing
          if you attach the zom action to something other than yourself, it is accessable to other players.
     drop <zombiename>
          whereas <zombiename> is the literal name of your zombie
          drops your Zombie so it can become active for you

     zom ...
          issue a command to your zombie. (ex: 'zom say Hello' would cause your Zombie to say "Hello" in the room it's in. Or: 'zom look' would make your Zombie look at the room its in and it would display back to you something like:
               'Feep> You are standing in a wide field....' (or whatever) "Feep", in this example, would be the name of your Zombie. Pretty much, anything that you could do, your Zombie can do.

Miscellaneous Things:

          Here's a collection of useful stuff that didn't seem to have a logical home somewhere else.

     @link me=#<dbref#>
          sets the character's home to the room <dbref#> provided they own it; can also use 'here', also provided they own they room they're in or have permission to do so.
     @quota
          displays the character's object quota details
     examine #<dbref#>
          whereas <dbref#> is the dbref# of the object you wish to examine, provided you own it; can also be 'me', 'here', an exit or object's name, etc. You can also append "=/" to the end to show all of the "root" properties. Overall, this command can help immencely in "cleaning" up objects and cutting down on the amount of space they consume in the database by allowing you to identify properties that you no longer use or need that you can remove.
     @set #<dbref#>=<property>:<value or text>
          whereas <dbref#> is the dbref# of the object you wish to @set a property on, provided you own it; can also be 'me', 'here', or an exit or object's name, etc (but it's better to use the dbref#)
          whereas <property> is literally the name of the property
          whereas <value or text> is the data associated with the property
          if @set is used without a colon and data appended, the property is removed from the referenced object
     @password <oldpassword>=<newpassword>
          changes your password, whereas <oldpassword> is your current password and <newpassword> is what you want your new password to be.
     @set me=/sweep/sweep:<text>
      This will customise your sweep message when you sweep sleeping characters.
     @set me=/sweep/swept:<text>
      This will customise your sweep message when you are swept from an area. What everyone else sees as you leave.
    @find <itemname>
      If you lose an item, this will tell you what it's debref# is.
    @tel <dbref#>=me
      Use this to retreive your lost or strayed items.
     @find *
      This will give you a list of everything you own and all the dbref#.
    @set me=_prefs/where/unfind?:yes
    @set me=_prefs/where/unfind?:no
          By typing whereis <charactername> people can see where you are located. Use these two commands to disable or enable that function for privacy
    laston <charactername>
      Will tell you when the character was last connected.
 

Below are some great links for further help. Not all commands will work in all formats. These pages have been a great help as well and I appreciate the makers assembling and posting them.

Soappuppy

Furtoonia help pages.

Ben Raccoons pages from TigerDen

Many thanks also to Kenti Bengali for his input.