# PRExxx Tags

With these tags you can restrict access to a class, feat, deity, domain or any other object in a lst file. The same PRExxx tags are used in every lst file to make crafting restrictions as easy as possible.

### Usage

PRExxx tags are used in two different manners:

1. A PRExxx tag can be used is as a stand-alone tag to qualify an entire line. Thus, if a character does not meet the prerequisites of a stand-alone PRExxx tag, he will not be able to select the lst object containing the PRExxx and therefore shall not gain the benefits granted by the lst object.
2. BONUS tags, and certain other tags, can be qualified by appending a PRExxx tag to the end of it. If the character does not meet the prerequisites, he will not gain the BONUS but is not restricted from any other benefits he may receive from the line. PRExxx tags are usually added to BONUS tags with an additional pipe (|) followed by the PRExxx statement. There are, on the other hand, a few tags that use a different syntax, such as enclosing the PRExxx statement in square brackets ([]). Also note that all tags that will take PRExxx tags are clearly marked as such. Review the tag documentations to verify the syntax for adding prerequisites and to see which tags will take PRExxx tags.

There are a few additional rules to keep in mind when using PRExxx tags.

1. Any PRExxx tag may be prefixed with a "!" character (i.e., !PRExxx) in order to invert the requirement logic. The PRExxx tag will be evaluated like normal, then the result inverted (meaning you CAN NOT have the things listed in this tag) when determining whether the prerequisite is passed or not.
2. There is a `PRE:.CLEAR` tag. Be aware that it will clear all PRExxx tags from an object and you will need to re-enter those PRExxx tags that you want to keep.

*** New 5.11.7

Tag Name:PREABILITY:x,CATEGORY=y,z,z

Variables Used (x):Number (Number of abilities needed).

Variables Used (y):Text (Category name).

Variables Used (y):ALL

Variables Used (z):Text (Ability name).

Variables Used (z):TYPE.Text (Ability TYPE).

Variables Used (z):ALL

What it does:

- Checks for the required number of Abilities.
- If `CATEGORY=ALL` is used the tag checks all categories (including feats) for an ability of the specified name or type.
- The list of abilities, by name and/or type, is a comma=delimited list.
- Enclosing and ability specified, by name or type, in square brackets ([z]) is used to identify abilities that the character must not have.

Example:

`PREABILITY:1,CATEGORY=Special Quality,Night Vision,Acid Blast`

Requires the Night Vision or Acid Blast Special Quality

`PREABILITY:1,CATEGORY=ANY,Sneak Attack`

Requires the Sneak Attack Ability from any category.

`PREABILITY:3,CATEGORY=Mutation,ANY`

Requires any 3 Mutation category Abilities.

`PREABILITY:2,CATEGORY=Mutation,TYPE.MajorMutation`

Requires 2 Mutation category Abilities of type MajorMutation.

`PREABILITY:1,CATEGORY=Special Ability,Wild Shape(Small Plant),Wild Shape(Medium Plant),[Wild Shape(Large Plant)]`

Requires the character has either "Wild Shape(Small Plant)" or "Wild Shape(Medium Plant)" but does not have "Wild Shape(Large Plant)".

*** Updated 5.13.12

Tag Name: PREAGESET:x,y,y

Variables Used (x):Number (Number of agesets required)

Variables Used (y):Text (Ageset abbreviation)

What it does:

- Requires the PC to have the specified Ageset or older.
- Agesets are defined in biosettings.lst files by the AGESET tag.
- Biosettings.lst files can be placed in the gameMode or in the applicable datasets.
- There are four Agesets defined in the 35e gameMode: Adulthood, Middle Age, Old, and Venerable.

Example:

`PREAGESET:1,Old`

Requires the PC to be "Old" or "Venerable".

`PREAGESET:1,Venerable`

Requires the PC to be "Venerable".

`!PREAGESET:1,Venerable`

Requires the PC to be younger than "Venerable".

`PREMULT:2,[PREAGESET:1,Middle Age],[!PREAGESET:1,Old]`

Requires the PC to be "Middle Age" but not older.

*** Updated 5.7.6

Tag Name: PREALIGN:x,x

Variables Used (x):LG,LN,LE,NG,TN,NE,CG,CN,CE,Deity (Alignment abbreviation).

Variables Used (x):0,1,2,3,4,5,6,7,8,10 (Alignment array number).

What it does:

- Requires the PC be one of the specified alignments.
- Alignment names are defined in the statsandchecks.lst gameMode file.
- The Alignment abbreviation is the prefered method of identifying the required alignments.
- The Alignment array number, based on the order the Alignments are presented in the statsandchecks.lst file with the first one being 0.
- If NO alignments are defined in GameMode, all PREALIGN tags will return TRUE.
- In the 3e and 35e gameModes these are the listed Alignments: 0=LG, 1=LN, 2=LE, 3=NG, 4=TN, 5=NE, 6=CG, 7=CN, 8=CE, 9=None, 10 Deity's Alignment.

Example:

`PREALIGN:LG,NG,CG`

Requires any Good alignment.

`PREALIGN:2,5,8`

Requires any evil alignment.

`PREALIGN:LG,Deity`

Requires Lawful Good or the characters chosen Deities alignment.

`!PREALIGN:LG,NG,CG`

Requires the PC not be of "Good" alignment.

Tag Name: PREAPPLY:x,x

Variables Used (x): ANYPC (Apply to any character).

Variables Used (x): PC (Apply to the character).

Variables Used (x): Text (A type name).

What it does:

- Requires included qualifications must be met before the associated BONUS will be applied to the target.
- The Temporary Bonus tab uses this tag as a flag to identify which objects should be listed on that tab.
- PREAPPLY works ONLY at the end of a BONUS tag.
- Bonuses with PREAPPLY tags will only appear in the Temporary Bonuses Tab.
- Use a comma (,) delimiter to indicate AND (both conditions must be met).
- Use a semi-colon (;) delimiter to indicate OR (either condition needs to be met).
- All feats, spells or templates with ANYPC as the target of the PREAPPLY tag will always show up on the Temp Bonuses tab. This allows for Spells that can be cast on any character and Feats and Templates which act as holders for conditional bonuses any character can get (given the right circumstances of course) without the character needing to have added those objects to his character.
- Spells with weapon type PREAPPLY tags will also show in the tab. The PREAPPLY:ANYPC is assumed in this case but the bonus can only be applied to a weapon.
- See the documentation for the Temporary Bonus Tab for more information on using this tag.

Examples:

`PREAPPLY:ANYPC`

This would apply the bonus to the PC (such as spells that can be cast on a character).

`PREAPPLY:PC`

This would apply the bonus to the PC, so long as the element is part of the character (such as caster only spells).

`PREAPPLY:Ranged;Melee`

This would apply the bonus to Ranged OR Melee weapons.

`PREAPPLY:Weapon,Blunt`

This would apply the bonus to Wooden Blunt weapons.

*** Deprecated 5.15.8 - Remove 6.0 - Use PREPROFWITHARMOR instead.

Tag Name: PREARMORPROF:x,y,y

Variables Used (x): Number (The number of armor proficiencies needed).

Variables Used (y): Text (The name of a Armor Prof).

Variables Used (y): TYPE.Text (The type of Armor prof).

What it does:

Checks for Armor proficiency requirements.

Examples:

`PREARMORPROF:1,Chainmail,Full Plate`

Character must be proficient with either "Chainmail" or "Full Plate".

