Skip to content

Bonuses

John A edited this page Oct 19, 2025 · 3 revisions

Overview

Bonuses are a collection of tracked effects, conditions, or value modifications that are applied to a pilot, mech, or NPC. Bonuses are handled mechanically by COMP/CON to modify values on NPCs, Pilots, Mechs, other items or features, etc. In-game effects that are unable to be represented by bonuses should be handled by effect text and/or a synergy object.

Definition

In these documents, the data form for Bonuses are represented by IBonusData objects, structured as follows:

{
  "id": string,
  "val": string | number,
  "accuracy":? number,
  "damage_types"?: DamageType[],
  "range_types"?: RangeType[],
  "weapon_types"?: WeaponType[],
  "weapon_sizes"?: WeaponSize[],
  "overwrite"?: boolean,
  "replace"?: boolean
}

Required Fields

id

The id of a bonus from the Bonus List.

val

A string or number value of the allowed type for the bonus.

Most bonuses that can take an integer value can also take a special string value. These values can be used to create dynamic bonuses based on the current state of the pilot, mech, or NPC.

Optional Fields

The damage_types, range_types, weapon_types, and weapon_sizes fields are exclusive, meaning that an item must satisfy all conditions to receive the bonus. For example, a Bonus that included an Explosive damage type and a Launcher weapon type would only apply to Launchers that dealt Explosive damage.

To create eg. a system that increases the damage of all explosive weapons and all ranged weapons, two Bonus objects should be used.

accuracy

An integer. Adds Accuracy (if positive) or Difficulty (if negative) to the bonus.

damage_types

An array of damage types that the bonus applies to. If this field is not present, the bonus will apply to all damage types (if applicable). Valid damage types are: Kinetic, Explosive, Energy, Heat, and Burn.

range_types

An array of range types that the bonus applies to. If this field is not present, the bonus will apply to all range types (if applicable). Valid range types are: Melee, Threat, Range, Line, Burst, Blast, and Cone.

weapon_types

An array of weapon types that the bonus applies to. Valid weapon types are: Improvised, Melee, CQC, Rifle, Nexus, Cannon, Launcher, and any. This defaults to any if not present.

weapon_sizes

An array of weapon sizes that the bonus applies to. Valid weapon sizes are: Auxiliary, Main, Heavy, Superheavy, and any. This defaults to any if not present.

overwrite

The overwrite flag will overwrite any integer value bonus with the highest bonus of the same type from any source that has an overwrite flag. Which is to say: all applicable bonuses of that bonus ID will be collected and everything will be discarded except for the bonus of the highest value that has an overwrite flag.

Eg: a mech with items that give +4, +2, +3 (overwrite) and +2 (overwrite) bonus will result in a +3 bonus. This flag is not necessary for non-integer values.

replace

The replace flag will replace any integer value in the target item, pilot, or mech with the total collected replace bonus value. Eg. a mech with a base HP of 8 and the following bonuses: +1, +1 and 3 (replace) will result in a mech with a final HP of 5 (5 replaced by 3, +1 +1). A mech with a base HP of 8 and the following bonuses: +1, 3 (replace), and 3 (replace) will result in a mech with a final HP of 7 (5 replaced by 3 + 3, then +1).

The overwrite and replace flags can be used together to create equipment that overrides the final computed bonus value with a flat value.

PC Bonuses

Bonuses are collected and added to the pilot, meaning that they will persist as long as the item granting the bonus is equipped or active. The definition of "active" can change based on item type:

Item Active State Condition
Talent Always active
Frame / Frame Trait Always active
Passive CORE Power Always active
CORE Bonus Always active
Active CORE Power CORE Power has been activated, bonus removed when CORE Power deactivates
Mod Mod is equipped to equipment that is not destroyed
Pilot Gear Always active
Reserve Always active until reserve is used or deleted
System Always active unless system is destroyed or in cascade
Weapon Always active unless weapon is destroyed
Weapon Profile Active only when the profile is selected and the weapon is not destroyed
Deployable Deployable has been deployed

NPC Bonuses

NPC bonuses are collected and added to the NPC, meaning that they will persist as long as the feature granting the bonus is equipped or active. Bonuses on NPC deployables will be applied to the deployable itself.

NPC bonus values can be a single value or an array of three values, one per tier. If only one value is provided, it will be treated as the value for all three tiers.

Bonus List

