# Class Files

Class files are where each class is listed, given it's important information for the correct output and functioning of the class.

There are many tags required to build the class successfully, but not all are required. The tags below represent the choices that can be applied to each class. They are broken into four categories:

- Needed for all classes.
- Spell casters.
- Other tags.
- Monster specific tags.

Each class has 2 components to it:

- The main class line.
- The class level line.

The class line begins with CLASS (Required) and the class level line begins with a level # (0, 1, 2, etc - Required).

## Tags Required for all Classes

Tag Name: ABB

Variables Used: Text

What it does:

This is a 3-5 letter abbreviation of the class name.

Example:

`ABB:Rgr`

The class abreviation is "Rgr".

Where it is used:

Class Line.

*** New 4.3.8
Tag Name: ATTACKCYCLE

Variables Used: BAB, RAB, or UAB

What it does:

- This sets the Melee (BAB - yes, misleading), Ranged (RAB), or Unarmed Attack (UAB) cycles.
- Default is 5 for all.
- Once a Cycle is reached, the character gets another attack (+6/+1 is one 5 cycle.)

Example:

`ATTACKCYCLE:UAB|3`

Grants another attack ever 3 bonus points of BAB from the class to the Unarmed attack cycle.

Where it is used:

Class Line.

Tag Name: CLASS

Variables Used: Text

What it does:

- This tells PCgen the class name and sets up the relationships with skills and spells.
- This line can be entered twice in a single class entry (appear on 2 separate lines) for purposes of making the lines easier to read in an editor (so as to not have to scroll forever to reach the end of the class line).
- THIS MUST BE THE FIRST TAG!!!
- Symbols that should not be used: , / - + & If you need to use those symbols, put them in an OUTPUTNAME tag.

Example:

`CLASS:Ranger`

The full class name is "Ranger".

Where it is used:

Beginning of Class Line.

Tag Name: HD

Variables Used: Number (4, 6, 8, 10, 12. default is 0)

What it does:

This is the Hit Die used to determine hit points at each level gained.

Example:

`HD:10`

The hit dice per level is 10.

Where it is used:

Class Line.

Tag Name: MAXLEVEL

Variables Used: Number

What it does:

- This is maximum level a character in this class can advance to.
- There is a checkbox in the Preferences|Character section of the menu.

Example:

`MAXLEVEL:10`

The maximum class level is 10.

Where it is used:

Class Line.

Tag Name: STARTSKILLPTS

Variables Used: Number

What it does:

This is how many skill points a character gains per level.

Example:

`STARTSKILLPTS:4`

Class gets 4 skill points per level, before any modifiers.

Where it is used:

Class Line.

Tag Name: TYPE

Variables Used: Text (Monster, PC, NPC, Prestige, Base, Apprentice)

What it does:

This is used within the filters of PCGen to sort the classes by their respective types (makes it easier to find a specific class).

Example:

`TYPE:Base.PC`

The class will appear if the "Base" or "PC" filter options are selected.

Where it is used:

Class Line.

Tag Name: XTRAFEATS

Variables Used: Number

What it does:

This is used to determine how many extra feats the class will get at first level only.

Example:

`XTRAFEATS:1`

The class will gets 1 extra feat.

Where it is used:

Class Line.

## Spell Casters Tags

Tag Name: ADDDOMAINS

Variables Used: Text

What it does:

- This grants additional domain choices to the character, it is a . (decimal) delimited list of names.
- It does not add them to the character's domains, but merely adds them to the list they can choose from.
- If the character gets a choice for a bonus domain, it may need to be paired with a BONUS:DOMAIN|NUMBER|x tag.

Examples:

`ADDDOMAINS:Sun`

The class gets the Sun domain as a choice regardless of the deity selected.

`ADDDOMAINS:Sun.Law`

The class gets the Sun & Law domains as a choice regardless of the deity selected.

Where it is used:

Class Level Line.

*** New 5.4

Tag Name: BONUS:CASTERLEVEL|x|y

Variables Used (x): Text (Class name)

Variables Used (y): Number (Number to add class level)

What it does:

- Each spellcasting class should have a CASTERLEVEL bonus associated with it.
- If no CASTERLEVEL bonus is present for a spell casting class, it will default to class level.
- This tag is listed here for this specific use but it is a Global tag and has wider uses including raising the caster level of racial spells. See the BONUS:CASTERLEVEL entry in Global tags for more information.

Example:

`BONUS:CASTERLEVEL|Wizard|CL`