`PREARMORPROF:1,TYPE.Medium`

Character must be proficient with Medium armor.

*** New 5.10

Tag Name: PREARMORTYPE:x,y,y

Variables Used (x): Number (The number of equipped armors needed).

Variables Used (y): Text (The name of an Armor).

Variables Used (y): Text (The name of a piece of Armor - "%" may be used as a wild-card).

Variables Used (y): TYPE.Text (The type of Armor).

Variables Used (y): LIST (Checks that the equipped Armor is one the character is proficient with).

What it does:

Checks for equipped Armor.

Examples:

`PREARMORTYPE:1,Chainmail,Full Plate`

Character must have either "Chainmail" or "Full Plate" armor equipped.

`PREARMORTYPE:1,Leather Armor%`

The "%" allows for items named Leather Armor (Masterwork), Leather Armor (+1) etc.

`PREARMORTYPE:1,TYPE.Medium`

Character must have a Medium type armor equipped.

`PREARMORTYPE:1,LIST`

Character must be proficient in the armor equipped.

Tag Name: PREATT:x

Variables Used (x):Number (Base Attack Bonus number).

What it does:

Number indicates the minimum base attack bonus.

Highest PREATT possible is 20.

Example:

`PREATT:6`

This would apply only if the PC had minimum base attack bonus of 6.

Tag Name: PREBASESIZEx:y

Variables Used (x):EQ (Equals).

Variables Used (x):GT (Greater Than).

Variables Used (x):GTEQ (Greater Than or Equal to).

Variables Used (x):LT (Less Than).

Variables Used (x):LTEQ (Less Than or Equal to).

Variables Used (x):NEQ (Not Equal to).

Variables Used (y):Text (Size name).

What it does:

- Allows characters to be limited or allowed access to certain things only if their physical stature meets selected criteria.
- The "Size name" is defined in the gameMode sizeAdjustment.lst file.
- The default sizes in PCGen are: Fine, Diminutive, Tiny, Small, Medium, Large, Huge, Gargantuan, and Colossal

Example:

`BONUS:COMBAT|AC|2|PREBASESIZELTEQ:Medium|TYPE=NaturalArmor.STACK`

This would apply the combat AC bonus of 2 that stacks with Natural Armor if the PC's size is less than or equal to "medium".

Tag Name: PREBIRTHPLACE:x

Variables Used (x): Text (A birthplace name).

What it does:

Character's birthplace must match the listed text.

Example:

`PREBIRTHPLACE:Klamath`

Character must have been born in "Klamath".

*** New 5.15.2

Tag Name: PRECAMPAIGN:x,y,y

Variables Used (x): Number (Number of items required to pass)

Variables Used (y): Text (Data set name as set by the CAMPAIGN tag).

Variables Used (y): BOOKTYPE=Text (Data set name as set by the CAMPAIGN tag).

What it does:

- Sets prerequisites for LST objects based upon the data sets loaded into PCGen. If the set is loaded it passes, if not it doesn't.
- See PCC PRECAMPAIGN docs for full information on this tag.

Tag Name: PRECHECK:x,y=z

Variables Used (x): Number (The number of checks that must be equal to or greater than the numbers specified for the check to succeed).

Variables Used (y): Text (A defined check from statsandchecks.lst - e.g. Fortitude or Willpower).

Variables Used (z): Number (The number the associated check must be greater than or equal to).

What it does:

Sets the minimum CHECK requirements.

Examples:

`PRECHECK:1,Fortitude=5,Reflex=3`

Would succeed if Fortitude meets or exceeds 5 or Reflex meets or exceeds 3.

`PRECHECK:2,Fortitude=5,Reflex=3,Willpower=4`

Would succeed if any 2 of the 3 three listed conditions were met.

Tag Name: PRECHECKBASE:x,y=z

Variables Used (x): Number (The number of base checks that must be equal to or greater than the numbers specified for the check to succeed).

Variables Used (y): Text (A defined check from statsandchecks.lst - e.g. Fortitude or Willpower).

Variables Used (z): Number (The number the associated base check must be greater than or equal to).

What it does:

Sets the minimum Base Check requirements. Base Checks are usually only those from class advancement (no stat modifiers, magic, etc.), but follow anything defined with "`BONUS:CHECKS|BASE.Name|`".

Examples:

`PRECHECKBASE:2,Fortitude=3,Reflex=3`

Would succeed if both Fortitude meets or exceeds 3 and Reflex meets or exceeds 3.

`PRECHECKBASE:1,Fortitude=5,Reflex=3`

Would succeed if Fortitude meets or exceeds 5 or Reflex meets or exceeds 3.

Tag Name: PRECITY:x

Variables Used (x): Text (The name of a city that you must live in).

What it does:

Sets the required city. A characters city is set in the Description Tab

Example:

`PRECITY:Klamath`

Character must currently reside in "Klamath".

Tag Name: PRECLASS:x,y=z,y=z

Variables Used (x): Number (The number of classes that must be equal to or greater than the numbers specified for the check to succeed).

Variables Used (y): Text (Class Name)

Variables Used (y): TYPE.Text (Class Type)

Variables Used (y): SPELLCASTER.

Variables Used (y): SPELLCASTER.Type (Spellcaster Type)

Variables Used (y): ANY

Variables Used (z): Number (Class Level)

What it does:

Sets class requirements.

Example:

`PRECLASS:2,Wizard=5,Sorcerer=6,Cleric=7`

Multi-classed character must be at least Wiz5/Sor6, Wiz5/Clr7 or Sor6/Clr7.

`PRECLASS:1,SPELLCASTER=2`

Character must have 2 levels in any spellcasting class. This encompasses psionic manifesting classes as well, as PCGen does not treat manifesting differently from spellcasting. Spellcaster and manifester can be considered interchangeable.

`PRECLASS:1,SPELLCASTER.Arcane=2`

Character must have 2 levels in any arcane spellcasting class.

`PRECLASS:1,SPELLCASTER.Divine=6,SPELLCASTER.Psionic=3`

Character must have 6 levels in any divine spellcasting class or 3 levels in any psionic manifesting class.

`PRECLASS:2,TYPE.Base=5,TYPE.Prestige=1`

Character must have 5 levels in any Base class and 1 level in any Prestige class.

`PRECLASS:2,ANY`

Multi-classed character must be at least two Classes.

`PRECLASS:1,ANY`

Character must have 1 level in any class.

`PREMULT:1,[PREFEAT:1,Blood of the Fey],[PRECLASS:1,Fey-Touched=1]`

Character must have 1 level in Fey-Touched class or feat Blood of the Fey.

`PRECLASS:1,Jack o' the Green=5 !PREFEAT:1,TYPE.LASlipperyEel`

Character must have 5 levels in Jack o' the Green class and not have the feat LASlipperyEel.

`!PRECLASS:1,SPELLCASTER.Arcane=1`

Character must not have 1 level in SPELLCASTER.Arcane class.

`BONUS:COMBAT|AC|1|PRECLASS:1,Shaper=10`

Character adds 1 to armor class if 10 levels in Shaper Class.

`BONUS:WEAPON|TOHIT|4|TYPE=Luck|PRECLASS:1,Wizard=1,Sorcerer=1`

Character adds 4 to To-Hit from luck if 1 level in either Wizard/Sorcerer Class.

`BONUS:CASTERLEVEL|Minstrel|CL-3|PRECLASS:1,Minstrel=4`

