Event handler reference
Every event handler the game ships, the methods you override to write your own, and the conditions, value providers and filters that plug into them. Generated from the game assembly, so it tracks the current build. See Write a custom template type for the C# path and Patch and clone templates for wiring handlers from KDL.
An event handler is the unit of skill, perk, and status behaviour. Each entry in a SkillTemplate or PerkTemplate's EventHandlers list is one handler the game ticks through its lifecycle. There are two ways to author one:
- From data (KDL). Add, edit, or remove any built-in handler on a skill or perk and set its fields, naming the subtype with
type="<Name>". A handler's condition, value provider or filter is set the same way. No C# needed. - From code (C#). Subclass
SkillEventHandlerTemplateandSkillEventHandlerand override the lifecycle methods when no built-in does what you want.
Lifecycle methods
When you write a handler in C#, these are the methods you override. The template is the factory the data holds, and its Create() returns the handler the game ticks. Override only the ones you need. The rest keep the base's empty default. None of these carry doc comments in the game assembly, so this lists the signature you implement against.
SkillEventHandler
The runtime behaviour. The game ticks this through a mission. Override the events you care about.
Events
| Method |
|---|
void OnAdded() |
void OnAfterBeingAttacked(Entity attacker, Skill skill) |
void OnAfterUse() |
void OnAnimationEvent(Element element, AnimationEvent event) |
void OnAnySkillAdded(Skill skill) |
void OnAnySkillAppliedByElement(Skill skill, Element element, SkillApplyEvent event) |
void OnAnySkillUsed(Skill skill) |
void OnApply(Actor user, Tile userTile, Tile targetTile, Tile centerTargetTile, Element element, bool isHit) |
void OnBeforeAnySkillUsed(Skill skill, Tile fromTile, Tile targetTile, EntityProperties properties, Entity overrideTargetEntity) |
void OnBeforeApply(Actor user, Tile userTile, Tile targetTile, Element element, ref float additionalDelayBeforeAnimationTrigger) |
void OnBeforeDamageReceived(Skill skill, Entity attacker, DamageInfo damageInfo, EntityProperties properties) |
void OnBeforeMissionStarted() |
void OnBeforeTargetHit(Skill skill, Entity targetEntity, DamageInfo damageInfo) |
bool OnBeforeUse(Actor user, Tile targetTile) |
void OnBeingAttacked(Skill skill, Actor attacker, Tile from, Tile at, EntityProperties properties) |
void OnBeingTargetedByAttack(Entity attacker, Skill skill) |
void OnCancel() |
void OnDamageReceived(Entity attacker, Skill skill, DamageInfo damageInfo) |
void OnDeath() |
void OnDefectCaused(Actor target, DefectTemplate defect, Skill skill) |
void OnDetermineActualTargetTile(ref Tile target) |
void OnDetermineFinalUserTile(Tile originTile, Tile targetTile, ref Tile finalTile) |
void OnEffectApplied() |
void OnElementDeath(Element element) |
void OnEnabledChanged(bool enabled) |
void OnMissed(Skill skill, Entity attacker) |
void OnMissionFinished() |
void OnMissionStarted() |
void OnModifyTargetProperties(EntityProperties targetProperties, Skill skill) |
void OnMoraleEvent(MoraleEvent event, float change) |
void OnMovement() |
void OnMovementFinished(Tile tile) |
void OnOperationFinished() |
void OnRefresh() |
void OnRemoved() |
void OnRoundEnd() |
void OnRoundStart() |
bool OnShouldCancelImpact(Actor attacker, Skill skill) |
void OnTargetHit(Skill skill, Entity targetEntity, DamageInfo damageInfo) |
void OnTargetKilled(Skill skill, Entity targetEntity) |
void OnTargetMissed(Skill skill, Entity targetEntity) |
void OnTileChanged(Tile tile) |
void OnTileHit(Skill skill, Tile tile, Tile aoeCenterTile, Vector3 impactPoint) |
void OnTurnEnd() |
void OnTurnStart() |
void OnUpdate(EntityProperties properties) |
void OnUse(Actor user, Tile targetTile, UsageParameter usageParams, ref bool applyToTile) |
bool OnVerifyTarget(Tile originTile, Tile targetTile) |
bool OnWouldDie(Entity attacker, Skill skill, DamageInfo damageInfo) |
Predicates
| Method |
|---|
bool CanHitEntityMoreThanOnce() |
bool HasStackCountDisplayed() |
bool IsApplicableTo(Tile targetTile, Entity overrideTargetEntity) |
bool IsCustomBusy() |
bool IsEnabled() |
bool IsHidden() |
bool IsPreventingActorUpdate() |
bool IsUsable() |
Other
| Method |
|---|
void AppendTooltipData(TooltipData tooltip) |
void GetAoETiles(Tile origin, Tile target, List<Tile> tiles) |
SkillEventHandlerTemplate
The factory the template data holds. Create() returns a fresh handler with the authored fields copied in.
Predicates
| Method |
|---|
bool IsUsable() |
Other
| Method |
|---|
void AppendTooltipData(TooltipData tooltip, SkillTemplate parentSkillTemplate, EntityProperties entityProperties, int elementCount) |
void ApplyToEntityProperties(EntityProperties properties) |
SkillEventHandler Create() |
Built-in handlers
The 169 handlers the game ships. Name one in type="<Name>" to add it, and set the fields listed. Every field you do not set takes its type default. Enum fields list their allowed values. A field typed with an interface (ITacticalCondition, IValueProvider, …) is a polymorphic slot: fill it with set "<Field>" type="<Subtype>" { ... }, or append for an array of them, picking the subtype from the family section the row links to.
append "EventHandlers" type="AddSkill" {
set "Event" enum="AddEvent" "OnAttack"
set "SkillToAdd" ref="SkillTemplate" "effect.bleeding"
}AddItemSlot
| Field | Type | Values / notes |
|---|---|---|
Amount | int | |
SlotType | ItemSlot | All, COUNT, InfantryAccessory, InfantryArmor, InfantrySpecial, InfantryWeapon, ModularVehicleHeavy, ModularVehicleLight, ModularVehicleMedium, None, Vehicle, VehicleAccessory, VehicleHeavyTurret, VehicleLightTurret |
AddSkill
| Field | Type | Values / notes |
|---|---|---|
Condition | ITacticalCondition | Polymorphic: pick a subtype from Conditions with set "Condition" type="<Subtype>" { ... }. |
Event | AddEvent | OnAdded, OnAttack, OnElementDeath, OnMissionStart, OnRemoved, OnRoundStart, OnTargetElementDestroyed, OnUse |
OnlyApplyOnHit | bool | |
OnlyApplyOnHitpointDamage | bool | |
OnlyApplyWhenNoElementWasDestroyed | bool | |
OnlyUsableOnTargetsWithoutSkill | bool | |
OnlyWhenSkillNotPresent | bool | |
ShowHUDText | bool | |
SkillToAdd | SkillTemplate | |
TagsCanPreventSkillUse | bool | |
TargetCannotHaveOneOfTheseTags | List<TagTemplate> | |
TargetRequiresOneOfTheseTags | List<TagTemplate> |
AddSkillAfterMovement
| Field | Type | Values / notes |
|---|---|---|
Effect | SkillTemplate |
AddSkillRescuedUnit
| Field | Type | Values / notes |
|---|---|---|
Effect | SkillTemplate |
AmmoPouch
| Field | Type | Values / notes |
|---|---|---|
ApplyToType | ItemType | Accessory, Armor, None, Weapon |
BonusPercentage | float | |
MinimumBonus | int | |
SkillFilter | ISkillFilter | Polymorphic: pick a subtype from Skill filters with set "SkillFilter" type="<Subtype>" { ... }. |
ApplyAuthorityDisciplineMod
| Field | Type | Values / notes |
|---|---|---|
DisciplineModMult | float |
ApplyEmotionalState
| Field | Type | Values / notes |
|---|---|---|
EmotionalState | EmotionalStateType | AnimosityTowards, Bruised, Determined, Disheartened, Eager, Euphoric, Exhausted, Frustrated, GoodwillTowards, Hesitant, Injured, KubraHangover, Miserable, None, Overconfident, Weary |
EmotionalTrigger | EmotionalTrigger | Cheat, DeployedInTheXMissionsBeforeCurrent, DeployedXTimesWithOther, Event, FailedOnFavPlanet, Fled, GameEffect, KilledXCivElements, KilledXEnemyEntities, KilledXEnemyMiniBosses, Last, LostAllSquaddies, LostOverXPercentHitpoints, NearDeathExperience, NotDeployedInTheXMissionsBeforeCurrent, OtherLeaderKilledCivElementOnFavPlanet, ReceivedFriendlyFireFrom, SkillUse, StabilizedBy, StabilizedOthers, SuccessOnFavPlanet, Unused2, Unused3, Unused4 |
ApplySkillByGaze
| Field | Type | Values / notes |
|---|---|---|
Condition | ITacticalCondition | Polymorphic: pick a subtype from Conditions with set "Condition" type="<Subtype>" { ... }. |
SkillToApply | SkillTemplate |
ApplySkillToSelf
| Field | Type | Values / notes |
|---|---|---|
ChanceToApply | int | |
Event | ApplyOnEvent | OnAdded, OnRoundEnd, OnRoundStart, OnSkillWithTagsUsed, OnTurnEnd, OnTurnStart |
RequiredLogic | LogicType | And, Or |
RequiredTags | List<TagTemplate> | |
SkillToApply | SkillTemplate |
Arcing
| Field | Type | Values / notes |
|---|---|---|
ArcingSkill | SkillTemplate | |
MaxBounces | int | |
Radius | int |
AttachObject
| Field | Type | Values / notes |
|---|---|---|
AttachAt | AttachmentPoint | Center, Damage, Damage2, Spine |
AttachAtInfantry | AttachmentPoint | Center, Damage, Damage2, Spine |
ObjectToAttach | GameObject |
AttachObjectWhileActive
| Field | Type | Values / notes |
|---|---|---|
OnlyForElement0 | bool | |
Prefab | GameObject |
AttachTemporaryPrefab
| Field | Type | Values / notes |
|---|---|---|
AttachmentSlot | VisualAlterationSlot | Animation, Back, Back_Special, EntireModel, Hand_L, Hand_L_Special, Hand_R, Hand_R_Special, Last, Mount01, Mount02, Mount03, None, Pistol_Holster, Torso, Turret |
CancelDelay | float | |
LocalOffset | Vector3 | |
LocalRotation | Vector3 | |
LocalScale | Vector3 | |
Prefab | GameObject |
Attack
| Field | Type | Values / notes |
|---|---|---|
AccuracyBonus | float | |
AccuracyDropoff | float | |
AccuracyDropoffMult | float | |
AccuracyMult | float | |
ApplyMode | ApplicationMode | Automatic, Manual |
ArmorPenetration | float | |
ArmorPenetrationDropoff | float | |
ArmorPenetrationDropoffAOE | float | |
ArmorPenetrationDropoffMult | float | |
ArmorPenetrationMult | float | |
Damage | float | |
DamageDropoff | float | |
DamageDropoffAOE | float | |
DamageDropoffMult | float | |
DamageMult | float | |
DamagePctCurrentHitpoints | float | |
DamagePctCurrentHitpointsMin | float | |
DamagePctMaxHitpoints | float | |
DamagePctMaxHitpointsMin | float | |
DamageToArmorDurability | float | |
DamageToArmorDurabilityDropoff | float | |
DamageToArmorDurabilityDropoffAOE | float | |
DamageToArmorDurabilityDropoffMult | float | |
DamageToArmorDurabilityMult | float | |
DamageVisualizationType | DamageVisualizationType | Bullet, Burn, COUNT |
DestroyHalfCover | HalfCoverClass | Heavy, Light, Medium, None |
DismemberArea | RagdollHitArea | Antennas, Any, Arms, Heads, Legs, Tails, Torso |
DismemberChance | int | |
ElementsHit | int | |
ElementsHitPercentage | float | |
EntityFlagsRequired | EntityFlags | CantEnterContainers, Confused, DesignatedTarget, HeavyWeaponsAllowed, IgnoreDeploymentRequirements, IgnoreSuppressedAPLoss, ImmuneDesignatedTarget, ImmuneToDamage, ImmuneToEncumbrance, ImmuneToIndirectSuppression, ImmuneToLightEffect, ImmuneToMorale, ImmuneToSuppression, ImmuneToSuppressionFromElementLost, IrrelevantToMorale, None, Rooted, RootedByStance, Stunned |
FatalityType | FatalityType | Burning, Default, Explosion, Laser, Plasma |
IsHalfCoverDestroyedOnAOECenterTileOnly | bool | |
Suppression | float | |
SuppressionDealtMult | float | |
SuppressionDropoffAOE | float | |
TargetCannotHaveOneOfTheseTags | List<TagTemplate> | |
TargetRequiresOneOfTheseTags | List<TagTemplate> |
AttackMorale
| Field | Type | Values / notes |
|---|---|---|
MoraleDamage | int | |
MoraleStateReduction | int |
AttackOrder
| Field | Type | Values / notes |
|---|---|---|
ActionPoints | int | |
Effect | SkillTemplate |
AttackProc
| Field | Type | Values / notes |
|---|---|---|
CanBeTriggeredByAnySkill | bool | |
Chance | int | |
Condition | ITacticalCondition | Polymorphic: pick a subtype from Conditions with set "Condition" type="<Subtype>" { ... }. |
OnlyApplyOnHitpointDamage | bool | |
OnlyApplyWhenNoElementWasDestroyed | bool | |
ShowHUDText | bool | |
SkillToAdd | SkillTemplate |
AutoAttackOnFleeing
| Field | Type | Values / notes |
|---|---|---|
SkillFilter | ISkillFilter | Polymorphic: pick a subtype from Skill filters with set "SkillFilter" type="<Subtype>" { ... }. |
Berserk
| Field | Type | Values / notes |
|---|---|---|
ActionPoints | int | |
ConsumedOnTrigger | bool |
Buyout
| Field | Type | Values / notes |
|---|---|---|
EntityToSpawn | EntityTemplate | |
Faction | FactionType | AlliedLocalForces, Civilian, Constructs, EnemyLocalForces, Neutral, Pirates, Player, PlayerAI, RogueArmy, Wildlife |
OverlayIcon | Sprite | |
Whitelist | EntityTemplate[] |
CameraShake
| Field | Type | Values / notes |
|---|---|---|
CameraEffect | CameraEffectType | HeavyQuake, LightQuake, MoveXZ, MoveY, None |
Duration | float | |
Intensity | float | |
RecoverTime | float |
CauseDefect
| Field | Type | Values / notes |
|---|---|---|
Severity | DefectSeverity | Heavy, Light, Medium |
ChangeAPBasedOnHP
| Field | Type | Values / notes |
|---|---|---|
Thresholds | HpThreshold[] |
ChangeActionPointCost
| Field | Type | Values / notes |
|---|---|---|
CostDelta | int | |
CostMin | int | |
SkillFilter | ISkillFilter | Polymorphic: pick a subtype from Skill filters with set "SkillFilter" type="<Subtype>" { ... }. |
ChangeActionPoints
| Field | Type | Values / notes |
|---|---|---|
ActionPoints | int | |
ForceTurnToEnd | bool |
ChangeAttackCost
| Field | Type | Values / notes |
|---|---|---|
CostPerAttack | int | |
CostPerAttackMult | float |
ChangeDropChance
| Field | Type | Values / notes |
|---|---|---|
AdditionalDropChance | int |
ChangeFaction
| Field | Type | Values / notes |
|---|---|---|
Faction | FactionType | AlliedLocalForces, Civilian, Constructs, EnemyLocalForces, Neutral, Pirates, Player, PlayerAI, RogueArmy, Wildlife |
ChangeGrowthPotential
| Field | Type | Values / notes |
|---|---|---|
Delta | int |
ChangeHeatCapacity
| Field | Type | Values / notes |
|---|---|---|
HeatDissipationPerTurn | int | |
MaxHeatMultiplier | float |
ChangeMalfunctionChance
| Field | Type | Values / notes |
|---|---|---|
ApplyOnlyToSkill | SkillTemplate | |
ApplyTo | ApplyType | AllAttacks, AllSkills, SpecificSkill, ThisSkill |
BaseMalfunctionChance | int | |
MalfunctionChancePerUse | int | |
ResetMalfunctionChance | bool |
ChangeMorale
| Field | Type | Values / notes |
|---|---|---|
ChangeIf | ChangeCondition | Always, CurrentMoraleIsHigher, CurrentMoraleIsLower |
ChangeMoraleTo | MoraleState | Fleeing, Neutral, Wavering |
Event | EventType | OnAdded, OnApply |
ChangeMovementCost
| Field | Type | Values / notes |
|---|---|---|
CostForTurning | int | |
CostPerSurface | Int32[] | |
CostPerTile | int | |
IsRooted | bool |
ChangeProperty
| Field | Type | Values / notes |
|---|---|---|
Amount | int | |
AmountMult | float | |
IncludePlusSign | bool | |
PropertyType | EntityPropertyType | AIPriorityMult, APEnterCost, APLeaveCost, Accuracy, AccuracyDropoff, AccuracyDropoffMult, AccuracyMult, ActionPoints, ActionPointsMult, AdditionalMovementCost, AdditionalTurningCost, Armor, ArmorDamageSustainedMult, ArmorDurabilityPerElement, ArmorMult, ArmorPenetration, ArmorPenetrationDropoff, ArmorPenetrationDropoffMult, ArmorPenetrationMult, BackwardsMovementMult, Concealment, ConcealmentMult, CoverEffectivenessMult, CoverGainedByVehicleOffset, CoverTypeOffset, CriticalChance, CriticalDamageMult, Damage, DamageDropoff, DamageDropoffMult, DamageMult, DamageSustainedMult, DamageSustainedSquadLeaderMult, DamageToArmorDurability, DamageToArmorDurabilityDropoff, DamageToArmorDurabilityDropoffMult, DamageToArmorDurabilityMult, DamageToMoraleMult, DefectThresholdOffset, DefenseMult, DeployCostMult, DeploymentZoneMinExtend, DeploymentZoneMult, Detection, DetectionMult, Discipline, DisciplineMult, DismemberChance, ElementsHit, ElementsHitPct, GetDismemberedChanceBonus, GetDismemberedChanceMult, GetDismemberedMaxParts, GetDismemberedMinParts, HitchanceMin, HitpointsPerElement, HitpointsPerElementMult, IgnoreCoverMult, MaxElements, MoraleBonus, MoraleImpactMult, MoraleMult, MoraleRecoveryMult, MoraleStateOffset, PromotionCostMult, ProvidedCoverBonus, ReduceElementsHit, SuppressionDealt, SuppressionDealtMult, SuppressionImpactMult, TotalDamageMult, Vision, VisionMult |
TooltipPlaceholderIndex | int | |
Trigger | UpdateEvent | OnBeforeAnySkillUsed, OnBeingAttacked, OnUpdate |
ValueProvider | IValueProvider | Polymorphic: pick a subtype from Value providers with set "ValueProvider" type="<Subtype>" { ... }. |
ChangePropertyAura
| Field | Type | Values / notes |
|---|---|---|
Properties | PropertyChange[] | |
Radius | int | |
ReducesWithDistance | bool |
ChangePropertyConditional
| Field | Type | Values / notes |
|---|---|---|
Condition | ITacticalCondition | Polymorphic: pick a subtype from Conditions with set "Condition" type="<Subtype>" { ... }. |
DefaultText | string | |
Event | EventType | OnBeforeAnySkillUsed, OnBeingAttacked, OnThisSkillUsed, OnUpdate |
HideIfNotActive | bool | |
Properties | PropertyChange[] | |
ShowInTooltipWhenActive | bool | |
ValueProvider | IValueProvider | Polymorphic: pick a subtype from Value providers with set "ValueProvider" type="<Subtype>" { ... }. |
ChangePropertyConsecutive
| Field | Type | Values / notes |
|---|---|---|
Amount | int | |
AmountMult | float | |
MaxStacks | int | |
PropertyType | EntityPropertyType | AIPriorityMult, APEnterCost, APLeaveCost, Accuracy, AccuracyDropoff, AccuracyDropoffMult, AccuracyMult, ActionPoints, ActionPointsMult, AdditionalMovementCost, AdditionalTurningCost, Armor, ArmorDamageSustainedMult, ArmorDurabilityPerElement, ArmorMult, ArmorPenetration, ArmorPenetrationDropoff, ArmorPenetrationDropoffMult, ArmorPenetrationMult, BackwardsMovementMult, Concealment, ConcealmentMult, CoverEffectivenessMult, CoverGainedByVehicleOffset, CoverTypeOffset, CriticalChance, CriticalDamageMult, Damage, DamageDropoff, DamageDropoffMult, DamageMult, DamageSustainedMult, DamageSustainedSquadLeaderMult, DamageToArmorDurability, DamageToArmorDurabilityDropoff, DamageToArmorDurabilityDropoffMult, DamageToArmorDurabilityMult, DamageToMoraleMult, DefectThresholdOffset, DefenseMult, DeployCostMult, DeploymentZoneMinExtend, DeploymentZoneMult, Detection, DetectionMult, Discipline, DisciplineMult, DismemberChance, ElementsHit, ElementsHitPct, GetDismemberedChanceBonus, GetDismemberedChanceMult, GetDismemberedMaxParts, GetDismemberedMinParts, HitchanceMin, HitpointsPerElement, HitpointsPerElementMult, IgnoreCoverMult, MaxElements, MoraleBonus, MoraleImpactMult, MoraleMult, MoraleRecoveryMult, MoraleStateOffset, PromotionCostMult, ProvidedCoverBonus, ReduceElementsHit, SuppressionDealt, SuppressionDealtMult, SuppressionImpactMult, TotalDamageMult, Vision, VisionMult |
ChangePropertyTarget
| Field | Type | Values / notes |
|---|---|---|
OnlyForThisSkill | bool | |
Properties | PropertyChange[] |
ChangeRangesOfSkillsWithTags
| Field | Type | Values / notes |
|---|---|---|
IdealRangeChange | int | |
IdealRangeMult | float | |
MaxRangeChange | int | |
MaxRangeMult | float | |
MaxRangeProvider | IValueProvider | Polymorphic: pick a subtype from Value providers with set "MaxRangeProvider" type="<Subtype>" { ... }. |
MinRangeChange | int | |
MinRangeMult | float | |
SkillFilter | ISkillFilter | Polymorphic: pick a subtype from Skill filters with set "SkillFilter" type="<Subtype>" { ... }. |
ChangeSkillUseAmount
| Field | Type | Values / notes |
|---|---|---|
SkillFilter | ISkillFilter | Polymorphic: pick a subtype from Skill filters with set "SkillFilter" type="<Subtype>" { ... }. |
UsesAmount | int |
ChangeSkillsWithTags
| Field | Type | Values / notes |
|---|---|---|
Amount | int | |
AmountMult | float | |
PropertyType | EntityPropertyType | AIPriorityMult, APEnterCost, APLeaveCost, Accuracy, AccuracyDropoff, AccuracyDropoffMult, AccuracyMult, ActionPoints, ActionPointsMult, AdditionalMovementCost, AdditionalTurningCost, Armor, ArmorDamageSustainedMult, ArmorDurabilityPerElement, ArmorMult, ArmorPenetration, ArmorPenetrationDropoff, ArmorPenetrationDropoffMult, ArmorPenetrationMult, BackwardsMovementMult, Concealment, ConcealmentMult, CoverEffectivenessMult, CoverGainedByVehicleOffset, CoverTypeOffset, CriticalChance, CriticalDamageMult, Damage, DamageDropoff, DamageDropoffMult, DamageMult, DamageSustainedMult, DamageSustainedSquadLeaderMult, DamageToArmorDurability, DamageToArmorDurabilityDropoff, DamageToArmorDurabilityDropoffMult, DamageToArmorDurabilityMult, DamageToMoraleMult, DefectThresholdOffset, DefenseMult, DeployCostMult, DeploymentZoneMinExtend, DeploymentZoneMult, Detection, DetectionMult, Discipline, DisciplineMult, DismemberChance, ElementsHit, ElementsHitPct, GetDismemberedChanceBonus, GetDismemberedChanceMult, GetDismemberedMaxParts, GetDismemberedMinParts, HitchanceMin, HitpointsPerElement, HitpointsPerElementMult, IgnoreCoverMult, MaxElements, MoraleBonus, MoraleImpactMult, MoraleMult, MoraleRecoveryMult, MoraleStateOffset, PromotionCostMult, ProvidedCoverBonus, ReduceElementsHit, SuppressionDealt, SuppressionDealtMult, SuppressionImpactMult, TotalDamageMult, Vision, VisionMult |
RequiredTags | TagType[] | ACCESSORY, ACCURATE, AIRPOWER, ANTI_INFANTRY, ANTI_STRUCTURE, ANTI_VEHICLE, AREA_OF_EFFECT, ARMOR_DAMAGING, ARMOR_PIERCING, ASSAULT_RIFLE, BATTLE_RIFLE, CAMOUFLAGE, COMMODITY, CRAFTING_MATERIAL, DEMORALIZING, DEPLOY, DEPLOYABLE, DESTRUCTIBLE, DISABLING, DRONE, DRUG, EMP, ENERGY, FLEXIBLE, GRENADE, HAZARDOUS, HEAVY_ARMOR, HIGH_RATE_OF_FIRE, HORDE, HOVERING, IGNORES_COVER, INACCURATE, INCENDIARY, INDIRECT_FIRE, INFANTRY, JAM, JETPACK, LARGE, LIGHT_ARMOR, LIMITED_AMMO, LONG_RANGE, LOW_PENETRATION, LOW_QUALITY, Last, MACHINE, MANY_ACCESSORIES, MASSIVE_EXPLOSION, MEDIUM_ARMOR, MINE, MINIMUM_RANGE, MINI_BOSS, MOBILE, MOTORIZED_INFANTRY, ORBITAL, PROJECTILE, ROCKET, SCANNER, SCATTER, SHORT_RANGE, SHOTGUN, SMG, SMOKE, SNIPER, SPECIAL_WEAPON, SQUAD_WEAPON, STANCE, STEALTH, STRUCTURE, SUPPRESSIVE, TANK, UNIQUE, UNUSED_MUST_DEPLOY, UTILITY, VEHICLE, VEHICLE_WEAPON, VIP, WALKER, WEAPON, WEAPONS_TEAM, XENO |
ChangeStance
| Field | Type | Values / notes |
|---|---|---|
ChangeStanceTo | ActorStance | Default, Deployed, PinnedDown |
IsStanceRequiredToUse | bool | |
RequiredStance | ActorStance | Default, Deployed, PinnedDown |
ChangeSupplyCosts
| Field | Type | Values / notes |
|---|---|---|
CostMult | float | |
Filter | IItemFilter | Polymorphic: pick a subtype from Item filters with set "Filter" type="<Subtype>" { ... }. |
ChangeSuppression
| Field | Type | Values / notes |
|---|---|---|
Event | EventType | OnAdded, OnUse |
SuppressionChange | float |
ChangeUsesPerSquaddie
| Field | Type | Values / notes |
|---|---|---|
AmountPerElement | int | |
MaxIncreasePct | int | |
SkillFilter | ISkillFilter | Polymorphic: pick a subtype from Skill filters with set "SkillFilter" type="<Subtype>" { ... }. |
Charge
| Field | Type | Values / notes |
|---|---|---|
HideIfNotUsable | bool |
ChargeInfantry
| Field | Type | Values / notes |
|---|---|---|
EffectToApply | SkillTemplate | |
HideIfNotUsable | bool | |
TriggerAttack | bool |
ClearTileEffect
| Field | Type | Values / notes |
|---|---|---|
ChanceAtCenter | int | |
ChanceDropoffWithDistance | int | |
EffectToClear | TileEffectTemplate |
ClearTileEffectGroup
| Field | Type | Values / notes |
|---|---|---|
EffectsToClear | TileEffectGroup | |
TriggerEffect | bool |
CommandMove
| Field | Type | Values / notes |
|---|---|---|
Minion | MinionType | AttackDrone, None, ReconDrone, SuicideDrone |
CommandUseSkill
| Field | Type | Values / notes |
|---|---|---|
Minion | MinionType | AttackDrone, None, ReconDrone, SuicideDrone |
SkillToUse | SkillTemplate |
CompleteSecondaries
| Field | Type | Values / notes |
|---|---|---|
Amount | int |
ConsumeOnSkillUse
| Field | Type | Values / notes |
|---|---|---|
SkillFilter | ISkillFilter | Polymorphic: pick a subtype from Skill filters with set "SkillFilter" type="<Subtype>" { ... }. |
Cooldown
| Field | Type | Values / notes |
|---|---|---|
AIOnly | bool | |
RoundsToCoolDown | int |
CounterAttack
| Field | Type | Values / notes |
|---|---|---|
SkillFilter | ISkillFilter | Polymorphic: pick a subtype from Skill filters with set "SkillFilter" type="<Subtype>" { ... }. |
Crawl
No settable fields. It carries behaviour only.
CutFence
| Field | Type | Values / notes |
|---|---|---|
AffectedHalfCovers | HalfCoverTemplate[] |
Damage
| Field | Type | Values / notes |
|---|---|---|
ArmorPenetration | float | |
DamageFlatAmount | float | |
DamagePctCurrentHitpoints | float | |
DamagePctCurrentHitpointsMin | float | |
DamagePctMaxHitpoints | float | |
DamagePctMaxHitpointsMin | float | |
DamageToArmorDurability | float | |
DamageVisualizationType | DamageVisualizationType | Bullet, Burn, COUNT |
DismemberArea | RagdollHitArea | Antennas, Any, Arms, Heads, Legs, Tails, Torso |
DismemberChance | int | |
ElementsHit | int | |
ElementsHitPercentage | float | |
FatalityType | FatalityType | Burning, Default, Explosion, Laser, Plasma |
InflictDefects | bool | |
IsAppliedOnlyToPassengers | bool |
DamageArmorDurability
| Field | Type | Values / notes |
|---|---|---|
DamageFlatAmount | float | |
DamagePercentageOfCurrentDurability | float | |
DamagePercentageOfMaxDurability | float |
DamageConditional
| Field | Type | Values / notes |
|---|---|---|
DamageFilterCondition | ITacticalCondition | Polymorphic: pick a subtype from Conditions with set "DamageFilterCondition" type="<Subtype>" { ... }. |
DamageOverTime
| Field | Type | Values / notes |
|---|---|---|
ArmorPenetration | float | |
DamageArmorFlatAmount | float | |
DamageArmorPctOfCurrent | float | |
DamageArmorPctOfMax | float | |
DamagePctCurrentHitpoints | float | |
DamagePctCurrentHitpointsMin | float | |
DamagePctMaxHitpoints | float | |
DamagePctMaxHitpointsMin | float | |
DamagePerTurn | float | |
DamageToArmorDurability | float | |
DamageVisualizationType | DamageVisualizationType | Bullet, Burn, COUNT |
DamagesArmorFirst | bool | |
ElementsHit | int | |
ElementsHitPercentage | float | |
FatalityType | FatalityType | Burning, Default, Explosion, Laser, Plasma |
InflictDefects | bool |
DaughtersFury
| Field | Type | Values / notes |
|---|---|---|
Effect | SkillTemplate |
Deathrattle
| Field | Type | Values / notes |
|---|---|---|
Chance | int | |
Skill | SkillTemplate | |
TriggerForEachElement | bool |
DelayTurn
No settable fields. It carries behaviour only.
DeployHeavyWeapon
No settable fields. It carries behaviour only.
DestroyEnvironmentFeatures
No settable fields. It carries behaviour only.
DestroyProps
| Field | Type | Values / notes |
|---|---|---|
Mode | TileMode | AllTiles, CenterTileOnly |
Radius | float |
DestroyWreckage
| Field | Type | Values / notes |
|---|---|---|
SpawnDecoPrefab | GameObject |
DirectHpChange
| Field | Type | Values / notes |
|---|---|---|
HpPercentage | float |
DisableByFlag
| Field | Type | Values / notes |
|---|---|---|
Flag | EntityFlags | CantEnterContainers, Confused, DesignatedTarget, HeavyWeaponsAllowed, IgnoreDeploymentRequirements, IgnoreSuppressedAPLoss, ImmuneDesignatedTarget, ImmuneToDamage, ImmuneToEncumbrance, ImmuneToIndirectSuppression, ImmuneToLightEffect, ImmuneToMorale, ImmuneToSuppression, ImmuneToSuppressionFromElementLost, IrrelevantToMorale, None, Rooted, RootedByStance, Stunned |
DisableItem
| Field | Type | Values / notes |
|---|---|---|
ForbiddenLogic | LogicType | And, Or |
ForbiddenTags | List<TagTemplate> | |
RequiredLogic | LogicType | And, Or |
RequiredTags | List<TagTemplate> |
DisableSkills
| Field | Type | Values / notes |
|---|---|---|
HideDisabledSkills | bool | |
MarkAsDestroyed | bool | |
SkillFilter | ISkillFilter | Polymorphic: pick a subtype from Skill filters with set "SkillFilter" type="<Subtype>" { ... }. |
DisallowInvisible
No settable fields. It carries behaviour only.
DisplayText
| Field | Type | Values / notes |
|---|---|---|
DefaultText | string | |
Event | DisplayEvent | OnAdded, OnApply, OnUse, Triggered |
Icon | Sprite | |
LocaKey | string |
DivineIntervention
No settable fields. It carries behaviour only.
DropRecoverableObject
| Field | Type | Values / notes |
|---|---|---|
ObjectTileEffect | RecoverableObjectTileEffect | |
ObjectUnitHUDIcon | Sprite |
EjectEntity
| Field | Type | Values / notes |
|---|---|---|
ConferSkillToEjectedEntity | SkillTemplate | |
IsSpecialAIVersion | bool |
EmitAura
| Field | Type | Values / notes |
|---|---|---|
ExcludeSelf | bool | |
SkillToAdd | SkillTemplate |
EnemiesDropPickupOnDeath
| Field | Type | Values / notes |
|---|---|---|
Pickup | TileEffectTemplate | |
SpawnDelay | float |
EvacuateLeader
No settable fields. It carries behaviour only.
ExtraTickets
| Field | Type | Values / notes |
|---|---|---|
ExtraTicketAmount | int |
FilterByCondition
| Field | Type | Values / notes |
|---|---|---|
Condition | ITacticalCondition | Polymorphic: pick a subtype from Conditions with set "Condition" type="<Subtype>" { ... }. |
FilterByMorale
| Field | Type | Values / notes |
|---|---|---|
AppliesOnlyToState | MoraleState | Fleeing, Neutral, Wavering |
FilterByStance
| Field | Type | Values / notes |
|---|---|---|
AppliesOnlyToStance | ActorStance | Default, Deployed, PinnedDown |
GainAPBasedOnEnemies
| Field | Type | Values / notes |
|---|---|---|
APPerEnemy | int | |
Radius | int |
GainActionPoints
| Field | Type | Values / notes |
|---|---|---|
ActionPoints | int | |
AlwaysIncreaseMaxActionPoints | bool | |
TooltipPlaceholderIndex | int | |
ValueProvider | IValueProvider | Polymorphic: pick a subtype from Value providers with set "ValueProvider" type="<Subtype>" { ... }. |
GainEffectOnSkillUse
| Field | Type | Values / notes |
|---|---|---|
Effect | SkillTemplate | |
RemoveOnUse | bool | |
SkillFilter | ISkillFilter | Polymorphic: pick a subtype from Skill filters with set "SkillFilter" type="<Subtype>" { ... }. |
GrantBonusTurn
| Field | Type | Values / notes |
|---|---|---|
ActionPointsAvailable | float |
HandleLeaderAttributes
No settable fields. It carries behaviour only.
HeatCapacity
| Field | Type | Values / notes |
|---|---|---|
HeatDissipationPerTurn | int | |
HeatPerUse | int | |
IsSynchronizedWithOtherSkillsOfTheSameItem | bool | |
MaxHeat | int | |
OverheatingSound | ID |
HideByCondition
| Field | Type | Values / notes |
|---|---|---|
Condition | ITacticalCondition | Polymorphic: pick a subtype from Conditions with set "Condition" type="<Subtype>" { ... }. |
Hitchance
| Field | Type | Values / notes |
|---|---|---|
AccuracyBonus | float | |
AccuracyDropoff | float | |
AccuracyDropoffMult | float | |
AccuracyMult | float |
IgnoreDamage
| Field | Type | Values / notes |
|---|---|---|
AbsorbDamagePct | int | |
ChanceToApply | int | |
RequiredTags | TagType[] | ACCESSORY, ACCURATE, AIRPOWER, ANTI_INFANTRY, ANTI_STRUCTURE, ANTI_VEHICLE, AREA_OF_EFFECT, ARMOR_DAMAGING, ARMOR_PIERCING, ASSAULT_RIFLE, BATTLE_RIFLE, CAMOUFLAGE, COMMODITY, CRAFTING_MATERIAL, DEMORALIZING, DEPLOY, DEPLOYABLE, DESTRUCTIBLE, DISABLING, DRONE, DRUG, EMP, ENERGY, FLEXIBLE, GRENADE, HAZARDOUS, HEAVY_ARMOR, HIGH_RATE_OF_FIRE, HORDE, HOVERING, IGNORES_COVER, INACCURATE, INCENDIARY, INDIRECT_FIRE, INFANTRY, JAM, JETPACK, LARGE, LIGHT_ARMOR, LIMITED_AMMO, LONG_RANGE, LOW_PENETRATION, LOW_QUALITY, Last, MACHINE, MANY_ACCESSORIES, MASSIVE_EXPLOSION, MEDIUM_ARMOR, MINE, MINIMUM_RANGE, MINI_BOSS, MOBILE, MOTORIZED_INFANTRY, ORBITAL, PROJECTILE, ROCKET, SCANNER, SCATTER, SHORT_RANGE, SHOTGUN, SMG, SMOKE, SNIPER, SPECIAL_WEAPON, SQUAD_WEAPON, STANCE, STEALTH, STRUCTURE, SUPPRESSIVE, TANK, UNIQUE, UNUSED_MUST_DEPLOY, UTILITY, VEHICLE, VEHICLE_WEAPON, VIP, WALKER, WEAPON, WEAPONS_TEAM, XENO |
InterceptAPChange
| Field | Type | Values / notes |
|---|---|---|
ActionPointPercentage | int | |
AppliesTo | SkillTemplate | |
TriggerOnlyOncePerRound | bool |
InterceptDeath
| Field | Type | Values / notes |
|---|---|---|
Effect | SkillTemplate |
Jamming
| Field | Type | Values / notes |
|---|---|---|
BaseChance | int | |
ChancePerUse | int | |
JammingSound | ID |
JetPack
| Field | Type | Values / notes |
|---|---|---|
DelayBeforeJump | float | |
Duration | float | |
ForwardCurve | AnimationCurve | |
HeightCurve | AnimationCurve | |
HeightPerUnitOfDistance | float | |
MaxHeight | float | |
StartTrigger | AnimatorParameterNameTemplate |
JumpIntoMelee
| Field | Type | Values / notes |
|---|---|---|
Animation | AnimationType | Attack, Jump, None, ShootBurst, ShootSingle, SpecialAttack1, SpecialAttack2, SpecialAttack3, SpecialAttack4, ThrowGrenade, UNUSED_ThrowClose |
CameraEffectOnTakeoff | CameraEffectType | HeavyQuake, LightQuake, MoveXZ, MoveY, None |
DelayBeforeJump | float | |
DistanceFromTarget | float | |
DurationPerUnitOfDistance | float | |
ForwardCurve | AnimationCurve | |
HeightCurve | AnimationCurve | |
HeightPerUnitOfDistance | float | |
MaxDuration | float | |
MaxHeight | float |
LifetimeLimit
| Field | Type | Values / notes |
|---|---|---|
Event | LifetimeType | OnAdded, OnAfterUse, OnEffectApplied, OnRoundStart, OnTurnEnd, OnTurnStart |
Lifetime | int | |
ResetLifetimeOnRefresh | bool |
LimitMaxHpLoss
| Field | Type | Values / notes |
|---|---|---|
MaxHpPct | float |
LimitUsability
| Field | Type | Values / notes |
|---|---|---|
HiddenIfActorHasSkill | List<SkillTemplate> | |
NotHiddenIfActorHasSkill | List<SkillTemplate> | |
NotUsableIfActorHasSkill | List<SkillTemplate> | |
OnlyUsableIfActorHasSkill | List<SkillTemplate> |
LimitedPassiveUses
| Field | Type | Values / notes |
|---|---|---|
MaxUses | int |
ModifyNamedValue
| Field | Type | Values / notes |
|---|---|---|
Delta | int | |
Trigger | EventTrigger | OnAdded, OnRemoved, OnTurnEnd, OnTurnStart |
ValueName | string |
ModularVehicleSkill
| Field | Type | Values / notes |
|---|---|---|
RequiredWeaponCount | WeaponCount | Single, Twinfire |
MoraleOverMaxEffect
| Field | Type | Values / notes |
|---|---|---|
Effect | SkillTemplate |
MoveAndSelfDestroy
| Field | Type | Values / notes |
|---|---|---|
AdditionalDelay | float | |
AfterMoveTrigger | AnimatorParameterNameTemplate | |
StartMoveTrigger | AnimatorParameterNameTemplate |
MovedNextToEnemy
| Field | Type | Values / notes |
|---|---|---|
Effect | SkillTemplate |
NamedValue
| Field | Type | Values / notes |
|---|---|---|
Name | string |
NothingPersonal
| Field | Type | Values / notes |
|---|---|---|
Effect | SkillTemplate | |
Range | int |
OnElementKilled
| Field | Type | Values / notes |
|---|---|---|
Amount | int | |
ApplyEffect | Effect | ReduceSuppression |
DisplayText | bool |
OverrideVolumeProfile
| Field | Type | Values / notes |
|---|---|---|
DesertProfile | VolumeProfile | |
FallbackProfile | VolumeProfile | |
SnowProfile | VolumeProfile | |
TemperateProfile | VolumeProfile |
Overtime
| Field | Type | Values / notes |
|---|---|---|
HpThreshold | float |
Overwatch
| Field | Type | Values / notes |
|---|---|---|
SkillFilter | ISkillFilter | Polymorphic: pick a subtype from Skill filters with set "SkillFilter" type="<Subtype>" { ... }. |
PlayAnimationSequence
| Field | Type | Values / notes |
|---|---|---|
Animation | AnimationSequenceTemplate |
PlaySound
| Field | Type | Values / notes |
|---|---|---|
Event | PlaySoundEventType | OnAdded, OnEffectApplied, OnRoundStart, OnTurnEnd, OnTurnStart |
SoundToPlay | ID | |
Volume | float |
PlaySoundOnEnabled
| Field | Type | Values / notes |
|---|---|---|
SoundToPlay | ID | |
Volume | float |
ProvideSkill
| Field | Type | Values / notes |
|---|---|---|
Condition | ITacticalCondition | Polymorphic: pick a subtype from Conditions with set "Condition" type="<Subtype>" { ... }. |
SkillToAdd | SkillTemplate |
PurgeSkill
| Field | Type | Values / notes |
|---|---|---|
Skill | SkillTemplate |
QuickFlick
| Field | Type | Values / notes |
|---|---|---|
RequiredSkill | SkillTemplate | |
SkillFilter | ISkillFilter | Polymorphic: pick a subtype from Skill filters with set "SkillFilter" type="<Subtype>" { ... }. |
Rally
No settable fields. It carries behaviour only.
RecallTarget
| Field | Type | Values / notes |
|---|---|---|
UseLastTargetOfSkill | SkillTemplate |
ReduceArmor
| Field | Type | Values / notes |
|---|---|---|
MaxReduction | float | |
ReductionPerStack | float |
ReduceMoraleOnAttacked
No settable fields. It carries behaviour only.
RefillActionPoints
No settable fields. It carries behaviour only.
RefillAmmo
| Field | Type | Values / notes |
|---|---|---|
RestoreMinimum | int | |
RestorePct | float | |
SkillFilter | ISkillFilter | Polymorphic: pick a subtype from Skill filters with set "SkillFilter" type="<Subtype>" { ... }. |
RefillSquaddies
| Field | Type | Values / notes |
|---|---|---|
Animation | AnimationSequenceTemplate |
Regeneration
| Field | Type | Values / notes |
|---|---|---|
Effect | GameObject | |
Event | ApplyOnEvent | OnApply, OnTurnEnd, OnTurnStart |
HitpointsHealedPctMax | float | |
Sound | ID |
RemoveDefect
| Field | Type | Values / notes |
|---|---|---|
RequiredType | SkillType | Active, Alert, Background, DamageEffect, Item, LightConditionEffect, MoraleEffect, None, Oci, Offmap, OperationEffect, Perk, PlanetaryEffect, Racial, Special, StatusEffect, Terrain, Trait, WeatherEffect, WorldEvent |
RemoveSkill
| Field | Type | Values / notes |
|---|---|---|
Event | RemoveTrigger | OnAdded, OnApply, OnRemoved, OnUse |
SkillsToRemove | SkillTemplate[] |
RepeatInAoE
| Field | Type | Values / notes |
|---|---|---|
MaxTargets | int | |
TargetCondition | ITacticalCondition | Polymorphic: pick a subtype from Conditions with set "TargetCondition" type="<Subtype>" { ... }. |
ReportAmmoToAnimator
| Field | Type | Values / notes |
|---|---|---|
Parameter | AnimatorParameterNameTemplate |
RequireKillPerTurn
No settable fields. It carries behaviour only.
Rescue
No settable fields. It carries behaviour only.
RestoreArmorDurability
| Field | Type | Values / notes |
|---|---|---|
RestorePercent | int |
RetaliateWithSkill
| Field | Type | Values / notes |
|---|---|---|
Condition | ITacticalCondition | Polymorphic: pick a subtype from Conditions with set "Condition" type="<Subtype>" { ... }. |
Skill | SkillTemplate |
ReturnOfServe
| Field | Type | Values / notes |
|---|---|---|
ConsumedOnTrigger | bool |
Scanner
| Field | Type | Values / notes |
|---|---|---|
AIEffectToEnemies | SkillTemplate | |
Blip | GameObject | |
DetectsInfantry | bool | |
DetectsVehicles | bool | |
Range | int | |
ScanSpeed | float | |
Scanline | GameObject |
SetAnimatorBool
| Field | Type | Values / notes |
|---|---|---|
Parameter | AnimatorParameterNameTemplate |
SetAnimatorTrigger
| Field | Type | Values / notes |
|---|---|---|
Delay | float | |
Parameter | AnimatorParameterNameTemplate |
SetEntityFlag
| Field | Type | Values / notes |
|---|---|---|
Flag | EntityFlags | CantEnterContainers, Confused, DesignatedTarget, HeavyWeaponsAllowed, IgnoreDeploymentRequirements, IgnoreSuppressedAPLoss, ImmuneDesignatedTarget, ImmuneToDamage, ImmuneToEncumbrance, ImmuneToIndirectSuppression, ImmuneToLightEffect, ImmuneToMorale, ImmuneToSuppression, ImmuneToSuppressionFromElementLost, IrrelevantToMorale, None, Rooted, RootedByStance, Stunned |
SetNamedValue
| Field | Type | Values / notes |
|---|---|---|
Trigger | EventTrigger | OnAdded, OnRemoved |
Value | int | |
ValueName | string |
SetUsesPerElement
| Field | Type | Values / notes |
|---|---|---|
UsesPerElement | int |
ShowHUDIcon
| Field | Type | Values / notes |
|---|---|---|
IconToShow | Icon | None, TargetDesignated |
ShowIsolatedIcon
| Field | Type | Values / notes |
|---|---|---|
Radius | int |
ShowUnitHUDIcon
| Field | Type | Values / notes |
|---|---|---|
Conditions | ITacticalCondition[] | Polymorphic list: add subtypes from Conditions with append "Conditions" type="<Subtype>" { ... }. |
Icon | Sprite | |
Target | TargetUnit | AllEnemies, Self |
SpawnEntity
| Field | Type | Values / notes |
|---|---|---|
AlignSpawnDirection | bool | |
EntityToSpawn | EntityTemplate | |
FactionType | FactionType | AlliedLocalForces, Civilian, Constructs, EnemyLocalForces, Neutral, Pirates, Player, PlayerAI, RogueArmy, Wildlife |
HideIfSpawnLimitReached | bool | |
OverrideFaction | bool | |
SetParameterOnSpawn | AnimatorParameterNameTemplate | |
SkipFirstTurnForSpawnedEntity | bool | |
SpawnAsMinion | MinionType | AttackDrone, None, ReconDrone, SuicideDrone |
SpawnLimit | int | |
Trigger | SpawnTrigger | OnTileHit, OnUse |
SpawnGore
| Field | Type | Values / notes |
|---|---|---|
Amount | int | |
Distance | float | |
MinMaxScale | Vector2 | |
Prefabs | PrefabListTemplate |
SpawnHalfCover
| Field | Type | Values / notes |
|---|---|---|
CoverConfig | CoverConfig |
SpawnPrefab
| Field | Type | Values / notes |
|---|---|---|
Prefab | GameObject |
SpawnTileEffect
| Field | Type | Values / notes |
|---|---|---|
CanHitStructures | bool | |
ChanceAtCenter | int | |
ChancePerTileFromCenter | int | |
DelayWithDistance | float | |
EffectToSpawn | TileEffectTemplate | |
Event | ApplyOnEvent | OnDeath, OnTileChanged, OnUse |
StanceDeployed
| Field | Type | Values / notes |
|---|---|---|
Properties | PropertyChange[] |
StopBleedout
No settable fields. It carries behaviour only.
SuicideDrone
No settable fields. It carries behaviour only.
Suppression
| Field | Type | Values / notes |
|---|---|---|
PinnedDownEffect | SkillTemplate | |
SoundWhenPinnedDown | ID | |
SoundWhenSuppressed | ID |
SuppressionConstruct
| Field | Type | Values / notes |
|---|---|---|
PinnedDownEffect | SkillTemplate | |
PinnedDownText | string | |
SoundWhenPinnedDown | ID |
SwitchBetweenSkills
| Field | Type | Values / notes |
|---|---|---|
DisplayAOEAreaOfAlternateSkill | bool | |
IsVisibleAtStart | bool | |
Mode | DeactivateMode | Disable, Hide |
SwitchToAlternativeItemIcon | bool | |
SwitchWithSkill | SkillTemplate |
SynchronizeItemUses
No settable fields. It carries behaviour only.
TerrorOfTahishek
| Field | Type | Values / notes |
|---|---|---|
APLoss | int | |
Effect | SkillTemplate | |
Radius | int |
ThrivingUnderPressure
| Field | Type | Values / notes |
|---|---|---|
RequiredStacksForUse | int |
ToggleSkills
| Field | Type | Values / notes |
|---|---|---|
ActiveSkills | SkillTemplate[] |
TrackAdjacentKills
No settable fields. It carries behaviour only.
TriggerSkillOnHpLost
| Field | Type | Values / notes |
|---|---|---|
CanOnlyTriggerOncePerRound | bool | |
HpThreshold | int | |
SkillToTrigger | SkillTemplate |
UseSkill
| Field | Type | Values / notes |
|---|---|---|
Event | ApplyOnEvent | OnAdded |
SkillToUse | SkillTemplate |
VaultModeOverride
| Field | Type | Values / notes |
|---|---|---|
VaultMode | VaultMode | Destroy, None, OnlyTrigger, RootMotion |
VehicleMovement
| Field | Type | Values / notes |
|---|---|---|
Concealment | int |
VehicleRotation
No settable fields. It carries behaviour only.
VentHeat
| Field | Type | Values / notes |
|---|---|---|
VentForSkill | SkillTemplate |
VerifyByCondition
| Field | Type | Values / notes |
|---|---|---|
Condition | ITacticalCondition | Polymorphic: pick a subtype from Conditions with set "Condition" type="<Subtype>" { ... }. |
VisualForceField
| Field | Type | Values / notes |
|---|---|---|
Prefab | GameObject |
Conditions
A condition gates a handler: the handler only acts when the condition holds. A handler field typed ITacticalCondition takes one of these subtypes, and a field typed ITacticalCondition[] takes a list of them. Name the subtype with type="<Name>" and set its fields, the same way as a handler:
set "EventHandlers" index=0 {
set "Condition" type="EntityWithTagsCondition" {
set "CheckEntity" "Target"
append "RequiredTags" "LARGE"
}
}Every subtype below except AndCondition, CoverInAttackDirCondition, IsAlliedCondition, LastAttackedByCondition, OrCondition and PincerCondition also takes these fields:
| Field | Type | Values / notes |
|---|---|---|
CheckEntity | CheckTarget | Target, User |
Negated | bool |
ActorTypeCondition
| Field | Type | Values / notes |
|---|---|---|
RequiredType | ActorType | Infantry, Turret, Vehicle |
AndCondition
| Field | Type | Values / notes |
|---|---|---|
Conditions | ITacticalCondition[] | Polymorphic list: add subtypes from Conditions with append "Conditions" type="<Subtype>" { ... }. |
CoverCondition
| Field | Type | Values / notes |
|---|---|---|
MinCover | CoverType | Heavy, Light, Medium, None |
CoverInAttackDirCondition
| Field | Type | Values / notes |
|---|---|---|
Negated | bool |
DisabledOrStunnedCondition
No fields of its own. It takes only the shared fields above.
DistanceCondition
| Field | Type | Values / notes |
|---|---|---|
MaxDistance | int |
ElementCountCondition
| Field | Type | Values / notes |
|---|---|---|
TargetCount | int |
ElementsHitCondition
| Field | Type | Values / notes |
|---|---|---|
MinElementsHit | int |
EntityTypeCondition
| Field | Type | Values / notes |
|---|---|---|
RequiredType | EntityType | Actor, None, Structure |
EntityWithOneOfTheTagsCondition
| Field | Type | Values / notes |
|---|---|---|
RequiredTags | TagType[] | ACCESSORY, ACCURATE, AIRPOWER, ANTI_INFANTRY, ANTI_STRUCTURE, ANTI_VEHICLE, AREA_OF_EFFECT, ARMOR_DAMAGING, ARMOR_PIERCING, ASSAULT_RIFLE, BATTLE_RIFLE, CAMOUFLAGE, COMMODITY, CRAFTING_MATERIAL, DEMORALIZING, DEPLOY, DEPLOYABLE, DESTRUCTIBLE, DISABLING, DRONE, DRUG, EMP, ENERGY, FLEXIBLE, GRENADE, HAZARDOUS, HEAVY_ARMOR, HIGH_RATE_OF_FIRE, HORDE, HOVERING, IGNORES_COVER, INACCURATE, INCENDIARY, INDIRECT_FIRE, INFANTRY, JAM, JETPACK, LARGE, LIGHT_ARMOR, LIMITED_AMMO, LONG_RANGE, LOW_PENETRATION, LOW_QUALITY, Last, MACHINE, MANY_ACCESSORIES, MASSIVE_EXPLOSION, MEDIUM_ARMOR, MINE, MINIMUM_RANGE, MINI_BOSS, MOBILE, MOTORIZED_INFANTRY, ORBITAL, PROJECTILE, ROCKET, SCANNER, SCATTER, SHORT_RANGE, SHOTGUN, SMG, SMOKE, SNIPER, SPECIAL_WEAPON, SQUAD_WEAPON, STANCE, STEALTH, STRUCTURE, SUPPRESSIVE, TANK, UNIQUE, UNUSED_MUST_DEPLOY, UTILITY, VEHICLE, VEHICLE_WEAPON, VIP, WALKER, WEAPON, WEAPONS_TEAM, XENO |
EntityWithTagsCondition
| Field | Type | Values / notes |
|---|---|---|
RequiredTags | TagType[] | ACCESSORY, ACCURATE, AIRPOWER, ANTI_INFANTRY, ANTI_STRUCTURE, ANTI_VEHICLE, AREA_OF_EFFECT, ARMOR_DAMAGING, ARMOR_PIERCING, ASSAULT_RIFLE, BATTLE_RIFLE, CAMOUFLAGE, COMMODITY, CRAFTING_MATERIAL, DEMORALIZING, DEPLOY, DEPLOYABLE, DESTRUCTIBLE, DISABLING, DRONE, DRUG, EMP, ENERGY, FLEXIBLE, GRENADE, HAZARDOUS, HEAVY_ARMOR, HIGH_RATE_OF_FIRE, HORDE, HOVERING, IGNORES_COVER, INACCURATE, INCENDIARY, INDIRECT_FIRE, INFANTRY, JAM, JETPACK, LARGE, LIGHT_ARMOR, LIMITED_AMMO, LONG_RANGE, LOW_PENETRATION, LOW_QUALITY, Last, MACHINE, MANY_ACCESSORIES, MASSIVE_EXPLOSION, MEDIUM_ARMOR, MINE, MINIMUM_RANGE, MINI_BOSS, MOBILE, MOTORIZED_INFANTRY, ORBITAL, PROJECTILE, ROCKET, SCANNER, SCATTER, SHORT_RANGE, SHOTGUN, SMG, SMOKE, SNIPER, SPECIAL_WEAPON, SQUAD_WEAPON, STANCE, STEALTH, STRUCTURE, SUPPRESSIVE, TANK, UNIQUE, UNUSED_MUST_DEPLOY, UTILITY, VEHICLE, VEHICLE_WEAPON, VIP, WALKER, WEAPON, WEAPONS_TEAM, XENO |
FactionCondition
| Field | Type | Values / notes |
|---|---|---|
RequiredFaction | FactionType | AlliedLocalForces, Civilian, Constructs, EnemyLocalForces, Neutral, Pirates, Player, PlayerAI, RogueArmy, Wildlife |
HasAnySkillCondition
| Field | Type | Values / notes |
|---|---|---|
SkillsToCheck | SkillTemplate[] |
HasBeenAttackedThisRoundCondition
No fields of its own. It takes only the shared fields above.
HasDefectCondition
No fields of its own. It takes only the shared fields above.
HasFlagCondition
| Field | Type | Values / notes |
|---|---|---|
RequiredFlag | EntityFlags | CantEnterContainers, Confused, DesignatedTarget, HeavyWeaponsAllowed, IgnoreDeploymentRequirements, IgnoreSuppressedAPLoss, ImmuneDesignatedTarget, ImmuneToDamage, ImmuneToEncumbrance, ImmuneToIndirectSuppression, ImmuneToLightEffect, ImmuneToMorale, ImmuneToSuppression, ImmuneToSuppressionFromElementLost, IrrelevantToMorale, None, Rooted, RootedByStance, Stunned |
HasItemInSlotCondition
| Field | Type | Values / notes |
|---|---|---|
Slots | ItemSlot[] | All, COUNT, InfantryAccessory, InfantryArmor, InfantrySpecial, InfantryWeapon, ModularVehicleHeavy, ModularVehicleLight, ModularVehicleMedium, None, Vehicle, VehicleAccessory, VehicleHeavyTurret, VehicleLightTurret |
HasItemWithSlotCondition
| Field | Type | Values / notes |
|---|---|---|
Slots | ItemSlot[] | All, COUNT, InfantryAccessory, InfantryArmor, InfantrySpecial, InfantryWeapon, ModularVehicleHeavy, ModularVehicleLight, ModularVehicleMedium, None, Vehicle, VehicleAccessory, VehicleHeavyTurret, VehicleLightTurret |
HasItemWithTagsCondition
| Field | Type | Values / notes |
|---|---|---|
RequiredTags | TagTemplate[] |
HasSpecificVehicleCondition
| Field | Type | Values / notes |
|---|---|---|
AllowedVehicles | VehicleItemTemplate[] |
HitpointsPercentageCondition
| Field | Type | Values / notes |
|---|---|---|
CheckOperation | CheckCondition | GreaterOrEqual, LowerOrEqual |
Percentage | int |
ImmuneToMoraleCondition
No fields of its own. It takes only the shared fields above.
IsAlliedCondition
No settable fields. It carries behaviour only.
IsContainingEntityCondition
No fields of its own. It takes only the shared fields above.
IsDeployedCondition
No fields of its own. It takes only the shared fields above.
IsHiddenCondition
No fields of its own. It takes only the shared fields above.
IsObjectiveTargetCondition
No fields of its own. It takes only the shared fields above.
IsUsingSkillInSlotCondition
| Field | Type | Values / notes |
|---|---|---|
Slots | ItemSlot[] | All, COUNT, InfantryAccessory, InfantryArmor, InfantrySpecial, InfantryWeapon, ModularVehicleHeavy, ModularVehicleLight, ModularVehicleMedium, None, Vehicle, VehicleAccessory, VehicleHeavyTurret, VehicleLightTurret |
IsVehicleCondition
No fields of its own. It takes only the shared fields above.
IsolatedCondition
| Field | Type | Values / notes |
|---|---|---|
Radius | int |
LastAttackedByCondition
No settable fields. It carries behaviour only.
LightCondition
| Field | Type | Values / notes |
|---|---|---|
RequiredLightCondition | LightConditionType | Dawn, Day, Dusk, Last, Night, Random |
MoralePercentCondition
| Field | Type | Values / notes |
|---|---|---|
CheckOperation | CheckCondition | HigherOrEqual, LowerOrEqual |
MoralePercent | int |
MoraleStateCondition
| Field | Type | Values / notes |
|---|---|---|
CheckOperation | CheckCondition | Equal, HigherOrEqual, LowerOrEqual |
MoraleState | MoraleState | Fleeing, Neutral, Wavering |
OrCondition
| Field | Type | Values / notes |
|---|---|---|
Conditions | ITacticalCondition[] | Polymorphic list: add subtypes from Conditions with append "Conditions" type="<Subtype>" { ... }. |
PincerCondition
| Field | Type | Values / notes |
|---|---|---|
MaxDistance | int |
SkillWithOneOfTheTagsCondition
| Field | Type | Values / notes |
|---|---|---|
RequiredTags | TagType[] | ACCESSORY, ACCURATE, AIRPOWER, ANTI_INFANTRY, ANTI_STRUCTURE, ANTI_VEHICLE, AREA_OF_EFFECT, ARMOR_DAMAGING, ARMOR_PIERCING, ASSAULT_RIFLE, BATTLE_RIFLE, CAMOUFLAGE, COMMODITY, CRAFTING_MATERIAL, DEMORALIZING, DEPLOY, DEPLOYABLE, DESTRUCTIBLE, DISABLING, DRONE, DRUG, EMP, ENERGY, FLEXIBLE, GRENADE, HAZARDOUS, HEAVY_ARMOR, HIGH_RATE_OF_FIRE, HORDE, HOVERING, IGNORES_COVER, INACCURATE, INCENDIARY, INDIRECT_FIRE, INFANTRY, JAM, JETPACK, LARGE, LIGHT_ARMOR, LIMITED_AMMO, LONG_RANGE, LOW_PENETRATION, LOW_QUALITY, Last, MACHINE, MANY_ACCESSORIES, MASSIVE_EXPLOSION, MEDIUM_ARMOR, MINE, MINIMUM_RANGE, MINI_BOSS, MOBILE, MOTORIZED_INFANTRY, ORBITAL, PROJECTILE, ROCKET, SCANNER, SCATTER, SHORT_RANGE, SHOTGUN, SMG, SMOKE, SNIPER, SPECIAL_WEAPON, SQUAD_WEAPON, STANCE, STEALTH, STRUCTURE, SUPPRESSIVE, TANK, UNIQUE, UNUSED_MUST_DEPLOY, UTILITY, VEHICLE, VEHICLE_WEAPON, VIP, WALKER, WEAPON, WEAPONS_TEAM, XENO |
SkillWithTagsCondition
| Field | Type | Values / notes |
|---|---|---|
ForbiddenTags | TagType[] | ACCESSORY, ACCURATE, AIRPOWER, ANTI_INFANTRY, ANTI_STRUCTURE, ANTI_VEHICLE, AREA_OF_EFFECT, ARMOR_DAMAGING, ARMOR_PIERCING, ASSAULT_RIFLE, BATTLE_RIFLE, CAMOUFLAGE, COMMODITY, CRAFTING_MATERIAL, DEMORALIZING, DEPLOY, DEPLOYABLE, DESTRUCTIBLE, DISABLING, DRONE, DRUG, EMP, ENERGY, FLEXIBLE, GRENADE, HAZARDOUS, HEAVY_ARMOR, HIGH_RATE_OF_FIRE, HORDE, HOVERING, IGNORES_COVER, INACCURATE, INCENDIARY, INDIRECT_FIRE, INFANTRY, JAM, JETPACK, LARGE, LIGHT_ARMOR, LIMITED_AMMO, LONG_RANGE, LOW_PENETRATION, LOW_QUALITY, Last, MACHINE, MANY_ACCESSORIES, MASSIVE_EXPLOSION, MEDIUM_ARMOR, MINE, MINIMUM_RANGE, MINI_BOSS, MOBILE, MOTORIZED_INFANTRY, ORBITAL, PROJECTILE, ROCKET, SCANNER, SCATTER, SHORT_RANGE, SHOTGUN, SMG, SMOKE, SNIPER, SPECIAL_WEAPON, SQUAD_WEAPON, STANCE, STEALTH, STRUCTURE, SUPPRESSIVE, TANK, UNIQUE, UNUSED_MUST_DEPLOY, UTILITY, VEHICLE, VEHICLE_WEAPON, VIP, WALKER, WEAPON, WEAPONS_TEAM, XENO |
RequiredTags | TagType[] | ACCESSORY, ACCURATE, AIRPOWER, ANTI_INFANTRY, ANTI_STRUCTURE, ANTI_VEHICLE, AREA_OF_EFFECT, ARMOR_DAMAGING, ARMOR_PIERCING, ASSAULT_RIFLE, BATTLE_RIFLE, CAMOUFLAGE, COMMODITY, CRAFTING_MATERIAL, DEMORALIZING, DEPLOY, DEPLOYABLE, DESTRUCTIBLE, DISABLING, DRONE, DRUG, EMP, ENERGY, FLEXIBLE, GRENADE, HAZARDOUS, HEAVY_ARMOR, HIGH_RATE_OF_FIRE, HORDE, HOVERING, IGNORES_COVER, INACCURATE, INCENDIARY, INDIRECT_FIRE, INFANTRY, JAM, JETPACK, LARGE, LIGHT_ARMOR, LIMITED_AMMO, LONG_RANGE, LOW_PENETRATION, LOW_QUALITY, Last, MACHINE, MANY_ACCESSORIES, MASSIVE_EXPLOSION, MEDIUM_ARMOR, MINE, MINIMUM_RANGE, MINI_BOSS, MOBILE, MOTORIZED_INFANTRY, ORBITAL, PROJECTILE, ROCKET, SCANNER, SCATTER, SHORT_RANGE, SHOTGUN, SMG, SMOKE, SNIPER, SPECIAL_WEAPON, SQUAD_WEAPON, STANCE, STEALTH, STRUCTURE, SUPPRESSIVE, TANK, UNIQUE, UNUSED_MUST_DEPLOY, UTILITY, VEHICLE, VEHICLE_WEAPON, VIP, WALKER, WEAPON, WEAPONS_TEAM, XENO |
SpecificSkillCondition
| Field | Type | Values / notes |
|---|---|---|
RequiredSkill | SkillTemplate |
StationaryCondition
No fields of its own. It takes only the shared fields above.
StructureTypeCondition
| Field | Type | Values / notes |
|---|---|---|
RequiredType | StructureType | Building, Vegetation |
SuppressionCondition
| Field | Type | Values / notes |
|---|---|---|
SuppressionState | SuppressionState | None, PinnedDown, Suppressed |
Value providers
A value provider computes a number for a handler field typed IValueProvider (for example ChangeProperty.ValueProvider). Name the subtype with type="<Name>" and set its fields:
set "EventHandlers" index=0 {
set "ValueProvider" type="CoverValueProvider" {
set "HeavyCoverValue" 3
}
}ActionPointProvider
No settable fields. It carries behaviour only.
AdjacentEnemiesKilledByPlayerProvider
No settable fields. It carries behaviour only.
AdjacentInfantryProvider
| Field | Type | Values / notes |
|---|---|---|
MaxAmount | int |
AttackedThisRoundValueProvider
No settable fields. It carries behaviour only.
ClampedValueProvider
| Field | Type | Values / notes |
|---|---|---|
Max | int | |
Min | int | |
ValueProvider | IValueProvider | Polymorphic: pick a subtype from Value providers with set "ValueProvider" type="<Subtype>" { ... }. |
CoverValueProvider
| Field | Type | Values / notes |
|---|---|---|
HeavyCoverValue | int | |
LightCoverValue | int | |
MediumCoverValue | int |
DistanceValueProvider
No settable fields. It carries behaviour only.
EnemiesKilledProvider
| Field | Type | Values / notes |
|---|---|---|
Maximum | int | |
Minimum | int |
EnemyVehiclesDestroyedByPlayerProvider
No settable fields. It carries behaviour only.
EntityPropertyProvider
| Field | Type | Values / notes |
|---|---|---|
MaxValue | int | |
MinValue | int | |
PropertyType | EntityPropertyType | AIPriorityMult, APEnterCost, APLeaveCost, Accuracy, AccuracyDropoff, AccuracyDropoffMult, AccuracyMult, ActionPoints, ActionPointsMult, AdditionalMovementCost, AdditionalTurningCost, Armor, ArmorDamageSustainedMult, ArmorDurabilityPerElement, ArmorMult, ArmorPenetration, ArmorPenetrationDropoff, ArmorPenetrationDropoffMult, ArmorPenetrationMult, BackwardsMovementMult, Concealment, ConcealmentMult, CoverEffectivenessMult, CoverGainedByVehicleOffset, CoverTypeOffset, CriticalChance, CriticalDamageMult, Damage, DamageDropoff, DamageDropoffMult, DamageMult, DamageSustainedMult, DamageSustainedSquadLeaderMult, DamageToArmorDurability, DamageToArmorDurabilityDropoff, DamageToArmorDurabilityDropoffMult, DamageToArmorDurabilityMult, DamageToMoraleMult, DefectThresholdOffset, DefenseMult, DeployCostMult, DeploymentZoneMinExtend, DeploymentZoneMult, Detection, DetectionMult, Discipline, DisciplineMult, DismemberChance, ElementsHit, ElementsHitPct, GetDismemberedChanceBonus, GetDismemberedChanceMult, GetDismemberedMaxParts, GetDismemberedMinParts, HitchanceMin, HitpointsPerElement, HitpointsPerElementMult, IgnoreCoverMult, MaxElements, MoraleBonus, MoraleImpactMult, MoraleMult, MoraleRecoveryMult, MoraleStateOffset, PromotionCostMult, ProvidedCoverBonus, ReduceElementsHit, SuppressionDealt, SuppressionDealtMult, SuppressionImpactMult, TotalDamageMult, Vision, VisionMult |
MissingHealthProvider
| Field | Type | Values / notes |
|---|---|---|
CheckEntity | CheckTarget | Target, User |
StacksAt0HP | int |
NamedValueProvider
| Field | Type | Values / notes |
|---|---|---|
ValueName | string |
PerkCountProvider
| Field | Type | Values / notes |
|---|---|---|
Maximum | int |
ProximityValueProvider
| Field | Type | Values / notes |
|---|---|---|
MaximumDistance | int |
RoundValueProvider
| Field | Type | Values / notes |
|---|---|---|
MaxValue | int | |
Offset | int |
SquadSizeProvider
| Field | Type | Values / notes |
|---|---|---|
NeutralSize | int |
SquaddiesLostProvider
| Field | Type | Values / notes |
|---|---|---|
Multiplier | int |
StrategyVarProvider
| Field | Type | Values / notes |
|---|---|---|
Multiplier | float | |
StrategyValue | StrategyVars | Authority, DemoteRefundPercentage, Intelligence, Last, OciComponents, OciComponentsEarned, OciRefundPercentage, OperationsPlayed, OperationsTimeoutBonus, OperationsWon, PromotionPoints, PromotionPointsEarned, StoryCheckpoints, Unused1, Unused2, Unused3, Unused4, Unused5, Unused6 |
SumProvider
| Field | Type | Values / notes |
|---|---|---|
MaxValue | int | |
MinValue | int | |
Providers | IValueProvider[] | Polymorphic list: add subtypes from Value providers with append "Providers" type="<Subtype>" { ... }. |
SuppressedCountProvider
| Field | Type | Values / notes |
|---|---|---|
MaxStacks | int |
TilesMovedProvider
No settable fields. It carries behaviour only.
WrecksDestroyedProvider
No settable fields. It carries behaviour only.
Skill filters
A skill filter narrows which skills a handler applies to. A handler field typed ISkillFilter takes one of these subtypes. Name it with type="<Name>" and set its fields.
AllSkillsExcept
| Field | Type | Values / notes |
|---|---|---|
ExcludedSkills | SkillTemplate[] |
AndSkillFilter
| Field | Type | Values / notes |
|---|---|---|
Filters | ISkillFilter[] | Polymorphic list: add subtypes from Skill filters with append "Filters" type="<Subtype>" { ... }. |
IsAttackFilter
No settable fields. It carries behaviour only.
IsItemSkillFilter
No settable fields. It carries behaviour only.
IsObjectiveSkillFilter
No settable fields. It carries behaviour only.
IsStanceChange
No settable fields. It carries behaviour only.
IsTargetedFilter
No settable fields. It carries behaviour only.
IsWeaponSkillFilter
No settable fields. It carries behaviour only.
ItemSlotFilter (skill filters)
| Field | Type | Values / notes |
|---|---|---|
ItemSlots | ItemSlot[] | All, COUNT, InfantryAccessory, InfantryArmor, InfantrySpecial, InfantryWeapon, ModularVehicleHeavy, ModularVehicleLight, ModularVehicleMedium, None, Vehicle, VehicleAccessory, VehicleHeavyTurret, VehicleLightTurret |
SpecificSkillsFilter
| Field | Type | Values / notes |
|---|---|---|
TargetSkills | SkillTemplate[] |
TagFilter
| Field | Type | Values / notes |
|---|---|---|
ForbiddenTags | TagType[] | ACCESSORY, ACCURATE, AIRPOWER, ANTI_INFANTRY, ANTI_STRUCTURE, ANTI_VEHICLE, AREA_OF_EFFECT, ARMOR_DAMAGING, ARMOR_PIERCING, ASSAULT_RIFLE, BATTLE_RIFLE, CAMOUFLAGE, COMMODITY, CRAFTING_MATERIAL, DEMORALIZING, DEPLOY, DEPLOYABLE, DESTRUCTIBLE, DISABLING, DRONE, DRUG, EMP, ENERGY, FLEXIBLE, GRENADE, HAZARDOUS, HEAVY_ARMOR, HIGH_RATE_OF_FIRE, HORDE, HOVERING, IGNORES_COVER, INACCURATE, INCENDIARY, INDIRECT_FIRE, INFANTRY, JAM, JETPACK, LARGE, LIGHT_ARMOR, LIMITED_AMMO, LONG_RANGE, LOW_PENETRATION, LOW_QUALITY, Last, MACHINE, MANY_ACCESSORIES, MASSIVE_EXPLOSION, MEDIUM_ARMOR, MINE, MINIMUM_RANGE, MINI_BOSS, MOBILE, MOTORIZED_INFANTRY, ORBITAL, PROJECTILE, ROCKET, SCANNER, SCATTER, SHORT_RANGE, SHOTGUN, SMG, SMOKE, SNIPER, SPECIAL_WEAPON, SQUAD_WEAPON, STANCE, STEALTH, STRUCTURE, SUPPRESSIVE, TANK, UNIQUE, UNUSED_MUST_DEPLOY, UTILITY, VEHICLE, VEHICLE_WEAPON, VIP, WALKER, WEAPON, WEAPONS_TEAM, XENO |
Mode | TagFilterMode | AllTags, OneOfTheTags |
RequiredTags | TagType[] | ACCESSORY, ACCURATE, AIRPOWER, ANTI_INFANTRY, ANTI_STRUCTURE, ANTI_VEHICLE, AREA_OF_EFFECT, ARMOR_DAMAGING, ARMOR_PIERCING, ASSAULT_RIFLE, BATTLE_RIFLE, CAMOUFLAGE, COMMODITY, CRAFTING_MATERIAL, DEMORALIZING, DEPLOY, DEPLOYABLE, DESTRUCTIBLE, DISABLING, DRONE, DRUG, EMP, ENERGY, FLEXIBLE, GRENADE, HAZARDOUS, HEAVY_ARMOR, HIGH_RATE_OF_FIRE, HORDE, HOVERING, IGNORES_COVER, INACCURATE, INCENDIARY, INDIRECT_FIRE, INFANTRY, JAM, JETPACK, LARGE, LIGHT_ARMOR, LIMITED_AMMO, LONG_RANGE, LOW_PENETRATION, LOW_QUALITY, Last, MACHINE, MANY_ACCESSORIES, MASSIVE_EXPLOSION, MEDIUM_ARMOR, MINE, MINIMUM_RANGE, MINI_BOSS, MOBILE, MOTORIZED_INFANTRY, ORBITAL, PROJECTILE, ROCKET, SCANNER, SCATTER, SHORT_RANGE, SHOTGUN, SMG, SMOKE, SNIPER, SPECIAL_WEAPON, SQUAD_WEAPON, STANCE, STEALTH, STRUCTURE, SUPPRESSIVE, TANK, UNIQUE, UNUSED_MUST_DEPLOY, UTILITY, VEHICLE, VEHICLE_WEAPON, VIP, WALKER, WEAPON, WEAPONS_TEAM, XENO |
Item filters
An item filter narrows which items a handler applies to. A handler field typed IItemFilter takes one of these subtypes. Name it with type="<Name>" and set its fields.
ItemSlotFilter (item filters)
| Field | Type | Values / notes |
|---|---|---|
ValidSlots | ItemSlot[] | All, COUNT, InfantryAccessory, InfantryArmor, InfantrySpecial, InfantryWeapon, ModularVehicleHeavy, ModularVehicleLight, ModularVehicleMedium, None, Vehicle, VehicleAccessory, VehicleHeavyTurret, VehicleLightTurret |