torch Welcome to the tool shed in torch
Zylara's Backyard Garden.


This page last updated August 17, 2002

Valley


                     A Guide for Creating New Objects
                     ********************************
Now to learn objects, which are a little harder to understand than rooms and
mobiles.  As with learning all of the different building commands, my advice
is to read through this part of the building guide and then just play around
with the commands.  Once you get the hang of it, it is fairly simple.  There
are three commands you will be using often with making objects.  These are
OCREATE for creating new objects, OSET for modifing new objects, and OSTAT
for viewing the stats set on objects.  There are a few other commands that
are also used in making and checking things on objects, but are not used as
often as the previous three.  These are OINVOKE for making another instance
of an object, OLIST used to see a list of the objects you have made so far,
OFIND for finding objects by their keywords, and OWHERE another object locating
command.  You can NOT create a new object by using a vnum that has already been
used.  Nor can you use a vnum that is not in your assigned vnum range (unless
you are a high enough level).  If you create an object and it is not what you
wanted you do NOT have to detete it, just change the settings on it to make it
a new and totally different object.

Objects can add a lot of atmosphere to an area.  It is best to add more than
just good player useful equipment.  If this is all you put into your area
then players will just run in and grab the good stuff, and not explore your
area at all.  Adding things like furniture or large untakeable objects makes
your area more interesting.  Also adding a lot of small trash type equipment
lets you better hide the really good objects you put in.  There should not be
an over abundance of good stuff, only a few, depending on how many rooms you
have in your area.  The really good stuff should be hard to get, like on the
bigger mobs or well hidden.  Don't forget to add some small helpful items as
well, like a potion, scroll, wand, or container.

   ***THINGS THAT CAN CAUSE PROBLEMS WHILE MAKING OBJECTS OR MOBLIES***
*DO NOT cast the 'MIDAS TOUCH' spell on a PROTO object, doing so will crash
the mud, and cause other imms to lose work.  If for some reason you need
gold, like when testing a shopkeeper or a program, use 'mset self gold ####'.
*For this same reason, do not leave PROTO items in areas that players are in
or give PROTO items to a player.  The easiest way to avoid any problems is
by always keeping your proto mobs and objects in the area you are working on.
*It is also not a good idea to quit out of the game while holding proto
objects, it causes bugs the next time you log on if your area is not loaded.
If the mud crashes or reboots your proto area will not be loaded.
*It is frowned upon if you go into an area being worked on by another Imm
and start doing things like: killing their mobs, moving their objects around,
or droping objects that do not belong in their area.  This causes problems
if that Imm does instazone to set their resets....they would have dead mobs
and pools of blood - instead of live mobs, they would have objects from other
areas in their resets - this can cause bugs, their objects would not be where
they wanted them to be, and doors could be reset as opened instead of closed.
The Imm would prolly be pretty mad at messed up resets of this type, as I am
sure you would be too if you had to clean up a mess of resets like this.

Ok, now first off I will explain the previous commands I talked about, going
into a bit more detail.  Then we will get into making and setting of objects.

OCREATE
*******
Syntax:  ocreate (vnum) (keywords)
This is the command that lets you create a new object.  A prototype object
will be created with the given vnum, and set up with the plainest of default
values.  The object will appear in your inventory for you to futher modify
with OSET.
EXAMPLE of OCREATE and what you see on your screen:
type your ocreate command...
             ocreate 1600 sword long curved black bone
the building channel will show... 
             Build: Zylara: ocreate 1600 sword long curved black bone
you and everyone in the room will see...
   You make some ancient arcane gestures, and open your hands to reveal a
    newly created sword long curved black bone!
in your inventory there is now a...
     (PROTO) a newly created sword long curved black bone

Yes....this sounds funny, but it is only setting the objects keywords.  We
will change it later with the commands that are used for each setting.

