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)