# The BONUS Tag

All of the below Tags are used in Conjunction with the BONUS tag. The BONUS tag tells PCGen that the following information is to be added to a character, in the appropriate places.

Bonus tags are done in this format:

`BONUS:<category>|<group>|<formula>`

This can be followed by | delimitated PRExxx or TYPE= tags.

Each of the "Tag Names" in this page go in the <category> field, and the "Variables Used" go in the <group> field.

For the Formula syntax, see the DEFINE document page.

LIST is a special case in feats.lst It can be placed in most <group> categories. LIST will be replaced by the choice from the CHOOSE tag in the feat.

*** New 5.4, Updated 5.7.1

Tag Name: BONUS:CASTERLEVEL|x|y

Variables Used (x): Text (Class name)

Variables Used (x): DESCRIPTOR.Text (Spell descriptor name)

Variables Used (x): DOMAIN.Text (Domain name)

Variables Used (x): RACE.Text (Race name)

Variables Used (x): SCHOOL.Text (School name)

Variables Used (x): SPELL.Text (Spell name)

Variables Used (x): SUBSCHOOL.Text (Subschool name)

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

Variables Used (y): Number (Number to add to caster 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.
- The CASTERLEVEL tag is only used in spell.lst lines for DESC, DURATION and TARGETAREA tags.
- This BONUS statement can be used to increase just these output items.
- This BONUS statement will NOT increase spells known or spell slots. You must use BONUS:PCLEVEL for that.
- This BONUS statement can be used to set the caster level of innate racial spells.

Examples:

`BONUS:CASTERLEVEL|Sorcerer|1`

Adds 1 to Sorcerer spell caster level.

`BONUS:CASTERLEVEL|TYPE.Arcane|1`

Adds 1 to Arcane spell caster level.

`BONUS:CASTERLEVEL|RACE.Gelfling|4`

Sets Gelfling innate racial spell caster level to 4.

`BONUS:CASTERLEVEL|SPELL.Levitate|2`

Adds 2 to caster level for the 'Levitate' spell.

`BONUS:CASTERLEVEL|SCHOOL.Transmutation|2`

Adds 2 to caster level for all spells of the 'Transmutation' school.

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

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

(Note that the syntax used in this last example is only valid in a class line)

Additional qualifier: .RESET

.RESET is an additional qualifier that can be used for all subtags except CLASS and RACE. What .RESET does is resets the caster level to the value specified instead of adding it to PC's caster level (which is what would usually be done). Note that if any .RESET qualifier is encounterd then the caster level is reset even if other bonus tags do not have them. Also, mutiple .RESET encountered do not overwrite each other.

The syntax is: `BONUS:CASTERLEVEL|subtag.text.RESET|number`

Examples using .RESET:

`CASTERLEVEL|TYPE.Divine.RESET|(CASTERLEVEL.TOTAL)MAX10`

In this example all Divine spells would have a caster level of either 10 or the PC's default caster level, which ever is higher.

`BONUS:CASTERLEVEL|SPELL.Fireball.RESET|7`

`BONUS:CASTERLEVEL|SCHOOL.Evocation.RESET|3`

These two bonuses in combination would result in a caster level of 10 for Fireball (because it is also in the school of Evocation) and 3 for all other Evocation spells

Tag Name: BONUS:CHECKS|x,x|y

Variables Used (x): Text (Any check defined in the GameMode - e.g. Fortitude,Reflex,Willpower)

Variables Used (y): Number (Save Bonus)

What it does:

Adds to indicated saving throw.

Example:

`BONUS:CHECKS|Fortitude,Reflex|1`

Adds one to "Fortitude" and "Reflex" saves.

Tag Name: BONUS:CHECKS|BASE.x,BASE.x|y

Variables Used (x): Text (Any check defined in the GameMode - e.g. Fortitude,Reflex,Willpower)

Variables Used (y): Number (Save Bonus)

What it does:

Adds to indicated Base saving throw (normally only used in class progressions).

Example:

`BONUS:CHECKS|BASE.Fortitude,BASE.Reflex|1`

Adds one to the base "Fortitude" and "Reflex" saves.

*** New 4.3.9

Tag Name: BONUS:CHECKS|ALL|x

Variables Used (x): Number (Save Bonus)

What it does:

Adds to all saving throw.

Example:

`BONUS:CHECKS|ALL|1`

Adds one to the all saves.

Tag Name: BONUS:COMBAT|x

Variables Used (x): Text (Combat bonus type)

What it does:

Adds to indicated combat bonus.

Tag Name: BONUS:COMBAT|AC|x|y

Variables Used (x): Number (Armour class bonus)

Variables Used (y): Text (TYPE=<Armor bonus type>)

What it does:

Adds to indicated armor class bonus.

Examples:

`BONUS:COMBAT|AC|2|TYPE=Enhancement`

Increases enchantment armour bonus to two.

`BONUS:COMBAT|AC|1|TYPE=NaturalArmor`

Increases natural armour bonus to one.

Tag Name: BONUS:COMBAT|ATTACKS|x

Variables Used (x): Number (Number of primary hand attacks)

What it does:

Adds to number of attacks the primary hand gets.

Example:

`BONUS:COMBAT|ATTACKS|2`

Increases number of attacks to two.

Tag Name: BONUS:COMBAT|BAB|x

Variables Used (x): Formula (Number of primary hand attacks)

What it does:

- Adds to number of attacks the primary hand gets.
- Formula is used when determining the Base Attack Bonus for a class in the class line of an xxxclasses.lst file.

Example:

`BONUS:COMBAT|BAB|1`

Increases base attack bonus by one.

*** New 5.7.1

Tag Name: BONUS:COMBAT|DAMAGE.x|y

Variables Used (x): Text (<Damage type>)

Variables Used (y): Number or text (Damage bonus or stat name)

What it does:

Adds to damage bonus. Damage type can be Melee, Ranged, Unarmed, Shortrange, Thrown, Unarmed Strike or any weapon type such as Piercing, Slashing, Martial, Simple, Blunt, Projectile, etc.

Example:

`BONUS:COMBAT|DAMAGE.Melee|2`

Increases "Melee" damage bonus by two.

`BONUS:COMBAT|DAMAGE.Unarmed,DAMAGE.Thrown|DEX`

Adds the characters Dexterity modifier to both "Unarmed" and "Thrown" damage.

*** New 5.5.6

Tag Name: BONUS:COMBAT|DAMAGEMULT:x|y

Variables Used (x): Number (0 for off-hand, 1 for primary and 2 for two handed)

Variables Used (y): Number (Damage multiplier)

What it does:

Increases damage multiplier by the number specified.

System lst files define the following:

`BONUS:COMBAT|DAMAGEMULT:0|0.5`

`BONUS:COMBAT|DAMAGEMULT:1|1`

`BONUS:COMBAT|DAMAGEMULT:2|1.5`

Which means off hand wielded weapons have a damage bonus of half your strength bonus, primary wielded weapons have a damage bonus of your full strength bonus and weapons wielded with two hand have a damage bonus of your strength and half again.

This sub-tag can also be used in the BONUS:WEAPON and BONUS:WEAPONPROF tags though the syntax is slightly different so examples are provided here.

Example:

`BONUS:COMBAT|DAMAGEMULT:0|0.5`

Increases the damage multiplier by half your strength bonus. Combined with the existing bonus this bonus will total your full strength bonus for an off hand weapon.

`BONUS:WEAPON|DAMAGEMULT:1|.5`

Increases the damage multiplier of the weapon by half your strength bonus when wielding in your primary hand.

`BONUS:WEAPONPROF=Dagger|DAMAGEMULT:0|.5`

Increases the damage multiplier of the dagger weapon by half your strength bonus when wielding it off handed.

Tag Name: BONUS:COMBAT|INITIATIVE|x

Variables Used (x): Number (Initiative bonus)

What it does:

Adds to initiative.

Example:

`BONUS:COMBAT|INITIATIVE|3`

Increases initiative by three.

Tag Name: BONUS:COMBAT|REACH|x

Variables Used (x): Number (Reach)

What it does:

Modifies the PC's reach.

Example:

`BONUS:COMBAT|REACH|10`

Increases reach by ten feet.

Tag Name: BONUS:COMBAT|SECONDARYATTACKS|x

Variables Used (x): Number (Number of secondary attacks)

What it does:

Number of Secondary attacks.

Example:

`BONUS:COMBAT|SECONDARYATTACKS|1`

Increases secondary attacks to one.

Tag Name: BONUS:COMBAT|SECONDARYDAMAGE|x

Variables Used (x): Number or formula (Damage bonus)

What it does:

Adds to the damage dealt by a secondary attack.

Example:

`BONUS:COMBAT|SECONDARYDAMAGE|2`

Increases the secondary attack damage bonus by two.

*** New 5.3.12

Tag Name: BONUS:COMBAT|TOHIT|x

Variables Used (x): Number (adds to attack bonus)

What it does:

Adds to Primary Attack bonus.

Example:

`BONUS:COMBAT|TOHIT|2|TYPE=Luck`

Increases Attack bonus by two.

*** New 5.3.12

Tag Name: BONUS:COMBAT|TOHIT.x|y

Variables Used (x): GRAPPLE, MELEE, RANGED or any weapon type

Variables Used (y): Number (adds to attack bonus)

What it does:

Adds to Attack bonus of specific types.

Example:

`BONUS:COMBAT|TOHIT.THROWN|2|TYPE=Racial`

Increases Attack for thrown weapons bonus by two.

`BONUS:COMBAT|TOHIT.SLASHING|2|TYPE=Enhancement`

Increases Attack bonus by two when useing a Slashing weapon.

Tag Name: BONUS:COMBAT|TOHIT-PRIMARY|x

Variables Used (x): Number (Primary attack bonus)

What it does:

Adds to Primary Attack bonus.

Example:

`BONUS:COMBAT|TOHIT-PRIMARY|2`

Increases Primary Attack bonus to two.

Tag Name: BONUS:COMBAT|TOHIT-SECONDARY|x

Variables Used (x): Number (Secondary attack bonus)

What it does:

Adds to Secondary Attack bonus.

Example:

`BONUS:COMBAT|TOHIT-SECONDARY|1`

Increases Secondary Attack bonus to one.

*** New 5.3.12

Tag Name: BONUS:COMBAT|TOHIT-SHORTRANGE|x

Variables Used (x): Number (Number to add to To-Hit)

What it does:

Adds to ranged attack rolls that are less than game mode defined SHORTRANGE but does not effect attacks per round (The distance of SHORTRANGE is defined in the GameMode files).

Example:

`BONUS:COMBAT|TOHIT-SHORTRANGE|1`

Adds one to character's short range To-Hit attack rolls.

*** deprecated 4.3.8 - use BONUS:COMBAT|DAMAGE.x|y

Tag Name: BONUS:DAMAGE|x

*** deprecated 5.5.8 - use BONUS:COMBAT|DAMAGE.x|y

Tag Name: BONUS:DAMAGE|TYPE.x|y

*** Updated 5.5.5

Tag Name: BONUS:DC|SPELL.x|y

Variables Used (x): Text (Spell name)

Variables Used (y): Number (DC increase)

What it does:

Adds to the DC (Difficulty Class) of a specific spell.

Example:

`BONUS:DC|SPELL.Fireball|7`

Adds 7 to the DC of the spell Fireball.

*** Updated 5.3.3 - Replaces the deprecated ALL tag

Tag Name: BONUS:DC|ALLSPELLS|x

Variables Used (x): Number (DC increase)

What it does:

Adds to the DC (Difficulty Class) of all spells.

Example:

`BONUS:DC|ALLSPELLS|1`

Adds 1 to the DC of all spells.

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

Variables Used (x): Text (Name of class)

Variables Used (y): Number (DC increase)

What it does:

Adds to the DC (Difficulty Class) of spells of the specified caster class.

Example:

`BONUS:DC|CLASS.Sorcerer|2`

Adds 2 to the DC of sorcerer spells.

Tag Name: BONUS:DC|DESCRIPTOR.x|y

Variables Used (x): Text (Name of descriptor)

Variables Used (y): Number (DC increase)

What it does:

Adds to the DC (Difficulty Class) of spells with the specified descriptor.

Examples:

`BONUS:DC|DESCRIPTOR.Law|4`

Adds 4 to the DC of any spells with the Law descriptor.

`BONUS:DC|DESCRIPTOR.Law,DOMAIN.Law|3`

Adds 3 to the DC of any spells with the Law domain or descriptor and would add 6 to a spell with both the Law Domain and Law Descriptor.

Tag Name: BONUS:DC|DOMAIN.x|y

Variables Used (x): Text (Name of domain)

Variables Used (y): Number (DC increase)

What it does:

Adds to the DC (Difficulty Class) of spells with the specified domain.

Example:

`BONUS:DC|DOMAIN.War|6`

Adds 6 to the DC of War Domain spells.

Tag Name: BONUS:DC|SCHOOL.x|y

Variables Used (x): Text (Name of school)

Variables Used (y): Number (DC increase)

What it does:

Adds to the DC (Difficulty Class) of spells of the specified spell school.

Example:

`BONUS:DC|SCHOOL.Enchantment|2`

Adds 2 to Enchantment school spells.

Tag Name: BONUS:DC|SUBSCHOOL.x|y

Variables Used (x): Text (Name of subschool)

Variables Used (y): Number (DC increase)

What it does:

Adds to the DC (Difficulty Class) of spells of the specified spell subschool.

Example:

`BONUS:DC|SUBSCHOOL.something|5`

Adds 5 to the any spell with a subschool of "something".

Tag Name: BONUS:DC|TYPE.x|y

Variables Used (x): Text (Spell type)

Variables Used (y): Number (DC increase)

What it does:

Adds to the DC (Difficulty Class) of spells of the specified spell type.

Example:

`BONUS:DC|TYPE.Arcane|3`

Adds 3 to arcane spell DCs.

Tag Name: BONUS:DR|x|y

Variables Used (x): Text (Damage reduction type)

Variables Used (y): Number (Damage reduction amount)

What it does:

Adds a bonus to a Damage Reduction type, previously defined by a standard DR tag (the BONUS tag needs to be coordinated with a DR:#/<string>).

Example:

`BONUS:DR|+1|10`

If the +1 DR type, was currently at 5/+1 this tag would add 10 making it 15/+1.

Tag Name: BONUS:DOMAIN|NUMBER|x

Variables Used (x): Number (Number of additional Domains)

What it does:

Add additional domain selections to the character. If this is in a CLASS with SPELLSTAT: and SPELLTYPE tags, it will also grant 1 spell per level from 1-9 that the class chose from the domains.

Examples:

`BONUS:DOMAIN|NUMBER|1`

Character gains access to one additional Domain.

`BONUS:DOMAIN|NUMBER|3`

Character gains access to three additional Domains.

Tag Name: BONUS:EQM|HANDS|x

Variables Used (x): Number (Hands required by item)

What it does:

Modifies the number of hands required for the item (Valid only on equipment modifiers).

Examples:

`BONUS:EQM|HANDS|1`

Sets the number of hands required by the item to one.

`BONUS:EQM|HANDS|-EQHANDS`

Sets the number of hands required by the item to zero.

Tag Name: BONUS:EQM|WEIGHTADD|x

Variables Used (x): Number (Number to add to weight)

What it does:

Modifies the weight of the item (Valid only on equipment modifiers).

Example:

`BONUS:EQM|WEIGHTADD|0.5`

Adds half a weight unit to the item's weight.

Tag Name: BONUS:EQM|WEIGHTDIV|x

Variables Used (x): Number (Number divide weight by)

What it does:

Modifies the weight of the item (Valid only on equipment modifiers).

Example:

`BONUS:EQM|WEIGHTDIV|2`

Divides the weight of the item in half.

Tag Name: BONUS:EQM|WEIGHTMULT|x

Variables Used (x): Number (Number multiply weight by)

What it does:

Modifies the weight of the item (Valid only on equipment modifiers).

Example:

`BONUS:EQM|WEIGHTMULT|2`

Doubles the weight of the item.

Tag Name: BONUS:EQMARMOR|ACCHECK|x

Variables Used (x): Number (Number to add to armor check penalty)

What it does:

Modifies the armor check panalty of the item (Valid only on equipment modifiers).

Example:

`BONUS:EQMARMOR|ACCHECK|-3`

Decreases the armor check penalty by 3.

Tag Name: BONUS:EQMARMOR|EDR|x

Variables Used (x): Number (Number to add to damage resistance)

What it does:

Modifies the EDR (Effective damage resistance) of the item (Valid only on equipment modifiers).

Example:

`BONUS:EQMARMOR|EDR|1`

Makes the damage resistance for the armor 1 higher.

Tag Name: BONUS:EQMARMOR|MAXDEX|x

Variables Used (x): Number (Number to add to maximum dexterity)

What it does:

Modifies the maximum dexterity applicable to users of the item (Valid only on equipment modifiers).

Example:

`BONUS:EQMARMOR|MAXDEX|2`

Increases maximum dexterity bonus of the armor by 2.

Tag Name: BONUS:EQMARMOR|SPELLFAILURE|x

Variables Used (x): Number (Number to add to Spell Failure %)

What it does:

Modifies the spell failure percentage applicable to users of the item (Valid only on equipment modifiers).

Example:

`BONUS:EQMARMOR|SPELLFAILURE|-10`

Decreases the spell failure chance of the armor by 10%.

Tag Name: BONUS:EQMWEAPON|CRITRANGEADD|x

Variables Used (x): Number (Number to add to the critical range)

What it does:

Modifies the critical range of the item (Valid only on equipment modifiers).

Example:

`BONUS:EQMWEAPON|CRITRANGEADD|1`

Increases the critcal threat range of the weapon by 1.

Tag Name: BONUS:EQMWEAPON|CRITRANGEDOUBLE|x

Variables Used (x): Number (Number to add to the critical range)

What it does:

Modifies the critical range of the item (Valid only on equipment modifiers).

Example:

`BONUS:EQMWEAPON|CRITRANGEDOUBLE|1`

Doubles the critical threat range of the weapon.

Tag Name: BONUS:EQMWEAPON|DAMAGESIZE|x

Variables Used (x): Number (Number to add to damage size)

What it does:

Modifies the damage size of the item (Valid only on equipment modifiers).

Example:

`BONUS:EQMWEAPON|DAMAGESIZE|1`

Modifies the weapon's damage as if it were 1 size larger.

Tag Name: BONUS:EQMWEAPON|RANGEADD|x

Variables Used (x): Number (Number to add to distance range)

What it does:

Modifies the range of the item (Valid only on equipment modifiers).

Example:

`BONUS:EQMWEAPON|RANGEADD|10`

Adds 10 distance units to the weapon's range.

Tag Name: BONUS:EQMWEAPON|RANGEMULT|x

Variables Used (x): Number (Number to multiply the distance range by)

What it does:

Modifies the range of the item (Valid only on equipment modifiers).

Example:

`BONUS:EQMWEAPON|RANGEMULT|2`

Doubles the range of the weapon.

*** New 5.7.6

Tag Name: BONUS:FEAT|POOL|x

Variables Used (x): Number or Formula (Number to add or subtract from the feat pool)

What it does:

Modifies the characters feat pool total. Can be qualified by PRExxx tags and TYPE tags like other BONUS tags.

Example:

`BONUS:FEAT|POOL|1`

Increases the feat pool by one.

`BONUS:FEAT|POOL|1|TYPE=Enhancement`

Increases the feat pool by one and will not stack with other BONUS:FEAT|POOL tags with TYPE=Enhancement.

`BONUS:FEAT|POOL|-1|PREFEAT:1,Alertness`

Decreases the feat pool by one if the character has the feat Alertness.

Tag Name: BONUS:HD|x|y

Variables Used (x): Property (MIN or MAX)

Variables Used (y): Number (Number to increase the Hit Dice by)

What it does:

Increases characters Hit Dice size. Valid only in Class lines.

Example:

`BONUS:HD|MAX|2`

Increases maximum of the HD by two points (1d4 goes to 1d6).

`BONUS:HD|MIN|1`

Increases the minumum of the HD by 1 point (1d4 goes to 1d3+1 for example 2 - 4 are the possibilities).

Tag Name: BONUS:HP|CURRENTMAX|x

Variables Used (x): Number (Number to add to hit points)

What it does:

Adds to total Hit Points.

Example:

`BONUS:HP|CURRENTMAX|2`

Character gains two additional hit points.

Tag Name: BONUS:HP|ALTHP|x

Variables Used (x): Number (Number to add to secondary hit points, as defined in miscinfo.lst)

What it does:

Adds to secondary Hit Points.

Example:

`BONUS:HP|ALTHP|3`

Adds three to total the secondary hit points.

Tag Name: BONUS:ITEMCOST|TYPE.x.x|y

Variables Used (x): Text (Item Type)

Variables Used (y): Number (Cost formula)

What it does:

Used in Equipment and Equipment Modifiers, applies the cost formula to the equipment if it has all the listed types. Any formula that is valid in an EQMOD COST tag can be used. Like most BONUS tags ITEMCOST can be qualified with PRExxx tags.

Example:

`BONUS:ITEMCOST|TYPE.Weapon|200`

Adds 200 to the cost if the item has the Weapon type.

`BONUS:ITEMCOST|TYPE.Armor.Light|BASECOST*2`

Doubles the cost if the item has the Armor and Light types.

Tag Name: BONUS:MISC|ACCHECK|x

Variables Used (x): Number (Number to add to armor check)

What it does:

Modifies the characters armor check.

Example:

`BONUS:MISC|ACCHECK|1`

Adds one to total Armor Check.

Tag Name: BONUS:MISC|MAXDEX|x

Variables Used (x): Number (Number to add to the maximum derterity)

What it does:

Modifies the characters maximum dexterity armor penalty.

Example:

`BONUS:MISC|MAXDEX|1`

Adds one to total Maximum Dex allowed while wearing armor.

Tag Name: BONUS:MISC|SPELLFAILURE|x

Variables Used (x): Number (Number to add to the spell failure percentage)

What it does:

Modifies the characters spell failure armor penalty.

Example:

`BONUS:MISC|SPELLFAILURE|5`

Adds 5% to Spell Failure chance.

Tag Name: BONUS:MISC|SR|x

Variables Used (x): Number (Number to add to spell resistance)

What it does:

Modifies the characters spell resistance.

Example:

`BONUS:MISC|SR|10`

Adds 10 to the spell resistance.

*** Deprecated 4.3.8 Use BONUS:MOVEADD or BONUS:POSTMOVEADD

Tag Name: BONUS:MOVE|x|y

*** New 4.3.8

Tag Name: BONUS:MOVEADD|TYPE.x|y

Variables Used (x): Text (Movement type)

Variables Used (y): Number (Number to add to movement rate)

What it does:

- Adds to movement to the listed TYPE.
- Done before MOVEMULT and POSTMOVEADD calculations.
- It only works on MOVE types that have been defined in a MOVE or MOVECLONE tag.
- PRExxx tags can also be used with this tag.

Examples:

`BONUS:MOVEADD|TYPE.Walk|10`

Adds 10 to Walk.

`BONUS:MOVEADD|TYPE.Walk|5|PREVARLT:ENCUMBERANCE,1`

Adds 5 to Walk so long as the character is not at medium load.

*** New 4.3.8

Tag Name: BONUS:MOVEMULT|TYPE.x|y

Variables Used (x): Text (Movement type)

Variables Used (y): Number (Number to multiply the movement rate)

What it does:

- Multiplies the movement of the listed TYPEs.
- Done before MOVEMULT and POSTMOVEADD calculations.
- It only works on MOVE types that have been defined in a MOVE or MOVECLONE tag.
- PRExxx tags can also be used with this tag.

Example:

`BONUS:MOVEMULT|TYPE.Walk,TYPE.Fly|2`

Multiplies the Walk & Fly movement rates by two.

Tag Name: BONUS:PCLEVEL|x|y

Variables Used (x): Text (Class name)

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

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

What it does:

- Sets the spellcasting level higher than the current class level.
- The character must already have a level in the class to gain the bonus spellcasting level.

Examples:

`BONUS:PCLEVEL|Sorcerer|1`

Adds 1 to Sorcerer spell caster level.

`BONUS:PCLEVEL|TYPE.Arcane|1`

Adds 1 to Arcane spell caster level.

Tag Name: BONUS:PCLEVEL|Type=x|y

Variables Used (x): Text (Spell type)

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

What it does:

- Sets the spellcasting level higher than the current class level.
- The character must already have a level in the class to gain the bonus spellcasting level.

Example:

`BONUS:PCLEVEL|TYPE=Arcane|1`

Adds 1 level to all arcane spellcaster levels that the character already has levels in.

*** New 4.3.8

Tag Name: BONUS:POSTMOVEADD|TYPE.x|y

Variables Used (x): TYPE.Text (Movement type)

Variables Used (y): Number (Number to add to movement rate)

What it does:

- Adds to movement to the listed TYPE.
- Done after MOVEMULT and MOVEADD calculations.
- It only works on MOVE types that have been defined in a MOVE or MOVECLONE tag.
- PRExxx tags can also be used with this tag.

Example:

`BONUS:POSTMOVEADD|TYPE.Walk|10`

Adds 10 to Walk.

Tag Name: BONUS:POSTRANGEADD|x|y

Variables Used (x): Text (PROJECTILE or THROWN)

Variables Used (y): Number (Number to add to range)

What it does:

- Increases range by percent.
- PROJECTILE and THROWN are hardcoded types (will be changed later).
- See also RANGEMULT and POSTRANGEADD.
- POSTRANGEADD is applied after all RANGEADD and RANGEMULT tags.

Examples:

`BONUS:POSTRANGEADD|PROJECTILE|5`

Would increase the range of projectile weapons by 5%.

`BONUS:POSTRANGEADD|THROWN|10`

Would increase the range of thrown weapons by 10%.

Tag Name: BONUS:RANGEADD|x|y

Variables Used (x): Text (PROJECTILE or THROWN)

Variables Used (y): Number (Number to add to range)

What it does:

- Increases range by percent.
- PROJECTILE and THROWN are hardcoded types (will be changed later).
- See also RANGEMULT and POSTRANGEADD.
- RANGEADD will be applied before any RANGEMULT and POSTRANGEADD tags.

Examples:

`BONUS:RANGEADD|PROJECTILE|5`

Would increase the range of projectile weapons by 5%.

`BONUS:RANGEADD|THROWN|10`

Would increase the range of thrown weapons by 10%.

Tag Name: BONUS:RANGEMULT|x|y

Variables Used (x): Text (PROJECTILE or THROWN)

Variables Used (y): Number (Number to add to range)

What it does:

- Increases range by percent.
- PROJECTILE and THROWN are hardcoded types (will be changed later).
- See also RANGEADD and POSTRANGEADD.
- RANGEMULT will be applied after all RANGEADD tags, but before all POSTRANGEADD tags.

Examples:

`BONUS:RANGEMULT|PROJECTILE|50`

Would increase the range of projectile weapons by 50% (x1.5).

`BONUS:RANGEMULT|THROWN|100`

Would increase the range of thrown weapons by 100% (x2).

Tag Name: BONUS:SIZEMOD|NUMBER|x

Variables Used (x): Number (Number of size categories to adjust)

What it does:

- Moves the character's size up or down the size range by the indicated number of steps.
- All stat modifications caused by a size change will take effect.
- Size Categories in order are: Fine, Diminutive, Tiny, Small, Medium, Large, Huge, Gargantuan, Colossal.

Examples:

`BONUS:SIZEMOD|NUMBER|1`

Adds one to size. A "Medium" character would become "Large".

`BONUS:SIZEMOD|NUMBER|-2`

Reduces size by two. A "Medium" character would become "Tiny".

Tag Name: BONUS:SKILL|x,x|y

Variables Used (x): Text (Skill name)

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

What it does:

Adds to listed skills.

Example:

`BONUS:SKILL|Bluff,Listen|10`

Adds 10 to "Bluff" & "Listen".

*** New 4.3.9

Tag Name: BONUS:SKILL|ALL|x

Variables Used (x): Number (Number to add to skill level)

What it does:

Grants bonus to all skills.

Example:

`BONUS:SKILL|ALL|1`

Adds one to all skills.

Tag Name: BONUS:SKILL|LIST|x

Variables Used (x): Number (Number to add to skill level)

What it does:

LIST is replaced by the selection from the CHOOSE statement (Used in Feat.lst).

Example:

`BONUS:SKILL|LIST|2`

Adds two to selected "Strength" skill.

Tag Name: BONUS:SKILL|STAT.x|y

Variables Used (x): Text (Stat name)

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

What it does:

Adds to skills based on a stat.

Example:

`BONUS:SKILL|STAT.STR|1`

Adds one to all "Strength" based skills.

Tag Name: BONUS:SKILLRANK|x

Variables Used (x): Number (Number to add to skill level)

What it does:

Adds to skill ranks (Maximum ranks still apply).

Example:

`BONUS:SKILLRANK|Bluff,Listen|2`

Adds two to "Bluff" & "Listen" skills.

Tag Name: BONUS:SKILLPOINTS|NUMBER|x

Variables Used (x): Number (Number to add to skill level)

What it does:

- Adds to the number of skill ranks gained when the character gains a level.
- Not retroactive.
- PRExxx tags may be used with this tag.

Examples:

`BONUS:SKILLPOINTS|NUMBER|1`

Adds one skill point per level.

`BONUS:SKILLPOINTS|NUMBER|4|PRELEVELMAX:1`

Adds 4 additional skillpoints to the character at first level only, above and beyond any other skillpoints gained for race or class, etc.

`BONUS:SKILLPOINTS|NUMBER|6|PRELEVELMAX:3`

Adds 6 additional skillpoints to the character at first to third levels only, above and beyond any other skillpoints gained for race or class, etc.

*** New 5.3.9

Tag Name: BONUS:SKILLPOOL|NUMBER|x

Variables Used (x): Number (Number to add to skill pool)

What it does:

- Adds to the number of skill points to the class at the level that the bonus appears in
- PRExxx tags may be used with this tag.
- Valid only in class lines.

Examples:

`BONUS:SKILLPOOL|NUMBER|1`

Adds one skill point to the skill pool.

`BONUS:SKILLPOOL|NUMBER|1|PREFEAT:1,Scribe Scroll`

Adds one skill point to the skill pool if the character has the Scribe Scroll Feat.

*** New 5.3.9

Tag Name: BONUS:SKILLPOOL|CLASS=x;LEVEL=y|z

Variables Used (x): Text (Class the points are to be awarded to)

Variables Used (y): Number (Class Level the points are to be awarded to)

Variables Used (z): Number (Number of points to be added to skill the pool)

What it does:

- Adds to the number of points in the skill pool of the class at the level specified.
- PRExxx tags may be used with this tag.

Examples:

`BONUS:SKILLPOOL|CLASS=Fighter;LEVEL=2|2`

Adds 2 additional skillpoints to the characters skill pool at the second level of the characters Fighter Class.

`BONUS:SKILLPOOL|CLASS=Wizard;LEVEL=5|4PRESTAT:1,INT=18`

Adds 4 additional skillpoints to the characters skill pool at the fifth level of the characters Wizard Class if he has an intelligence of 18 or better.

*** Updated 5.7.3

Tag Name: BONUS:SLOTS|x|y

Variables Used (x): Text (Slot type)

Variables Used (x): LIST (When used in conjunction with CHOOSE)

Variables Used (y): Number (Number of item slots)

What it does:

- Adds to the number of items usable in the defined slot.
- Slot Types defined are:
  - AMULET
  - BELT
  - BOOT
  - BRACER
  - CAPE
  - EYEGEAR
  - GLOVE
  - HANDS (Hands effects the number of weapons the character can wield - Not fully supported)
  - HEADGEAR
  - LEGS (Legs effects weight carry capacity if defined in GameMode - Not fully supported)
  - RING
  - ROBE
  - SHIRT
  - SUIT

Example:

`BONUS:SLOTS|RING|1`

Adds one ring slot to character.

`BONUS:SLOTS|LIST|1 <tab> CHOOSE:Armor|Shield|Bracer`

Adds one slot chosen from Armor, Shield or Bracer to the character.

Tag Name: BONUS:SPELLCAST|CLASS=x;LEVEL=y|z

Variables Used (x): Text (Class name)

Variables Used (y): Number (Spell level)

Variables Used (z): Number (Number of spells)

What it does:

Adds additional spell slots.

Example:

`BONUS:SPELLCAST|CLASS=Wizard;LEVEL=1|1`

You can cast 1 more 1st lvl `Wizard` spell.

Tag Name: BONUS:SPELLCAST|TYPE=x;LEVEL=y|z

Variables Used (x): Text (Spell type)

Variables Used (y): Number (Spell level)

Variables Used (z): Number (Number of spells)

What it does:

Adds additional spell slots.

Example:

`BONUS:SPELLCAST|TYPE=Arcane;LEVEL=1|1`

You can cast 1 more 1st lvl spell of Arcane type.

Tag Name: BONUS:SPELLCASTMULT|CLASS=x;LEVEL=y|z

Variables Used (x): Text (Class name)

Variables Used (y): Number (Spell level)

Variables Used (z): Number (Number of spells)

What it does:

Adds additional spell slots.

Example:

`BONUS:SPELLCASTMULT|CLASS=Wizard;LEVEL=1|2`

You can cast 2 times as many 1st lvl `Wizard` spells as normal.

Tag Name: BONUS:SPELLCASTMULT|TYPE=x;LEVEL=y|z

Variables Used (x): Text (Spell type)

Variables Used (y): Number (Spell level)

Variables Used (z): Number (Number of spells)

What it does:

Adds additional spell slots.

Example:

`BONUS:SPELLCASTMULT|TYPE=Arcane;LEVEL=1|2`

You can cast 2 times as many 1st lvl spell of Arcane type as normal.

Tag Name: BONUS:SPELLKNOWN|CLASS=x;LEVEL=y|z

Variables Used (x): Text (Class name)

Variables Used (y): Number (Spell level)

Variables Used (z): Number (Number of spells)

What it does:

Adds additional known spells.

Example:

`BONUS:SPELLKNOWN|CLASS=Bard;LEVEL=1|1`

You know 1 more 1st lvl Bard spell.

Tag Name: BONUS:SPELLKNOWN|TYPE=x;LEVEL=y|z

Variables Used (x): Text (Spell type)

Variables Used (y): Number (Spell level)

Variables Used (z): Number (Number of spells)

What it does:

Adds additional known spells.

Example:

`BONUS:SPELLKNOWN|TYPE=Arcane;LEVEL=1|1`

You know 1 more 1st lvl spell of Arcane type.

*** New 5.5.2

Tag Name: BONUS:SPELLKNOWNMULT|CLASS=x;LEVEL=y|z

Variables Used (x): Text (Class name)

Variables Used (y): Number (Spell level)

Variables Used (z): Number (Number of spells)

What it does:

Adds additional known spells.

Example:

`BONUS:SPELLKNOWN|CLASS=Bard;LEVEL=1|2`

You know 2 times more 1st lvl Bard spells.

*** New 5.5.2

Tag Name: BONUS:SPELLKNOWNMULT|TYPE=x;LEVEL=y|z

Variables Used (x): Text (Spell type)

Variables Used (y): Number (Spell level)

Variables Used (z): Number (Number of spells)

What it does:

Adds additional known spells.

Example:

`BONUS:SPELLKNOWN|TYPE=Arcane;LEVEL=1|2`

You know 2 times more 1st lvl spells of Arcane type.

Tag Name: BONUS:STAT|x,x|y

Variables Used (x): Text (Stat name)

Variables Used (y): Number (Number to adjust stat by)

What it does:

Adds to character stats (stat can be any stat that has been defined in the statsandchecks.lst system file).

Examples:

`BONUS:STAT|STR|2`

Adds two to character's STR stat.

`BONUS:STAT|DEX,CON,INT|1`

Adds 1 to character's DEX, CON, & INT stats.

*** New 5.5

Tag Name: BONUS:STAT|BASESPELLKNOWNSTAT|x

Variables Used (x): Number (Number to adjust stat bonus by)

What it does:

Adds a virtual bonus to characters base spell stat bonus when PCGen calculates the number of spells the character knows.

Example:

`BONUS:STAT|BASESPELLKNOWNSTAT|1`

Adds 1 to all of the character's base spell stat bonus when calculating the number of spells known.

*** New 5.5

Tag Name: BONUS:STAT|BASESPELLKNOWNSTAT:Class=x|y

Variables Used (x): Text (Class name)

Variables Used (y): Number (Number to adjust stat bonus by)

What it does:

Adds a virtual bonus to characters base spell stat bonus when PCGen calculates the number of spells the character knows for the class specified.

Example:

`BONUS:STAT|BASESPELLKNOWNSTAT:Class=Wizard|2`

Adds 2 to character's base spell stat bonus for the Wizard class when calculating the number of spells known.

Tag Name: BONUS:STAT|BASESPELLSTAT|x

Variables Used (x): Number (Number to adjust stat bonus by)

What it does:

Adds to characters base spell stat bonus.

Example:

`BONUS:STAT|BASESPELLSTAT|1`

Adds 1 to all of the character's base spell stat bonus.

Tag Name: BONUS:STAT|BASESPELLSTAT:Class=x|y

Variables Used (x): Text (Class name)

Variables Used (y): Number (Number to adjust stat by)

What it does:

Adds to character base spell stat bonus for the class specified.

Example:

`BONUS:STAT|BASESPELLSTAT:Class=Wizard|2`

Adds 2 to character's base spell stat bonus for the Wizard class.

*** deprecated 5.3.12 - use BONUS:COMBAT|TOHIT|x

Tag Name: BONUS:TOHIT|x

*** deprecated 5.3.12 - use BONUS:COMBAT|TOHIT-SHORTRANGE|x

Tag Name: BONUS:TOHIT-SHORTRANGE|x

*** 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.

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.

*** Updated 5.7.3

Tag Name: BONUS:VAR|x,x|y

Variables Used (x): Text (Variable name)

Variables Used (y): Number (Number to adjust variable by)

What it does:

- Adds to a data DEFINEd VARiable.
- A DEFINE tag for the listed variable must be somewhere attached to the character for a BONUS to have any effect.

Examples:

`BONUS:VAR|SneakAttack|2`

Adds 2 to character's SneakAttack variable.

`BONUS:VAR|SneakAttack,TrapSense|1`

Adds 1 to character's SneakAttack and TrapSense variables.

*** New 5.5.5

Tag Name: BONUS:VISION|x|y

Variables Used (x): Text (Vision type)

Variables Used (y): Number (Number or formula to adjust vision range by)

What it does:

Adds the vision type specified if you don't already have it, otherwise it increases the range of the vision type by the number specified.

Vision types include (but are not limited to): Blindsense, Darkvision, Low-Light.

Example:

`BONUS:VISION|DarkVision|30`

Adds DarkVision (30') if you don't have Darkvision, otherwise it increases your darkvision range by 30'.

`BONUS:VISION|DarkVision|((CL/4).TRUNC+1)*10`

Increases a characters Darkvision by 10 feet every four levels starting at 1st level.

*** Updated 5.5.2

Tag Name: BONUS:WEAPON|x,x|y

Variables Used (x): Text (Bonus type)

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

What it does:

- Modifies the indicated attribute of the weapon named.
- This tag only works in Equipment and Equipmod files.
- Bonus types defined are:
  - ATTACKS (Adds a number of additional attacks)
  - ATTACKSPROGRESS (overrides the standard attack progression)
  - DAMAGE (Adds to the damage of the weapon)
  - DAMAGEMULT (Adds to the damage multiplier, See BONUS:COMBAT|DAMAGEMULT for syntax)
  - DAMAGE-SHORTRANGE (Adds to the damage of the weapon when used at short range)
  - TOHIT (Adds to the attack bonus of the weapon)
  - TOHIT-SHORTRANGE (Adds to the attack bonus of the weapon when used at short range)
  - WIELDCATEGORY (Raises or lowers the wieldcatagory of the weapon)

Examples:

`BONUS:WEAPON|DAMAGE|1`

Adds one to weapon damage.

`BONUS:WEAPON|DAMAGE-SHORTRANGE|1`

Adds one to short range weapon damage.

`BONUS:WEAPON|TOHIT|1`

Adds one to weapon to-hit.

`BONUS:WEAPON|TOHIT-SHORTRANGE|1`

Adds one to short range weapon to-hit.

`BONUS:WEAPON|TOHIT,DAMGE|1`

Adds one to weapon to-hit and damage.

`BONUS:WEAPON|ATTACKS|1`

Adds one attack to the weapons attack progression.

`BONUS:WEAPON|ATTACKSPROGRESS|1`

Limits the weapons attack progression to one.

`BONUS:WEAPON|WIELDCATEGORY|1`

Raises the weapons wieldcatagory, if it were Light it becomes OneHanded.

*** Updated 5.5.2

Tag Name: BONUS:WEAPONPROF=x|y,y|z

Variables Used (x): Text (Weapon proficiency name)

Variables Used (x): TYPE.Text (Weapon proficiency type)

Variables Used (y): Text (Bonus type)

Variables Used (z): Number (Number to add)

What it does:

- Modifies the indicated attribute of the weapon proficiency or weapon proficiency type.
- Bonus types defined are:
  - CRITMULTADD (Adds to the critical multiplier of the weapon)
  - CRITRANGEADD (Adds to the critical range of the weapon)
  - CRITRANGEDOUBLE (Doubles the critical range of the weapon)
  - DAMAGE (Adds to the damage of the weapon)
  - DAMAGEMULT (Adds to the damage multiplier, See BONUS:COMBAT|DAMAGEMULT for syntax)
  - DAMAGE-SHORTRANGE (Adds to the damage of the weapon at short range as defined in the GameMode files)
  - PCSIZE (Adds to the characters size in relation to the weapon)
  - TOHIT (Adds to the attack bonus of the weapon)
  - TOHIT-SHORTRANGE (Adds to the attack bonus of the weapon at short range as defined in the GameMode files)
  - TOHITOVERSIZE (Decreases the handedness of a weapon)
  - WIELDCATEGORY (Raises or lowers the wieldcatagory of the weapon)

Examples:

`BONUS:WEAPONPROF=Dagger|DAMAGE|1`

Adds one to dagger weapon damage.

`BONUS:WEAPONPROF=Dagger|DAMAGE,TOHIT|2`

Adds two to dagger weapon attack bonus and damage.

`BONUS:WEAPONPROF=TYPE.Martial|CRITRANGEADD|1`

Adds one to the critical range of any Martial type weapon.

`BONUS:WEAPONPROF=Shortbow|DAMAGE-SHORTRANGE|1`

Adds one to the damage of Shortbows at short range.

`BONUS:WEAPONPROF=Longsword|PCSIZE|1`

Allows a small character to use a longsword as if he were medium sized.

`BONUS:WEAPONPROF=Greatsword|TOHITOVERSIZE|1`

Allows a medium character to use a Greatsword one handed without penalty.

`BONUS:WEAPONPROF=Longsword|WIELDCATEGORY|-1`

Lowers the weapons wieldcatagory, if it were OneHanded it becomes Light.

*** New 5.5.2

Tag Name: BONUS:WIELDCATEGORY|x,x|y

Variables Used (x): Light (Effects Light weapon catagory)

Variables Used (x): OneHanded (Effects OneHanded weapon catagory)

Variables Used (x): TwoHanded (Effects TwoHanded weapon catagory)

Variables Used (x): ALL (Effects all weapon catagories)

Variables Used (y): Number (Number to increase or decrease the category by)

What it does:

Changes the wield category of weapons a character may use.

The wield category names are defined in the system/gameModes/miscinfo.lst file.

Example:

`BONUS:WIELDCATEGORY|TwoHanded|-1`

Allows a character to wield any larger Two Handed weapon than would normally be allowed.

`BONUS:WIELDCATEGORY|ALL|-1`

Allows a character to use all weapons that are one Size Category larger.

`BONUS:WIELDCATEGORY|OneHanded,Light|1`

Allows a character to use smaller 'Light' and 'OneHanded' weapons than would normally be allowed.

## Miscellaneous Notes on BONUS's

Each bonus comes in four different types.

1. The Typeless bonus with no type
2. The Standard bonus with type (TYPE=name)
3. The .REPLACE bonus type (TYPE=name.REPLACE)
4. The .STACK bonus type (TYPE=name.STACK)

Bonus Type: Typeless

What it does:

- These have no TYPE= statement, and are always added into the final result.
- Because it is typeless, it can not be tracked in the OS sheets in a breakdown by bonus type.

Examples:

`BONUS:HP|CURRENTMAX|3`

This bonus would grant the character an additional three hit points.

`BONUS:SKILL|Bluff,Listen|4`

This bonus would grant the character a bonus to the listed skills of four.

`BONUS:SKILL|STAT=DEX|1`

This would grant the character a bonus of one to all skills based on DEX.

Bonus Type: Standard

What it does:

- These have a TYPE=name and are used for stacking purposes.
- There is a special system file called system\bonusstacks.lst.
- If a TYPE is listed in that file, then these TYPEs behave just like a typeless bonus.
- Otherwise, only the highest value of the same type is used in the final result.

Examples:

`BONUS:HP|CURRENTMAX|2|TYPE=Luck
BONUS:HP|CURRENTMAX|3|TYPE=Luck`

So long as the 'Luck' type is not listed in bonusstacks.lst, these two would result in a final value of 3, since 3 is the largest 'Luck' type.

`BONUS:SKILL|Bluff,Listen|3|TYPE=Luck
BONUS:SKILL|Bluff,Listen|4|TYPE=Divine`

These would return a 3 from Luck, and a 4 from Divine, for a total of 7. They are different Types.

`BONUS:SKILL|Bluff,Listen|2|TYPE=Luck
BONUS:SKILL|Bluff,Listen|3|TYPE=Luck
BONUS:SKILL|Bluff,Listen|4|TYPE=Divine`

This would also return a value of 7, since 3 is the highest Luck bonus, and 4 is the highest Divine bonus.

Bonus Type: .REPLACE

What it does:

- This is subtype of the TYPE= standard type.
- .REPLACE items are counted together to determine the final value of a particular TYPE.

Examples:

`BONUS:SKILL|Bluff,Listen|3|TYPE=Luck.REPLACE
BONUS:SKILL|Bluff,Listen|2|TYPE=Luck.REPLACE
BONUS:SKILL|Bluff,Listen|4|TYPE=Luck
BONUS:SKILL|Bluff,Listen|2|TYPE=Luck`

This would take the 2 and 3 with the .REPLACE (total 5) and compares it to the standards, which are 2 and 4, and takes the highest value, for 5.

`BONUS:SKILL|Bluff,Listen|1|TYPE=Luck.REPLACE
BONUS:SKILL|Bluff,Listen|1|TYPE=Luck.REPLACE
BONUS:SKILL|Bluff,Listen|2|TYPE=Luck.REPLACE
BONUS:SKILL|Bluff,Listen|2|TYPE=Luck
BONUS:SKILL|Bluff,Listen|6|TYPE=Luck`

This would take the values from the .REPLACE (total 4), and compares it to the standards, which are 2 and 6, and takes the highest value, for 6.

Bonus Type: .STACK

What it does:

- This is subtype of the TYPE= standard type.
- .STACK items are counted in addition to the normal and .REPLACE to determine the final value of a particular TYPE.
- .STACK stacks together with itself like .REPLACE, but is also added to normal types.

Examples:

`BONUS:SKILL|Bluff,Listen|4|TYPE=Luck
BONUS:SKILL|Bluff,Listen|2|TYPE=Luck.STACK`

This would take the 4 of TYPE Luck, and then add 2 more from the Stack, on top of it.

`BONUS:SKILL|Bluff,Listen|4|TYPE=Luck.REPLACE
BONUS:SKILL|Bluff,Listen|4|TYPE=Luck.STACK`

This would take the 4 of TYPE Luck, and then add 4 more from the Stack, on top of it.

`BONUS:SKILL|Bluff,Listen|4|TYPE=Luck
BONUS:SKILL|Bluff,Listen|3|TYPE=Luck.REPLACE
BONUS:SKILL|Bluff,Listen|3|TYPE=Luck.REPLACE
BONUS:SKILL|Bluff,Listen|1|TYPE=Luck.STACK`

This would take the 4 normal, compare to the .REPLACE (6) and give the higher value, then add in the .STACK, for a final value of 7.

`BONUS:SKILL|Bluff,Listen|4|TYPE=Luck
BONUS:SKILL|Bluff,Listen|1|TYPE=Luck.REPLACE
BONUS:SKILL|Bluff,Listen|1|TYPE=Luck.REPLACE
BONUS:SKILL|Bluff,Listen|3|TYPE=Luck.STACK
BONUS:SKILL|Bluff,Listen|3|TYPE=Luck.STACK`

This would take the normal (4), compare it to the total .REPLACE (2), give the higher value, then add in the .STACK (6) for a final value of 10.