A little extra info on keywords....
When entering the keywords for an object, be sure to always put the main
keyword first.  Do not capitalize the keywords, unless the object has a proper
name and that keyword should be the first in the list.  Use as many keywords
as possible, making sure that at least ONE of the keywords is found in the long,
short, and extra descriptions (these commands will be explained farther down the
guide).  This is because it is very frustrating to a player to come into a room
and have this happen:
enter room and see......."A sharp piece of metal is stuck in the ground here."
get metal......"I see no metal here."
get sharp......."I see no sharp here."
get piece......."I see no piece here."
get all......is about the only way to get it, and then they find out it is
"a long black sword" so long or black could have been used in the long desc
as "A long sharp piece of metal is stuck in the ground here." 
or "A sharp piece of black metal is stuck in the ground here."
anyway, if it is a sword, i think the player would be able to see that it was
a sword stuck in the ground.....but some builders try to make things harder for
players, just don't make it too hard, or the player will give up and quit.  So
keywords should include words that describe the object by color, size or by its
looks.  You would not want to name a key just "key", but "key silver small"   
makes the key easier to distinguish from other keys being carried in inventory.
Imagine a player trying to find the right key for a door if they are carring
four or five "a key".  Also imagine a player trying to LOOK at "a key" that
does NOT have "key" set as the word for its extra desc....VERY annoying to find
out you have to look at the "red" "stone" that is set into the handle of the key
when you did not know it had a red stone in it.  So you could use "key silver
small red" and then set the short to "a small silver key with a red stone in the
handle".  There could be 250 "sword" in the game, and some could be "black", some
could also be "long", some may even have a "curved" blade, but more than likely
only a few would also have a carved "bone" handle.  At least one keyword should
be rare or unique.  Ok I'm sure you get the idea, so I'll shutup and continue.

OCREATE a COPY
**************
Syntax:  ocreate (vnum) [copy vnum] (new keywords)
Ocreate can also be used to copy an existing object to a new vnum.  Say you
want your area to have four long curved swords with different types of carved
handles, and made from different types of metals.  Or maybe you are having a
problem making a certain object, and another builder has made something that
is very close to what you want.  There are many ways that ocreating copies
comes in handy, so you don't have to create and make each one and spend a lot
of time doing it.  Be sure to give your new object its own keywords that will
make it different from the one you are coping.
EXAMPLE:
After getting the first "black bone" sword all set they way you want all the
swords to be, then you would just do these three commands to have four swords:
  ocreate 1601 1600 sword long curved grey stone
  ocreate 1602 1600 sword long curved silver marble
  ocreate 1603 1600 sword long curved blue wooden
Now we have four identical swords all set the same with different keywords.

OSTAT
*****
Syntax:  ostat (object vnum)
Ostat shows you all the statistics and settings on an object.  If a copy of
the object is present in the game, you can access it using its vnum.
  Ostat will default: 
    1. first to an item on the ground
    2. second to an item that is in your inventory
    3. third to an item in the game with the vnum you specify.
You may also use one of the keywords, but you may not get an ostat of the
right object.
EXAMPLE:
Lets use the black sword we just created and have not set anything on yet.
ostat 1600    
Name: sword long curved black bone.
Vnum: 1600.  Type: trash.  Count: 1  Gcount: 1
Serial#: 1300  TopIdxSerial#: 1300  TopSerial#: 1337
Short description: a newly created sword long curved black bone.
Long description: Some god dropped a newly created sword long curved black bone here.
Wear flags : 
Extra flags: prototype
Number: 1/1.  Weight: 1/1.  Layers: 0
Cost: 0.  Rent: 0.  Timer: 0.  Level: 65.
In room: 0.  In object: (none).  Carried by: Zylara.  Wear_loc: -1.
Index Values : 0 0 0 0 0 0.
Object Values: 0 0 0 0 0 0.

OINVOKE
*******
Syntax:  oinvoke (vnum)
         oinvoke (vnum) (level)
object invoke
The oinvoke command will invoke an exact copy of the object specified.  It
accepts an optional parameter for the level of the object to be invoked.  If
no level is given, the item will oinvoke at your current level.  This command
is used for getting an object back that has been lost in some way.  For instance
say you create a new object, get it set the way you want it, and do savearea.
Then the mud crashes and your object is gone when you get back online, as all
proto object will do unless they have been put into the areas resets.  Or maybe
you want more than just one of a certain object in your area, like a belt that
is going to be worn by more than one mob in your area.  Savearea saves everything
that you do in building an area, but it does NOT add resets.  So don't panick
if your mobs or object disappear, they are still in the game as long as you did
savearea after creating them.  You just have to oinvoke them to bring them back.

OLIST
*****
Syntax:  olist
Syntax:  olist (first object vnum)
Syntax:  olist (first object vnum) (last object vnum)
This command will list all of the prototype objects in your area, when used
with no arguments.  Warning this can be spammy if you have a lot of objects
made for your area.  When used with a single argument it will list all objects
including and after the argument, and when used with two arguments, it will
list all objects including and between the two.
EXAMPLE:
Since we have only created one object it is a small list.
olist
1600) sword long curved black bone (a newly created sword long curved black bone)

OFIND
*****
Syntax:  ofind (keyword)
The command ofind will find all object types with a particular name.  It
will show all objects with the specified keyword, even if they are not set
in any area resets.  It can be use to see if there is already an object
in the game with the same keywords that you want to use.  Good for checking
to see if your rare and unique keyword has been used on the same type of
object.
EXAMPLE:
We won't show ofind sword....obviously that is a very common word, instead
we will use curved and bone.
ofind curved
[ 1600] A newly created sword long curved black bone
[ 3421] A rusty curved scimitar
Number of matches: 2
ofind bone
[ 1600] A newly created sword long curved black bone
[ 9828] A bone sword
Number of matches: 2

