A prototype is a template for spawning in-game objects and entities. There is a |cprototype wizard|n built into the world with many fields and customizations to go through.<br /><br />|cOLC|n<br />Use this command to enter the Prototype Wizard.<br /><br />|cCreating a New Prototype|n<br />To create a new prototype, it’s best to start with |c: Prototype-Key|n within the wizard.<br /><br />|cPrototype-Key|n<br />The Prototype-Key uniquely identifies your new spawn object and is a mandatory field. It should be the short, but descriptive name of the object, e.g. flag of parrius, witch hat, etc. Do not include ‘a’ or ‘an’ before the short name.<br /><br />|cPrototype Parent|n<br />The Prototype Parent allows you to inherit prototype values from other existing prototypes. This is not a mandatory field, but may speed up the process if you are basing your prototype on a similar object.<br /><br />|cTypeclass|n<br />Typeclass defines what type of object you’re creating. All spawned objects must have a typeclass, or it must have been inherited from the prototype parent.<br /><br />List of Frequently Used Typeclasses<br />Chaos please provide info about when to use what for what!<br /><br />|cKey|n<br />Key is the given name of the object to spawn. It should be a very general description of exactly what the object is, like ‘flag,’ ‘dress,’ ‘bookshelf,’ whereas the Prototype-Key might be ‘flag of parrius,’ ‘flower patterned summer dress’ or ‘dust covered bookshelf.’<br /><br />|cAliases|n<br />Aliases are alternative ways to refer to the object aside from its given key. For example, a ‘bobcat kitten’ might be referred to in short as a ‘bobcat,’ a ‘cat,’ or a ‘kitten.’ All of these would work as valid aliases. Remember, make it easy on the player. You don’t want someone to get frustrated because they can’t figure out how to interact with an item.<br /><br />|cAttributes|n<br />Attributes open up a world of possibilities, as they are the custom properties applied to your prototype object. Please refer to |cHELP ATTRIBUTES|n to learn about all the properties your items could have.<br /><br />At the very least, there should be the following two properties applied:<br />name=<name of object> | Example: name=Red Flag<br />desc=<description of object> Example: desc=The flag is made of a vibrant red silk.<br /><br />|cTags|n<br />Tags are used to group objects so they can be found more quickly at a later time.<br />Chaos can you provide examples? I think I usually leave this blank.<br /><br />|cLock String|n<br />Lock Strings define limitations for accessing various properties of the prototype object once it has been spawned.<br /><br />Examples:<br />get:false() | Prevents the object from being picked up.<br />view:false() | Prevents the object from being obviously seen in the location. You can still LOOK at the object, however.<br /><br />|cPermissions|n<br />Permissions are used to grant access to the object. For example, it could be something that only deities have access to, or eventually be restricted by cities, guilds, or orders.<br /><br />|cLocation|n and |cHome|n<br />The location is the room that the prototype object will be placed in whenever a new spawn of it is created. If left blank, it will spawn in your inventory by default.<br /><br />The home location is typically only used as a backup in case the specified default location happened to be deleted.<br /><br />|cDestination|n<br />The object’s destination is generally only used for objects functioning as a portal or exit, in which the destination is where the object leads to. This is not a mandatory field and is usually left unset for most objects.<br /><br />|cPrototype-Description|n<br />This is a brief description of the prototype when it’s viewed in listing windows. By default, it is unset and not a mandatory field.<br /><br />|cPrototype-Tags|n<br />Prototype tags can be used to classify and quickly find prototypes in listings. This is not a mandatory field and is unset by default.<br /><br />|cPrototype-Locks|n<br />Prototype-Locks are used to limit access to your new prototype. <br /><br />By default, only the prototype creator or Admins have privileges to edit the prototype:<br />edit:all()<br /><br />By default, anyone with access to the spawn command is able to spawn a prototype object.<br />spawn:all()<br /> <br />|cValidate Prototype|n<br />Once you have gone through all steps of the Prototype Wizard, you are ready to validate your prototype using |cV|n.<br /><br />|cSave Prototype|n<br />When you are satisfied with your prototype and it has passed the validation checks, you should save the prototype using the |cSA|n command.<br /><br />|cSpawn Prototype|n<br />Your prototype has been validated and saved, now for the big reveal! Use the |cSP|n syntax to spawn your selected prototype object and marvel at its existence in the world.<br /><br />|cLoad Prototype|n<br />Use this from within the Prototype Wizard to edit an existing prototype.<br /><br />|cQuit|n<br />Simply use the command |cQ|n to quit and exit out of the Prototype Wizard. Be sure you have saved any work you want to keep!