Skip to content

Weapon Mods

J. Arena edited this page May 1, 2026 · 5 revisions

Overview

Weapon mods in COMP/CON are Systems with an additional set of mod-specific fields that modify where and how they are applied.

Mods inherit all of the required and optional System fields

Definition

mods.json

IWeaponModData: ISystemData & {
  ..., // system fields
  "on_miss"?: ActiveEffect,
  "on_attack"?: ActiveEffect,
  "on_hit"?: ActiveEffect,
  "on_crit"?: ActiveEffect,
  "allowed_types"?: WeaponType[],
  "allowed_sizes"?: WeaponSize[],
  "added_tags"?: ITagData[],
  "added_damage"?: IDamageData[],
  "added_range"?: IRangeData[],
  "restricted_types"?: WeaponType[], // deprecated
  "restricted_sizes"?: WeaponSize[], // deprecated
}

Optional Fields

on_miss

An effect that triggers when an attack made with the parent weapon misses. See Effect Objects

on_attack

An effect that triggers when an attack made with the parent weapon is declared. See Effect Objects

on_hit

An effect that triggers when an attack made with the parent weapon hits. See Effect Objects

on_crit

An effect that triggers when an attack made with the parent weapon scores a critical hit. See Effect Objects

allowed_types

Weapon types the mod can be applied to. If this field is omitted, the mod will be allowed on all weapon types. This field is an array of WeaponType values, one of "Rifle" | "Cannon" | "Launcher" | "CQB" | "Nexus" | "Melee".

allowed_sizes

Weapon sizes (mount requirement) the mod can be applied to. If this field is omitted, the mod will be allowed on all weapon sizes. This field is an array of WeaponSize values, one of "Main" | "Heavy" | "Aux" | "Superheavy"

added_tags

An array of tags that will be added to the weapon the mod is installed on. This field is an array of ITagData objects, which are defined in Tags. These tags will be removed if the mod is removed or destroyed.

added_damage

An array of IDamageData objects, which are defined in Damage. These will be added to the weapon the mod is installed on. This Damage will be removed if the mod is removed or destroyed.

If the same damage type is found on the base weapon, added_damage dice will be added to parent damage. For example

Parent Weapon: 2d6 Kinetic Damage Mod Added Damage: 1d6 Kinetic Damage Result: 3d6 Kinetic Damage

If the same damage type is not found on the base weapon, added_damage will be appended to the parent damage. For example:

Parent Weapon: 2d6 Kinetic Damage Mod Added Damage: 1d6 Explosive Damage Result: 2d6 Kinetic Damage, 1d6 Explosive Damage

added_range

An array of IRangeData objects, which are defined in Range. These will be added to the weapon the mod is installed on. This Range will be removed if the mod is removed or destroyed.

Similarly to added_damage, if the same range type is found on the base weapon, added_range will be added to parent range, and if not, appended to the parent range. For example:

Parent Weapon: Range 5 Mod Added Range: Range 2 Result: Range 7

or

Parent Weapon: Range 5 Mod Added Range: Threat 2 Result: Range 5, Threat 2

restricted_types (deprecated)

Weapon types the mod cannot be applied to. This is kept to preserve v2 LCP functionality but is discouraged for new work. C/C transforms this into an allowed_* array internally.

Overrides restricted_sizes.

restricted_sizes (deprecated)

Weapon sizes (mount requirement) the mod cannot be applied to. This is kept to preserve v2 LCP functionality but is discouraged for new work. C/C transforms this into an allowed_* array internally.

Overrides restricted_types.

Example

from lancer-data/lib/mods.json

{
  "id": "wm_nanocomposite_adaptation",
  "name": "Nanocomposite Adaptation",
  "sp": 2,
  "allowed_types": ["Melee", "CQB", "Rifle", "Launcher", "Cannon", "Nexus"],
  "source": "HORUS",
  "license": "Balor",
  "license_level": 2,
  "effect": "the weapon this mod is applied to gains Smart and Seeking.",
  "description": "Nanocomposite weapons take aggressive drone swarms and condense them into individual rounds, a coherent beam, or the edge of a blade.<br>Adapted projectile weapons fire shaped CONSUME/HIVE rounds that shatter on impact, releasing their payload of autonomous nanite maniples. Once freed, the maniples begin eating away at surrounding tissue or superstructure. They proceed until burnout or total target consumption, whichever occurs first. In flight, the maniples are able to hive-link and make slight adjustments to the trajectory of their round, ensuring positive impact.<br>Coherent beam weapons transport maniples directly, while conventional melee weapons are replaced by analogs composed entirely of nanobots.",
  "added_tags": [
    {
      "id": "tg_smart"
    },
    {
      "id": "tg_seeking"
    }
  ],
  "license_id": "mf_balor"
},

Clone this wiki locally