Sets the Wizards spell caster level to his class level.

`BONUS:CASTERLEVEL|Paladin|CL/2|PRECLASSLEVEL:Paladin=4`

Sets the Paladins spell caster level to half his class level after he reaches level 4.

*** New 4.3.1
Tag Name: BONUSSPELLSTAT

Variables Used: abbreviated name of stat (from statsandchecks.lst) or "None"

What it does:

- Changes the Stat used to determine Bonus spells that a spell caster get from high ability score from the SPELLSTAT named Stat.
- If not present, the SPELLSTAT will determine DCs and bonus spells.
- If set to None no bonus spells will be granted.

Example:

`BONUSSPELLSTAT:STR`

The class uses Strength to determine bonus spells.

Where it is used:

Class Line.

Tag Name: CAST

Variables Used: Number

What it does:

- Tells PCGen how many spell per day the caster has (displayed on the Spells Tab).
- If no Value is assigned at a given level, the tag defaults to 0.

Example:

`CAST:3,3,1`

Class can cast 3 0th level spells, 3 1st level spells and 1 2nd level spell.

Where it is used:

Class Level Line.

Tag Name: CASTAS

Variables Used: Text

What it does:

- It now tells PCGen to use the referenced class's CAST: and KNOWN: tag progressions.
- That means that if a class had the spell cast and known progression as a cleric, instead of having identical CAST: and KNOWN: tags you could just have CASTAS:Cleric

Example:

`CASTAS:Wizard`

Class casts spells like a "Wizard".

Where it is used:

Class Line.

Tag Name: DEITY

Variables Used: Text

What it does:

The list that the character may follow, it is | (pipe) delimited and defaults to ANY if not present

Examples:

`DEITY:Baccob`

Class may only have "Baccob" as its Deity.

`DEITY:Baccob|Pelor`

Class may have "Baccob" or "Pelor" as its Deity.

Where it is used:

Class Line.

Tag Name: DOMAIN

Variables Used: Text

What it does:

- This grants additional domains, as listed, directly to the character.
- It is a | (pipe) delimited list of names and can contain PRExxx tags within it immediately after the domain name in [] (brackets).
- This forces choices - ie. it forces one or more of the users choices to the listed domain(s).
- If a domain is added on top of the characters other normal domains, it will need to be paired with a BONUS:DOMAIN|NUMBER|x.

Example:s

`DOMAIN:Sun`

The class gets the Sun domain added.

`DOMAIN:Sun|Law`

The class gets the Sun or law domain added.

`DOMAIN:Sun[PREDEITY:Pelor]|Law`

The class gets the Sun or law domain added if thier deity is "Pelor" or only Law if the deity is not "Pelor".

Where it is used:

Class Line.

Tag Name: ITEMCREATE

Variables Used: Number

What it does:

- The class level of the character will be multiplied by the numeric value supplied for calculating potions, scrolls, and wands.
- The default value is 1.

Example:

`ITEMCREATE:2`

The class level is doubled when calculating potions, scrolls and wands.

Where it is used:

Class Line.

Tag Name: KNOWN

Variables Used: Number

What it does:

- Tells PCGen how many spell known the caster has (displayed on the Spells Tab).
- If no Value is assigned at a given level, the tag defaults to 0.

Example:

`KNOWN:6,4,3`

The class knows 6 0th level spells, 4 1st level spells and 3 2nd level spells.

Where it is used:

Class Level Line.

Tag Name: KNOWNSPELLS

Variables Used: Text and/or Number

What it does:

- Used to automatically give spells, by name or level, to the spell caster.
- All spells granted by name or level will be given as long as the spell caster has a high enough prerequisite attribute score.
- The main entries are pipe delimited, and if an entry contains a comma delimited list, all the entries in the comma delimited list must be met.
- LEVEL=3,TYPE=Custom would be met only for level 3 spells which had Custom in its TYPE: string.
- The main use of the above would be to add TYPE:Divine to all the divine spells.
- Add TYPE:Divine.BasicCleric to all the clerical spells (Players Rules only), TYPE:Arcane to all the arcane spells, TYPE:Psionic to all the psionic powers etc.
- In the cleric class we could then have KNOWNSPELLS:TYPE=BasicCleric and be done with it (no need for LEVEL=0|LEVEL=1|LEVEL=2|LEVEL=3|etc......).
- Anyone who wanted clerics to know all divine spells anyway could have CLASS:Cleric.MOD[tab]KNOWNSPELLS:TYPE=Divine