Character adds CL-3 bonus to Casterlevel if 4 levels in Minstrel Class.

`SA:Damage reduction 1/opposed alignment|PRECLASS:1,Shaper=10`

SA: will fire with 10 levels of Shaper Class.

`SA:Spy|PREMULT:2,[PRECLASS:1,Aradil's Eye=5],[PRECLASSLEVELMAX:1,Aradil's Eye=9]`

SA: will fire with 5 levels of Aradil's Eye Class or not more than 9 levels of Aradil's Eye Class.

Tag Name:PRECLASSLEVELMAX:x,y=z,y=z

Variables Used (x): Number (Number of listed classes required)

Variables Used (y): Text (Class name)

Variables Used (y): TYPE.Text (Class type)

Variables Used (y): SPELLCASTER

Variables Used (y): SPELLCASTER.Text (Spellcaster type)

Variables Used (z): Number (Maximum class level)

What it does:

- Sets maximum class level limits.
- Class types are defined in the loaded datasets. Examples from the RSRD are "Base", "PC", or "Prestige".
- `SPELLCATER` will check against all spellcasting classes.
- `SPELLCASTER.Text` will check against spellcaster types, e.g. Arcane or Divine.

Example:

`PRECLASSLEVELMAX:2,Fighter=2,SPELLCASTER=2`

Character cannot have more than 2 levels of fighter and cannot have more than 2 levels in any spellcasting class.

Deprecated Syntax:

`PRECLASSLEVELMAX:x,y,y=z` - Deprecated 5.15.4 - Remove 6.0

The level (z) is now mandatory for all classes/class types (y) designated.

*** New 5.9.0

Tag Name: PRECSKILL:x,y

Variables Used (x): Number (The number of skills that must be considered Class Skills for the check to succeed).

Variables Used (y): Text (A defined skill name)

Variables Used (y): TYPE.Text (A defined skill type)

What it does:

Sets skill requirements.

NOTE: In skills types with multiple versions like Craft (Pottery) or Knowledge (Local) there must be a space between the name and the parentheses because the text must match the entry exactly.

Examples:

`PRECSKILL:1,Spot,Listen`

Character must have either "Spot" or "Listen" as a Class Skill.

`PRECSKILL:2,TYPE.Spy`

Character must have two "Spy" skills as Class Skills.

Tag Name: PREDEITY:x,y

