SGP Cgen HOWTO-List Objects: 110901 Data organization for SGP Cgen: ------------------------------ This is a short primer on compiling lists for your game's List Object. SGP cgen is based on the assumption that a character sheet for an RPG is grouped into 3 essential categories: strings, stats, and lists. String data, for our purposes is essentially the type of information found at the top of a character sheet. Strings may represent both arbitrary and specific types of imformation, such as name(arbitrary), race(arbitrary or specific), gender(specific), or other information that is identifying. The key is that any given bit of string data is generally going to be short, a ew words at the most. Look at the top of the character sheet in the back of the book you're using. Many of those character attributes are going to be stored on the character object as &STRING- data. Stats, for our purposes, are any character attribute that carries a specific numerical value, such as strength or willpower. Stats are special, because they are compiled into a master database that is searched before a stat is set on the character object. They are generally the most numerous type of attribute on a character sheet and are stored on the character object as a &STATLIST- data. List data is much like strings, except that lists on a character object are generally arbitrary and can contain a little more information. Lists are generally things like merits, flaws, specialties, spells, and things you might find as details on the bottom of a character sheet or on supplemental pages. They appear on a character object as &LIST- data. Compiling listings for &STATLIST-, &STRING-, and &LIST-: ------------------------------------------------------- STRINGS: The first thing to do is to list out the types of data you want to store on the character object using this cgen. Begin by compiling &LIST-STRINGS and figuring out all the types of string data that you'll have appearing at the top of the sheet display. These lists may be short or long, but all items should be seperated by a '|'. Example: &LIST-STRINGS List Object=name|race|class|sex This list of strings becomes the list that +setstring checks to see if it is a valid type of string data. You can also define what may appear in something like race by creating and attribute on the list object accordingly. Example: &LIST-RACE List Object=elf|human|vampire|elephant STATS: Begin by using the book for your game system and define a list of stattypes. Write those types to a '|' seperated list. The rule of thumb is should be that if the book gives it a name, like a 'discipline' or 'skill' or 'attribute', then use those names in your stat list. +setstat and +settemp check a master database of stats based on this listing of stats. Example: &LIST-STATS List Object=abilities|skills|secondary-skills|pools|powers|lores You then take each of the listed stat types and compile a list of stats that fit them. After you compile the lists, which may take a while, make an attribute for them. BE SURE that you check for typos. Example: &LIST-ABILITIES List Object=strength|dexterity|intelligence|charisma &LIST-SKILLS List Object=driving|fighting|survival &LIST-SECONDARY-SKILLS List Object=racing|performance|poetry|brawl|melee &LIST-POOLS List Object=health|willpower|psi &LIST-POWERS List Object=levitation|clairvoyance|telepathy &LIST-LORES List Object=monsters|werewolves|history|mythology LISTS: As with string data, compile your list of list data on an attribute named &LIST-LISTS. +setlist will check this list to see if the list is valid or not. You can control what may or may not be set in a given list by creating a &LIST- attribute for that list. Example: &LIST-LISTS List Object=merits|flaws|gear|spells|scrolls|magick items &LiST-SPELLS List Object=fireball|make water|call lightning|greet the sun In the latter example, you can check against the specific list of spells as a means to prevent misspellings, or simply to prevent strange things from cropping up on your character sheets. Once complete, you can load the object and begin the process of building the character sheet itself.