Example:

`KNOWNSPELLS:Acid Fog`

The class knows the spell "Acid Fog".

`KNOWNSPELLS:Acid Fog|Alarm`

The class knows the spell "Acid Fog" and "Alarm".

`KNOWNSPELLS:LEVEL=3`

The class knows all level 3 spells.

`KNOWNSPELLS:TYPE:Divine`

The class knows all divine spells.

`KNOWNSPELLS:LEVEL=3,TYPE=Arcane`

The class knows all level 3 arcane spells.

Where it is used:

Class Level Line.

Tag Name: MEMORIZE

Variables Used: YES or NO

What it does:

Means that the class is required to memorize spells as a wizard does.

Example:

`MEMORIZE:YES`

The class memorizes spells as a wizard does.

Where it is used:

Class Line.

Tag Name: PROHIBITED

Variables Used: Text

What it does:

This is a comma delimited list of spell schools that are prohibited to the class (no spells from that school can be taken).

Example:

`PROHIBITED:Divination,Necromancy`

The class cannot use Divination or Necromancy.

Where it is used:

Class Line.

Tag Name:SPELLBOOK

Variables Used: YES or NO

What it does:

Means that the class is required to use a spellbook as a wizard does.

Example:

`SPELLBOOK:YES`

The class uses a spellbook.

Where it is used:

Class Level Line.

Tag Name: SPELLSTAT

Variables Used: abbreviated name of stat (from statsandchecks.lst)

What it does:

Used to tell PCGen what attribute/stat to use for determining bonus spells and maximum level the character can cast

Example:

`SPELLSTAT:INT`

The class uses Intelligence to determine bonus spells and maximum casting level.

Where it is used:

Class Line.

Tag Name: SPELLLIST

Variables Used: Text (Class Name)

What it does:

- Optional.
- This is a | (pipe) delimited list of class names that the class can choose from to duplicate spell casting ability.
- If the #, is in place, this is used to show how many choices the class gets.

Example:

`SPELLLIST:Ranger`

The class uses the ranger spell list.

`SPELLLIST:1|Ranger|Druid`

The class uses either the ranger or druid spell list.

`SPELLLIST:2|Ranger|Druid|Barabarian`

The class uses 2 of the ranger, Druid or Barbarian spell lists.

`SPELLLIST:1|Animal(Domain)`

The class uses the Animal Domain spell list.

Where it is used:

Class Line.

Tag Name: SPELLTYPE

Variables Used: Text

What it does:

The type of spells the character casts

Example:

`SPELLTYPE:Arcane`

The class uses arcane spells.

Where it is used:

Class Line.

Tag Name: SPECIALTYKNOWN

Variables Used: Number

What it does:

Adds the numeric value given to the number of specialty school spells know by the spell caster, if not listed, the default value is 0

Example:

`SPECIALTYKNOWN:1,1,1`

The class knows 1 0th level specialty spells, 2 1st level specialty spells and 1 3rd level specialty spells.

Where it is used:

Class Level Line.

## Subclass Tags

Tag Name: CHOICE

Variables Used: Text. Specialty Name

What it does:

Indicates the specialty (name of school, sub-school or descriptor) of this subclass/specialty.

Examples:

`CHOICE:Illusion`

For an Illusionist.

`CHOICE:Abjuration`

For an Abjurer.

`CHOICE:Divination`

For a Diviner.

Where it is used:

Subclass Line.

*** New 5.3.3
Tag Name: COST

Variables Used: Integer

What it does:

Indicates the cost (how many prohibited schools must be selected) of this specialty or subclass (0 is default).

Example:

`COST:2`

The subclass has a cost of 2.

Where it is used:

Subclass Line (REQUIRED to be on each SUBCLASS line).

*** New 5.3.3
Tag Name: HASSUBCLASS

Variables Used: Boolean

What it does:

Indicates whether or not this class can choose a specialty or subclass.

Example:

`HASSUBCLASS:YES`

The class has subclasses.

Where it is used:

Class Line (REQUIRED if the class has SUBCLASS lines).

Tag Name: KNOWNSPELLSFROMSPECIALTY

Variables Used: Integer

What it does:

Indicates the number of spells from their specialty this class gets in addition to their regular allotment.

Example:

`KNOWNSPELLSFROMSPECIALTY:1`

The subclass has 1 spell from their specialty in addition to normal.

Where it is used:

Subclass Line.

