These are the PCGen Campaign Configuration files. Here you can specify what you want included in this
campaign (or excluded as the case may be). The first tag must be CAMPAIGN:name where name is
what you want this campaign to be called in PCGen. You can optionally include RANK:number as the second
line, where number is the order in which this campaign will be loaded if you load more than one campaign.
RANK:1 is the highest, and no ranking is the lowest. You can include/exclude based on the following tags:
RACE: SKILL: FEAT: DEITY: DOMAIN: SPELL: WEAPONPROF: EQUIPMENT: LANGUAGE: CLASS: CLASSSKILL: CLASSSPELL:
for each of these you specify a pipe delimited list indicating what specific items, or items from a file, you
wish to include/exclude. Some examples would be:
RACE:phbrace.lst|(EXCLUDE:Human|Dwarf)|myrace.lst|(INCLUDE:Happy Elf)
would first load all the races from the phbrace.lst file and exclude the Human from it, then add to that list all
the races defined in myrace.lst but then include only the Happy Elf class from myrace.lst. The resulting list of
races would then be available for character creation. The same is true for all the labels.
REQSKILL: is an optional tag - the | delimited list can include UNTRAINED (which means that all untrained skills
will be automatically included on any character as if the skill had the REQ tag - see SKILL.LST for details),
ALL (which means all skills will have the REQ tag) or a list of speicified skill names. If this tag is included
it should be after the SKILL: tag.
Note:If the LANGUAGE: tag is absent, then no languages will be filtered (normally the LANGAUTO and LANGBONUS tags
in race.lst are filtered by the LANGUAGE: tag in the pcc file).
Technically, PCGen doesn't care what the lst files are called - they don't even have to end with .lst - as long as you refer to the file in a campaign file. However, out of convention it is expected that all files that detail classes will end with class.lst - and the file's name will start with something to indicate what campaign (or book) it came from. e.g. phbclass.lst contains all the info on the classes detailed in the Players Handbook. Also by convention, all material from each book is put into a different directory, so sharing a campaign with someone else is as easy as zipping up the pcc file from the PCGen directory and the subdirectory which contains all of its lst files. This way it's easy to guess that dmgclass.lst contains all the info on classes detailed in the DMG and is in the dmg directory and dmg.pcc file.
Each class begins with
CLASS:$class_name$[tab]$alignments$[tab]$hitdie$[tab]$skillpoints$[tab]$feats$[tab]$spellstat$[tab]$spelltype$[tab]
$attackrate$[tab]$fortsave$[tab]$reflexsave$[tab]$willsave$
where the $classname$ is the name of the class as it appears in the picklists within PCGen.
alignments is a string of numbers for which alignments are valid for this class (0=LG,
1=LN, 2=LE, 3=NG, 4=TN, 5=NE, 6=CG, 7=CN, 8=CE) If D is in this list then the class' alignment
must match the chosen deity's ALIGN:tag (see deity.lst).
hit die is usually 4,6,8,10 or 12.
skill points is how many skill points the class gets per level.
feats is how many extra feats the class gets at first level.
spellcasters have a spellstat of CHA for Bards and Sorcerers, INT for Wizards and WIS for
Druids, Clerics, Paladins and Rangers. spelltype is Arcane for Wizards and Sorcerors,
Divine for the others. Both of these options are None for non-spellcasters.
attackrate is G for Good, M for Medium or B for Bad based on the base attack bonus. You can also use O (capital-O)
in combination with a DEFINE:BAB|formula (see the DEFINE: discussion near the bottom of this document).
progression. See the formulas for these near the bottom of this documentation file.
fortsave, reflexsave and willsave are G(ood), M(edium) or B(ad) based upon the save progression. See the formulas
for these near the bottom of this documentation file.
On that first line other options are available in the form of keyword:value(,value,value)
keywords available are:
CASTAS:name | where name is the key name of another class whose list this class uses (e.g. Sorcerers use the Wizard list so they have CASTAS:Wizard) |
LANGAUTO:list | these are languages the class automatically knows |
LANGBONUS:list | these are languages from which the class can pick one to know |
MAXLEVEL:num | where num is the maximum level this class can become. There is an "Ignore Level Cap" checkbox in the Options tab which can ignore this. The default value is 20. |
WEAPONAUTO:list | these are weapons with which the class is automatically proficient |
WEAPONBONUS:list | these are weapons from which the class can pick one proficiency |
PROHIBITED:list | where list is a comma-delimited list of schools or descriptors this class cannot access. NOTE:The SUBCLASS: tag will override this tag, so don't use them in the same class! |
SPECIALS:name|class|adjusment|levelstring | This tag is meant to contain special abilities which stack between classes (e.g. Uncanny Dodge). name is the name of the special ability exactly as it is found in the SPECIALS.LST file. class is the name of the class where the levelstring will be found (the other classes omit this parameter). adjustment is what level adjustment this class has on the ability in terms of the base-class' level advancement. e.g. Barbarians get the first Uncanny Dodge ability at level 2, whereas a Rogue gets it at level 3. A Rogue's adjustment is 0, and the Barbarian's is 1. All the classes a character has with this SPECIALS tag are summed, along with their adjustments. This total is compared to the levelstring, and the character gets each level of ability that their total is greater or equal to. |
DEF:chart,adjustment | This is the Star Wars Defense indicator. The chart is a number which determines how the class progresses in Defense (0=PC Best, 1 = PC Middle, 2 = PC Low, 3 = NPC,4 = Prestige Class). Adjustment is what adjustment there is if this isn't the first class the character obtained. For all PC and NPC classes this is usually -2, for Prestige classes this is 0. Defense is the total of the race's natural armor + dex modifier + these class bonuses. See the Star Wars Charts further down in this document. |
REP:chart | This is another Stars Wars indicator. chart is a number which represents the following progression (0=PC Best, 1 = PC Middle High, 2 = PC Middle Low, 3 = PC Low, 4 = NPC High, 5 = NPC Low, 6 = Prestige Class High, 7 = Prestige Class Low). See the Star Wars Charts further down in this document. |
ABB:name | where name is the abbreviation for this class. If not specified, PCGen will use the first 3 characters of the class name as the abbreviation. |
MEMORIZE:yn | where yn is Y to indicate that the class does memorize spells (this is the default value if this keyword is not listed) or N to indicate that this class (e.g. Bard/Sorcerer) does not memorize spells (which means that they will only have a Default spellbook). |
BONUS:tag | see the BONUS:tag description near the end of this file. |
the following keyword pairs can also be placed on the first line and are meant as pre-requisites for Prestige classes.
MULTIPREREQS | This isn't a keyword pair, but if this keyword appears then all Pre-Requisites are valid only if the character would be multi-classing into that class (i.e. there are no pre-reqs for choosing this as the first class at character creation time). |
PREATT:number | number indicates the minimum base attack bonus (e.g. PREATT:6) |
PREUATT:number | where number indicates the minimum unarmed base attack bonus |
PRECLASS:list=level | where list is a comma delimited list of class names and level is the minimum level in the class this character must be. The character only needs to be at least this level in one of the classes listed. (e.g. PRECLASS:Fighter,Rogue=2 would mean character must have 2 levels in Fighter or in Rogue) |
PREDEITY:list | where list is either Y (the character must have a Deity chosen), Y (the character must not have a deity chosen) or a comma delimited list of deity names - the character must have chosen one of the deities in the list. |
PRESTAT:stat=min | where stat is the name of the stat and min is the minimum value of that stat. (e.g. PRESTAT:INT=15 would mean that character must have a minimum INT of 15). The available stats are STR,DEX,CON,INT,WIS and CHA |
PREFEAT:number,featnames|CHECKMULT | where num is the number of matches in this list of feats you need to find, and featnames is a comma delimited list of feats. For feats which can be taken multiple times you can specify the choices within that feat by using parentheses. To match on these choices use the % character. You can also specify TYPE= to match on a type of a feat instead of a feat name. Include the |CHECKMULT portion if a feat can be counted more than once against the number of feats required (e.g. an Archmage requires 2 Spell Focus feats, so this is done with PREFEAT:2,Spell Focus|CHECKMULT without the CHECKMULT PCGen would only consider it one feat and the character could not meet the criteria.) The Fighter, Loremaster, Arcane Archer and Archmage are good examples of Prestige classes to see how to setup this pre-requisite |
PREGENDER:gender | where gender is the Gender this character must be (M, Male, F or Female are valid choices) |
PRERACE:list | where list is a | delimited list of Race names. The character must be one of the listed races. You can also exclude races by encasing the name in []'s. e.g. PRERACE:[Elf (aquatic)]|Elf would exclude aquatic elves, but include all other sorts ( any other race whose name began with Elf). |
PRESKILL:num,skill_list=rank | where num is the number of skills which need to be matched, and skill_list is a comma delimited list of skill names that are required, and rank is a number indicating the minimum rank for these skills. Shadow Dancer and Loremaster are good examples that use skill pre-requisites |
PRESPELLCAST:label=value,label=value,etc. | where label is either MEMORIZE (and then value can either be Y or N) or TYPE (and then value can be a | delimited list of acceptable spelltypes for this class). Basically each label=value pair is processed, and as the character's classes fail to meet that pair, the class is removed from the list. After all the label=value pairs have been processed, if the character has any classes remaining (meaning they meet all the requirements), then this prerequisite is met. |
PRESPELLTYPE:type,num,minimum_level | where type is a | delimited list of type of spells cast (use Arcane if only Arcane spells are applicable, use Any if any kind of spell is applicable, use Arcane|Divine if either Arcane or Divine spells are applicable, use two PRESPELLTYPE tags if more than one spell type is required, use), num is the minimum number of spells of this type that need to be found, and minimum_level is the minimum level of these spells which will be counted. Loremaster is a good example of this kind of pre-requisite |
PRESPELLSCHOOL:school,num,minimum_level and PRESPELLSCHOOLSUB:school,num,minimum_level | where school is the name of the school (or subschool) of spells counted, num is the number of spells which are required, and minimum_level is the minimum level of the spells that will be counted. Loremaster is a good example of this pre-requisite |
PRESPELL:num,list | where num is the number of spells to be matched in the comma delimited list of spells (e.g. PRESPELL:1,Magic Missile,Lightning Bolt would be true if the character had either Magic Missile or Lightning Bolt in their spell list. |
PRESA:list | where list is a comma delimited list of Special Ability names. e.g. PRESA:Turn or rebuke undead,Smite Evil |
PRELANG:number,list | where list is a comma delimited list of Languages. The character must know at least the indicated number of the languages in the list in order to qualify for the prestige class. |
PREWEAPONPROF:list | where list is a comma delimited list of weapon proficiencies the character must have. The list can include DEITYWEAPON to indicate that the weapon proficiency in question must be the chosen't deity's favored weapon. |
PREVAR:variablename,value,variablename,value,etc. | where variablename is something found either in DEFINE:variablename|value1 or BONUS:VAR|variablename|value2
and value is less than the calculated value for the requested variable after any bonuses are accounted for. |
PREITEM:list | where list is a comma delimited list of items the character must possess. |
The other lines in class.lst file start with a number indicating a level and then tabs between keyword:value (comma delimited for some) pairs. The keywords available are:
FEAT:list | upon gaining this level the character gains these feats (comma delimited) |
VFEAT:list | upon gaining this level the character gains these virtual feats (| delimited) See the Monk and Ranger class for examples of this. |
GOLD:dice,sides,multiplier | where dice is the number of dice rolled, sides is the number of sides on each die, and multiplier is what the total is multiplied to. This starting gold is generated for a character's first level in their fist class only. |
SA:list | upon gaining this level the character gains these special abilities (comma delimited). The list may contains a string in the form name%end|number (e.g. Sneak Attack +%d6|1 would have a name value of Sneak Attack + and end would have a value of d6 and number would be 1). If your character already has this ability, then the number is added to your value, otherwise the special ability is added to your character with an initial value of number (in this example, 1, so Sneak Attack +1d6). The Shadow Dancer is a good example of this, as is the Rogue, Assassin and Bard. |
SA:name(SPECIALS) | This is listed separately, because there are some Special Abilities which may stack from Class to Class (e.g. Rogue, Barbarian Uncanny Dodge). These Special Abilities must have the same name and the sub-name (e.g. Dex bonus to AC) will appear in the SPECIALS.LST file. the (SPECIALS) tag tells PCGen to look for the appropriate ability in the SPECIALS.LST file. |
SUBSA:list | list of special abilities obsoleted by new special abilities (comma delimited) |
CAST:list | number of spells castable for each level per day (0 assumed for levels not given) |
KNOWN:list | number of spells knowable for each level (0 assumed for levels not given) |
ADD:CLASSSKILLS(value)|number | where value is type of skills you want to add from (UNTRAINED, TRAINED, EXCLUSIVE, NONEXCLUSIVE, ANY) and number is the number of them that can be added. The Expert class is a good example of this. |
ADD:FEAT | all by itself means increment the number of feats the character knows by 1 |
ADD:FEAT(list) | the character can choose one of the listed feats for which it qualifies. If TYPE=name is in the list, all feats of that type name will be included. (comma delimited) |
ADD:INIT|mod | where mod is a value that is added. These values are cumulative, so ADD:INIT|1 at first level and another ADD:INIT|1 at second level would give a +2 on initiative for second level and beyond. |
ADD:Language(list) | where list is a comma delimited list of languages. The list of choices is filtered by the campaign selection languages, and any selections made are added to the list of known languages. |
ADD:LIST(list) | where list is in the form item1_name[CHOOSE:tag][BONUS:tag],item2_name[CHOOSE:tag][BONUS:tag] the CHOOSE: tag is optional (but you can only have one of them), the BONUS:tag is also optional (but you can have any number of them). the itemx_names will show up in a list, and based on the user's selection another list of choices may be presented (if the item in question had a corresponding CHOOSE: tag). The bonuses associated with the choice will also be applied. See the discussion on the BONUS:SPELLCAST and BONUS:SPELLKNOWN near the end of this document for more details. |
ADD:SPECIAL(list) | the character can choose from one of the listed special abilities (comma delimited) |
ADD:SPELLCASTER(label) | where label is one of ANY (to indicate that the class can choose from any spellcasting classes except for the one being leveled up) or a valid SpellType (currently that's Divine or Arcane to indicate which kind of spellcaster classes should be included in the list). The character selects a class to add a bonus level to in terms of spells known/castable. This is cumulative (see the Loremaster for example). |
ADD:value(list) | the character can choose from a list of choices titled value which will then be added to the list of special abilities as value(choice). e.g. ADD:Favored Enemy(Microsoft, Sun) produces a list titled "Favored Enemy" and if the character selects Microsoft, "Favored Enemy(Microsoft)" will be added to the special abilities for the character. (comma delimited) |
ADD:WEAPONBONUS(bonus_tag|bonus_mod|list) | where bonus_tag is TOHIT, DAMAGE or TOHIT,DAMAGE to indicate what the character gets a bonus on with the selected weapon. bonus_mod is the actual bonus modifier. list is a pipe delimited list of the following possibilities: ALL (list all weapon profs); FEAT=name (list all weapon profs whose type is the named feat); PCFEAT=name (list all weapon profs the character has that is the named feat); or simply name a weapon prof. e.g. ADD:WEAPONBONUS(TOHIT,DAMAGE|2|FEAT=Simple Weapon Proficiency|PCFEAT=Martial Weapon Proficiency|Greatclub) would make a list of all the Simple weapons, the martial weapons the character is proficient with, and add the Greatclub. This bonus stacks with all other bonuses. In this example the character would be +2 to hit and damage with the selected weapon prof. |
BONUS:tag | see the BONUS:tag description near the end of this file. |
There are 3 files you need to modify when adding a class: the particular class.lst file you wish to add its data (for beginners, it's best to simply copy & paste an existing class that resembles your class as much as possible and simply modify it from there). If the class is a spellcaster, you'll need to add data to a classspell.lst file, and if it has any class skills, you'll need to add those to the classskill.lst. Make sure the class.lst, classskill.lst and classspell.lst files that you modify are used in your chosen pcc file. See the description of the CAMPAIGN.LST file for a discussion on adding a campaign for more notes.
$deity_name$[tab]$list_of_domains$[tab]$alignments$[tab]$title$[tab]$holyitem$[tab]$preferredweapon$
The alignments are exactly as they are for the class.lst file.
The holy item and preferred weapons fields are optional. The Preferred Weapon field only needs
to be supplied if the deity includes a domain that has any powers or feats related to the
weapon (e.g. War domain) - it can be a pipe delimited list of weapon proficiencies.
Optional arguments include:
ALIGN:string | where string is the alignment of the deity |
BONUS:tag | see the BONUS:tag description near the end of this file. |
RACE:list | where list is a comma delimited list of Races (case sensitive) which can follow this deity. If this argument isn't found, then any Race can follow this deity. |
SA:level:description | where level is a number indicating the total level of the character at which they gain the ability. The description will be displayed in the Abilities tab and on the character sheet with the other special abilities. |
PREGENDER:gender | where gender is the Gender this character must be (M, Male, F or Female are valid choices) |
$domain_name$[tab]$grantedpower$
each domain entry is one line, and beyond the grantedpower can be other keyword:value
pairs separated by tabs as follows:
SKILL:list | these skills are considered class-skills when purchasing skills for the cleric (comma delimited) |
FEAT:list | these feats are gained when choosing this domain (comma delimited) |
SPELL:list | these spells are gained when choosing this domain and are added to the cleric's first level spell list. |
AL:list | where list is a list of alignments (like in the CLASS.lst file) that can choose this domain. |
PREGENDER:gender | where gender is the Gender this character must be (M, Male, F or Female are valid choices) |
RACE:list | where list is a comma delimited list of Races which can choose this domain. |
BONUS:tag | see the BONUS:tag description near the end of this file. |
CHOOSE:WEAPONPROF|num|list[label] | WEAPONPROF is the only working choice for Domains. num is the number of choices allowed. list is a pipe delimited list of choices (which can include DEITYWEAPON to include the deity's favored weapon(s)). you can include 0 or more [labels], where label is either WEAPONPROF (meaning the chosen selection is made a weapon proficiency) or FEAT=name where the named feat then has the chosen selection associated with it (since WEAPONPROF is the only working choice, the Feat must require a weapon proficiency association, like Martial Weapon Proficiency, Exotic Weapon Proficiency, Weapon Focus, etc.) |
The first column is the item's name. The other fields are all optional keyword:value pairs separated by tabs:
Cost:number | where number is a value (in gp) of the item |
AC:number | where number is the AC adjustment this item gives to the character when it's equipped. |
ACCHECK:number | where number is the Armor Check penalty this item gives for certain skills. |
ALTCRITICAL:string | for double weapons the secondary attack's critical chance |
ALTDAMAGE:string | for double weapons the secondary attack's damage |
BONUS:tag | see the BONUS:tag description near the end of this file. |
CRITMULT:string | Where string is the multiplier on damage for the weapon on a critical hit. e.g. CRITMULT:x2 is most common. |
CRITRANGE:number | where number is the range of criticals. a Crit on a 20 is a range of 1. A Crit on a range of 19-20 is a range of 2. |
DAMAGE:string | where string is the amount of damage the item does (not adjusted due to strength or other magical bonuses) |
HANDS:number | where number is the minimum number of hands required for this item (default is 1, this is primarily used for Buckler shields which use 0 hands when equipped) |
MAXDEX:number | where number is the maximum dex modifier to AC this item allows. |
MOVE:medium,small | where medium is the movement rate for medium sized characters and small is the movement rate for small characters. |
PROFICIENCY:weapon | Where weapon is a weapon from the weaponprofs.lst (i.e. you want to create a magical longsword called Balmung. To tell PCGen that every character who is proficient with sword (long) also is proficient with Balmung, you have to add PROFICIENCY:sword (long) |
SIZE:letter | where letter is the size letter (just like for races) of the weapon. |
SPELLFAILURE:number | where number is the percent of arcane spell failure this item incurs. e.g. SPELLFAILURE:5 is 5% failure. |
TYPE:subtype.subtype.etc | where subtype is an identifier of the different types this item is. The subtypes can be in any order and must be separated by a dot. PCGen knows that only a certain number of certain subtypes can be equipped ( e.g. you can only have two items with RING in their type list equipped, or 1 item with Armor as a listed subtype). The list of subtypes is what PCGen allows the user to pick from when they click on the Equipment List button. the subtype should indicate what kind of Armor it is, or what kind of weapon it is and what kind of damage it does. |
WT:number | where number is the weight in pounds of the item. |
each feat takes one line and the first field must be the feat's name. Beyond that each keyword:value pair can be any of the following separated by tabs:
ADD:type|subtype | where type is WEAPONPROFS (only kind available now) and subtype is one of SIMPLE, MARTIAL or EXOTIC to indicate what kind of weaponprof the character can add upon gaining this feat. |
ATT:value | pre-requisite base attack bonus minimum |
CHOOSE:WEAPONPROFS|label_list | where label_list is a | delimited list with the following options: ADD.prof (adds prof to the list of choices), SpellCaster.prof (adds prof to the list of choices if the character is a spellcaster), LIST (adds all the characters weapon proficiencies to the list of choices), Size.M.prof (adds prof if the character is at least Size M - can use any size character), WSize.Light (adds all the character's light weapons to the list - can also use WSize.1 handed and WSize.2 handed), TYPE.label (where label is anything in the named equipment's TYPE string, like RANGED or MELEE) and prof (where prof will be added if the character has the weapon proficiency named prof). |
CHOOSE:type|value | where type is one of HP (hit points), WEAPONFOCUS (Weapon Focus Feats, SPELLCLASSES (spellcasting classes of character), SCHOOLS (available Schools of magic), SPELLLIST (known spells), SKILLS (known skills), SKILLLIST (choose any Skill to make it a class skill), CCSKILLLIST (choose skills to become cross-class skills), NONCLASSSKILLLIST (choose cross-class skills to become class skills), SKILLNAMED, EXOTIC (Exotic weapon proficiencies) or MARTIAL (Martial weapon proficiencies). value must exist (use a default value of 1 if nothing is applicable) but currently only used with the SKILLLIST, CCSKILLLIST and NONCLASSSKILLLIST type to indicate what list of SKILLS the character can choose from to become a Class Skill, and with SKILLSNAMED to indicate which skills are applicable (in a | delimited list you can specify a skill like Climb or you can use a wildcard like Craft% to get all the skills that start with the name Craft). |
CLASS:classname:level | pre-requisite for this feat - classname can be Spellcaster meaning any class that can cast spells |
CSKILL:list | where list is a | delimited list of Skills that are purchasable as Class Skills. You can also specify something like Knowledge% to indicate that all Skills that start with Knowledge are class skills. |
CCSKILL:list | where list is a | delimited list of Skills that are purchasable as Cross-Class Skills. You can also specify something like Knowledge% to indicate that all Skills that start with Knowledge are cross-class skills. |
DESC:value | the description of the feat as it appears in the Feats tab of PCGen |
FEAT:list | list of pre-requisite feats |
LEVEL:number | where number is the minimum number of levels required to acquire this Feat (default is 0) |
MULT:value | where value is YES or NO (default = NO). Can this feat be taken multiple times? |
PREGENDER:gender | where gender is the Gender this character must be (M, Male, F or Female are valid choices) |
REP:levels_per_increase | where levels_per_increase is how often (in levels) this Feat increases the Reputation of the character. The number must be an integer. e.g. 5 would mean that at 5th, 10th etc. level the Reputation of the character goes up 1 due to this Feat. |
SKILLRANK:list|minRank | where list is a comma delimited list of Skill names and minRank is the minimum rank needed in these skills to qualify for the Feat. |
SPELL:number | where number is the minimum spellcaster level to qualify for this feat. |
STACK:value | where value is YES or NO (default = NO). Does this feat stack? |
STAT:NAME:value | pre-requisite where NAME is STR,DEX,CON,INT,WIS or CHA and value is the minimum value of that stat |
TYPE:value | what kind of feat is it (used in ADD:FEAT(TYPE=name) in the class.lst file). |
BONUS:tag | see the BONUS:tag description near the end of this file. |
The first line is a list of Size letters with a pipe character separating it from its load limit multiplier. The second through next-to-last line contain a strength value (must be incremental starting at 1) and the last line indicates the multiplier and power escalation for every 10 strength points beyond the end of the list. This is to represent the multiplier of 4 for the first 10 beyond the end of the strength list in the PHB, 16 for the next 10 (4 to the power of 2), 64 for the next 10 (4 to the power of 3) and so on. You can change the multiplier (4) if you wish or add to the list of strength/capacity lines, but they must be incremental (no skipping strength scores).
each race takes one line. The first 10 fields must be exactly so:
The first fields is the race's name.
the next 6 fields are the race's stat modifiers in this order: STR, DEX, CON, INT, WIS,
CHA
the next field is the preferred class.
the next field is the number of bonus feats the race gets at first level (1 for humans).
the next field is the number of bonus skill points the race gets each level (1 for
humans).
Except for HEIGHT, WEIGHT and AGE, the following fields are all optional:
AC:number | where number is the base AC for this race. The default value is 10. |
AGE:min:dice:sides:dice:sides:dice:sides | the minimum age for the race and the number of dice and sides used - the first dice:sides pair is used for Barbarian, Rogue and Sorcerer. The second pair is used for Bard, Fighter, Paladin and Ranger. The last pair is used for Cleric, Druid, Monk and Wizard |
AL:list of alignments (e.g. Lawful Good|Lawful Neutral) | where list is a pipe delimited list of alignments as they appear in the alignment box on the Stats tab. If this AL: does not exist, then the race can be any alignment, but if this does exist, then the alignment chosen must appear in this list. |
CSKILL:list | where list is a | delimited list of skills which are considered class skills. |
FEAT:list | where list is a | delimited list of feats the race gets. |
VFEAT:list | where list is a | delimited list of virtual feats the race gets. |
HEIGHT:M:min:dice:sides:bonus:F:min:dice:sides:bonus | where M is for Male, min is the minimum height, dice is the number of dice used, sides is the number of sides on the dice and bonus is added to the ending roll |
INIT:number | where number is the initiative mod for this race |
LANGAUTO:list | list of automatically known languages. |
LANGBONUS:list | list from which the character's intelligence modifier's worth of languages can be chosen. If list is ALL then the race can select from all languages available in the selected campaigns. |
MOVE:number | the movement rate in feet for this race |
PROF:type|list | where type is what type of weapon proficiency this race has an adjustment for (must match the TYPE tag from the weaponprof.lst file - e.g. SIMPLE, MARTIAL, etc.) and list is a | delimited list of weapon profs. For example, the Dwarf has PROF:MARTIAL|Waraxe (dwarven) because it's usually an exotic weapon, but for Dwarves it's a martial weapon. |
SA:list | list of special abilities for this race |
SIZE:value | One of these values (T,F,D,S,M,L,G,H,C) |
VISION:value | the kind of vision the race has (default = Normal) |
WEIGHT:M:min:dice:sides:F:min:dice:sides | is interpreted the same as HEIGHT |
WEAPONAUTO:list | list of weapon proficiencies the character gains for this race |
WEAPONBONUS:list | list from which the character can choose one proficiency for this race |
SKILL:list=bonus | list of skills for which the character gets the indicated bonus |
SKILLMULT:mult | where mult is the skill multiplier at first level (for most races this is 4, which is the default value if this keyword pair is not supplied) |
BONUS:tag | see the BONUS:tag description near the end of this file. |
$school_name$[tab]$school_cost$[tab]$class_name$
where school_cost is usually 1,2 or 4
and class_name is what those who choose this specialty are called.
$skill_name$[tab]$key_stat$[tab]$class_lst$[tab]$untrained$[tab]$exclusive$
where key_stat is STR,DEX,CON,INT,WIS or CHA upon which the skill is based.
class_list is an obsolete field and should always be NONE
untrained Y or N. Y means the skill can be used by those not trained in it.
exclusive Y or N. Y means only those in the class_list can use the skill, others cannot.
The other fields are all optional and are the keyword:value pairs such as:
ACHECK:label | where label indicates when the Armor Check penalties associated with any equipped armor applies (Y for Yes [always], N for Never, or P for only when not proficient with the armor). |
CHOOSE:Language(list) | where list is a comma delimited list of languages the character can choose from. I plan on expanding the number of choices from just Languages at some point. Currently this is just for the Speak Language skill. |
REQ | indicates that this skill is added to all classes whether they add any ranks or not. This way it will show up on the character sheet without being selected specifically. |
PREFEAT:list | where list is a pipe delimited list of feats that the character must have in order to add ranks to this skill. |
PREVAR:variablename,value,variablename,value,etc. | where variablename is something found either in DEFINE:variablename|value1 or BONUS:VAR|variablename|value2
and value is less than the calculated value for the requested variable after any bonuses are accounted for. A character
must meet these requirements before being able to add ranks to this skill. |
ROOT:name | where name is the root of the skill that is displayed instead of all the varieties of this skill. For example, Craft() has many varieties but are treated as one skill, so they all have ROOT:Craft. |
SYNERGY:list=minRank=bonus | where list is a comma delimited list of skill names. If the character has at least the indicated ranks (minRanks) in all the skills in the list then this skill receives the indicated synergy bonus. Situational synergies (like Use Rope and Escape Artist) cannot be implemented in this fashion. |
BONUS:tag | see the BONUS:tag description near the end of this file. |
$Name[tab]$Sub-Name where Name is the name of the Ability (e.g. Uncanny Dodge) and Sub-Name is the modifier name of the ability (e.g. Dex bonus to AC). When you add or subtract a level with (SPECIALS) tag on the SpecialAbility, PCGen will adjust the ability according to the order the ability is found in the SPECIALS.LST file. The first time you gain an ability, you get the first reference to it in the SPECIALS.LST file, the second time you get the second listing, and so on. Within the SPECIALS.LST file, additions to the different special abilities can be mixed, but the ordering within the file for each special ability is important.
$spell_name$[tab]$school$[tab]$subschool$[tab]$class_levels$[tab]$components$[tab]$castingtime $[tab]$range$[tab]$effect$[tab]$effect_type$[tab]$duration$[tab]$save_info$[tab]$SR$
e.g.
Animate Dead Necromancy None NONE V S M 1 action
Touch corpses None
Instantaneous None No
where spell_name is the name of the spell
school is the school of the spell (found in school.lst)
subschool is the subschool of the spell (creation, charm, etc) or None
class_levels is a space delimited listing of classes/domains and levels. This field
has been rendered obsolete with the classspell.lst file, so this field should always
be NONE.
components is a space delimited listing of component types (Verbal, Material,
Somatic,Focus, Divine Focus)
castingtime is the time it takes to cast the spell
range is the range of the spell (e.g Touch, Close, Medium, etc.)
effect is the effect of the spell
effect_type is the kind of effect the spell has
duration is how long the spell lasts
save_info is what kind of save is allowed
SR is whether Spell Resistance is applicable.
There is one optional argument:
DESCRIPTOR:list
where list is a pipe delimited list of descriptors that act like pseudo-school.
specialist wizards who don't choose their specialty among schools can make
selections from the descriptors.
$weapon_name$[tab] and then the following options:
HANDS:number | where number is the minimum number of hands required to use these weapons. Default value is 1. |
SIZE:value | same as SIZE: for race. This determines if the weapon is light, one-handed or two-handed for the character's race |
TYPE:value | where value is SIMPLE,MARTIAL or EXOTIC |
This file contains a list of colors. The second column contains any combination of E,H and S. E if it's a valid Eye color, H if it's a valid Hair color and S if it's a valid Skin color. When the Random button is clicked in the Traits tab, PCGen will determine which attributes are blank, and then randomly pick one from the appropriate list.
This is a list of traits. When the Random button is clicked in the Traits tab, PCGen will pick items from this list to place in the blank Personality fields. I have two personality fields since most people have more than one in the list.
Reputation
For multi-class characters, sum them according to their levels in each class.
value | formula |
---|---|
0 (PC Best) | 3 + classlevel/2 |
1 (PC Middle High) | 1 + classlevel/2 |
2 (PC Middle Low) | classlevel/2 |
3 (PC Low) | classlevel/3 |
4 (NPC High) | (classlevel +1)/3 |
5 (NPC Low) | classlevel/4 |
6 (Prestige Class High) | +1 for every level not divisible by 3 |
7 (Prestige Class Low) | classlevel/2 |
value | formula |
---|---|
0 (PC Best) | 4 + classlevel/2 |
1 (PC Middle) | 3 + classlevel/5. If that result>2 then add (3 + classlevel)/5. |
2 (PC Low) | 2 + classlevel/3 |
3 (NPC) | classlevel/3 |
4 (Prestige Class) | Same as 1 (PC Middle) except 2 points lower. |
The following formulas are summed for all classes. To Reflex the Dexterity Mod is
applied, to Will the Wisdom Mod is applied and to Fortitude the Constitution Mod
is applied.
value | formula |
---|---|
G (Good Save) | 2+classlevel/2 |
M (Middle Save) | 1 + classlevel/5 + (classlevel +3)/5 |
B (Bad Save) | classlevel/3 |
G (Good Attack) | classlevel |
M (Middle Attack) | (3 * classlevel)/4 |
B (Bad Attack) | classlevel/2 |
It seems like the BONUS: tag will be undergoing a lot of additions, so I'll try to keep
an outline of what all it can do and what kinds of things it affects. First - the files
which can use the BONUS: tag:
deity.lst, domain.lst, equipment.lst, feat.lst and race.lst.
There are 3 parts to a BONUS: tag
1. Type - general area of what it affects (if %LIST occurs here the list of items associated with
the feat will be searched for a match).
2. Name - exactly what it affects (if Name is LIST then the list of items associated with the
feat will be searched for a match).
3. bonus - applied to total if match for Type and Name is found - which can take several forms:
1, -1, STR, -STR (negate the STR mod, so a -1 str mod
would actually become 1, and +1 would become -1), STR+ (take the greater of 0 or the STR mod),
1MAXSTR (take the greater of 1 or STR mod), STRMINDEX (take the lesser of STR or DEX mods). The
syntax is described like this [-][n/stat][MIN/MAX][n/stat/+].
The tag combinations currently handled (and where if not the whole list of lst files)
CHECKS | Fortitude,Reflex,Willpower | All files |
COMBAT | Initiative,TOHIT-PRIMARY (bonus for primary weapon only), TOHIT-SECONDARY, SECONDARYATTCKS (how many attacks the secondary weapon gets if a primary weapon is equipped) | All files. |
COMBAT | AC | All files - only if armor not worn. |
DOMAIN | NUMBER | class.lst, feat.lst - adds to number of domains character has access to. |
HP | CURRENTMAX,WOUNDPOINTS | All files. |
MISC | SPELLFAIL | all files - affects total spell failure percent |
MOVE | one of LIGHT,LIGHTMEDIUM,LIGHTMEDIUMHEAVY or LIGHTMEDIUMHEAVYOVERLOAD to indicate the largest array of loads or armors for which the bonus applies | All files |
SKILL | LIST where the bonus applies to all skills selected for this feat | All files. |
SKILL | skillname,skillname | All files |
SPELLCAST and SPELLKNOWN | TYPE=type;LEVEL=num or CLASS=name;LEVEL=num This means that BONUS:SPELLCAST|CLASS=Wizard;LEVEL=1|1 means the character can cast 1 more level 1 Wizard spells each day. If combined with the CHOOSE: tag (see discussion about this after this table) you can specify CLASS=%;LEVEL=% and the appropriate values will be inserted. Additionally, at the end of the mod for the BONUS tag you can append .LOCK which means that the ending value for the bonus is locked in place: so STR.LOCK would be calculated an converted to an actual number and stored that way instead of letting the value fluctuate as the character's STR bonus changes. | All files |
STAT | one of STR,DEX,CON,INT,WIS,CHA (you can append a + to any of these to indicate positive only values) or BASESPELLSTAT (you get the bonus on the associated class' base spell stat - so INT for Wizards, etc. only with regards to getting bonus spells and determining DCs) | All files |
TOHIT | TOHIT | All Files - gives bonus to hit with whatever weapon is being used. |
VAR | variablename | All Files - where variablename is something that has been defined in the DEFINE: tag. see DEFINE discussion below. |
WEAPON | DAMAGE,TOHIT | All files |
WEAPONPROF=profname where profname is the proficiency with which the bonus occurs | DAMAGE,TOHIT,CRITMULTADD (add to crit multiplier), CRITRANGEMULT (multiples of crit range), CRITRANGEADD (add to crit range) | All files |
Special CHOOSE: tag which can be used with the ADD:LIST tag in class.lst and BONUS:SPELLCAST and BONUS:SPELLKNOWN
The syntax works like this:
CHOOSE:SPELLLEVEL|num|label|min_level|max_level
SPELLLEVEL is the only one that works with ADD:LIST currently.
num is the number of choices the character can make from the list.
label is either CLASS=name (e.g. CLASS=Wizard) or TYPE=name (TYPE=Arcane)
min_level is a number indicating the lowest level of spells from the class(es) specified to
be included in the list
max_level is a number indicate the highest level of spell - or it's MAXLEVEL to indicate the maximum
level of spells a character of that level in the selected class can cast. To either a number or
MAXLEVEL you can append a .A to indicate that only 1 of the highest level spell indicated can be chosen.
e.g. 2.A would mean only 1 2nd level spell.
You can include multiple combinations of the |label|min_level|max_level portions, so
CHOOSE:SPELLLEVEL|2|CLASS=Wizard|0|MAXLEVEL|TYPE=Divine|1|3
would present a list of the character's castable Wizard levels of spells (e.g. Wizard 0 Wizard 1 Wizard 2 for a 5th level Wizard)
and Cleric 1 Cleric 2 Cleric 3 if the character had Cleric as a class.
DEFINE|variablename|formula
For example: Clerics have DEFINE:Turn Undead|3+CHA
Clerics use this to determine how many times they can turn undead (3 + their charisma modifier).
You can define any variable you want - if it's defined more than once where there's a difference in the
formula (say the Cleric adds a Undead Hunter class that can turn 5+CHA, or DEFINE:Turn Undead|5+CHA
then the variable Turn Undead is defined for that character twice. The one that's used depends on
the charactersheet token to output the result.
How can I get the BONUS: tag to work with DEFINE: variables?
BONUS:VAR|Turn Undead|3 is used with the Extra Turning feat in phbfeat.lst, and it adds 3 to the
DEFINE:Turn Undead|3+CHA formula. So BONUS:VAR|variablename|formula adds to DEFINE:variablename|formula2.
What options do I have with the formula?
Do not use any spaces. You can use parentheses (nest them too!), + for add, - for minus, / for divide
and * for multiple. You can also use STR, DEX, CON, INT, WIS and CHA for the appropriate stat's
modifier (as in the 3+CHA example). In the class.lst files you can use CL to represent that class's
level, and in any file you can use TL to represent the character's total level.
Are there any additional operators allowed in the formula?
If you have formula_1MINformula_2 the result will be the lesser of the two, same if you have
formula_1MAXformula_2 you'll get the max of the two. At the end of the formula you can include
.INTVAL to truncate any decimals at that point - so (3+2)/2.INTVAL will result in 2.5 which will
be truncated to 2.
What order are the math operations done in?
Innermost parentheses are done first, but once all parentheses have been evaluations, everything
is done from left to right, so 3+4/2 equals 3.5 since it's basically 7/2. If you really want natural
ordering (* and / done first) you can specify 3+(4/2).
Are there any 'special' defined variables?
The only one so far is BAB. If a class has it's attack rate set to O (capital-O) instead
of G, M or B, then PCGen will assume that class has a DEFINE:BAB|formula which it should evaluate
to get the classes base attack bonus.
How can I display the results of the formula in a character sheet?
Use a token like |VAR.variablename[.INTVAL][.MINVAL]|. [.INTVAL] means that .INTVAL is
an optional argument, which displays the result with no decimal points (as an integer), default
is with one decimal place of precision. .MINVAL should be included if instead of the default maximum
of multiple defines, you want the minimum. For the Cleric/Undead Hunter class above, |VAR.Turn Undead|
would normally return 5.0 (if the CHA bonus was 0), |VAR.Turn Undead.MINVAL.INTVAL| would return 3.
One of my hopes is that users will change lst files for their own purposes. If they add something they really like, or think others would like to have access to (e.g. Prestige classes, races, feats, etc.) they can post their modified lst files to www.yahoogroups.com/group/pcgen. There's a growing list of these campaign-oriented lst files growing in the Campaign+Central folder. Check it out - and make your own additions!