OWHERE
******
Syntax:  owhere (object keyword)
The owhere command will display the exact room location of all instances of
the specified object.  It will only return a list of objects that are currently
in the game, it will not show objects that are NOT put into any area resets.
This command will help you to locate any object that you may be looking for.
EXAMPLE:
Say we want to check to see if anyone has one of those black swords we made.
owhere bone
( 1) [ 9828] a bone sword                 in invent [ 9803] S'goral
( 2) [ 1600] a newly created sword long curved black bone in invent [ 0] Zylara
2 matches.
Guess not...  :)

OSET
****
Syntax:  oset (vnum) [field] (value)
When using oset it is best to only use the vnum and NOT the keywords, as this
can cause problems from time to time.  It is just a good habit to get into.
Some mud Admins will jump you for using keywords instead of the vnum.  Oset
will be the command you use most in making objects.  It is used for setting
all of the different statistics on your objects.
If the copy of the object you are currently modifying has the PROTOTYPE flag,
your modifications will also modify the index of that object, which all other
instances of that object are based on.  In the future, EVERY copy of that
object will reflect your modifications.
Also be aware that modifications to the object affect list (everything that
is listed after 'object values') will affect EVERY copy of that object in
the game, including old copies (even if they are not online).  Thus if you
change a prototype-flagged copy of a sword to +4 damroll, every copy of that
vnum ever made will reflect that change.  If you add a 'magic' flag to that
sword, however, only copies made after the change will be affected.
If the copy of the object you are modifying does NOT have the PROTOTYPE flag,
your modifications will affect only that copy.

OSET ON
*******
Syntax:  oset (vnum) on       
This has a tendency to crash the mud.  Be sure to ask your muds Admin or Coder
if you can use this command first, to see if they have added the fix for it yet.
This command will lock you onto a particular object.  Once locked on, all 
commands will imply 'oset (vnum specifyed)'.  Hitting enter while in OSET ON
gives you an ostat of the object you are working on.  To get out of OSET ON,
simply type the word DONE.
EXAMPLE:
     oset 1600 on
        wear take
        wear wield
        type weapon
        done



Ok, now lets make that sword look more like a sword....
Typing OSET by itself will return this menu to your screen:
Syntax:  oset (object) [field] (value)
         oset (object) on
Field being one of:
  flags wear level weight cost rent timer name short long ed rmed actiondesc
  type affect rmaffect layers value0 value1 value2 value3 value4 value5
For weapons:               For armor:
  weapontype condition       ac condition
For scrolls, potions and pills:
  slevel spell1 spell2 spell3
For wands and staves:
  slevel spell maxcharges charges
For containers:            For levers and switches:
  cflags key capacity        tflags

As on the other parts of this building guide, I will go through each command,
telling exactly what each one is used for and what it does. 

FLAGS
*****
Object flags are special flags that you can add to your objects.  They pretty
much explain themselves.  If we want the sword to only be worn by a neutral or
evil player, then we would do  'oset 1600 flags antigood'  this makes the sword
zap the player and fall to the ground if their alignment reaches a positive 350.
If we want the sword set as metal we would do  'oset 1600 flags metal'  this
gives the sword a plus 20% on its resistance to damage, which means it won't scrap
as easy.  Like I said these are fairly selfexplaintory.
OBJFLAGS OBJECTFLAGS
These are the flags that objects can have set on them.  
Flag          Affect               Flag          Affect
====          ======               ====          ======
glow          n/a                  antigood      zap if align +350
hum           n/a                  antineutral   zap if align -350 to +350
dark          n/a                  antievil      zap if align -350
prototype     n/a                  antimage      zap if mage
clancorpse    n/a                  antithief     zap if thief
clanobject    n/a                  antidruid     zap if dwarf
nodrop        cannot drop          anticleric    zap if cleric
noremove      cannot remove        antiwarrior   zap if warrior
invis         invisible            antivampire   zap if orc or ogre
magic         prevents enchant     deathrot      
poisoned      object is poisoned   donation      prevents get all     
burried       dig to find          evil          glow on detect evil  
organic       +20% suscept. dam.   metal         +20% resist damage
hidden        search to find       loyal         loyalty (see help loyal)
inventory     purge upon char death
bless         +20% resist dam. (dbl. duration poison weapon)






Back to my Homepage


Feel free to email me with any comments or questions at