*** New 5.4

Tag Name: PROHIBITCOST:x

Variables Used (x): Integer

What it does:

Determines the redeemed value (against COST) of this school if selected as prohibited. Allows a prohibited cost to be set independantly of the cost.

Optional tag. If PROHIBITCOST is not present in the SUBCLASS line the value will default to COST. A value of 0 prevents this school from being prohibited.

Example:

`PROHIBITCOST:2`

The subclass has a prohibited cost of 2.

Where it is used:

Subclass Line.

Tag Name: SPELLSTAT

Variables Used: abbreviated name of stat (from statsandchecks.lst)

What it does:

- Indicates what stat this subclass/specialty uses to determine what maximum level of spells they can cast.
- Overwrites any SPELLSTAT tag in the main CLASS line.
- The stat specified can be any stat defined in statsandchecks.lst system file.

Examples:

`SPELLSTAT:STR`

This subclass uses Strength to determin maximum level of spells.

`SPELLSTAT:INT`

This subclass uses Intelligence to determin maximum level of spells.

Where it is used:

Subclass Line.

Tag Name: SUBCLASS

Variables Used: name of subclass or specialty

What it does:

Defines a subclass or specialty choice.

Example:

`SUBCLASS:Illusionist`

The class has Illusionist as a subclass.

Where it is used:

Subclass Line. Can only be found as the FIRST TAG of a line between the CLASS: lines and the level definition lines for the class which can choose these subclasses or specialties.

*** New 4.3.1
Tag Name: SUBCLASSLEVEL

Variables Used: Number

What it does:

- Defines a subclass level at which a particular Special Ability is granted.
- This tag should MUST be the first tag on a line, and will define a Subclass level dependent ability for the SUBCLASS immediately above it.

Example:

`SUBCLASSLEVEL:3[tab]SA:Angelfire`

would add SA:Angelfire at level 3

Where it is used:

Subclass Line (This should be before the Level lines of the class).

## Other Optional Tags

Tag Name: EXCLASS

Variables Used: Text (Class Name)

What it does:

This is the class to which all current class levels are converted if the class prerequisites are no longer met.

Example:

`EXCLASS:Ex Monk`

If prerequisites are no longer met, the character becomes an "Ex Monk".

Where it is used:

Class Line.

Tag Name: EXCHANGELEVEL

Variables Used: Text and Number

What it does:

Allows the exchange of levels from the current class to the specified class.

Example:

`EXCHANGELEVEL:Ex Paladin|11|10|1`

Up to 10 levels of Ex Paladin can be exchanged as long as there were at least 11 levels of Ex Paladin available.

Where it is used: Class Line.

Tag Name: FEATAUTO

Variables Used: Text (Feat Names)

What it does:

- This is a | (pipe) delimited list of feats that the class automatically gets.
- FEATAUTO is applied based on the content of the tag alone, thus no choices (these are not stored with the character, they get assigned "on-the-fly".
- In order to gain the benefit of this, the entire feat including subchoices must be specified. eg. Exotic Weapon Proficiency (Sword (Two-Bladed)).

Examples:

`FEATAUTO:Simple Weapon Proficiency`

The class automatically receives the "Simple Weapon Proficiency" feat.

`FEATATUO:Alertness|Blind Fighting`

The class automatically receives the "Alertness" and "Blind Fighting" feats.

Where it is used:

Class Level Line.

Tag Name: LANGBONUS

Variables Used: Text

What it does:

This is a , (comma) delimited list of the languages a character can choose from based upon their Intelligence stat.

Examples:

`LANGBONUS:Draconic`

The class can choose "Draconic" as one of thier languages.

`LANGBONUS:Draconic,Elven`

The class can choose "Draconic" or "Elven" as one of thier languages.

`LANGBONUS:ALL`

The class can choose any language loaded from sources as one of thier languages.

`LANGBONUS:TYPE=Written`

The class can choose any written language as one of thier languages.

`LANGBONUS:TYPE=Spoken,Draconic`

The class can choose any written language or "Draconic" as one of thier languages.

Where it is used:

Class Level Line.

Tag Name: MULTIPREREQS

Variables Used: None

What it does:

If This tag is used 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).

Example:

`MULTIPREREQS`

The class prerequisites are only valid if not taken at 1st level.

Where it is used:

Class Line.

*** Deprecated - Use Global tag: SA

Tag Name: SA:name(SPECIALS)

Tag Name: SKILLLIST