ID Detail Values Applies
range Add Range (including Threat) to weapons integer All
damage Add Damage to weapons integer All
attack_roll Add to attack rolls for weapons integer All
tech_attack Add to tech attack rolls integer All
hp Add Mech/NPC HP integer All
armor Add Mech/NPC Armor integer All
structure Add Mech/NPC Structure integer All
stress Add Mech/NPC Reactor Stress integer All
heatcap Add Mech/NPC Heat Capacity integer All
repcap Add Mech/NPC Repair Capacity integer All
speed Add Mech/NPC Speed integer All
evasion Add Mech/NPC Evasion integer All
edef Add Mech/NPC E-Defense integer All
sensor Add Mech/NPC Sensor Range integer All
attack Add Mech/NPC Attack Bonus integer All
tech_attack Add Mech/NPC Tech Attack integer All
grapple Add Mech/NPC Grapple Value integer All
ram Add Mech/NPC Ram Value integer All
save Add Mech/NPC Save integer All
sp Add Mech/NPC SP integer All
size Add Mech/NPC Size integer All
boost Add Mech/NPC Boost Speed integer All
armor_max Modify Max Armor Cap integer All
accuracy Add Accuracy to weapons integer All
thrown Add Thrown to weapons integer All
threat Add Threat to weapons integer All
hull Hull checks and saves integer All
agi Agility checks and saves integer All
eng Engineering checks and saves integer All
sys Systems checks and saves integer All
deployable_hp Add HP to all deployed Deployables integer All
deployable_size Add size to all deployed Deployables integer All
deployable_charges Add charges to all deployed Deployables integer All
deployable_armor Add armor to all deployed Deployables integer All
deployable_evasion Add evasion to all deployed Deployables integer All
deployable_edef Add edef to all deployed Deployables integer All
deployable_heatcap Add heatcap to all deployed Deployables integer All
deployable_repcap Add repcap to all deployed Deployables integer All
deployable_sensor_range Add sensor range to all deployed Deployables integer All
deployable_tech_attack Add tech attack to all deployed Deployables integer All
deployable_save Add save to all deployed Deployables integer All
deployable_speed Add speed to all deployed Deployables integer All
drone_hp Add HP to all deployed Drones integer All
drone_size Add size to all deployed Drones integer All
drone_charges Add charges to all deployed Drones integer All
drone_armor Add armor to all deployed Drones integer All
drone_evasion Add evasion to all deployed Drones integer All
drone_edef Add edef to all deployed Drones integer All
drone_heatcap Add heatcap to all deployed Drones integer All
drone_repcap Add repcap to all deployed Drones integer All
drone_sensor_range Add sensor range to all deployed Drones integer All
drone_tech_attack Add tech attack to all deployed Drones integer All
drone_save Add save to all deployed Drones integer All
drone_speed Add speed to all deployed Drones integer All
deploy_count Gain additional deployable deploy action integer All
skill_point Add Pilot Skill Trigger point integer PC only
mech_skill_point Add Mech Skill (HASE) point integer PC only
talent_point Add Pilot Talent point integer PC only
license_point Add Pilot License point integer PC only
cb_point Add Pilot CORE Bonus point integer PC only
ai_cap Add AI Capacity integer PC only
cheap_struct Half cost for Structure repairs boolean PC only
cheap_stress Half cost for Reactor Stress repairs boolean PC only
overcharge Overcharge Track DieRoll[] PC only
limited_bonus Add Limited equipment uses integer PC only
pilot_hp Add Pilot HP integer PC only
pilot_armor Add Pilot Armor integer PC only
pilot_evasion Add Pilot Evasion integer PC only
pilot_edef Add Pilot E-Defense integer PC only
pilot_speed Add Pilot Speed integer PC only
pilot_armor_slots Increase Pilot Armor capacity integer PC only
pilot_gear_slots Increase Pilot Gear capacity integer PC only
pilot_weapon_slots Increase Pilot Weapon capacity integer PC only
mount_accuracy Add Accuracy to all mounted weapons integer PC only
mount_range Add Range to all mounted weapons integer PC only
mount_damage Add Damage to all mounted weapons integer PC only
mount_damage_type Override damage type of all mounted weapons DamageType PC only
mount_range_type Override range type of all mounted weapons RangeType PC only
mount_weapon_type Override weapon type of all mounted weapons WeaponType PC only
add_mount Gain additional mount string* PC only
sizes Add NPC creation size choice size[] NPC only
activations Add Activations per round integer NPC only
activations_pct Additional activation/round @ PC count X integer NPC only
no_mods Cannot equip mods boolean NPC only

add_mount

add_mount values take a string of the following format: mount_type:max_mounts where mount_type is one of Aux|Aux/Aux|Aux/Main|Main|Heavy|Superheavy and max_mounts is an integer representing the maximum number of mounts of that the Mech can have, at or over which the additional mount will not be added.

For examples, a values of main:3 will add an additional main mount to the mech if it has 2 or fewer total mounts, but will not add a mount if the mech already has 3 or more total mounts.

Statuses and Conditions

A bonus ID can also be the ID of a Status or Condition. This will confer that status or condition until removed or until the bonus expires.

DieRoll

Certain fields take a "DieRoll" format. This is a shorthand for rolling dice within COMP/CON. The format is:

XdY+N

Where X is number of dice, Y is number of die sides, and N (optional) is a flat bonus. Examples:

1d6   2d20-2    3d6+1d20

DieRolls can be chained together with + and - operators. For example:

1d6+2d20-2+3d6+1d20

This will roll 1d6, 2d20, subtract 2, add 3d6, and add 1d20. The result will be the sum of all the rolls.

Special Values

Any integer type bonus can be replaced with one of the following special value strings surrounded in brackets (eg. "{ll}"):

ID Value
ll Pilot License Level
tier NPC Tier
grit Pilot Grit
size Mech/NPC Size
hp Mech/NPC Max HP
current_hp Mech/NPC Current HP
speed Mech/NPC Speed
evasion Mech/NPC Evasion
edef Mech/NPC E-Defense
tech_attack Mech/NPC Tech Attack
overshield Mech/NPC Overshield
armor Mech/NPC Armor
heatcap Mech/NPC Heat Capacity
heat Mech/NPC Current Heat
stress Mech/NPC Max Reactor Stress
current_stress Mech/NPC Current Reactor Stress
structure Mech/NPC Structure
current_structure Mech/NPC Current Structure
repcap Mech/NPC Repair Capacity
sensor Mech Sensor Range
save Mech/NPC Save
sp Mech SP
hull PC/NPC HASE Hull
agi PC/NPC HASE Agility
sys PC/NPC HASE Systems
eng PC/NPC HASE Engineering

additionally, strings will be evaluated as an expression, then rounded up to the nearest integer, so "2 + {ll}" or ({grit}/2) + 1 are both valid expressions.

Clone this wiki locally