Variables Used (x): Number (The number of the deity's name or pantheons that must match).

Variables Used (y): Y (The character must have chosen a deity).

Variables Used (y): N (The character must not have chosen a deity).

Variables Used (y): Text (The name(s) of deities).

Variables Used (y): PANTHEON.Text (The name(s) of pantheons).

What it does:

Sets deity requirements by presence, name or pantheon name.

Examples:

`PREDEITY:1,Y`

Character must have a deity chosen.

`PREDEITY:1,N`

Character must NOT have a deity chosen.

`PREDEITY:1,Zeus,Odin`

Character must have chosen either "Zeus" or "Odin".

`PREDEITY:1,Zeus,PANTHEON.Celtic,Odin`

Character must have chosen either "Zeus", "Odin" or a deity in the "Celtic" pantheon.

`CLASS:Druid.MOD <tab> PREDEITY:1.Saluwe,Yarris,Belisarda,Fire Dragon`

Character must have chosen either "Saluwe" "Yarris" "Belisarda" or "Fire Dragon".

Tag Name: PREDEITYALIGN:x

Variables Used (x):LG,LN,LE,NG,TN,NE,CG,CN,CE (Alignment abbreviation).

Variables Used (x):0,1,2,3,4,5,6,7,8 (Alignment array number).

What it does:

- Requires the PC to have a deity with a particular alignment.
- Alignment names are defined in the statsandchecks.lst gameMode file.
- The Alignment abbreviation is the prefered method of identifying the required alignments.
- The Alignment array number, based on the order the Alignments are presented in the statsandchecks.lst file with the first one being 0.
- If NO alignments are defined in GameMode, all PREALIGN tags will return TRUE.
- In the 3e and 35e gameModes these are the listed Alignments: 0=LG, 1=LN, 2=LE, 3=NG, 4=TN, 5=NE, 6=CG, 7=CN, 8=CE, 9=None, 10 Deity's Alignment.

Example:

`PREDEITYALIGN:0`

Character must have chosen a Lawful Good deity.

`PREDEITYALIGN:LG,NG,CG`

Character must have chosen a deity of any Good alignment.

Tag Name: PREDEITYDOMAIN:x,y,y

Variables Used (x): Number (The number of the deity's domains that must match).

Variables Used (y): Text (Domain names).

What it does:

- Sets requirements for the character's deity's domains.
- This tag applies to the domains of the PC's deity, and not the domains that the PC has selected for itself.

Example:

`PREDEITYDOMAIN:1,Good,Law`

Character must have chosen of deity with either the "good" domain or the "law" domain.

*** Updated 5.11.7

Tag Name: PREDOMAIN:x,y,y

Variables Used (x): Number (The number of the deity's domains that must match).

Variables Used (y): Text (Domain names or ANY).

What it does:

- Set's requirements for a character's domains.
- This tag applies to the domains that the PC has selected for itself.

Example:

`PREDOMAIN:1,Good,Law`

Character must have 1 of the two listed domains.

`PREDOMAIN:2,ANY`

Character must have 2 domains of any type.

Tag Name:PREDR:x,y=z,y=z

Variables Used (x): Number (The number of the DR conditions that must be met).

Variables Used (y): Text (The type of DR).

Variables Used (z): Number (Value the DR must be greater or equal to).

What it does:

Set's requirements for a character's Damage Resistance.

Examples:

`PREDR:1,+1=10`

Must have DR of 10/+1 or greater (but DR Type must be +1).

`PREDR:1,-=10,+1=10,+2=10,+3=10,+4=10,+5=10,Silver=10`

Must have DR of 10 or greater of any type listed.

Tag Name: PREEQUIP:x,y,y

Variables Used (x): Number (The number of items from the list that must be equipped).

Variables Used (y): Text (The name of a piece of equipment - "%" may be used as a wild-card).

Variables Used (y): TYPE=Text (The type of a piece of equipment).

Variables Used (y): WIELDCATEGORY=Text (The wield category of a weapon).

What it does:

This is used to determine if a character has a particular item(s) equipped.

Examples:

`PREEQUIP:1,Leather Armor`

Must have Leather Armor (only) equipped.

`PREEQUIP:1,Leather Armor%`

The "%" allows for items named Leather Armor (Masterwork), Leather Armor (+1) etc.

`PREEQUIP:1,TYPE=Armor`

Must have some type of armor equipped.

`PREEQUIP:2,TYPE=Armor,Sword (Long)%`

Must be equipped with any Sword (Long), as well as any type of armor.

`PREEQUIP:2,TYPE=Armor,TYPE=Shield`

Must be equipped with any Armor and any Shield.

`PREEQUIP:1,WIELDCATEGORY=TwoHanded`

Must be equipped with a two handed weapon.

Tag Name: PREEQUIPPRIMARY:x,y,y

Variables Used (x): Number (The number of items from the list that must be equipped in a primary hand).

Variables Used (y): Text (The name of a piece of equipment - "%" may be used as a wild-card).

Variables Used (y): TYPE=Text (The type of a piece of equipment).

Variables Used (y): WIELDCATEGORY=Text (The wield category of a weapon).

What it does:

This is used to determine if a character has a particular item (usually a weapon) equipped in a Primary hand for the character. Typically has a value of 1 for the Number, however can be more than one if can have more than one Primary hand.

Examples:

`PREEQUIPPRIMARY:1,Dagger`

Must have a dagger equipped in the primary hand.

`PREEQUIPPRIMARY:1,Dagger%`

The "%" allows for items named Dagger (Masterwork), Dagger (Punching), etc.

`PREEQUIPPRIMARY:1,TYPE=Slashing`

Must have some type of slashing weapon equipped in the primary hand.

`PREEQUIPPRIMARY:1,WIELDCATEGORY=OneHanded`

Must have a one handed weapon equipped in the primary hand.

Tag Name: PREEQUIPSECONDARY:x,y,y

Variables Used (x): Number (The number of items from the list that must be equipped in a secondary hand).

Variables Used (y): Text (The name of a piece of equipment - "%" may be used as a wildcard).

Variables Used (y): TYPE=Text (The type of a piece of equipment).

Variables Used (y): WIELDCATEGORY=Text (The wield category of a weapon).

What it does:

This is used to determine if a character has a particular item (usually a weapon) equipped in a Secondary hand for the character. Typically has a value of 1 for the Number, however can be more than one if can have more than one Secondary hand.

Examples:

`PREEQUIPSECONDARY:1,Dagger`

Must have a dagger equipped in the secondary hand.

`PREEQUIPSECONDARY:1,Dagger%`

The "%" allows for items named Dagger (Masterwork), Dagger (Punching), etc.

`PREEQUIPSECONDARY:1,TYPE=Slashing`

Must have some type of slashing weapon equipped in the secondary hand.

`PREEQUIPSECONDARY:1,WIELDCATEGORY=Light`

Must have a light weapon equipped in the secondary hand.

Tag Name: PREEQUIPBOTH:x,y

Variables Used (x): Number (Number of items to be equipped).

Variables Used (y): Text (Equipment name).

Variables Used (y): TYPE=Text (Equipment type).

Variables Used (y): WIELDCATEGORY=Text (Wield category name).

What it does:

This is used to determine if a character has a particular item (usually a weapon) equipped and used two-handed style.

Examples:

`PREEQUIPBOTH:1,Quarterstaff`

Must have a Quarterstaff equipped in both hands.

`PREEQUIPBOTH:1,Sword (Great%`

The "%" allows for items named Sword (Great/Masterwork) etc.

`PREEQUIPBOTH:1,TYPE=Slashing`

Must have a slashing type weapon equipped in both hands.

Tag Name: PREEQUIPTWOWEAPON:x,y,y

Variables Used (x): Number (The number of items that must be equipped in a two weapon fighting manner - 1 or 2).

Variables Used (y): Text (Weapon name - "%" may be used as a wildcard)

Variables Used (y): TYPE=Text (Weapon type)

Variables Used (y): WIELDCATEGORY=Text (Wield category).

What it does:

This is used to determine if a character has a particular item (usually a weapon) equipped and used two weapon style.

Examples:

`PREEQUIPTWOWEAPON:1,Sword (Short)`

Must have a Sword (Short) equipped as one of two weapons for two weapon fighting.

`PREEQUIPTWOWEAPON:1,Sword (Short%`

Must have a Sword (Short) equipped as one of two weapons and allows for items named Sword (Short/Masterwork) etc.

`PREEQUIPTWOWEAPON:1,TYPE=Slashing`

Must have a "Slashing" type weapon equipped as one of two weapons for two weapon fighting.

`PREEQUIPTWOWEAPON:1,WIELDCATEGORY=Light`

Must have a light weapon equipped for two weapon fighting.

Tag Name: PREFEAT:x,y,z

Variables Used (x): Number (Number of required feats)

Variables Used (y): CHECKMULT (Used to make the program count each instance of a feat separately - optional)

Variables Used (z): Text (Feat name)

Variables Used (z): [Text] (Name of a feat a character must NOT have)

Variables Used (z): TYPE=Text (Feat type)

Variables Used (z): [TYPE=Text] (Type of feat the character must NOT have)

What it does:

- Sets character feat requirements.
- Feats with multiple instances where the instance is expressed within parentheses, e.g. Skill Focus or Spell Focus, there is no space between the name of the feat and the parentheses.
- Use of the `(TYPE=<text>)` syntax with feats with multiple instances, e.g. `Weapon Focus(TYPE=Bow)`, though allowed, is only supported for feats with internal choosers for `DOMAIN`, `SKILL`, `SPELL`, and `WEAPONPROF` types.

Examples:

`PREFEAT:1,Dodge,Combat Reflexes`

Character must have either "Dodge" or "Combat Reflexes".

`PREFEAT:2,CHECKMULT,Spell Focus`

Character must have "Spell Focus" for two schools.

`PREFEAT:2,CHECKMULT,Spell Focus,[Spell Focus(Enchantment)]`

Character must have "Spell Focus" for two schools, but not the "Enchantment" school.

`PREFEAT:2,Weapon Focus(TYPE=Bow),Weapon Focus(Longsword)`

Character must have both "Weapon Focus(Longsword)" and any one "Bow" type "Weapon Focus".

`PREFEAT:2,CHECKMULT,Weapon Focus(TYPE=Sword)`

Character must have two "Sword" type "Weapon Focus" feats.

`PREFEAT:2,Skill Focus(Spot),Skill Focus(Listen),Skill Focus(Search)`

Character must have any two of "Skill Focus(Spot)", "Skill Focus(Listen)", or "Skill Focus(Search)".

`PREFEAT:2,TYPE=ItemCreation`

Character must have any two "ItemCreation" type feats.

`PREFEAT:1,Skill Focus(Knowledge%)`

Character must have one "Skill Focus" feat for a "Knowledge" sub-type skill.

`Magecraft (Charismatic).MOD <tab> !PREFEAT:1,Untapped Potential`

Character must not (!) have one feat called "Untapped Potential".

Tag Name: PREGENDER:x

Variables Used (x): Text (Gender to require).

What it does:

Sets gender requirement. The character's gender must start with the text specified. The test is case sensitive so "male" is not the same as "Male". The PCGen GUI allows the following genders by default: Male, Female, Neuter, None, and Other.

Example:

`PREGENDER:M`

Character's gender must start with "M".

Tag Name: PREHANDSx:y

Variables Used (x): EQ (Equals).

Variables Used (x): GT (Greater Than).

Variables Used (x): GTEQ (Greater Than or Equal to).

Variables Used (x): LT (Less Than).

Variables Used (x): LTEQ (Less Than or Equal to).

Variables Used (x): NEQ (Not Equal to).

Variables Used (y): Number (The number of hands to be compared to).

What it does:

Makes the amount of hands a character has a prerequisite.

Example:

`PREHANDSGT:2`

Character must have a number of hands greater than 2.

*** Updated 5.13.5

Tag Name: PREHD:x,y

Variables Used (x): MIN=Number or Formula (Minimum natural Hit Dice)

Variables Used (y): MAX=Number or Formula (Maximum natural Hit Dice)

What it does:

- Provides the minimum or maximum hit dice the character must have to qualify.
- This test looks at a character's race's HD attribute and any levels of Monster Classes.
- Either value may be used without the other.

Examples:

`PREHD:MIN=1,MAX=3`

The character must have one, two, or three racial hit die.

`PREHD:MIN=4`

The character must have four or more racial hit die.

`PREHD:MAX=4`

The character must have four or fewer racial hit die.

`!PREHD:MIN=5,MAX=7`

Character must have between 0-4 OR 7 or greater racial hit die.

*** New 5.10

Tag Name: PREHP:x

Variables Used (x): Number (minimum Hitpoints)

What it does:

Makes the amount of hitpoints a character has a prerequisite.

Examples:

`PREHP:50`

The character must have at least 50 hp.

Tag Name: PREITEM:x,y,y

Variables Used (x): Number (The number of items a character must possess).

Variables Used (y): Text (The name of an item a character must possess - "%" may be used as a wildcard).

Variables Used (y): TYPE=Text (The type of an item the character must possess).

What it does:

Sets requirements for items a character must possess.

TYPE.xxx for reference, TYPE=xxx for assignment.

Examples:

`PREITEM:1,Sword (Long),Sword (Short)`

Character must possess either a "long sword" or a "short sword".

`PREITEM:2,TYPE=Armor,TYPE=Armor`

Character must possess two sets of armor.

`PREITEM:1,TYPE=Natural`

Character must possess one natural item.

Tag Name: PRELANG:x,y,y

Variables Used (x): Number (The number of languages a character must know).

Variables Used (y): Text (The name of a language the character must know).

Variables Used (y): ANY (Indicator the any language will be allowed to help meet the required number).

What it does:

Makes speaking certain languages a prerequisite.

Examples:

`PRELANG:1,Dwarven,Elven`

Character must be able to speak either "Dwarven" or "Elven".

`PRELANG:2,Dwarven,Elven`

Character must be able to speak both "Dwarven" and "Elven".

`PRELANG:2,Dwarven,Elven,Halfling`

Character must be able to speak any two of "Dwarven", "Elven" or "Halfling".

`PRELANG:3,ANY`

Character must be able to speak any three languages.

`PRELANG:4,TYPE=Spoken`

Character must be able to speak any four languages that can be spoken.

Tag Name: PRELEGSx:y

Variables Used (x): EQ (Equals).

Variables Used (x): GT (Greater Than).

Variables Used (x): GTEQ (Greater Than or Equal to).

Variables Used (x): LT (Less Than).

Variables Used (x): LTEQ (Less Than or Equal to).

Variables Used (x): NEQ (Not Equal to).

Variables Used (y): Number (The number of legs to be compared to).

What it does:

Makes the amount of legs a character has a prerequisite.

Example:

`PRELEGSGTEQ:4`

Character must have at least 4 legs.

*** Updated 5.13.5

Tag Name: PRELEVEL:x,y

Variables Used (x): MIN=Number or formula (Minimum total level).

Variables Used (y): MAX=Number or formula (Maximum total level).

What it does:

- Provides the minimum and/or maximum total levels, including all character, racial, or monster class levels, the character must have to qualify.
- Either value may be used without the other.

Example:

`PRELEVEL:MIN=5`

Character must be at least 5th level.

`PRELEVEL:MAX=5`

Character must be no greater than 5th level.

`PRELEVEL:MIN=5,MAX=10`

Character must be at least 5th level but no greater than 10th level.

`!PRELEVEL:MIN=3,MAX=6`

Character must NOT be 3rd, 4th, 5th or 6th level.

Tag Name: PRELEVELMAX:x

Variables Used (x): Number (The maximum level).

What it does:

Requires that a character have a maximum number of character (non-monster) levels.

-- Do NOT mix PRELEVELMAX and BONUS:SKILLPOINTS|NUMBER, since it results in double negative and some very bad exceptions in the code.

Example:

`PRELEVELMAX:10`

Character cannot be over level 10.

*** Updated 5.9.4

Tag Name: PREMOVE:x,y=z,y=z

Variables Used (x): Number (The minimum number movement types which must pass).

Variables Used (y): Text (The name of a type of movement).

Variables Used (z): Number (The minimum movement rate for the associated movement type).

What it does:

Makes movement rate a prerequisite.

Examples:

`PREMOVE:1,Walk=30,Fly=20`

Character must be able to either walk at speed 30 OR fly at speed 20

`PREMOVE:1,Swim=10`

Character must be able to swim at speed 10

`PREMOVE:2,Walk=30,Climb=15`

Character must be able to walk at speed 30 AND climb at speed 15

Tag Name: PREMULT:x,y,y

Variables Used (x): Number (Number of Prereqs)

Variables Used (y): [Text] (Embedded PRExxx tags)

What it does:

- PREMULT is a special PRExxx tag in that one embeds other PRExxx tags in it, allowing for the application of a logical OR across PRExxx tags.
- PREMULT can be embedded into itself.

Examples:

`PREMULT:1,[PRERACE:Gnome],[PRECLASS:1,Cleric=1]`

Character must be either a "Gnome" or a "Cleric".

`PREMULT:1,[PRERACE:Gnome],[PREMULT:2,[PRESIZEGTEQ:M],[PREFEAT:1,Alertness]]`

Character must be "Gnome" OR a medium sized or larger creature with the "Alertness" feat.

`PREMULT:1,[!PRERACE:%],[PRERACE:Bunch of Rocks]`

Character only be from a "Bunch of Rocks".

`Stamina.MOD <tab> PRE:.CLEAR <tab> PREMULT:1,[PREFEAT:1,Robust],[PRECLASS:1,Super Soldier=1]`

The Stamna feat is modified to remove all PRE tags and replace with the following.

*** New 5.13.6

Tag Name: PREPCLEVEL:x,y

Variables Used (x): MIN=Number or formula (Minimum total level).

Variables Used (y): MAX=Number or formula (Maximum total level).

What it does:

- Provides the minimum and/or maximum total character class levels the character must have to qualify.
- PREPCLEVEL does not count Monster (Racial) class levels.
- Class types PC, NPC and Prestige all count as character classes.
- Either value may be used without the other.

Example:

`PREPCLEVEL:MAX=1`

Character must be no greater than 1st level. This can be used to qualify feats which can only be taken as a 1st level character. A character with racial hitdice (monster levels) but only 1 or no character class levels will still qualify.

`PREPCLEVEL:MIN=5`

Character must be at least 5th level.

`PREPCLEVEL:MAX=5`

Character must be no greater than 5th level.

`PREPCLEVEL:MIN=5,MAX=10`

Character must be at least 5th level but no greater than 10th level.

`!PREPCLEVEL:MIN=2,MAX=4`

Character must NOT be 2nd, 3rd or 4th level.

*** Updated 5.13.12

Tag Name: PREPOINTBUYMETHOD:x,y,y

Variables Used (x): Number (Number of required point-buy methods)

Variables Used (y): Text (Pointbuy method)

What it does:

- Sets a prerequisite based upon the saved method used by the point-buy system of stat determination.
- Note: Only one (1) point-buy method is used at any given time so using a value greater then one is unecessary.

Examples:

`PREPOINTBUYMETHOD:1,Standard`

Sets a prerequisite of "Standard" for the point-buy saved method.

`PREPOINTBUYMETHOD:1,Standard,High-powered`

Sets a prerequisite of "Standard" or "High-powered" for the point-buy saved method.

*** New 5.15.8

Tag Name: PREPROFWITHARMOR:x,y,y

Variables Used (x): Number (The number of armor proficiencies needed).

Variables Used (y): Text (The name of a Armor Prof).

Variables Used (y): TYPE.Text (The type of Armor prof).

What it does:

Checks for Armor proficiency requirements.

Examples:

`PREPROFWITHARMOR:1,Chainmail,Full Plate`

Character must be proficient with either "Chainmail" or "Full Plate".

`PREPROFWITHARMOR:1,TYPE.Medium`

Character must be proficient with Medium armor.

*** NEW 5.15.8

Tag Name: PREPROFWITHSHIELD:x,y,y

Variables Used (x): Number (The number of shield proficiencies needed).

Variables Used (y): Text (The name of a shield proficiency).

Variables Used (y): TYPE.Text (The type of shield proficiency).

What it does:

Checks for shield proficiency requirements.

Examples:

`PREPROFWITHSHIELD:1,Buckler,Large Shield`

Character must be proficient with either "Buckler" or "Large Shield".

`PREPROFWITHSHIELD:1,TYPE.Tower`

Character must be proficient with Tower shields.

*** Updated 5.9.5

Tag Name: PRERACE:x,y,y

Variables Used (x): Number (The number of racial properties which must be met).

Variables Used (y): Text (The name of a race).

Variables Used (y): TYPE=Text (The name of a race type defined by the race TYPE tag).

Variables Used (y): RACETYPE=Text (The name of a race type defined by the race RACETYPE tag).

Variables Used (y): RACESUBTYPE=Text (The name of a race subtype defined by the race RACESUBTYPE tag).

What it does:

The character must be one of the listed races or possess one of the racial properties.

TYPE=<Text> can be used to check types set by the race TYPE tag.

RACETYPE=<Race Type> can be used to check racial types such as Humanoid, Giant and Outsider.

RACESUBTYPE=<Race Subtype> can be used to check racial subtypes such as Air, Evil and Extraplanar.

The wildcard character (%) can be used to include any text, for example Elf% will include any race name which begins with Elf. Without the wildcard character the race name must match exactly.

Enclosing a selection in square brackets ([ ]) excludes a race. Brackets do not work for the TYPE, RACETYPE and RACESUBTYPE properties.

TYPE.xxx for reference, TYPE=xxx for assignment.

Examples:

`PRERACE:1,Dwarf,Elf,Human`

Character must be a "Dwarf", "Elf" or "Human".

`PRERACE:1,Elf%,[Elf (aquatic)]`

Character must be one of the "Elf" races, except "Elf (aquatic)".

`PRERACE:1,TYPE=Dire`

Characters race type must be "Dire".

`PRERACE:1,RACETYPE=Giant`

Characters race type must be "Giant".

`!PRERACE:1,RACETYPE=Outsider`

Characters race type must not be "Outsider".

`PRERACE:1,RACESUBTYPE=Incorporeal`

Character must have the "Incorporeal" subtype.

`PRERACE:2,RACETYPE=Undead,RACESUBTYPE=Incorporeal`

Character must have both a race type of "Undead" and a subtype of "Incorporeal".

`PRERACE:1,%`

This will pass if any race has been chosen but will fail if no race has been selected.

`!PRERACE:1,%`

This will pass if no race has been selected.

`PRERACE:TYPE=Humanoid`

This will pass if a humanoid race has been selected.

`CLASS:Sorcerer.MOD <tab> !PRERACE:Human`

This will pass if no Human race has been selected.

*** New 5.11.6

Tag Name: PREREACHx:y

Variables Used (x): EQ (Equals).

Variables Used (x): GT (Greater Than).

Variables Used (x): GTEQ (Greater Than or Equal to).

Variables Used (x): LT (Less Than).

Variables Used (x): LTEQ (Less Than or Equal to).

Variables Used (x): NEQ (Not Equal to).

Variables Used (y): Number (The reach to be compared to).

What it does:

Makes the character's reach a prerequisite.

Example:

`PREREACH:10`

Character must have at least a reach of 10 ft..

`PREREACHEQ:5`

Character must have a reach of exactly 5 ft..

Tag Name: PREREGION:x,y (z),y (z)

Variables Used (x): Number (Number of regions required)

Variables Used (y): Text (The region name).

Variables Used (z): Text (The subregion name - optional).

What it does:

Character's home region must match the listed text. When only the region is specified, any character from that region, but with a specified subregion, will still be considered qualified.

Examples:

`PREREGION:1,Slithe`

Character must hail from the "Slithe" region.

`PREREGION:1,Slithe (Barrows)`

Character must hail from the "Slithe" region and "Barrows" subregion.

Tag Name: PRERULE:x,y

Variables Used (x): Number (Number of rules required)

Variables Used (y): Text (Rule name)

What it does:

- Checks for the state of a rule.
- The rule name must have been defined and match the variable (`VAR`) entry in the system/gameModes/rules.lst file.
- Rules can be turned on and off by the user in the House Rules section of the preferences.

Example:

`PRERULE:1,SYS_WTPSK`

The rule WeightPenaltyToSkill must be checked for this to apply.

Tag Name: PRESA:x,y,y

Variables Used (x): Number (The number of Special Abilities a character must have).

Variables Used (y): Text (The name of an Special Abilities).

What it does:

- Checks for the specified special abilities as a prerequisite.
- Special abilities applied by the `SAB` tag will satisfy this prerequisite.

Example:

`PRESA:1,Turn undead,Rebuke undead,Smite Evil`

Character must have any one of "Turn Undead", "Rebuke Undead" or "Smite Evil".

`CLASS:Mystic Theurge.MOD <tab> !PRESA:1,Theurgy`

Character must not have any Special Abilities of "Theurgy".

*** Deprecated 5.15.8 - Remove 6.0 - Use PREPROFWITHSHIELD instead.

Tag Name: PRESHIELDPROF:x,y,y

Variables Used (x): Number (The number of shield proficiencies needed).

Variables Used (y): Text (The name of a shield proficiency).

Variables Used (y): TYPE.Text (The type of shield proficiency).

What it does:

Checks for shield proficiency requirements.

Examples:

`PRESHIELDPROF:1,Buckler,Large Shield`

Character must be proficient with either "Buckler" or "Large Shield".

`PREARMORPROF:1,TYPE.Tower`

Character must be proficient with Tower shields.

Tag Name: PRESIZEx:y

Variables Used (x): EQ (Equals).

Variables Used (x): GT (Greater Than).

Variables Used (x): GTEQ (Greater Than or Equal to).

Variables Used (x): LT (Less Than).

Variables Used (x): LTEQ (Less Than or Equal to).

Variables Used (x): NEQ (Not Equal to).

Variables Used (y): F (Fine size).

Variables Used (y): D (Dimunitive size).

Variables Used (y): T (Tiny Size).

Variables Used (y): S (Small size).

Variables Used (y): M (Medium Size).

Variables Used (y): L (Large size).

Variables Used (y): H (Huge size).

Variables Used (y): G (Gargantuan size).

Variables Used (y): C (Colossal size).

What it does:

Makes a characters physical size a prerequisite.

Example:

`PRESIZEEQ:H`

Character must be "Huge" in size.

Tag Name: PRESKILL:x,y=z,y=z

Variables Used (x): Number (Number of skills)

Variables Used (y): Text (Skill name)

Variables Used (y): TYPE.Text (Skill type)

Variables Used (z): Number (Skill ranks)

What it does:

- Sets skill requirements.
- If you require multiples of a particular type of skill, you need to include a `TYPE.Text` sub-tag for each instance in the comma delimited list.
- Skills types with multiple versions like "Craft (Pottery)" or "Knowledge (Local)" there must be a space between the name and the parentheses because the text must match the entry exactly.

Examples:

`PRESKILL:1,Spot=10,Listen=10`

Character must have at least 10 ranks in either "Spot" or "Listen".

`PRESKILL:2,TYPE.Spy=2,TYPE.Spy=2`

Character must have two "Spy" skills with at least two ranks in each of them.

`PRESKILL:3,Appraise=3,Decipher Script=3,Knowledge (TYPE=Other)=3`

Character must have three skills with at least three ranks in each of them.

Deprecated Syntax:

`PRESKILL:x,y,y=z` - Deprecated 5.15.4 - Remove 6.0

The level (z) is now mandatory for all classes/class types (y) designated.

Tag Name: PRESKILLMULT:x,y=z,y=z

Variables Used (x): Number (The number of skills that must be equal to or greater than the numbers specified for the check to succeed).

Variables Used (y): Text (A defined skill name).

Variables Used (y): TYPE=Text (A defined skill type).

Variables Used (z): Number (The number of ranks the associated skill must meet or exceed).

What it does:

- Similar to PRESKILL.
- This tag will set a flag on the character.
- It only works as a prereq if the rank in the skill divided by the rank needed is equal to the flag.
- The flag starts at 1, but goes up by one every-time the prereq is met. So the first feat would require 'rank' in the skill, the second feat 'rank*2', and so on. That would support the way regional feats are described in FR.
- If you require multiples of that type, you need to add TYPE.x for each instance in the comma delimited list.
- This tag is merely a dummy tag that works like PRESKILL so we don't have to redesign the lst files when this tag gets working.

Example:

`PRESKILLMULT:1,Spot=10,Listen=10`

Character must have a Spot or Listen at 10 or above.

Deprecated Syntax:

`PRESKILLMULT:x,y,y=z` - Deprecated 5.15.4 - Remove 6.0

The level (z) is now mandatory for all classes/class types (y) designated.

Tag Name:PRESKILLTOT:x,x=y

Variables Used (x): Text (skill name).

Variables Used (x): TYPE=Text (skill type).

Variables Used (y): Number (total non-bonus skill ranks required).

What it does:

- A comma-delimited list of skills whose total non-bonus ranks must equal y.
- Skills may be identified by TYPE.

Example:

`PRESKILLTOT:Spot,Listen,Search=30`

Character must have a total of 30 non-bonus ranks between Spot, Search, and Listen skills.

Tag Name: PRESPELL:x,y,y

Variables Used (x): Number (The number of spells required).

Variables Used (y): Text (The name of a spell).

What it does:

Sets spell requirements.

Example:

`PRESPELL:1,Magic Missile,Lightning Bolt`

Character must have either Magic Missile OR Lightning Bolt in their spell list.

Tag Name: PRESPELLBOOK:x

Variables Used (x): YES

Variables Used (x): NO

What it does:

Sets spellbook requirements.

Examples:

`PRESPELLBOOK:YES`

At least one of the character's classes must use spell books.

`PRESPELLBOOK:NO`

None of the character's classes can use spell books.

Tag Name: PRESPELLCAST:x=y

Variables Used (x): MEMORIZE (Set requirements based on memorization).

Variables Used (x): TYPE (Set requirements based on spelltype).

Variables Used (y): Y (Yes - used with MEMORIZE).

Variables Used (y): N (No - used with MEMORIZE).

Variables Used (y): Text (A spelltype - used with TYPE).

What it does:

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.

Examples:

`PRESPELLCAST:MEMORIZE=Y`

Characters class must have to memorize spells.

`PRESPELLCAST:MEMORIZE=N`

Characters class must NOT have to memorize spells.

`PRESPELLCAST:TYPE=Arcane`

Character must be able to cast arcane spells.

`PRESPELLCAST:TYPE=Divine`

Character must be able to cast divine spells.

`PRESPELLCAST:TYPE=Arcane,TYPE=Divine`

Character must be able to cast arcane/divine spells.

Tag Name: PRESPELLDESCRIPTOR:x,y=z

Variables Used (x): Number (Number of spells known)

Variables Used (y): Text (Spell descriptor)

Variables Used (z): Number (Minimum spell level)

What it does:

Sets spell descriptor requirements. (i.e. Fire, Acid, Sonic, Evil, Good, Mind-Affecting, etc.)

Example:

`PRESPELLDESCRIPTOR:4,Mind-Affecting=3`

Character must have at least four 3rd level or higher Mind-Affecting spells to meet the requirement.

Deprecated Syntax:

`PRESPELLDESCRIPTOR:y,x,z`

*** NEW 5.12

Tag Name: PRESPELLSCHOOL:x,y=z,y=z

Variables Used (x): Number (Number of spells known)

Variables Used (y): Text (Name of a school of magic).

Variables Used (z): Number (Minimum spell level)

What it does:

- Establishes a requirement for (x) number of spells from magic school (y) of at least level (z).
- You may include as many "School=Level" pairs as you require as a comma-delimited (",") list.

Example:

`PRESPELLSCHOOL:3,Necromancy=2`

Character must have at least three 2nd level or higher Necromancy spells to meet the requirement.

*** Updated 5.12

Tag Name: PRESPELLSCHOOLSUB:x,y=z,y=z

Variables Used (x): Number (Number of spells known)

Variables Used (y): Text (Name of sub-school of magic.)

Variables Used (z): Number (Minimum spell level)

What it does:

- Establishes a requirement for (x) number of spells from magic sub-school (y) of at least level (z).
- You may include as many "Sub-School=Level" pairs as you require as a comma-delimited (",") list.

Example:

`PRESPELLSCHOOLSUB:3,Creation=2`

Character must have at least three 2nd level "Creation" spells to meet the requirement.

*** Updated 5.10

Tag Name: PRESPELLTYPE:x,y=z

Variables Used (x): Number (Number of spells known).

Variables Used (y): Arcane (Arcane type spells).

Variables Used (y): Divine (Divine type spells).

Variables Used (y): Psionic (Psionic type spells).

Variables Used (y): ANY (Any type of spell).

Variables Used (z): Number (Spell level).

What it does:

- Sets spell type requirements. (Number of spells known of a specific type and level.)
- Use two, or more, PRESPELLTYPE tags if more than one spell type is required

Example:

`PRESPELLTYPE:4,Arcane=5`

Character must have at least four 5th level arcane spells to meet the requirement.

`PRESPELLTYPE:1,Arcane=3,Divine=3,Psionic=3`

Character must have at least one 3rd level spell from any of the "Arcane", "Divine", or "Psionic" types.

`PRESPELLTYPE:1,Arcane=3 <tab> PRESPELLTYPE:1,Divine=3`

Character must have at least one 3rd level "Arcane" type spell and one 3rd level "Divine" type spell.

Tag Name: PRESRx:y

Variables Used (x): EQ (Equals).

Variables Used (x): GT (Greater Than).

Variables Used (x): GTEQ (Greater Than or Equal to).

Variables Used (x): LT (Less Than).

Variables Used (x): LTEQ (Less Than or Equal to).

Variables Used (x): NEQ (Not Equal to).

Variables Used (y): Number (The minimum Spell Resistance required).

What it does:

Makes a character's spell resistance (not including SR from equipment) a prerequisite.

Example:

`PRESRGTEQ:10`

Character must have spell resistance of at least 10.

Tag Name: PRESTAT:x,y=z,y=z

Variables Used (x): Number (The number of stats that must match).

Variables Used (y): Text (The stats abbreviation - as defined in statsandchecks.lst).

Variables Used (z): Number (The minimum value of the stat).

What it does:

Sets stat requirements.

Examples:

`PRESTAT:1,STR=18`

Character must have an 18 Strength to meet the requirement.

`PRESTAT:1,STR=18,WIS=18`

Either STR or WIS at 18 - one of the two listed must meet the requirements.

`PRESTAT:2,STR=18,WIS=18`

BOTH STR and WIS at 18 - two of the two listed must meet the requirements.

`PRESTAT:1,STR=15,WIS=13`

Either STR at 15 or WIS at 13 - one of the two listed must meet the requirements.

`PRESTAT:2,STR=13,INT=10,CHA=13`

Either STR at 13, INT at 10 or CHA at 13 - two of the three listed must meet the requirements.

Tag Name: PRESUBCLASS:x,y,y

Variables Used (x): Number (number of needed occurrences).

Variables Used (y): Text (Subclass Name).

What it does:

Sets subclass requirements.

Examples:

`PRESUBCLASS:1,Evoker,Abjurer,Enchanter,Illusionist`

Character must be one of the listed subclasses.

Tag Name: PRETEMPLATE:x,y,y

Variables Used (x): Number (Number of templates required)

Variables Used (y): Text (Template name)

What it does:

- Sets template requirements. If one of the template names in the list matches, the prerequisite is met.
- The wildcard character (%) can be used within this tag.

Example:

`PRETEMPLATE:1,Celestial,Fiendish`

Character must be either "Celestial" or "Fiendish".

`PRETEMPLATE:1,Feral%`

Character must be any subrace of Feral.

Tag Name: PRETEXT:x

Variables Used (x): Text (Explanation of requirement)

What it does:

This is used when there are special requirements which are not covered by another PRExxx tag.

Mainly used for feats the text is displayed in the same field as the other pre-requisites.

This tag in itself does not disqualify anything but alerts the player to the additional pre-requisites.

Example:

`PRETEXT:Character must make a sacrifice of bananas to the Monkey God.`

Explains what additional requirements are needed for the character to qualify.

Tag Name: PRETYPE:x,y,y

Variables Used (x): Number (Number of types required)

Variables Used (y): Text (Type)

What it does:

- Sets specific "type" requirements appropriate to the object being applied to, i.e. Racial, Equipment, EqMod, Template, etc.
- See the `PRETYPE` entry in Equipment or Equipment Modifier files for usage.
- If you need to prerequisite race type from equipment you can use PRETEMPLATE to check for the racial type template.

Examples:

`PRETYPE:1,Elemental,Fey,Outsider`

Type must either "Elemental", "Fey" or "Outsider".

`PRETYPE:2,Humanoid,Undead`

Character must be an "Undead Humanoid".

`PRETYPE:1,Heavy`

Object must have the type "Heavy".

Tag Name: PREUATT:x

Variables Used:Number (Unarmed Attack Bonus number).

What it does:

Number indicates the minimum unarmed base attack bonus.

Example:

`PREUATT:4`

This would apply only if the PC had minimum unarmed attack bonus of 4.

Tag Name: PREVARx:y,z

Variables Used (x): EQ (Equals).

Variables Used (x): GT (Greater Than).

Variables Used (x): GTEQ (Greater Than or Equal to).

Variables Used (x): LT (Less Than).

Variables Used (x): LTEQ (Less Than or Equal to).

Variables Used (x): NEQ (Not Equal to).

Variables Used (y): Text (The name of a variable - as used in a DEFINE: or BONUS:VAR statement).

Variables Used (z): Number (The value the variable is to be compared to).

What it does:

Sets requirements based on user defined variables.

Example:

`PREVARGT:Rage,4`

Character must be able to rage more than four time per day.

`PREVARGT:SneakAttack,5`

Character must do Sneak Attack damage greater than 5d6.

`PREVARGT:SneakAttack,5,Rage,4`

Character must do Sneak Attack damage greater than 5d6 AND be able to rage more than four time per day.

Tag Name: PREVISION:x,y=z,y=z

Variables Used (x): Number (The number of vision types that must match the specified requirements).

Variables Used (y): Text (The vision types required).

Variables Used (z): Number (The distance of the vision types - optional).

What it does:

This sets the vision ability requirements. If there is an value at the end, all Visions in the list must be that value or higher to be considered valid.

Examples:

`PREVISION:2,Normal,Darkvision`

Character must have both Normal and Darkvision.

`PREVISION:1,Blindsight=30,Darkvision=30`

Character must have either Blindsight or Darkvision at at least 30.

Deprecated Syntax:

`PREVISION:x,y,y=z` - Deprecated 5.15.4 - Remove 6.0

The level (z) is now mandatory for all classes/class types (y) designated.

*** Updated

Tag Name: PREWEAPONPROF:x,y,y

Variables Used (x): Number (Number of matching proficiencies).

Variables Used (y): Text (Weapon proficiency name).

Variables Used (y): TYPE.Text (Weapon Proficiency type).

Variables Used (y): DEITYWEAPON (Deities favored weapon).

What it does:

- Sets requirements based upon weapon proficiencies held.
- Though types can be used within this tag, their use can be tricky and can sometiime produce unexpected or unwanted results.

Examples:

`PREWEAPONPROF:2,Kama,Katana`

Character must have proficiency with both the "Kama" and the "Katana".

`PREWEAPONPROF:1,TYPE.Exotic`

Character must have a weapon proficiency of type "Exotic".

`PREWEAPONPROF:1,TYPE.Martial,Chain (Spiked)`

Character must have either a weapon proficiency of type "Martial" or proficiency with "Chain (Spiked)".

`PREWEAPONPROF:1,DEITYWEAPON`

Character must have proficiency with one of the chosen deity's favored weapons.

Tag Name: PREWIELD:x,y

Variables Used (x): Number (The number of the wield categories that must match)

Variables Used (y): Text (Light,OneHanded or TwoHanded)

What it does:

Checks for wield category requirements (See WIELD).

Wield categories are defined in the miscinfo.lst gamemode file by the WIELDCATEGORY tag.

Because PREWIELD is checking for wield category requirements in equipment it is valid only in Equipment Modifiers.

Example:

`PREWIELD:1,Light,OneHanded`

Must be either Light or OneHanded.

`PREWIELD:1,TwoHanded`

Must be TwoHanded.

## Misc PRExxx Stuff

Tag Name: PRE:.CLEAR

Variables Used: .CLEAR

What it does:

Clear all prerequisites.

Example:

`PRE:.CLEAR`

Clears all prerequisites.

Tag Name: PRExxx:Q:data

Variables Used: Q

What it does:

This is a variation on any PRE tag listed above. Adding a Q: between the tag and it's data will cause it to take precedence over the QUALIFY tag. Thus allowing QUALIFY to null out some but not all prereqs.

Example:

`QUALIFY:Whirlwind Attack` (In Template)

`PRESTAT:Q:1,DEX=13` (In Whirlwind Attack Feat)

If you have QUALIFY:Whirlwind Attack in a template (which means the character ignores all the prereqs), but you still want the DEX prereq to be enforced, you would edit the PRE in the Whirlwind Attack feat to read as above.