Variables Used: Text (Class Name)

What it does:

- This is a | (pipe) delimited list of class names that the class can choose from to duplicate class skills.
- If the #, is in place, this is used to show how many choices the class gets.

Examples:

`SKILLLIST:Ranger`

The class can choose from Ranger class skills.

`SKILLLIST:1,Ranger|Druid`

The class can choose either from Ranger or Druid class skills.

`SKILLLIST:2,Ranger|Druid|Barabarian`

The class can choose from 2 of Ranger, Druid or Barbarian class skills.

Where it is used:

Class Line.

*** Deprecated - Use Global tag: SA

Tag Name: SPECIALS

Tag Name: TEMPLATE

Variables Used: Text (Template Name)

What it does:

This is a | (pipe) delimited list of templates that are granted to the class.

Example:

`TEMPLATE:Incorporeal|Undead|Celestial`

The class uses the "Incorporeal", "Undead" and "Celestial" templates.

Variables Used: TEMPLATE:CHOOSE:

What it does:

CHOOSE will supply a popup window of the choices presented in the tag that are | (pipe) delimted and allow the user to pick ONE from the list.

Example:

`TEMPLATE:CHOOSE:Celestial|Outsider`

The class can choose either the "Celestial" or "Outsider" templates.

Variables Used: ADDCHOICE

What it does:

This is a | (pipe) delimited list of template choices that are added to the list presented by the original TEMPLATE:CHOOSE tag found here or in other lst files.

Example:

`TEMPLATE:ADDCHOICE:Demihuman|Beast`

The class can choose from the "Demihuman" or "Beast" templates in addition to others already entitled.

Where it is used:

Class Level Line or Class Line.

*** New 5.5

Tag Name: BONUS:UDAM|CLASS.x|y

Variables Used (x): Text (Class name)

Variables Used (y): Number or formula (Levels to add to unarmed damage)

What it does:

- This tag adds levels to the character´s unarmed damage bonus as if he/she had gained those levels as a Monk.
- This tag is listed here for this specific use but it is a Global tag and has wider uses including raising the unarmed damage level by magic items. See the BONUS:UDAM entry in Global tags for more information.

Example:

`BONUS:UDAM|CLASS.Monk|5`

Unarmed damage is treated as a Monk of five levels higher. For this to work you must have Monk levels.

`BONUS:UDAM|CLASS.Monk|CL=SpecialMonk`

Would raise the Monk´s Unarmed Damage 'level' by the Class Level of the 'SpecialMonk' class.

Where it is used:

Class Level Line.

*** New 4.3.9
Tag Name: VISIBLE

Variables Used: Boolean (YES/NO)

What it does:

- This determines whether the class is shown on the Classes and Summary tabs as a valid choice for selection.
- VISIBLE:NO is used mainly for EXCLASS classes.
- Default is YES.

Example:

`VISIBLE:NO`

The class is not visible for selection on the Classes and Summary tabs.

Where it is used:

Class Line.

Tag Name: WEAPONBONUS

Variables Used: Text (Weapon Proficiency Name)

What it does:

This a | (pipe) delimited list of Weapon Proficiency Names that the class gets to choose from as bonus proficiencies.

Example:

`WEAPONBONUS:Dagger|Staff|Club|Mace|Sword (Short)|Shortbow (Composite)`

The class can choose from a wepon proficiency from "Dagger", "Staff", "Club", "Mace", "Sword (Short)" or "Shortbow (Composite)".

Where it is used:

Class Level Line.

## Monster Specific Tags

Tag Name: MODTOSKILLS

Variables Used: YES or NO

What it does:

This is either YES or NO for monster types that do not get their Intelligence modifiers for skills they get from gaining hit dice

Example:

`MODTOSKILLS:YES`

The class gets the intelligence modifier for skills they get for gaining hit dice.

Where it is used:

Class Line.

Tag Name: LEVELSPERFEAT

Variables Used: Number

What it does:

This is the number of levels it takes for a monster to gain a new feat.

Example:

`LEVELSPERFEAT:2`

The class gets 1 feat per 2 levels.

Where it is used:

Class Line.

Tag Name: PRERACETYPE

Variables Used: Text (Race Name)

What it does:

- For monster classes the race must be of this type or they can not take the class.
- This is a separate PRExxx tag from other PRExxx tag because it does not count towards being a prestige class.

Example:

`PRERACETYPE:Animal`

This class can only be taken by "animal" races.

Where it is used:

Class Line.