From f43c198ea4e94c5cad6458b93edb82ad0e6a89b4 Mon Sep 17 00:00:00 2001
From: Boundir <30468080+boundir@users.noreply.github.com>
Date: Tue, 22 Sep 2026 16:58:13 +0200
Subject: [PATCH 1/4] Track the doc generator and fix the schema it produces
Fixes replace-only arrays advertised a mode field that does not exist Fixes
template fields carried neither type nor description.
---
.scripts/generate-docs.ps1 | 1349 +
.../Classes/AE_DataStructures.uc | 3 +
CHANGELOG.md | 142 +
README.md | 45 +-
docs/schema.json | 63251 ++++++++++++++++
5 files changed, 64785 insertions(+), 5 deletions(-)
create mode 100644 .scripts/generate-docs.ps1
create mode 100644 CHANGELOG.md
create mode 100644 docs/schema.json
diff --git a/.scripts/generate-docs.ps1 b/.scripts/generate-docs.ps1
new file mode 100644
index 0000000..e5b2749
--- /dev/null
+++ b/.scripts/generate-docs.ps1
@@ -0,0 +1,1349 @@
+#Requires -Version 5.1
+<#
+.SYNOPSIS
+ Regenerates the AbilityEditor 2.0 API documentation from the UnrealScript sources.
+
+.DESCRIPTION
+ Parses AbilityEditor\Src\AbilityEditor\Classes\*.uc and writes:
+ - docs/schema.json machine-readable API description
+ - README.md generated blocks between markers
+
+.PARAMETER SchemaOnly
+ Write docs/schema.json only and leave README.md untouched.
+
+.PARAMETER CheckOnly
+ Write nothing and exit 1 when README.md or docs/schema.json are stale.
+
+.PARAMETER PrintSourceHash
+ Print the hash of the .uc sources and exit.
+
+.PARAMETER SdkPath
+ XCOM 2 SDK root, defaulting to the 'xcom.highlander.sdkroot' VS Code setting.
+ Without it the abstract / non-editable / dispatch-order enrichment is skipped.
+
+.EXAMPLE
+ .\.scripts\generate-docs.ps1 -CheckOnly
+#>
+[CmdletBinding()]
+param(
+ [switch] $SchemaOnly,
+ [switch] $CheckOnly,
+ [switch] $PrintSourceHash,
+ [string] $SdkPath = ''
+)
+
+Set-StrictMode -Version Latest
+$ErrorActionPreference = 'Stop'
+
+# Status messages go to the information stream; -InformationAction still wins when passed.
+if (-not $PSBoundParameters.ContainsKey('InformationAction')) { $InformationPreference = 'Continue' }
+
+$RepoRoot = Split-Path -Parent $PSScriptRoot
+$ClassesDir = Join-Path $RepoRoot 'AbilityEditor\Src\AbilityEditor\Classes'
+$ReadmePath = Join-Path $RepoRoot 'README.md'
+$DocsDir = Join-Path $RepoRoot 'docs'
+$SchemaPath = Join-Path $DocsDir 'schema.json'
+
+$DataStructuresFile = Join-Path $ClassesDir 'AE_DataStructures.uc'
+$DlcInfoFile = Join-Path $ClassesDir 'X2DLCInfo_AbilityEditor.uc'
+
+# Line separator used throughout the markdown rendering.
+$nl = "`n"
+
+#region Generic helpers
+
+function Get-SourceHash {
+ param([string] $Path)
+
+ $files = @(Get-ChildItem -LiteralPath $Path -Filter '*.uc' -File | Sort-Object Name)
+ $text = ($files | ForEach-Object { [System.IO.File]::ReadAllText($_.FullName) }) -join "`n"
+
+ $sha256 = [System.Security.Cryptography.SHA256]::Create()
+ try {
+ $hash = $sha256.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($text))
+ }
+ finally {
+ $sha256.Dispose()
+ }
+ return [System.BitConverter]::ToString($hash).Replace('-', '').ToLowerInvariant()
+}
+
+function Read-TextFile {
+ param([string] $Path)
+
+ return [System.IO.File]::ReadAllLines($Path)
+}
+
+function ConvertTo-CommentFreeText {
+ param([string] $Text)
+
+ return (($Text -split "`n" | ForEach-Object { $_ -replace '//.*$', '' }) -join "`n")
+}
+
+# Splits a .uc file into function name -> body lines.
+function Get-FunctionBlockMap {
+ param([string[]] $Lines)
+
+ $blocks = @{}
+ $current = $null
+ $buffer = [System.Collections.Generic.List[string]]::new()
+
+ foreach ($line in $Lines) {
+ if ($line -match '^\s*(?:static\s+)?(?:event|function)\s+(?:[\w<>]+\s+)?(\w+)\s*\(') {
+ if ($null -ne $current) { $blocks[$current] = $buffer.ToArray() }
+ $current = $Matches[1]
+ $buffer = [System.Collections.Generic.List[string]]::new()
+ }
+ if ($null -ne $current) { $buffer.Add($line) }
+ }
+ if ($null -ne $current) { $blocks[$current] = $buffer.ToArray() }
+
+ return $blocks
+}
+
+# Maps variable names to edit-struct types, from parameters and local declarations.
+function Get-VarTypeMap {
+ param(
+ [string] $Text,
+ [string[]] $StructNames
+ )
+
+ $map = @{}
+ $joined = $StructNames -join '|'
+
+ $paramPattern = '[\s\(,](' + $joined + ')\s+(\w+)\s*[,\);]'
+ foreach ($m in [regex]::Matches($Text, $paramPattern)) {
+ $map[$m.Groups[2].Value] = $m.Groups[1].Value
+ }
+
+ $localPattern = '(?m)^\s*(?:local\s+)?(' + $joined + ')\s+(\w+)\s*[,\);]?\s*$'
+ foreach ($m in [regex]::Matches($Text, $localPattern)) {
+ $map[$m.Groups[2].Value] = $m.Groups[1].Value
+ }
+
+ return $map
+}
+
+# 'Template.AbilityCosts[i].Field' -> 'AbilityCosts[].Field'
+function Get-GameFieldFromTarget {
+ param([string] $Target)
+
+ $normalized = $Target -replace '\[\w+\]', '[]'
+ $dot = $normalized.IndexOf('.')
+ if ($dot -ge 0) { return $normalized.Substring($dot + 1) }
+ return $normalized
+}
+
+# Extracts what a function body actually writes: Set-guarded scalars and name-array edits.
+function Get-EditAction {
+ param(
+ [string[]] $BodyLines,
+ [hashtable] $VarMap
+ )
+
+ $records = [System.Collections.Generic.List[object]]::new()
+
+ for ($i = 0; $i -lt $BodyLines.Count; $i++) {
+ $line = $BodyLines[$i]
+
+ # if (Edit.SetFoo) { Template.Foo = Edit.Foo; }
+ if ($line -match 'if\s*\((\w+)\.Set(\w+)\)') {
+ $guardVar = $Matches[1]
+ $field = $Matches[2]
+ if (-not $VarMap.ContainsKey($guardVar)) { continue }
+
+ $gameField = $null
+ for ($j = $i + 1; $j -lt [Math]::Min($i + 20, $BodyLines.Count); $j++) {
+ $inner = $BodyLines[$j]
+ if ($inner -match ('^\s*([\w\.\[\]]+)\s*=\s*' + [regex]::Escape($guardVar) + '\.' + [regex]::Escape($field) + '\s*;')) {
+ $gameField = Get-GameFieldFromTarget $Matches[1]
+ break
+ }
+ if ($j -gt $i + 1 -and $inner -match '^\s*if\s*\(') { break }
+ }
+
+ $records.Add(@{ Kind = 'scalar'; Struct = $VarMap[$guardVar]; Config = $field; GameField = $gameField })
+ continue
+ }
+
+ # ApplyNameArrayEdit(..., Template.Foo, Edit.Foo, Edit.FooMode, ...)
+ if ($line -match 'Apply(Name|EffectReason)ArrayEdit\s*\(') {
+ $callArgs = [System.Collections.Generic.List[string]]::new()
+ for ($j = $i + 1; $j -lt [Math]::Min($i + 10, $BodyLines.Count); $j++) {
+ $arg = $BodyLines[$j].Trim().TrimEnd(',')
+ if ($arg -match '^\);?$') { break }
+ $callArgs.Add(($arg -replace '\);?$', ''))
+ }
+ if ($callArgs.Count -ge 5) {
+ $gameField = Get-GameFieldFromTarget $callArgs[2]
+ if ($callArgs[3] -match '^(\w+)\.(\w+)$' -and $VarMap.ContainsKey($Matches[1])) {
+ $records.Add(@{ Kind = 'namearray'; Struct = $VarMap[$Matches[1]]; Config = $Matches[2]; GameField = $gameField; ReplaceOnly = $false })
+ }
+ }
+ continue
+ }
+
+ # if (Edit.Foo.Length > 0) { ... } - moded when a FooMode is consulted, replace-only otherwise.
+ if ($line -match 'if\s*\((\w+)\.(\w+)\.Length\s*>\s*0\)') {
+ $guardVar = $Matches[1]
+ $field = $Matches[2]
+ if (-not $VarMap.ContainsKey($guardVar)) { continue }
+
+ $hasMode = $false
+ for ($j = $i + 1; $j -lt [Math]::Min($i + 4, $BodyLines.Count); $j++) {
+ if ($BodyLines[$j] -match ('\.' + [regex]::Escape($field) + 'Mode\s*==')) { $hasMode = $true; break }
+ }
+
+ $gameField = $null
+ for ($j = $i + 1; $j -lt [Math]::Min($i + 10, $BodyLines.Count); $j++) {
+ if ($BodyLines[$j] -match ('^\s*([\w\.\[\]]+)\s*=\s*' + [regex]::Escape($guardVar) + '\.' + [regex]::Escape($field) + '\s*;')) {
+ $gameField = Get-GameFieldFromTarget $Matches[1]
+ break
+ }
+ }
+
+ if (-not $hasMode -and $null -eq $gameField) { continue }
+ $records.Add(@{ Kind = 'namearray'; Struct = $VarMap[$guardVar]; Config = $field; GameField = $gameField; ReplaceOnly = (-not $hasMode) })
+ continue
+ }
+ }
+
+ return $records
+}
+
+#endregion
+
+if ($PrintSourceHash) {
+ Write-Output (Get-SourceHash $ClassesDir)
+ exit 0
+}
+
+#region Curated content the parser cannot infer from code
+
+$Curated = @{
+
+ Families = @(
+ @{ Name = 'Costs'; ConfigKey = 'Costs'; Struct = 'CostEdit'; Root = 'X2AbilityCostEditor'; Registry = 'CostEditors'; HelperApply = 'ApplyCostEdit'
+ Intro = 'Edits the `AbilityCosts` array of the template. Costs are edited **in place** when a cost of the given `Class` already exists; otherwise behaviour depends on the modes below. Fields you do not `Set` keep their current value.' }
+ @{ Name = 'Cooldown'; ConfigKey = 'Cooldown'; Struct = 'CooldownEdit'; Root = 'X2AbilityCooldownEditor'; Registry = 'CooldownEditors'; HelperApply = 'ApplyCooldownEdit'
+ Intro = 'Edits the template''s `AbilityCooldown`. With `Class` **omitted**, the existing cooldown is edited **in place** (no-op if the ability has none). With `Class` set, the existing cooldown is edited in place when it is already exactly that class; otherwise it is **replaced** by a new instance — any field you do not `Set` then takes the class''s default value.' }
+ @{ Name = 'Charges'; ConfigKey = 'Charges'; Struct = 'ChargesEdit'; Root = 'X2AbilityChargesEditor'; Registry = 'ChargesEditors'; HelperApply = 'ApplyChargesEdit'
+ Intro = 'Edits the template''s `AbilityCharges`. With `Class` **omitted**, the existing charges object is edited **in place** (no-op if the ability has none). With `Class` set, the existing object is edited in place when it is already exactly that class; otherwise it is **replaced** by a new instance — any field you do not `Set` then takes the class''s default value. `RemoveCharges=true` removes the charges object entirely.' }
+ @{ Name = 'Effects'; ConfigKey = 'Effects'; Struct = 'EffectEdit'; Root = 'X2AbilityEffectsEditor'; Registry = 'EffectsEditors'; HelperApply = 'ApplyEffectEdit'
+ Intro = 'Edits the effect arrays of the template. `Slot` selects which array is edited (see `EAbilityEffectSlot`). Within the selected array the effect of class `Class` is edited **in place** if present; otherwise behaviour depends on `Mode`.' }
+ @{ Name = 'Conditions'; ConfigKey = ''; Struct = 'ConditionEdit'; Root = 'X2AbilityConditionEditor'; Registry = 'ConditionEditors'; HelperApply = 'ApplyConditionEdits'
+ Intro = 'Conditions can be edited in seven places: the template-level arrays (`ShooterConditions`, `TargetConditions`, `MultiTargetConditions` directly inside an `AbilityEdit`) and, inside an `Effects` entry, the effect''s own `TargetConditions` plus the class-specific `ApplyDamageModConditions`, `LethalDamageConditions` and `ToHitConditions`. All take an array of `ConditionEdit` entries. Within the targeted array, the condition of class `Class` is edited **in place** if present; otherwise behaviour depends on `Mode`.' }
+ @{ Name = 'ToHitCalc'; ConfigKey = 'ToHitCalc'; Struct = 'ToHitCalcEdit'; Root = 'X2AbilityToHitCalcEditor'; Registry = 'ToHitCalcEditors'; HelperApply = 'ApplyToHitCalcEdit'
+ Intro = 'Edits the template''s to-hit calculation. Two slots exist: `ToHitCalc` (`Template.AbilityToHitCalc`) and `ToHitOwnerOnMissCalc` (`Template.AbilityToHitOwnerOnMissCalc`), both taking a `ToHitCalcEdit` block. With `Class` **omitted**, the existing calc is edited **in place**; with `Class` set, the existing calc is edited in place when it is already exactly that class, otherwise it is **replaced** by a new instance (unset fields then take class defaults). Classes without a dedicated editor below (e.g. `X2AbilityToHitCalc_StandardMelee`, `X2AbilityToHitCalc_DeadEye`) are still valid `Class` values — they get the fields of their nearest listed ancestor.' }
+ @{ Name = 'TargetStyle'; ConfigKey = 'TargetStyle'; Struct = 'TargetStyleEdit'; Root = 'X2AbilityTargetStyleEditor'; Registry = 'TargetStyleEditors'; HelperApply = 'ApplyTargetStyleEdit'
+ Intro = 'Edits `Template.AbilityTargetStyle` (how the ability picks its primary target). Same in-place/replace semantics as `ToHitCalc`. Field-less styles (`X2AbilityTarget_Self`, `X2AbilityTarget_Path`, ...) are valid `Class` values for swapping the style.' }
+ @{ Name = 'MultiTargetStyle'; ConfigKey = 'MultiTargetStyle'; Struct = 'MultiTargetStyleEdit'; Root = 'X2AbilityMultiTargetStyleEditor'; Registry = 'MultiTargetStyleEditors'; HelperApply = 'ApplyMultiTargetStyleEdit'
+ Intro = 'Edits the template''s multi-target styles. Two slots exist: `MultiTargetStyle` (`Template.AbilityMultiTargetStyle`) and `PassiveAOEStyle` (`Template.AbilityPassiveAOEStyle`), both taking a `MultiTargetStyleEdit` block. Same in-place/replace semantics as `ToHitCalc`.' }
+ @{ Name = 'Triggers'; ConfigKey = 'Triggers'; Struct = 'TriggerEdit'; Root = 'X2AbilityTriggerEditor'; Registry = 'TriggerEditors'; HelperApply = 'ApplyTriggerEdits'
+ Intro = 'Edits the `AbilityTriggers` array of the template. The trigger of class `Class` is edited **in place** if present; otherwise behaviour depends on `Mode`. **Caveat:** adding a *new* `X2AbilityTrigger_EventListener` from config is rarely useful — its `ListenerData.EventFn` delegate can only be assigned in code and stays `none`. Editing an existing listener trigger preserves its `EventFn`. `X2AbilityTrigger_OnAbilityActivated` is handled by the EventListener editor (its `MatchAbilityActivated` field is protected and cannot be set). See also `AbilityEventListenerEdits` in the template fields for the separate `Template.AbilityEventListeners` array.' }
+ )
+
+ StructuralFieldNotes = @{
+ 'AbilityEdit.Ability' = 'Required. Template name of the ability to edit (e.g. `SwordSlice`).'
+ 'CostEdit.Class' = 'Cost class to target/instantiate, e.g. `X2AbilityCost_ActionPoints`. Bare names are auto-prefixed with `XComGame.`; empty falls back to `X2AbilityCost`.'
+ 'CostEdit.Mode' = 'Per-entry edit mode (`EAbilityCostEditMode`), see [Edit modes](#edit-modes).'
+ 'CooldownEdit.Class' = 'Optional. Omitted = edit the existing cooldown in place. Set = target/instantiate that class, e.g. `X2AbilityCooldown_PerPlayerType`. Bare names are auto-prefixed with `XComGame.`.'
+ 'ChargesEdit.Class' = 'Optional. Omitted = edit the existing charges object in place. Set = target/instantiate that class, e.g. `X2AbilityCharges_GremlinHeal`. Bare names are auto-prefixed with `XComGame.`.'
+ 'ChargesEdit.RemoveCharges' = 'Set to true to remove the ability''s charges object entirely. No `Class` needed; the other fields of the block are ignored.'
+ 'ToHitCalcEdit.Class' = 'Optional. Omitted = edit the existing calc in place. Set = target/instantiate that class, e.g. `X2AbilityToHitCalc_StandardAim`. Bare names are auto-prefixed with `XComGame.`.'
+ 'ToHitCalcEdit.HitModifiers' = '**Replace-only**: when non-empty, replaces the calc''s always-on `HitModifiers` array entirely (`ShotModifierInfo`: `ModType`, `Value`, `Reason`).'
+ 'ToHitCalcEdit.CustomProperties' = 'Free-form key/value pairs for bridge-mod editors; ignored by the built-in editors.'
+ 'TargetStyleEdit.Class' = 'Optional. Omitted = edit the existing style in place. Set = target/instantiate that class, e.g. `X2AbilityTarget_Cursor`. Bare names are auto-prefixed with `XComGame.`.'
+ 'TargetStyleEdit.CustomProperties' = 'Free-form key/value pairs for bridge-mod editors; ignored by the built-in editors.'
+ 'MultiTargetStyleEdit.Class' = 'Optional. Omitted = edit the existing style in place. Set = target/instantiate that class, e.g. `X2AbilityMultiTarget_Radius`. Bare names are auto-prefixed with `XComGame.`.'
+ 'MultiTargetStyleEdit.CustomProperties' = 'Free-form key/value pairs for bridge-mod editors; ignored by the built-in editors.'
+ 'TriggerEdit.Class' = 'Trigger class to target/instantiate, e.g. `X2AbilityTrigger_UnitPostBeginPlay`. Bare names are auto-prefixed with `XComGame.`.'
+ 'TriggerEdit.Mode' = 'Per-entry edit mode (`EArrayEditMode`), see [Edit modes](#edit-modes).'
+ 'TriggerEdit.CustomProperties' = 'Free-form key/value pairs for bridge-mod editors; ignored by the built-in editors.'
+ 'EffectEdit.EffectHitModifiers' = '**Replace-only**: when non-empty, replaces `X2Effect_ToHitModifier.Modifiers` entirely (`EffectHitModifier` entries, incl. `MatchToHit` class ref via qualified name).'
+ 'EffectEdit.CustomProperties' = 'Free-form key/value pairs for bridge-mod editors; ignored by the built-in editors.'
+ 'ConditionEdit.CustomProperties' = 'Free-form key/value pairs for bridge-mod editors; ignored by the built-in editors.'
+ 'AbilityEventListenerEdit.EventID' = 'Matches the existing `Template.AbilityEventListeners` entry to edit. Entries cannot be added (their `EventFn` delegate is code-only).'
+ 'EffectEdit.Class' = 'Effect class to target/instantiate, e.g. `X2Effect_ApplyWeaponDamage`. Bare names are auto-prefixed with `XComGame.`; empty falls back to `X2Effect`.'
+ 'EffectEdit.Slot' = 'Which effect array to edit (`EAbilityEffectSlot`): `eAES_Target`, `eAES_MultiTarget` or `eAES_Shooter`.'
+ 'EffectEdit.Mode' = 'Per-entry edit mode (`EArrayEditMode`), see [Edit modes](#edit-modes).'
+ 'ConditionEdit.Class' = 'Condition class to target/instantiate, e.g. `X2Condition_UnitProperty`. Bare names are auto-prefixed with `XComGame.`.'
+ 'ConditionEdit.Mode' = 'Per-entry edit mode (`EArrayEditMode`), see [Edit modes](#edit-modes).'
+ 'AdditionalCooldownEdit.AbilityName' = 'Ability whose cooldown entry is added/updated in `AditionalAbilityCooldowns`.'
+ 'AdditionalCooldownEdit.ApplyCooldownType' = '`AdditionalCooldown_ApplyLarger` or `AdditionalCooldown_ApplySmaller`. Applied when non-empty.'
+ 'BonusChargeEdit.AbilityName' = 'Ability that grants the bonus charges.'
+ }
+
+ NestedGameFields = @{
+ 'CooldownEdit.AdditionalCooldowns' = 'AditionalAbilityCooldowns'
+ 'ChargesEdit.BonusCharges' = 'BonusCharges'
+ 'EffectEdit.StatChange' = 'm_aStatChanges'
+ 'EffectEdit.WeaponDamageValue' = 'EffectDamageValue'
+ 'EffectEdit.TargetConditions' = 'TargetConditions'
+ }
+
+ NestedLinks = @{
+ 'ConditionEdit' = '[Conditions](#conditions)'
+ }
+
+ EnumSemantics = @{
+ 'ENameArrayEditMode' = @{
+ 'eNAEM_Replace' = 'Replace the whole target array with the provided values. (Default)'
+ 'eNAEM_Merge' = 'Append each provided value that is not already present.'
+ 'eNAEM_AddOnly' = 'Set the provided values **only if the target array is currently empty**; otherwise do nothing. It does not append.'
+ 'eNAEM_Remove' = 'Remove each provided value from the target array.'
+ }
+ 'EAbilityCostEditMode' = @{
+ 'eACEM_ReplaceAll' = 'As `CostMode`: clear **all** existing costs before applying the entries. As per-entry `Mode`: edit in place if a cost of that class exists, otherwise skip (unless `CostMode=eACEM_ReplaceAll`, in which case a new cost is added). (Default)'
+ 'eACEM_Merge' = 'Edit the existing cost of that class in place; if none exists, instantiate and add it.'
+ 'eACEM_AddOnly' = 'Same as `eACEM_Merge`: edit in place if present, otherwise add.'
+ 'eACEM_Remove' = 'Remove the cost of that class from the ability.'
+ }
+ 'EArrayEditMode' = @{
+ 'eAEM_ReplaceAll' = 'Clear the whole target array, then add this effect/condition. (Default)'
+ 'eAEM_Merge' = 'Edit the existing effect/condition of that class in place; if none exists, instantiate and add it.'
+ 'eAEM_AddOnly' = 'Same as `eAEM_Merge`: edit in place if present, otherwise add.'
+ 'eAEM_Remove' = 'Remove the first effect/condition of that class from the target array.'
+ }
+ 'EChargesBonusMode' = @{
+ 'eCBM_Replace' = 'Clear existing `BonusCharges` entries before applying yours. (Default)'
+ 'eCBM_Merge' = 'Update the entry for each `AbilityName` if present, otherwise add it.'
+ }
+ 'EAdditionalCooldownEditMode' = @{
+ 'eACEM_Replace' = 'Clear existing `AditionalAbilityCooldowns` entries before applying yours. (Default)'
+ 'eACEM_Merge' = 'Update the entry for each `AbilityName` if present, otherwise add it.'
+ }
+ 'EStatChangeMode' = @{
+ 'eSCM_Replace' = 'Clear existing stat changes (`m_aStatChanges`) before applying yours. (Default)'
+ 'eSCM_Merge' = 'Update the entry for each `StatType` if present, otherwise add it.'
+ }
+ 'EAbilityEffectSlot' = @{
+ 'eAES_Target' = 'Edit `AbilityTargetEffects` (effects applied to the primary target). (Default)'
+ 'eAES_MultiTarget' = 'Edit `AbilityMultiTargetEffects`.'
+ 'eAES_Shooter' = 'Edit `AbilityShooterEffects` (effects applied to the shooter).'
+ }
+ }
+
+ KnownIssues = @()
+}
+
+# Mode fields whose target array cannot be derived from the name alone.
+$NestedModeAlias = @{
+ 'AdditionalCooldownMode' = 'AdditionalCooldowns'
+ 'CostMode' = 'Costs'
+ 'TargetConditionsMode' = 'TargetConditionClasses'
+}
+
+#endregion
+
+#region 1. Parse AE_DataStructures.uc (enums + structs)
+
+$Enums = [System.Collections.Generic.List[object]]::new()
+$Structs = @{}
+$StructOrder = [System.Collections.Generic.List[string]]::new()
+
+$mode = ''
+$blockName = ''
+$currentEnum = $null
+$comment = [System.Collections.Generic.List[string]]::new()
+
+foreach ($line in (Read-TextFile $DataStructuresFile)) {
+ $trim = $line.Trim()
+
+ if ($mode -eq '') {
+ if ($trim -match '^enum\s+(\w+)$') {
+ $mode = 'enum'
+ $currentEnum = @{ Name = $Matches[1]; Values = [System.Collections.Generic.List[string]]::new() }
+ $Enums.Add($currentEnum)
+ }
+ elseif ($trim -match '^struct\s+(\w+)$') {
+ $mode = 'struct'
+ $blockName = $Matches[1]
+ $Structs[$blockName] = [System.Collections.Generic.List[object]]::new()
+ $StructOrder.Add($blockName)
+ $comment.Clear()
+ }
+ continue
+ }
+
+ if ($trim -match '^};') { $mode = ''; continue }
+ if ($trim -eq '{') { continue }
+
+ if ($mode -eq 'enum') {
+ if ($trim -match '^(\w+),?$') { $currentEnum.Values.Add($Matches[1]) }
+ continue
+ }
+
+ # struct body: line comments above a var declaration become its description
+ if ($trim -match '^//\s?(.*)$') { $comment.Add($Matches[1]); continue }
+ if ($trim -eq '') { $comment.Clear(); continue }
+ if ($trim -match '^var\s+([\w<>]+)\s+(\w+);') {
+ $Structs[$blockName].Add(@{
+ Name = $Matches[2]
+ Type = $Matches[1]
+ Description = ($comment -join ' ')
+ })
+ $comment.Clear()
+ }
+}
+
+$StructNames = $StructOrder.ToArray()
+
+# Classify struct fields: guard / optionalScalar / mode / nested / modedArray / plainArray / plain.
+foreach ($structName in $StructOrder) {
+ $fields = $Structs[$structName]
+ $names = @($fields | ForEach-Object { $_.Name })
+
+ $modeTargets = @{}
+ foreach ($f in $fields) {
+ if ($f.Name -match '^(\w+)Mode$') {
+ $base = $Matches[1]
+ $target = $null
+ if ($NestedModeAlias.ContainsKey($f.Name)) { $target = $NestedModeAlias[$f.Name] }
+ elseif ($names -contains $base) { $target = $base }
+ elseif ($names -contains ($base + 's')) { $target = $base + 's' }
+ if ($null -ne $target) { $modeTargets[$f.Name] = $target }
+ }
+ }
+
+ $modeFieldNames = @($modeTargets.Keys)
+ $arrayToMode = @{}
+ foreach ($k in $modeFieldNames) { $arrayToMode[$modeTargets[$k]] = $k }
+
+ foreach ($f in $fields) {
+ $f.Kind = 'plain'
+ $f.Guard = $null
+ $f.ModeField = $null
+ $f.ModeEnum = $null
+ $f.Consumed = $false
+
+ if ($f.Name -match '^Set(\w+)$' -and $f.Type -eq 'bool' -and $names -contains $Matches[1]) {
+ $f.Kind = 'guard'
+ continue
+ }
+ if ($names -contains ('Set' + $f.Name)) {
+ $f.Kind = 'optionalScalar'
+ $f.Guard = 'Set' + $f.Name
+ continue
+ }
+ if ($modeFieldNames -contains $f.Name) {
+ $f.Kind = 'mode'
+ continue
+ }
+
+ $isStructArray = $f.Type -match '^array<(\w+)>$' -and $StructNames -contains $Matches[1]
+ if ($isStructArray -or ($StructNames -contains $f.Type)) {
+ $f.Kind = 'nested'
+ if ($arrayToMode.ContainsKey($f.Name)) {
+ $f.ModeField = $arrayToMode[$f.Name]
+ $f.ModeEnum = ($fields | Where-Object { $_.Name -eq $f.ModeField }).Type
+ }
+ continue
+ }
+
+ if ($f.Type -match '^array<') {
+ if ($arrayToMode.ContainsKey($f.Name)) {
+ $f.Kind = 'modedArray'
+ $f.ModeField = $arrayToMode[$f.Name]
+ $f.ModeEnum = ($fields | Where-Object { $_.Name -eq $f.ModeField }).Type
+ }
+ else {
+ $f.Kind = 'plainArray'
+ }
+ continue
+ }
+ }
+}
+
+#endregion
+
+#region 2. Parse X2DLCInfo_AbilityEditor.uc (registries, wiring, template-level fields)
+
+$dlcLines = Read-TextFile $DlcInfoFile
+$dlcText = $dlcLines -join "`n"
+
+$Registries = @{}
+foreach ($m in [regex]::Matches($dlcText, "(?m)^\s*(\w+Editors)\((\d+)\)\s*=\s*class'(\w+)'")) {
+ $reg = $m.Groups[1].Value
+ if (-not $Registries.ContainsKey($reg)) { $Registries[$reg] = [System.Collections.Generic.List[object]]::new() }
+ $Registries[$reg].Add(@{ Index = [int]$m.Groups[2].Value; Class = $m.Groups[3].Value })
+}
+foreach ($reg in @($Registries.Keys)) {
+ $Registries[$reg] = @($Registries[$reg] | Sort-Object { $_.Index } | ForEach-Object { $_.Class })
+}
+
+$dlcBlocks = Get-FunctionBlockMap $dlcLines
+$dlcVarMap = Get-VarTypeMap $dlcText $StructNames
+
+$TemplateFields = @()
+$templateEditorFile = Join-Path $ClassesDir 'X2AbilityTemplateEditor.uc'
+if (Test-Path $templateEditorFile) {
+ $teLines = Read-TextFile $templateEditorFile
+ $teBlocks = Get-FunctionBlockMap $teLines
+ $teVarMap = Get-VarTypeMap ($teLines -join "`n") $StructNames
+ if ($teBlocks.ContainsKey('ApplyTemplateEdit')) {
+ $TemplateFields = @(Get-EditAction $teBlocks['ApplyTemplateEdit'] $teVarMap | Where-Object { $_.Struct -eq 'AbilityEdit' })
+ }
+}
+elseif ($dlcBlocks.ContainsKey('ApplyAbilityEdit')) {
+ $TemplateFields = @(Get-EditAction $dlcBlocks['ApplyAbilityEdit'] $dlcVarMap | Where-Object { $_.Struct -eq 'AbilityEdit' })
+}
+
+$applyBody = ''
+if ($dlcBlocks.ContainsKey('ApplyAbilityEdit')) {
+ $applyBody = $dlcBlocks['ApplyAbilityEdit'] -join "`n"
+}
+$applyBodyCode = ($applyBody -split "`n" | Where-Object { $_ -notmatch '^\s*//' }) -join "`n"
+
+#endregion
+
+#region 3. Parse editor classes
+
+$EditorFiles = Get-ChildItem -LiteralPath $ClassesDir -Filter 'X2Ability*Editor*.uc' -File |
+ Where-Object { $_.Name -notmatch '_Helper\.uc$' -and $_.Name -notmatch '^X2AbilityEditor_' }
+
+$Editors = @{} # class name -> record
+foreach ($file in $EditorFiles) {
+ $lines = Read-TextFile $file.FullName
+ $text = $lines -join "`n"
+
+ if ($text -notmatch '(?m)^class\s+(\w+)\s+extends\s+([\w\.]+)') { continue }
+ $className = $Matches[1]
+ $extends = $Matches[2] -replace '^.*\.', ''
+
+ $blocks = Get-FunctionBlockMap $lines
+ $varMap = Get-VarTypeMap $text $StructNames
+
+ $gameClass = $null
+ $catchAll = $false
+ if ($blocks.ContainsKey('CanEdit')) {
+ $canEditBody = $blocks['CanEdit'] -join "`n"
+ if ($canEditBody -match "IsA\('(\w+)'\)") {
+ $gameClass = $Matches[1]
+ }
+ elseif ($canEditBody -match '(?m)^\s*return\s+true\s*;') {
+ $catchAll = $true
+ }
+ }
+
+ $functions = @{}
+ foreach ($fnName in $blocks.Keys) {
+ $functions[$fnName] = @(Get-EditAction $blocks[$fnName] $varMap)
+ }
+
+ $Editors[$className] = @{
+ Class = $className
+ Extends = $extends
+ GameClass = $gameClass
+ CatchAll = $catchAll
+ Blocks = $blocks
+ VarMap = $varMap
+ Functions = $functions
+ Text = $text
+ File = $file.Name
+ }
+}
+
+#endregion
+
+#region 4. Resolve families: dispatch order, wiring, effective fields per editor
+
+function Get-ExtendsChain {
+ param([string] $ClassName)
+
+ $chain = [System.Collections.Generic.List[string]]::new()
+ $cur = $ClassName
+ while ($null -ne $cur -and $Editors.ContainsKey($cur)) {
+ $chain.Add($cur)
+ $cur = $Editors[$cur].Extends
+ }
+ return $chain.ToArray()
+}
+
+# Classes that actually contribute to $FnName: walks up the chain while each one calls super.
+function Get-DefinerChain {
+ param(
+ [string] $ClassName,
+ [string] $FnName
+ )
+
+ $result = [System.Collections.Generic.List[string]]::new()
+ $chain = Get-ExtendsChain $ClassName
+ $idx = 0
+
+ while ($idx -lt $chain.Count) {
+ $definer = $null
+ for (; $idx -lt $chain.Count; $idx++) {
+ $ed = $Editors[$chain[$idx]]
+ if ($ed.Blocks.ContainsKey($FnName) -and ($ed.Blocks[$FnName] -join "`n") -match '\{') {
+ $definer = $chain[$idx]
+ break
+ }
+ }
+ if ($null -eq $definer) { break }
+
+ $result.Add($definer)
+ if (($Editors[$definer].Blocks[$FnName] -join "`n") -notmatch ('super\.' + $FnName)) { break }
+ $idx++
+ }
+
+ return $result.ToArray()
+}
+
+$Warnings = [System.Collections.Generic.List[string]]::new()
+$FamilyModels = [System.Collections.Generic.List[object]]::new()
+
+foreach ($fam in $Curated.Families) {
+ $structName = $fam.Struct
+ $structFields = $Structs[$structName]
+
+ $registry = @()
+ if ($Registries.ContainsKey($fam.Registry)) {
+ $registry = $Registries[$fam.Registry]
+ }
+ else {
+ $Warnings.Add("Registry $($fam.Registry) not found in X2DLCInfo_AbilityEditor.uc")
+ }
+
+ $wired = $applyBodyCode -match ($fam.HelperApply + '\s*\(')
+ $nestedFields = @($structFields | Where-Object { $_.Kind -eq 'nested' })
+
+ $editorModels = [System.Collections.Generic.List[object]]::new()
+ foreach ($cls in $registry) {
+ if (-not $Editors.ContainsKey($cls)) {
+ $Warnings.Add("Registered editor $cls has no parsed source file")
+ continue
+ }
+ $ed = $Editors[$cls]
+
+ $fields = [System.Collections.Generic.List[object]]::new()
+ foreach ($pair in @(@('ApplyBaseEdit', 'base'), @('ApplyDerivedEdit', 'derived'))) {
+ $fn = $pair[0]
+ $origin = $pair[1]
+
+ foreach ($definer in (Get-DefinerChain $cls $fn)) {
+ $srcEd = $Editors[$definer]
+ $inheritedFrom = $null
+ if ($definer -ne $cls) { $inheritedFrom = $definer }
+
+ foreach ($rec in $srcEd.Functions[$fn]) {
+ if ($rec.Struct -ne $structName) { continue }
+ if ($fields | Where-Object { $_.config -eq $rec.Config }) { continue }
+
+ $structField = $structFields | Where-Object { $_.Name -eq $rec.Config }
+ $type = ''
+ $desc = ''
+ if ($structField) {
+ $structField.Consumed = $true
+ $type = $structField.Type
+ $desc = $structField.Description
+ }
+
+ $entry = [ordered]@{
+ config = $rec.Config
+ type = $type
+ kind = $rec.Kind
+ gameField = $rec.GameField
+ origin = $origin
+ inheritedFrom = $inheritedFrom
+ description = $desc
+ }
+ if ($rec.Kind -eq 'scalar') {
+ $entry.guard = 'Set' + $rec.Config
+ }
+ if ($rec.Kind -eq 'namearray') {
+ if ($rec.ReplaceOnly) {
+ $entry.replaceOnly = $true
+ }
+ else {
+ $entry.modeField = $rec.Config + 'Mode'
+ if ($structField -and $structField.ModeField) { $entry.modeField = $structField.ModeField }
+ if ($structField -and $structField.ModeEnum) { $entry.modeEnum = $structField.ModeEnum }
+
+ $modeStructField = $structFields | Where-Object { $_.Name -eq $entry.modeField }
+ if ($modeStructField) { $modeStructField.Consumed = $true }
+ }
+ }
+ $fields.Add($entry)
+ }
+
+ # nested struct arrays referenced in this function body
+ $body = $srcEd.Blocks[$fn] -join "`n"
+ foreach ($nf in $nestedFields) {
+ if ($body -notmatch ('\.' + [regex]::Escape($nf.Name) + '\b')) { continue }
+ if ($fields | Where-Object { $_.config -eq $nf.Name }) { continue }
+
+ $nf.Consumed = $true
+ $gameField = $null
+ $key = "$structName.$($nf.Name)"
+ if ($Curated.NestedGameFields.ContainsKey($key)) { $gameField = $Curated.NestedGameFields[$key] }
+
+ $entry = [ordered]@{
+ config = $nf.Name
+ type = $nf.Type
+ kind = 'nested'
+ gameField = $gameField
+ origin = $origin
+ inheritedFrom = $inheritedFrom
+ description = $nf.Description
+ }
+ if ($nf.ModeField) {
+ $entry.modeField = $nf.ModeField
+ $entry.modeEnum = $nf.ModeEnum
+
+ $modeStructField = $structFields | Where-Object { $_.Name -eq $nf.ModeField }
+ if ($modeStructField) { $modeStructField.Consumed = $true }
+ }
+ $fields.Add($entry)
+ }
+ }
+ }
+
+ $editorModels.Add([ordered]@{
+ class = $cls
+ extends = $ed.Extends
+ gameClass = $ed.GameClass
+ catchAll = $ed.CatchAll
+ fields = $fields.ToArray()
+ })
+ }
+
+ $FamilyModels.Add([ordered]@{
+ name = $fam.Name
+ configKey = $fam.ConfigKey
+ editStruct = $structName
+ wired = [bool]$wired
+ dispatchOrder = $registry
+ intro = $fam.Intro
+ editors = $editorModels.ToArray()
+ })
+
+ if (-not $wired) {
+ $Warnings.Add("Family '$($fam.Name)' is NOT wired: ApplyAbilityEdit does not call $($fam.HelperApply). Its config entries are currently ignored.")
+ }
+}
+
+#endregion
+
+#region 4b. SDK enrichment: abstract badges, non-editable field lists, dispatch-order validation
+
+if (-not $SdkPath) {
+ $vsSettings = Join-Path $env:APPDATA 'Code\User\settings.json'
+ if (Test-Path $vsSettings) {
+ try { $SdkPath = (Get-Content $vsSettings -Raw | ConvertFrom-Json).'xcom.highlander.sdkroot' }
+ catch { Write-Verbose "Could not read 'xcom.highlander.sdkroot' from $vsSettings." }
+ }
+}
+
+$SdkClassesDir = $null
+if ($SdkPath -and (Test-Path (Join-Path $SdkPath 'Development\Src\XComGame\Classes'))) {
+ $SdkClassesDir = Join-Path $SdkPath 'Development\Src\XComGame\Classes'
+}
+else {
+ Write-Information 'SDK not found - skipping abstract/non-editable/dispatch-order enrichment (pass -SdkPath to enable).'
+}
+
+$SdkCache = @{}
+
+# Reads a game class from the SDK: parent, abstract flag, and why each var is not config-editable.
+function Get-SdkClassInfo {
+ param([string] $GameClass)
+
+ if ($SdkCache.ContainsKey($GameClass)) { return $SdkCache[$GameClass] }
+
+ $result = $null
+ $file = Join-Path $SdkClassesDir "$GameClass.uc"
+ if (Test-Path $file) {
+ $text = [System.IO.File]::ReadAllText($file)
+ $text = [regex]::Replace($text, '/\*.*?\*/', '', 'Singleline')
+
+ $extends = $null
+ $abstract = $false
+ $vars = [System.Collections.Generic.List[object]]::new()
+ $depth = 0
+ $inDefaults = $false
+
+ foreach ($raw in ($text -split "`r?`n")) {
+ $line = ($raw -replace '//.*$', '').Trim()
+
+ if ($null -eq $extends -and $line -match '^class\s+\w+\s+extends\s+([\w\.]+)') {
+ $extends = $Matches[1] -replace '^.*\.', ''
+ if ($line -match '\babstract\b') { $abstract = $true }
+ }
+ if ($line -match '^defaultproperties') { $inDefaults = $true }
+ if ($inDefaults) { continue }
+ if ($line -match '^struct\s') { $depth++; continue }
+ if ($depth -gt 0) {
+ if ($line -match '^};') { $depth-- }
+ continue
+ }
+ if ($line -notmatch '^var(\(\w*\))?\s+(.*)$') { continue }
+
+ $rest = $Matches[2].Trim()
+ $reason = $null
+ if ($rest -match '^(config|globalconfig)\b') { $reason = 'config — tune it in the game''s own ini' }
+ elseif ($rest -match '^localized\b') { $reason = 'localized — use .int localization files' }
+ elseif ($rest -match '^(private|privatewrite|protected|protectedwrite)\b') { $reason = 'private/protected' }
+ elseif ($rest -match '^deprecated\b') { $reason = 'deprecated' }
+ elseif ($rest -match '^(transient|duplicatetransient)\b') { $reason = 'transient' }
+ elseif ($rest -match 'delegate<') { $reason = 'delegate — code-only' }
+
+ # strip neutral modifiers to reach the type token
+ $declaration = $rest -replace '^(init|instanced|editinline\w*|noimport|repnotify|const|editconst|native(\(\w+\))?)\s+', ''
+ if ($declaration -notmatch '^(array<\s*[\w\.]+\s*>|class(<[\w\.]+>)?|[\w\.<>]+)\s+(\w+(?:\s*,\s*\w+)*)\s*[;\[]') { continue }
+
+ $typeTok = $Matches[1]
+ $varNames = $Matches[3] -split '\s*,\s*'
+ if ($null -eq $reason) {
+ if ($typeTok -match '^class') {
+ $reason = 'class reference'
+ }
+ elseif ($typeTok -match '^array<\s*([\w\.]+)\s*>$') {
+ $inner = $Matches[1] -replace '^.*\.', ''
+ if ($inner -ne 'name') { $reason = "array of ``$inner``" }
+ }
+ elseif ($typeTok -notin 'bool', 'int', 'float', 'name', 'string' -and $typeTok -notmatch '^E\w+$' -and $typeTok -notmatch 'Deferral|Filter') {
+ # not a primitive and doesn't look like an enum: struct or object ref
+ $reason = "type ``$typeTok``"
+ }
+ }
+
+ foreach ($v in $varNames) {
+ $vars.Add(@{ Name = $v; Type = $typeTok; Reason = $reason })
+ }
+ }
+
+ $result = @{ Extends = $extends; Abstract = $abstract; Vars = $vars.ToArray() }
+ }
+
+ $SdkCache[$GameClass] = $result
+ return $result
+}
+
+function Get-SdkAncestor {
+ param([string] $GameClass)
+
+ $ancestors = [System.Collections.Generic.List[string]]::new()
+ $cur = $GameClass
+ for ($d = 0; $d -lt 20; $d++) {
+ $info = Get-SdkClassInfo $cur
+ if ($null -eq $info -or -not $info.Extends) { break }
+ $ancestors.Add($info.Extends)
+ $cur = $info.Extends
+ }
+ return $ancestors.ToArray()
+}
+
+$TemplateNotEditable = @()
+if ($SdkClassesDir) {
+ # Everything on X2AbilityTemplate that is neither a covered scalar nor handled by a family.
+ $tmplInfo = Get-SdkClassInfo 'X2AbilityTemplate'
+ if ($tmplInfo) {
+ $tmplCovered = @($TemplateFields | Where-Object { $_.GameField } | ForEach-Object { ($_.GameField -split '[\.\[]')[0] })
+ $tmplCovered += @('AbilityCosts', 'AbilityCooldown', 'AbilityCharges', 'AbilityToHitCalc', 'AbilityToHitOwnerOnMissCalc',
+ 'AbilityTargetStyle', 'AbilityMultiTargetStyle', 'AbilityTriggers', 'AbilityEventListeners',
+ 'AbilityShooterConditions', 'AbilityTargetConditions', 'AbilityMultiTargetConditions',
+ 'AbilityTargetEffects', 'AbilityMultiTargetEffects', 'AbilityShooterEffects')
+
+ $TemplateNotEditable = @($tmplInfo.Vars | Where-Object { $_.Name -notin $tmplCovered } | ForEach-Object {
+ $reason = $_.Reason
+ if ($null -eq $reason) { $reason = 'not covered (deliberate core-set choice)' }
+ [ordered]@{ name = $_.Name; reason = $reason }
+ })
+ }
+
+ foreach ($famModel in $FamilyModels) {
+ $concrete = @($famModel.editors | Where-Object { $_.gameClass })
+
+ foreach ($ed in $concrete) {
+ $info = Get-SdkClassInfo $ed.gameClass
+ if ($null -eq $info) { continue }
+ $ed.abstract = [bool]$info.Abstract
+
+ # covered = first segment of every game field this editor applies
+ $covered = @($ed.fields | Where-Object { $_.gameField } | ForEach-Object { ($_.gameField -split '[\.\[]')[0] })
+ $notEditable = [System.Collections.Generic.List[object]]::new()
+ foreach ($v in $info.Vars) {
+ if ($v.Name -in $covered) { continue }
+ $reason = $v.Reason
+ if ($null -eq $reason) { $reason = 'not yet supported' }
+ $notEditable.Add([ordered]@{ name = $v.Name; reason = $reason })
+ }
+ $ed.notEditable = $notEditable.ToArray()
+ }
+
+ # dispatch-order validation: a class must not be preceded by one of its ancestors
+ for ($jj = 0; $jj -lt $concrete.Count; $jj++) {
+ $anc = Get-SdkAncestor $concrete[$jj].gameClass
+ for ($ii = 0; $ii -lt $jj; $ii++) {
+ if ($concrete[$ii].gameClass -in $anc) {
+ $Warnings.Add("Dispatch order ($($famModel.name)): $($concrete[$jj].class) is registered after $($concrete[$ii].class), but $($concrete[$jj].gameClass) derives from $($concrete[$ii].gameClass) - it will never be dispatched.")
+ }
+ }
+ }
+ }
+}
+
+#endregion
+
+#region 4c. Consumption tracking and orphan warnings
+
+# Template-level consumption + nested family keys on AbilityEdit
+foreach ($rec in $TemplateFields) {
+ $sf = $Structs['AbilityEdit'] | Where-Object { $_.Name -eq $rec.Config }
+ if (-not $sf) { continue }
+
+ $sf.Consumed = $true
+ if ($sf.ModeField) {
+ $msf = $Structs['AbilityEdit'] | Where-Object { $_.Name -eq $sf.ModeField }
+ if ($msf) { $msf.Consumed = $true }
+ }
+}
+
+foreach ($fam in $Curated.Families) {
+ $sf = $Structs['AbilityEdit'] | Where-Object { $_.Name -eq $fam.ConfigKey }
+ if ($sf) { $sf.Consumed = $true }
+
+ $famModel = $FamilyModels | Where-Object { $_.name -eq $fam.Name }
+ if ($sf -and $sf.ModeField -and $famModel.wired) {
+ $msf = $Structs['AbilityEdit'] | Where-Object { $_.Name -eq $sf.ModeField }
+ if ($msf) { $msf.Consumed = $true }
+ }
+}
+
+# Line comments are stripped first so commented-out scaffolding does not count as consumption.
+$allEditorText = ConvertTo-CommentFreeText ((($Editors.Values | ForEach-Object { $_.Text }) -join "`n") + "`n" + $dlcText)
+foreach ($structName in @('AdditionalCooldownEdit', 'BonusChargeEdit', 'StatChangeEdit', 'WeaponDamageValueEdit')) {
+ foreach ($f in $Structs[$structName]) {
+ if ($f.Kind -eq 'guard') { continue }
+ if ($allEditorText -match ('\.' + [regex]::Escape($f.Name) + '\b')) { $f.Consumed = $true }
+ }
+}
+
+# Structural fields consumed via helpers (Class, Mode, Slot, RemoveCharges, ...)
+$helperFiles = Get-ChildItem -LiteralPath $ClassesDir -Filter '*_Helper.uc' -File | Where-Object { $_.Name -ne 'Helper_AbilityEditor.uc' }
+$helperText = ConvertTo-CommentFreeText (($helperFiles | ForEach-Object { [System.IO.File]::ReadAllText($_.FullName) }) -join "`n")
+$combinedText = $allEditorText + "`n" + $helperText
+foreach ($structName in $StructOrder) {
+ foreach ($f in $Structs[$structName]) {
+ if ($f.Consumed -or $f.Kind -eq 'guard') { continue }
+ if ($combinedText -match ('\.' + [regex]::Escape($f.Name) + '\b')) { $f.Consumed = $true }
+ }
+}
+
+# Fields intentionally consumed by no built-in editor (bridge-mod surface).
+$IntentionallyUnconsumed = @('CustomProperties', 'Key', 'Value', 'EditorClass', 'Priority')
+foreach ($structName in $StructOrder) {
+ foreach ($f in $Structs[$structName]) {
+ if ($f.Kind -eq 'guard') { continue }
+ if ($structName -in @('AECustomProperty', 'ExtraEditorRegistration')) { continue }
+ if ($f.Name -in $IntentionallyUnconsumed) { continue }
+ if (-not $f.Consumed) {
+ $Warnings.Add("Orphan config field: $structName.$($f.Name) is declared but not consumed by any editor (not yet implemented?).")
+ }
+ }
+}
+
+foreach ($w in $Curated.KnownIssues) { $Warnings.Add("Known issue: $w") }
+
+#endregion
+
+#region 5. Build the schema object
+
+$sha = Get-SourceHash $ClassesDir
+
+$schemaEnums = @($Enums | ForEach-Object {
+ $sem = $null
+ if ($Curated.EnumSemantics.ContainsKey($_.Name)) { $sem = $Curated.EnumSemantics[$_.Name] }
+
+ $values = [System.Collections.Generic.List[object]]::new()
+ foreach ($v in $_.Values) {
+ $d = ''
+ if ($sem -and $sem.ContainsKey($v)) { $d = $sem[$v] }
+ $values.Add([ordered]@{ name = $v; description = $d })
+ }
+ [ordered]@{ name = $_.Name; values = $values.ToArray() }
+})
+
+$schemaStructs = @($StructOrder | ForEach-Object {
+ $sn = $_
+ $fields = [System.Collections.Generic.List[object]]::new()
+ foreach ($f in $Structs[$sn]) {
+ if ($f.Kind -eq 'guard') { continue }
+
+ $desc = $f.Description
+ $key = "$sn.$($f.Name)"
+ if ($Curated.StructuralFieldNotes.ContainsKey($key)) { $desc = $Curated.StructuralFieldNotes[$key] }
+
+ $entry = [ordered]@{
+ name = $f.Name
+ type = $f.Type
+ kind = $f.Kind
+ description = $desc
+ }
+ if ($f.Guard) { $entry.guard = $f.Guard }
+ if ($f.ModeField) { $entry.modeField = $f.ModeField; $entry.modeEnum = $f.ModeEnum }
+ $fields.Add($entry)
+ }
+ [ordered]@{ name = $sn; fields = $fields.ToArray() }
+})
+
+# ApplyTemplateEdit gives the config name but not its type or doc comment; both live on AbilityEdit.
+$abilityEditFields = @()
+if ($Structs.ContainsKey('AbilityEdit')) { $abilityEditFields = $Structs['AbilityEdit'] }
+
+$schemaTemplate = @($TemplateFields | ForEach-Object {
+ $rec = $_
+ $structField = $abilityEditFields | Where-Object { $_.Name -eq $rec.Config } | Select-Object -First 1
+
+ $type = ''
+ $desc = ''
+ if ($structField) {
+ $type = $structField.Type
+ $desc = $structField.Description
+ }
+ $key = "AbilityEdit.$($rec.Config)"
+ if ($Curated.StructuralFieldNotes.ContainsKey($key)) { $desc = $Curated.StructuralFieldNotes[$key] }
+
+ $entry = [ordered]@{
+ config = $rec.Config
+ type = $type
+ kind = $rec.Kind
+ gameField = $rec.GameField
+ description = $desc
+ }
+ if ($rec.Kind -eq 'scalar') { $entry.guard = 'Set' + $rec.Config }
+ if ($rec.Kind -eq 'namearray') {
+ if ($rec.ReplaceOnly) {
+ $entry.replaceOnly = $true
+ }
+ else {
+ $entry.modeField = $rec.Config + 'Mode'
+ if ($structField -and $structField.ModeField) { $entry.modeField = $structField.ModeField }
+ if ($structField -and $structField.ModeEnum) { $entry.modeEnum = $structField.ModeEnum }
+ }
+ }
+ $entry
+})
+
+$schema = [ordered]@{
+ '$comment' = 'Generated by .scripts/generate-docs.ps1 - do not edit by hand.'
+ sourceHash = $sha
+ enums = $schemaEnums
+ structs = $schemaStructs
+ template = [ordered]@{ fields = $schemaTemplate; notEditable = $TemplateNotEditable }
+ families = $FamilyModels.ToArray()
+ warnings = $Warnings.ToArray()
+}
+
+$schemaJson = ($schema | ConvertTo-Json -Depth 14) + "`n"
+
+#endregion
+
+#region 6. Render the markdown blocks
+
+function ConvertTo-CellText {
+ param([string] $Text)
+
+ if ($null -eq $Text) { return '' }
+ return ($Text -replace '\|', '\|')
+}
+
+function Format-FieldTable {
+ param([object[]] $Fields)
+
+ $sb = [System.Text.StringBuilder]::new()
+ [void]$sb.Append("| Config key | Type | Requires | Game field | Notes |$nl")
+ [void]$sb.Append("|---|---|---|---|---|$nl")
+
+ foreach ($f in $Fields) {
+ $requires = ''
+ switch ($f.kind) {
+ 'scalar' { $requires = '`' + $f.guard + '=true`' }
+ 'namearray' {
+ if ($f.Contains('replaceOnly') -and $f.replaceOnly) { $requires = 'non-empty *(replace-only)*' }
+ else { $requires = '`' + $f.modeField + '`' }
+ }
+ 'nested' {
+ if ($f.Contains('modeField') -and $f.modeField) { $requires = '`' + $f.modeField + '`' }
+ else { $requires = '—' }
+ }
+ }
+
+ $gameField = ''
+ if ($f.gameField) { $gameField = '`' + $f.gameField + '`' }
+
+ $notes = ConvertTo-CellText $f.description
+ if ($f.inheritedFrom) {
+ $inh = "*(shared — from ``$($f.inheritedFrom)``)*"
+ if ($notes) { $notes = "$notes $inh" } else { $notes = $inh }
+ }
+ if ($f.kind -eq 'nested') {
+ $nestedType = $f.type -replace 'array<|>', ''
+ if ($Curated.NestedLinks.ContainsKey($nestedType)) {
+ $link = "see $($Curated.NestedLinks[$nestedType])"
+ }
+ else {
+ $link = "see [``$nestedType``](#nested-structs)"
+ }
+ if ($notes) { $notes = "$notes — $link" } else { $notes = $link }
+ }
+
+ [void]$sb.Append("| ``$($f.config)`` | ``$($f.type)`` | $requires | $gameField | $notes |$nl")
+ }
+
+ return $sb.ToString()
+}
+
+function Format-StructTable {
+ param([string] $StructName)
+
+ $sb = [System.Text.StringBuilder]::new()
+ [void]$sb.Append("| Config key | Type | Requires | Notes |$nl")
+ [void]$sb.Append("|---|---|---|---|$nl")
+
+ foreach ($f in $Structs[$StructName]) {
+ if ($f.Kind -eq 'guard' -or $f.Kind -eq 'mode') { continue }
+
+ $requires = '—'
+ if ($f.Kind -eq 'optionalScalar') { $requires = '`' + $f.Guard + '=true`' }
+ if ($f.ModeField) { $requires = '`' + $f.ModeField + '`' }
+
+ $desc = $f.Description
+ $key = "$StructName.$($f.Name)"
+ if ($Curated.StructuralFieldNotes.ContainsKey($key)) { $desc = $Curated.StructuralFieldNotes[$key] }
+
+ [void]$sb.Append("| ``$($f.Name)`` | ``$($f.Type)`` | $requires | $(ConvertTo-CellText $desc) |$nl")
+ }
+
+ return $sb.ToString()
+}
+
+# ---- summary block ----
+$summary = [System.Text.StringBuilder]::new()
+[void]$summary.Append("An ``+AbilityEdits`` entry can change:$nl$nl")
+
+$templateList = ($TemplateFields | ForEach-Object { '`' + $_.Config + '`' }) -join ', '
+[void]$summary.Append("- **Ability template fields** — $templateList$nl")
+
+foreach ($fam in $FamilyModels) {
+ $classes = @($fam.editors | Where-Object { -not $_.catchAll } | ForEach-Object { '`' + $_.gameClass + '`' })
+ $classList = $classes -join ', '
+ if ($fam.editors | Where-Object { $_.catchAll }) { $classList += ' — plus shared fields on any other subclass' }
+
+ $status = ''
+ if (-not $fam.wired) { $status = ' ⚠️ **not yet functional** (work in progress)' }
+
+ $keyLabel = ''
+ if ($fam.configKey) { $keyLabel = " (``$($fam.configKey)``)" }
+
+ [void]$summary.Append("- **$($fam.name)**$keyLabel$status — $classList$nl")
+}
+$summaryMd = $summary.ToString()
+
+# ---- enums block ----
+$enumsBuilder = [System.Text.StringBuilder]::new()
+foreach ($e in $schemaEnums) {
+ [void]$enumsBuilder.Append("#### ``$($e.name)``$nl$nl")
+ [void]$enumsBuilder.Append("| Value | Meaning |$nl|---|---|$nl")
+ foreach ($v in $e.values) {
+ $d = $v.description
+ if (-not $d) { $d = '—' }
+ [void]$enumsBuilder.Append("| ``$($v.name)`` | $(ConvertTo-CellText $d) |$nl")
+ }
+ [void]$enumsBuilder.Append($nl)
+}
+$enumsMd = $enumsBuilder.ToString()
+
+# ---- reference block ----
+$reference = [System.Text.StringBuilder]::new()
+
+[void]$reference.Append("### Template fields$nl$nl")
+[void]$reference.Append("Applied directly to the ``X2AbilityTemplate``.$nl$nl")
+[void]$reference.Append("| Config key | Requires | Game field |$nl|---|---|---|$nl")
+[void]$reference.Append("| ``Ability`` | required | template lookup (``FindAbilityTemplate``) |$nl")
+foreach ($t in $schemaTemplate) {
+ $requires = ''
+ if ($t.kind -eq 'scalar') { $requires = '`' + $t.guard + '=true`' }
+ if ($t.kind -eq 'namearray') { $requires = '`' + $t.modeField + '`' }
+ [void]$reference.Append("| ``$($t.config)`` | $requires | ``$($t.gameField)`` |$nl")
+}
+[void]$reference.Append("| ``AbilityEventListenerEdits`` | ``EventID`` match | ``AbilityEventListeners`` — edit-existing-only, see [``AbilityEventListenerEdit``](#nested-structs) |$nl")
+
+if ($TemplateNotEditable.Count -gt 0) {
+ [void]$reference.Append($nl)
+ [void]$reference.Append("Template fields not editable via config ($($TemplateNotEditable.Count))
$nl$nl")
+ [void]$reference.Append((($TemplateNotEditable | ForEach-Object { '`' + $_.name + '` *(' + $_.reason + ')*' }) -join ', ') + $nl)
+ [void]$reference.Append($nl + " $nl")
+}
+[void]$reference.Append($nl)
+
+foreach ($fam in $FamilyModels) {
+ if ($fam.configKey) {
+ [void]$reference.Append("### $($fam.name) (``$($fam.configKey)``)$nl$nl")
+ }
+ else {
+ [void]$reference.Append("### $($fam.name)$nl$nl")
+ }
+ if (-not $fam.wired) {
+ [void]$reference.Append("> ⚠️ **Not yet functional.** This section documents the upcoming release; these entries are currently ignored by the mod.$nl$nl")
+ }
+ [void]$reference.Append("$($fam.intro)$nl$nl")
+
+ # structural (plain / mode-less) fields of the family struct that are not covered by editor tables
+ [void]$reference.Append("Structural fields:$nl$nl")
+ $sb = [System.Text.StringBuilder]::new()
+ [void]$sb.Append("| Config key | Type | Notes |$nl|---|---|---|$nl")
+ foreach ($f in $Structs[$fam.editStruct]) {
+ if ($f.Kind -ne 'plain' -and $f.Name -ne 'CustomProperties') { continue }
+ $desc = $f.Description
+ $key = "$($fam.editStruct).$($f.Name)"
+ if ($Curated.StructuralFieldNotes.ContainsKey($key)) { $desc = $Curated.StructuralFieldNotes[$key] }
+ [void]$sb.Append("| ``$($f.Name)`` | ``$($f.Type)`` | $(ConvertTo-CellText $desc) |$nl")
+ }
+ [void]$reference.Append($sb.ToString())
+ [void]$reference.Append($nl)
+
+ $dispatch = @($fam.editors | ForEach-Object { if ($_.catchAll) { 'any other class' } else { '`' + $_.gameClass + '`' } })
+ [void]$reference.Append("Editor dispatch order (first match wins): " + ($dispatch -join ' → ') + "$nl$nl")
+
+ # Base fields are defined on the family root, so they are identical for every editor: render once.
+ $firstEditor = $fam.editors | Select-Object -First 1
+ $familyShared = @()
+ if ($firstEditor) {
+ # inheritedFrom is redundant inside the family-wide shared table; suppress it there
+ $familyShared = @($firstEditor.fields | Where-Object { $_.origin -eq 'base' } | ForEach-Object {
+ $copy = [ordered]@{}
+ foreach ($k in $_.Keys) { $copy[$k] = $_[$k] }
+ $copy.inheritedFrom = $null
+ $copy
+ })
+ }
+ if ($familyShared.Count -gt 0) {
+ [void]$reference.Append("Shared fields (available for **every** class of this family):$nl$nl")
+ [void]$reference.Append((Format-FieldTable $familyShared) + $nl)
+ }
+
+ foreach ($ed in $fam.editors) {
+ if ($ed.catchAll) {
+ [void]$reference.Append("#### Any other class$nl$nl")
+ [void]$reference.Append("Handled by ``$($ed.class)``: only the shared fields above apply.$nl$nl")
+ continue
+ }
+
+ [void]$reference.Append("#### ``$($ed.gameClass)``$nl$nl")
+ if ($ed.Contains('abstract') -and $ed.abstract) {
+ [void]$reference.Append("*Abstract class — existing instances (of its subclasses) can be edited in place, but it cannot be added as a new instance from config.*$nl$nl")
+ }
+
+ $derived = @($ed.fields | Where-Object { $_.origin -eq 'derived' })
+ if ($derived.Count -gt 0) {
+ [void]$reference.Append((Format-FieldTable $derived) + $nl)
+ }
+ else {
+ [void]$reference.Append("No class-specific fields; the shared fields above apply.$nl$nl")
+ }
+
+ if ($ed.Contains('notEditable') -and $ed.notEditable.Count -gt 0) {
+ [void]$reference.Append("Not editable via config: " + (($ed.notEditable | ForEach-Object { '`' + $_.name + '` *(' + $_.reason + ')*' }) -join ', ') + "$nl$nl")
+ }
+ }
+}
+
+[void]$reference.Append("### Nested structs$nl$nl")
+foreach ($nested in @('AdditionalCooldownEdit', 'BonusChargeEdit', 'StatChangeEdit', 'WeaponDamageValueEdit', 'AbilityEventListenerEdit', 'AECustomProperty')) {
+ [void]$reference.Append("#### ``$nested``$nl$nl")
+ [void]$reference.Append((Format-StructTable $nested) + $nl)
+}
+$referenceMd = $reference.ToString()
+
+#endregion
+
+#region 7. Write outputs
+
+if (-not (Test-Path $DocsDir)) { $null = New-Item -ItemType Directory -Path $DocsDir }
+
+$GeneratedBlocks = [ordered]@{
+ 'summary' = $summaryMd
+ 'enums' = $enumsMd
+ 'reference' = $referenceMd
+}
+
+$stale = $false
+
+# schema.json
+$existingSchema = ''
+if (Test-Path $SchemaPath) { $existingSchema = [System.IO.File]::ReadAllText($SchemaPath) }
+if ($existingSchema -ne $schemaJson) {
+ if ($CheckOnly) {
+ $stale = $true
+ Write-Information 'STALE: docs/schema.json differs.'
+ }
+ else {
+ [System.IO.File]::WriteAllText($SchemaPath, $schemaJson)
+ Write-Information "Wrote $SchemaPath"
+ }
+}
+else {
+ Write-Information 'docs/schema.json is up to date.'
+}
+
+# README blocks
+if (-not $SchemaOnly) {
+ if (-not (Test-Path $ReadmePath)) {
+ throw "README.md not found at $ReadmePath. Create the scaffold (with generated-block markers) first."
+ }
+
+ $readme = [System.IO.File]::ReadAllText($ReadmePath)
+ $newlineStyle = "`n"
+ if ($readme -match "`r`n") { $newlineStyle = "`r`n" }
+
+ $updated = $readme
+ foreach ($blockName in $GeneratedBlocks.Keys) {
+ $begin = ""
+ $end = ""
+ if ($updated.IndexOf($begin) -lt 0 -or $updated.IndexOf($end) -lt 0) {
+ throw "README.md is missing markers for block '$blockName' ($begin ... $end)."
+ }
+
+ $content = $GeneratedBlocks[$blockName]
+ if ($newlineStyle -ne "`n") { $content = $content -replace "`n", $newlineStyle }
+
+ $startIdx = $updated.IndexOf($begin)
+ $endIdx = $updated.IndexOf($end, $startIdx)
+ $replacement = $begin + $newlineStyle + $content.TrimEnd() + $newlineStyle
+ $updated = $updated.Substring(0, $startIdx) + $replacement + $updated.Substring($endIdx)
+ }
+
+ if ($updated -ne $readme) {
+ if ($CheckOnly) {
+ $stale = $true
+ Write-Information 'STALE: README.md generated blocks differ.'
+ }
+ else {
+ [System.IO.File]::WriteAllText($ReadmePath, $updated)
+ Write-Information "Updated generated blocks in $ReadmePath"
+ }
+ }
+ else {
+ Write-Information 'README.md generated blocks are up to date.'
+ }
+}
+
+#endregion
+
+#region 8. Report
+
+Write-Information ''
+Write-Information ('Families: ' + (($FamilyModels | ForEach-Object { "$($_.name)=$(@($_.editors).Count) editors (wired: $($_.wired))" }) -join '; '))
+
+if ($Warnings.Count -gt 0) {
+ Write-Information ''
+ Write-Information "Warnings ($($Warnings.Count)):"
+ foreach ($w in $Warnings) { Write-Information " - $w" }
+}
+
+#endregion
+
+if ($CheckOnly -and $stale) { exit 1 }
+exit 0
diff --git a/AbilityEditor/Src/AbilityEditor/Classes/AE_DataStructures.uc b/AbilityEditor/Src/AbilityEditor/Classes/AE_DataStructures.uc
index 4abcfb9..b37a9b9 100644
--- a/AbilityEditor/Src/AbilityEditor/Classes/AE_DataStructures.uc
+++ b/AbilityEditor/Src/AbilityEditor/Classes/AE_DataStructures.uc
@@ -1955,9 +1955,12 @@ struct AbilityEdit
var name Ability;
var bool SetHostility;
+ // Whether the ability is offensive, defensive or neutral. Drives AI targeting and the
+ // reticle colour. One of eHostility_Offensive, eHostility_Defensive, eHostility_Neutral.
var EAbilityHostility Hostility;
var bool SetConcealmentRule;
+ // What happens to the shooter's concealment when the ability is used.
var EConcealmentRule ConcealmentRule;
var array AdditionalAbilities;
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..e041b50
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,142 @@
+# Changelog
+
+All notable changes to **Ability Editor** are documented here. The mod lets you retune
+XCOM 2 (War of the Chosen) abilities entirely from `.ini` config — no scripting, no
+rebuilds. See the [README](README.md) for the full field reference.
+
+This project follows [Keep a Changelog](https://keepachangelog.com/) and
+[Semantic Versioning](https://semver.org/).
+
+## [Unreleased]
+
+### Fixed
+
+- **Replace-only array fields no longer advertise a mode field that doesn't exist.** The reference
+ tables listed `HitModifiersMode` and `EffectHitModifiersMode` in the "Requires" column for
+ `ToHitCalcEdit.HitModifiers` and `EffectEdit.EffectHitModifiers`. Neither field exists — both
+ arrays are replace-only — so anyone who wrote them was silently ignored. They now render as
+ "non-empty *(replace-only)*". This affected 11 entries in `docs/schema.json` too, so any tooling
+ consuming the schema inherited the same wrong information.
+
+### Added
+
+- Ability template fields in `docs/schema.json` now carry `type` and `description`. Previously all
+ 46 had neither, and consumers had to join against the `AbilityEdit` struct to recover the type.
+- `generate-docs.ps1 -PrintSourceHash` prints the hash of the UnrealScript sources and exits. It
+ needs no SDK, so CI can compare it against `sourceHash` in the committed schema to catch a
+ forgotten regeneration.
+
+### Documentation
+
+- Documented that building the mod requires Community Highlander-patched SDK sources
+ ([Issue #68](https://github.com/X2CommunityCore/X2WOTCCommunityHighlander/issues/68) removes
+ `protectedwrite` from the three `X2AbilityTemplate` effect arrays this mod writes). This is a
+ build-time requirement only — the compiled mod runs against vanilla `XComGame`.
+- Corrected the field-documentation convention: a `//` comment must sit directly above the **value**
+ var, not above the `Set`/value pair. A comment above the pair attaches to the guard and is
+ dropped, which is why 219 existing comments act as section headers rather than field docs.
+
+## [2.0.0] - 2026-07-10
+
+A ground-up rewrite. The old options still work, but there's now a single, consistent
+`+AbilityEdits` config that can reach almost every part of an ability.
+
+### Added
+
+- **New unified config API.** Edit any ability by adding an `+AbilityEdits=(...)` entry
+ under `[AbilityEditor.X2DLCInfo_AbilityEditor]` in `XComAbilityEditor.ini`. One entry can
+ change as much or as little of an ability as you like.
+
+- **Costs** — action points, ammo, charges, focus, "consume item", and the special
+ reserve/heavy-weapon/quickdraw action-point costs. Add, remove, or tweak them per ability.
+ ```ini
+ ; Let Ranger's Slash keep the turn going (1 point, don't end turn) for Blademaster users
+ +AbilityEdits=( \\
+ Ability=SwordSlice, \\
+ Costs=( \\
+ ( Class="X2AbilityCost_ActionPoints", SetNumPoints=true, NumPoints=1, \\
+ SetConsumeAllPoints=true, ConsumeAllPoints=false ) \\
+ ) \\
+ )
+ ```
+
+- **Cooldowns & charges** — set turn cooldowns (including separate XCOM/AI values and
+ shared cooldowns with other abilities), initial charges, and bonus charges granted by
+ other abilities.
+
+- **Effects** — change what an ability actually *does*: weapon damage, stat changes,
+ stuns, armor, damage immunities, action-point grants, effect removal, covering fire,
+ and dozens more. Every applicable in-game effect type is supported.
+
+- **Conditions** — control *who and when* an ability can affect: unit type, health,
+ cover, range, alert status, active effects, inventory, visibility, and more. Attach
+ them to the ability or to an individual effect.
+ ```ini
+ ; Make Combat Protocol only target robotic units
+ +AbilityEdits=( \\
+ Ability=CombatProtocol, \\
+ TargetConditions=( \\
+ ( Class="X2Condition_UnitProperty", Mode=eAEM_Merge, \\
+ SetExcludeOrganic=true, ExcludeOrganic=true ) \\
+ ) \\
+ )
+ ```
+
+- **Aim & hit chance** — edit an ability's to-hit calculation: built-in aim/crit
+ modifiers, guaranteed hits, flat percent-to-hit, stat rolls, and more.
+
+- **Targeting shape** — change how an ability picks targets: single-target rules, cursor
+ range, moving-melee reach, and area shapes (radius, cone, line, cylinder, burst, all-units).
+
+- **Triggers** — change what makes an ability fire (e.g. passive on spawn, event-driven).
+
+- **Ability template settings** — hostility, concealment rules, cross-class eligibility,
+ passive/unique flags, HUD icon and color, tooltip/summary visibility, point cost, default
+ item slot, friendly-fire warnings, added/prerequisite/override abilities, and more.
+
+- **Flexible list editing.** Wherever an ability has a list (costs, effects, conditions,
+ damage types, ability names…), you choose how your entry combines with what's already
+ there: **replace all**, **merge**, **add-only**, or **remove**.
+
+- **Documentation.** A complete, always-up-to-date field reference in the
+ [README](README.md), generated directly from the mod's code, plus a machine-readable
+ `docs/schema.json` for tooling.
+
+### Changed
+
+- **Edit in place by default.** Ability Editor now changes only the fields you set and
+ leaves everything else intact. For the single-object slots (cooldown, charges, to-hit,
+ targeting), omit `Class` to tweak whatever the ability already uses, or set `Class` to
+ swap in a different one.
+- The legacy options are unchanged and continue to work (see below), so existing configs
+ keep functioning.
+
+### Fixed
+
+- Removing an ability's charges now works correctly.
+- Stat-change and duration effects (e.g. Persistent-based effects) now apply all of their
+ settings as expected.
+- Per-player-type cooldowns (separate XCOM/AI turns) now apply correctly.
+
+### For mod authors
+
+- **Extensible by other mods.** Bridge mods can register their own editor classes to
+ support abilities from DLC or other mods, without Ability Editor needing to know about
+ them. Add your editor class via `+ExtraEffectsEditors=(EditorClass="...", Priority=N)`
+ (and the equivalents for costs, cooldowns, charges, conditions, to-hit, targeting, and
+ triggers). Details in the README's "Extending Ability Editor" section.
+
+### Notes
+
+- After changing config, clear the game's config cache (delete
+ `Documents\My Games\XCOM2 War of the Chosen\XComGame\Config`) so your edits are picked up.
+- Turn on `EnableDebug=true` under `[AbilityEditor.X2DLCInfo_AbilityEditor]` to log every
+ change the mod makes to `Launch.log` (tag `AbilityEditor`).
+
+## [1.x] - Earlier releases
+
+The original configuration lived under `[AbilityEditor.OPTC_Abilities]` and supported a
+fixed set of per-ability tweaks: ammo cost, cooldown, action-point cost, ends-turn/free-action,
+consume-item, charges (and keep-on-miss), shared charges/cooldowns, added/prerequisite/override
+abilities, bonus charges, focus cost options, item slot, concealment rule, and cross-class
+eligibility. These options still work in 2.0.
diff --git a/README.md b/README.md
index cc0c85f..e4c6de3 100644
--- a/README.md
+++ b/README.md
@@ -3620,7 +3620,7 @@ Not editable via config: `TargetingIcon` *(type `Texture2D`)*
| Config key | Type | Requires | Game field | Notes |
|---|---|---|---|---|
| `ApplyAsTarget` | `bool` | `SetApplyAsTarget=true` | `bApplyAsTarget` | |
-| `EffectHitModifiers` | `array` | `EffectHitModifiersMode` | `Modifiers` | X2Effect_ToHitModifier: replace-only — when non-empty, replaces Modifiers entirely |
+| `EffectHitModifiers` | `array` | non-empty *(replace-only)* | `Modifiers` | X2Effect_ToHitModifier: replace-only — when non-empty, replaces Modifiers entirely |
| `ToHitConditions` | `array` | — | | X2Effect_ToHitModifier — see [Conditions](#conditions) |
| `InfiniteDuration` | `bool` | `SetInfiniteDuration=true` | `bInfiniteDuration` | *(shared — from `X2AbilityEffectsEditor_Persistent`)* |
| `TickWhenApplied` | `bool` | `SetTickWhenApplied=true` | `bTickWhenApplied` | *(shared — from `X2AbilityEffectsEditor_Persistent`)* |
@@ -4433,7 +4433,7 @@ Shared fields (available for **every** class of this family):
| Config key | Type | Requires | Game field | Notes |
|---|---|---|---|---|
-| `HitModifiers` | `array` | `HitModifiersMode` | `HitModifiers` | Replace-only: when non-empty, replaces the calc's HitModifiers array entirely |
+| `HitModifiers` | `array` | non-empty *(replace-only)* | `HitModifiers` | Replace-only: when non-empty, replaces the calc's HitModifiers array entirely |
#### `X2AbilityToHitCalc_StatCheck_UnitVsUnit`
@@ -4952,13 +4952,42 @@ For data the shared edit structs don't carry, every `EffectEdit`/`ConditionEdit`
## For developers
+### Build prerequisite: Community Highlander sources
+
+**Building this mod requires an SDK whose `Development/Src` is Community Highlander-patched.** It is
+not a requirement for *players* — see below.
+
+`X2AbilityEffectsEditor_Helper.uc` writes `Template.AbilityTargetEffects`,
+`AbilityMultiTargetEffects` and `AbilityShooterEffects`. In stock Firaxis sources those three are
+`protectedwrite`, so the writes will not compile. Community Highlander
+[Issue #68](https://github.com/X2CommunityCore/X2WOTCCommunityHighlander/issues/68) removes that
+modifier (`X2AbilityTemplate.uc`, "Start Issue #68 / End Issue #68").
+
+This is a **compile-time** dependency only. Issue #68 changes nothing but the accessibility
+modifier — same types, same declaration order, same class layout — and UnrealScript access
+modifiers do not affect the compiled property layout, so the resulting `.u` loads and runs against
+vanilla `XComGame` as well as the Highlander's. No `RequiredHighlanderVersion` is declared, and none
+is needed.
+
+If you see `Error, Can't write to protected variable` on `AbilityTargetEffects` during a build, your
+SDK sources are stock; deploy the Highlander into the SDK.
+
+### Regenerating the docs
+
The [Reference](#reference), [Supported at a glance](#supported-at-a-glance) and [Edit modes](#edit-modes) sections above are **generated** from the UnrealScript sources. After adding or changing an editor class, regenerate them with:
```powershell
-.\.scripts\generate-docs.ps1 # updates README.md and docs/schema.json
-.\.scripts\generate-docs.ps1 -CheckOnly # exits 1 if the docs are stale (for CI)
+.\.scripts\generate-docs.ps1 -SdkPath '' # updates README.md and docs/schema.json
+.\.scripts\generate-docs.ps1 -CheckOnly # exits 1 if the docs are stale
+.\.scripts\generate-docs.ps1 -PrintSourceHash # prints the .uc source hash and exits
```
+Always pass `-SdkPath`: without it the generator silently skips abstract-class badges, the
+per-class "not editable via config" lists, and the **dispatch-order check** — the only automated
+guard against registering an editor after one of its game class's ancestors, which makes it dead
+code. `-PrintSourceHash` is the CI-friendly staleness check: it needs no SDK, so CI can compare it
+against `sourceHash` in the committed `docs/schema.json`.
+
The script also emits [`docs/schema.json`](docs/schema.json), a machine-readable description of the whole config API (enums, structs, families, editors, fields), meant to be consumed by external tooling such as a config-builder web app.
For the docs to pick up a new editor class automatically, follow the existing conventions:
@@ -4966,6 +4995,12 @@ For the docs to pick up a new editor class automatically, follow the existing co
1. Declare the handled game class with a single `IsA('X2Thing_Class')` in `CanEdit()`.
2. Apply optional scalars with the `if (Edit.SetX) { LogInfo(...); Target.Field = Edit.X; }` triplet, and name arrays through `X2AbilityEditor_Helper.ApplyNameArrayEdit`.
3. Register the class in the family's registry in `X2DLCInfo_AbilityEditor.uc` `defaultproperties` — **before** any editor whose game class is a parent of yours (first match wins).
-4. Declare new config fields in `AE_DataStructures.uc` as `Set`/value pairs (with a `// comment` above the pair: it becomes the field's documentation).
+4. Declare new config fields in `AE_DataStructures.uc` as `Set`/value pairs. To document a field, put the `// comment` **directly above the value var, not above the `Set` guard** — the parser attaches a comment to the next `var` it sees, and guards are not documented fields, so a comment above the pair is dropped. Comments above a guard are therefore free to act as section headers (`// X2Condition_UnitValue`), which is how the file already uses them.
+
+ ```unrealscript
+ var bool SetNumAmmo;
+ // Rounds consumed per shot. 0 makes the ability free to fire.
+ var int NumAmmo;
+ ```
Everything hand-written in this file lives outside the `` markers and survives regeneration.
diff --git a/docs/schema.json b/docs/schema.json
new file mode 100644
index 0000000..831f81f
--- /dev/null
+++ b/docs/schema.json
@@ -0,0 +1,63251 @@
+{
+ "$comment": "Generated by .scripts/generate-docs.ps1 - do not edit by hand.",
+ "sourceHash": "4c1e871da9a4143c8c91044046b77d37a79788b7463ed01f5ca52f1ec3bce02d",
+ "enums": [
+ {
+ "name": "EStatChangeMode",
+ "values": [
+ {
+ "name": "eSCM_Replace",
+ "description": "Clear existing stat changes (`m_aStatChanges`) before applying yours. (Default)"
+ },
+ {
+ "name": "eSCM_Merge",
+ "description": "Update the entry for each `StatType` if present, otherwise add it."
+ }
+ ]
+ },
+ {
+ "name": "EAbilityEffectSlot",
+ "values": [
+ {
+ "name": "eAES_Target",
+ "description": "Edit `AbilityTargetEffects` (effects applied to the primary target). (Default)"
+ },
+ {
+ "name": "eAES_MultiTarget",
+ "description": "Edit `AbilityMultiTargetEffects`."
+ },
+ {
+ "name": "eAES_Shooter",
+ "description": "Edit `AbilityShooterEffects` (effects applied to the shooter)."
+ }
+ ]
+ },
+ {
+ "name": "EChargesBonusMode",
+ "values": [
+ {
+ "name": "eCBM_Replace",
+ "description": "Clear existing `BonusCharges` entries before applying yours. (Default)"
+ },
+ {
+ "name": "eCBM_Merge",
+ "description": "Update the entry for each `AbilityName` if present, otherwise add it."
+ }
+ ]
+ },
+ {
+ "name": "EAdditionalCooldownEditMode",
+ "values": [
+ {
+ "name": "eACEM_Replace",
+ "description": "Clear existing `AditionalAbilityCooldowns` entries before applying yours. (Default)"
+ },
+ {
+ "name": "eACEM_Merge",
+ "description": "Update the entry for each `AbilityName` if present, otherwise add it."
+ }
+ ]
+ },
+ {
+ "name": "EAbilityCostEditMode",
+ "values": [
+ {
+ "name": "eACEM_ReplaceAll",
+ "description": "As `CostMode`: clear **all** existing costs before applying the entries. As per-entry `Mode`: edit in place if a cost of that class exists, otherwise skip (unless `CostMode=eACEM_ReplaceAll`, in which case a new cost is added). (Default)"
+ },
+ {
+ "name": "eACEM_Merge",
+ "description": "Edit the existing cost of that class in place; if none exists, instantiate and add it."
+ },
+ {
+ "name": "eACEM_AddOnly",
+ "description": "Same as `eACEM_Merge`: edit in place if present, otherwise add."
+ },
+ {
+ "name": "eACEM_Remove",
+ "description": "Remove the cost of that class from the ability."
+ }
+ ]
+ },
+ {
+ "name": "EArrayEditMode",
+ "values": [
+ {
+ "name": "eAEM_ReplaceAll",
+ "description": "Clear the whole target array, then add this effect/condition. (Default)"
+ },
+ {
+ "name": "eAEM_Merge",
+ "description": "Edit the existing effect/condition of that class in place; if none exists, instantiate and add it."
+ },
+ {
+ "name": "eAEM_AddOnly",
+ "description": "Same as `eAEM_Merge`: edit in place if present, otherwise add."
+ },
+ {
+ "name": "eAEM_Remove",
+ "description": "Remove the first effect/condition of that class from the target array."
+ }
+ ]
+ },
+ {
+ "name": "ENameArrayEditMode",
+ "values": [
+ {
+ "name": "eNAEM_Replace",
+ "description": "Replace the whole target array with the provided values. (Default)"
+ },
+ {
+ "name": "eNAEM_Merge",
+ "description": "Append each provided value that is not already present."
+ },
+ {
+ "name": "eNAEM_AddOnly",
+ "description": "Set the provided values **only if the target array is currently empty**; otherwise do nothing. It does not append."
+ },
+ {
+ "name": "eNAEM_Remove",
+ "description": "Remove each provided value from the target array."
+ }
+ ]
+ }
+ ],
+ "structs": [
+ {
+ "name": "AdditionalCooldownEdit",
+ "fields": [
+ {
+ "name": "AbilityName",
+ "type": "name",
+ "kind": "plain",
+ "description": "Ability whose cooldown entry is added/updated in `AditionalAbilityCooldowns`."
+ },
+ {
+ "name": "NumTurns",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "name": "UseAbilityCooldownNumTurns",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseAbilityCooldownNumTurns"
+ },
+ {
+ "name": "ApplyCooldownType",
+ "type": "name",
+ "kind": "plain",
+ "description": "`AdditionalCooldown_ApplyLarger` or `AdditionalCooldown_ApplySmaller`. Applied when non-empty."
+ }
+ ]
+ },
+ {
+ "name": "BonusChargeEdit",
+ "fields": [
+ {
+ "name": "AbilityName",
+ "type": "name",
+ "kind": "plain",
+ "description": "Ability that grants the bonus charges."
+ },
+ {
+ "name": "NumCharges",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumCharges"
+ }
+ ]
+ },
+ {
+ "name": "CostEdit",
+ "fields": [
+ {
+ "name": "Class",
+ "type": "string",
+ "kind": "plain",
+ "description": "Cost class to target/instantiate, e.g. `X2AbilityCost_ActionPoints`. Bare names are auto-prefixed with `XComGame.`; empty falls back to `X2AbilityCost`."
+ },
+ {
+ "name": "Mode",
+ "type": "EAbilityCostEditMode",
+ "kind": "plain",
+ "description": "Per-entry edit mode (`EAbilityCostEditMode`), see [Edit modes](#edit-modes)."
+ },
+ {
+ "name": "FreeCost",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFreeCost"
+ },
+ {
+ "name": "NumPoints",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumPoints"
+ },
+ {
+ "name": "AddWeaponTypicalCost",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAddWeaponTypicalCost"
+ },
+ {
+ "name": "ConsumeAllPoints",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetConsumeAllPoints"
+ },
+ {
+ "name": "MoveCost",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMoveCost"
+ },
+ {
+ "name": "AllowedTypes",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "AllowedTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "AllowedTypesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "DoNotConsumeAllEffects",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "DoNotConsumeAllEffectsMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "DoNotConsumeAllEffectsMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "DoNotConsumeAllSoldierAbilities",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "DoNotConsumeAllSoldierAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "DoNotConsumeAllSoldierAbilitiesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "SharedAbilityCharges",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "SharedAbilityChargesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "SharedAbilityChargesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "FocusAmount",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFocusAmount"
+ },
+ {
+ "name": "ConsumeAllFocus",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetConsumeAllFocus"
+ },
+ {
+ "name": "GhostOnlyCost",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetGhostOnlyCost"
+ },
+ {
+ "name": "NumAmmo",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumAmmo"
+ },
+ {
+ "name": "UseLoadedAmmo",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseLoadedAmmo"
+ },
+ {
+ "name": "ReturnChargesError",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetReturnChargesError"
+ },
+ {
+ "name": "ConsumeAllAmmo",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetConsumeAllAmmo"
+ },
+ {
+ "name": "NumCharges",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumCharges"
+ },
+ {
+ "name": "OnlyOnHit",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOnlyOnHit"
+ },
+ {
+ "name": "AlsoExpendChargesOnSharedBondmateAbility",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAlsoExpendChargesOnSharedBondmateAbility"
+ }
+ ]
+ },
+ {
+ "name": "CooldownEdit",
+ "fields": [
+ {
+ "name": "Class",
+ "type": "string",
+ "kind": "plain",
+ "description": "Optional. Omitted = edit the existing cooldown in place. Set = target/instantiate that class, e.g. `X2AbilityCooldown_PerPlayerType`. Bare names are auto-prefixed with `XComGame.`."
+ },
+ {
+ "name": "NumTurns",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "name": "IgnoreOnHit",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIgnoreOnHit"
+ },
+ {
+ "name": "AdditionalCooldownMode",
+ "type": "EAdditionalCooldownEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "AdditionalCooldowns",
+ "type": "array",
+ "kind": "nested",
+ "description": "",
+ "modeField": "AdditionalCooldownMode",
+ "modeEnum": "EAdditionalCooldownEditMode"
+ },
+ {
+ "name": "NumTurnsForAI",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumTurnsForAI"
+ },
+ {
+ "name": "NumGlobalTurns",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumGlobalTurns"
+ }
+ ]
+ },
+ {
+ "name": "ChargesEdit",
+ "fields": [
+ {
+ "name": "Class",
+ "type": "string",
+ "kind": "plain",
+ "description": "Optional. Omitted = edit the existing charges object in place. Set = target/instantiate that class, e.g. `X2AbilityCharges_GremlinHeal`. Bare names are auto-prefixed with `XComGame.`."
+ },
+ {
+ "name": "InitialCharges",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetInitialCharges"
+ },
+ {
+ "name": "BonusChargesMode",
+ "type": "EChargesBonusMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "BonusCharges",
+ "type": "array",
+ "kind": "nested",
+ "description": "",
+ "modeField": "BonusChargesMode",
+ "modeEnum": "EChargesBonusMode"
+ },
+ {
+ "name": "RemoveCharges",
+ "type": "bool",
+ "kind": "plain",
+ "description": "Set to true to remove the ability's charges object entirely. No `Class` needed; the other fields of the block are ignored."
+ },
+ {
+ "name": "Stabilize",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStabilize"
+ }
+ ]
+ },
+ {
+ "name": "AECustomProperty",
+ "fields": [
+ {
+ "name": "Key",
+ "type": "name",
+ "kind": "plain",
+ "description": ""
+ },
+ {
+ "name": "Value",
+ "type": "string",
+ "kind": "plain",
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "ConditionEdit",
+ "fields": [
+ {
+ "name": "Class",
+ "type": "string",
+ "kind": "plain",
+ "description": "Condition class to target/instantiate, e.g. `X2Condition_UnitProperty`. Bare names are auto-prefixed with `XComGame.`."
+ },
+ {
+ "name": "Mode",
+ "type": "EArrayEditMode",
+ "kind": "plain",
+ "description": "Per-entry edit mode (`EArrayEditMode`), see [Edit modes](#edit-modes)."
+ },
+ {
+ "name": "OwnerHasSoldierAbilitiesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Condition_AbilityProperty"
+ },
+ {
+ "name": "OwnerHasSoldierAbilities",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "OwnerHasSoldierAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "TargetMustBeInValidTiles",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetTargetMustBeInValidTiles"
+ },
+ {
+ "name": "WantsReload",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetWantsReload"
+ },
+ {
+ "name": "CheckAmmo",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCheckAmmo"
+ },
+ {
+ "name": "CheckAmmoData",
+ "type": "CheckConfig",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCheckAmmoData"
+ },
+ {
+ "name": "NotLoadedAmmoInSecondaryWeapon",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNotLoadedAmmoInSecondaryWeapon"
+ },
+ {
+ "name": "MatchGrenadeType",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMatchGrenadeType"
+ },
+ {
+ "name": "CheckGrenadeFriendlyFire",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCheckGrenadeFriendlyFire"
+ },
+ {
+ "name": "CheckAmmoTechLevel",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCheckAmmoTechLevel"
+ },
+ {
+ "name": "MatchWeaponTemplate",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMatchWeaponTemplate"
+ },
+ {
+ "name": "StilettoRounds",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStilettoRounds"
+ },
+ {
+ "name": "RequiredGameplayTag",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequiredGameplayTag"
+ },
+ {
+ "name": "DisallowGameplayTag",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDisallowGameplayTag"
+ },
+ {
+ "name": "NumTurnsCheck",
+ "type": "CheckConfig",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumTurnsCheck"
+ },
+ {
+ "name": "ActionPointChecksMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Condition_UnitActionPoints (merged by ActionPointType)"
+ },
+ {
+ "name": "ActionPointChecks",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "ActionPointChecksMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "RequiredAlertStatusMaximum",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequiredAlertStatusMaximum"
+ },
+ {
+ "name": "RequiredAlertStatusMinimum",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequiredAlertStatusMinimum"
+ },
+ {
+ "name": "ExcludeEffectsMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Condition_UnitEffects and its subclasses (merged by EffectName)"
+ },
+ {
+ "name": "ExcludeEffects",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "ExcludeEffectsMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "RequireEffectsMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "RequireEffects",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "RequireEffectsMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "ExcludeDamageTypesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Condition_UnitImmunities"
+ },
+ {
+ "name": "ExcludeDamageTypes",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "ExcludeDamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "OnlyOnCharacterTemplate",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOnlyOnCharacterTemplate"
+ },
+ {
+ "name": "InteractionType",
+ "type": "UnitInterationType",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetInteractionType"
+ },
+ {
+ "name": "RelevantSlot",
+ "type": "EInventorySlot",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRelevantSlot"
+ },
+ {
+ "name": "ExcludeWeaponCategory",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeWeaponCategory"
+ },
+ {
+ "name": "RequireWeaponCategory",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequireWeaponCategory"
+ },
+ {
+ "name": "ExcludeAlive",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeAlive"
+ },
+ {
+ "name": "ExcludeDead",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeDead"
+ },
+ {
+ "name": "ExcludeRobotic",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeRobotic"
+ },
+ {
+ "name": "ExcludeOrganic",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeOrganic"
+ },
+ {
+ "name": "ExcludeCivilian",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeCivilian"
+ },
+ {
+ "name": "ExcludeNonCivilian",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeNonCivilian"
+ },
+ {
+ "name": "ExcludeCosmetic",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeCosmetic"
+ },
+ {
+ "name": "ExcludeImpaired",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeImpaired"
+ },
+ {
+ "name": "ExcludePanicked",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludePanicked"
+ },
+ {
+ "name": "ExcludeInStasis",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeInStasis"
+ },
+ {
+ "name": "ExcludeTurret",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeTurret"
+ },
+ {
+ "name": "ExcludePsionic",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludePsionic"
+ },
+ {
+ "name": "ExcludeNonPsionic",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeNonPsionic"
+ },
+ {
+ "name": "IsAdvent",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIsAdvent"
+ },
+ {
+ "name": "ExcludeAdvent",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeAdvent"
+ },
+ {
+ "name": "ExcludeNoCover",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeNoCover"
+ },
+ {
+ "name": "ExcludeNoCoverToSource",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeNoCoverToSource"
+ },
+ {
+ "name": "ExcludeFullHealth",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeFullHealth"
+ },
+ {
+ "name": "IsBleedingOut",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIsBleedingOut"
+ },
+ {
+ "name": "IsUnspotted",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIsUnspotted"
+ },
+ {
+ "name": "CanBeCarried",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCanBeCarried"
+ },
+ {
+ "name": "IsOutdoors",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIsOutdoors"
+ },
+ {
+ "name": "IsConcealed",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIsConcealed"
+ },
+ {
+ "name": "ExcludeConcealed",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeConcealed"
+ },
+ {
+ "name": "IsSuperConcealed",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIsSuperConcealed"
+ },
+ {
+ "name": "IsImpaired",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIsImpaired"
+ },
+ {
+ "name": "HasClearanceToMaxZ",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHasClearanceToMaxZ"
+ },
+ {
+ "name": "ExcludeAlien",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeAlien"
+ },
+ {
+ "name": "ExcludeNonHumanoidAliens",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeNonHumanoidAliens"
+ },
+ {
+ "name": "ExcludeStunned",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeStunned"
+ },
+ {
+ "name": "ExcludeDazed",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeDazed"
+ },
+ {
+ "name": "ExcludeUnableToAct",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeUnableToAct"
+ },
+ {
+ "name": "IsPlayerControlled",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIsPlayerControlled"
+ },
+ {
+ "name": "ExcludeUnrevealedAI",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeUnrevealedAI"
+ },
+ {
+ "name": "IncludeWeakAgainstTechLikeRobot",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIncludeWeakAgainstTechLikeRobot"
+ },
+ {
+ "name": "ImpairedIgnoresStuns",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetImpairedIgnoresStuns"
+ },
+ {
+ "name": "IsScampering",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIsScampering"
+ },
+ {
+ "name": "ExcludeDeadFromSpecialDeath",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeDeadFromSpecialDeath"
+ },
+ {
+ "name": "ExcludeLargeUnits",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeLargeUnits"
+ },
+ {
+ "name": "ImpairedIgnoresImpairingMomentarily",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetImpairedIgnoresImpairingMomentarily"
+ },
+ {
+ "name": "MinRank",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMinRank"
+ },
+ {
+ "name": "MaxRank",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMaxRank"
+ },
+ {
+ "name": "ExcludeSoldierClassesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "ExcludeSoldierClasses",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "ExcludeSoldierClassesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "RequireSoldierClassesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "RequireSoldierClasses",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "RequireSoldierClassesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "ExcludeHostileToSource",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeHostileToSource"
+ },
+ {
+ "name": "ExcludeFriendlyToSource",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeFriendlyToSource"
+ },
+ {
+ "name": "TreatMindControlledSquadmateAsHostile",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetTreatMindControlledSquadmateAsHostile"
+ },
+ {
+ "name": "ExcludeSquadmates",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeSquadmates"
+ },
+ {
+ "name": "RequireSquadmates",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequireSquadmates"
+ },
+ {
+ "name": "RequireWithinRange",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequireWithinRange"
+ },
+ {
+ "name": "WithinRange",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetWithinRange"
+ },
+ {
+ "name": "RequireWithinMinRange",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequireWithinMinRange"
+ },
+ {
+ "name": "WithinMinRange",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetWithinMinRange"
+ },
+ {
+ "name": "BeingCarriedBySource",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBeingCarriedBySource"
+ },
+ {
+ "name": "RequireUnitSelectedFromHQ",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequireUnitSelectedFromHQ"
+ },
+ {
+ "name": "FailOnNonUnits",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFailOnNonUnits"
+ },
+ {
+ "name": "CheckStatsMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Condition_UnitStatCheck (merged by StatType)"
+ },
+ {
+ "name": "CheckStats",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "CheckStatsMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "IncludeTypesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Condition_UnitType"
+ },
+ {
+ "name": "IncludeTypes",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "IncludeTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "ExcludeTypesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "ExcludeTypes",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "ExcludeTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "CheckValuesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Condition_UnitValue (merged by UnitValue)"
+ },
+ {
+ "name": "CheckValues",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "CheckValuesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "NoEnemyViewers",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNoEnemyViewers"
+ },
+ {
+ "name": "RequireMatchCoverType",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequireMatchCoverType"
+ },
+ {
+ "name": "RequireNotMatchCoverType",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequireNotMatchCoverType"
+ },
+ {
+ "name": "TargetCover",
+ "type": "ECoverType",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetTargetCover"
+ },
+ {
+ "name": "CannotPeek",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCannotPeek"
+ },
+ {
+ "name": "RequireLOS",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequireLOS"
+ },
+ {
+ "name": "RequireBasicVisibility",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequireBasicVisibility"
+ },
+ {
+ "name": "RequireGameplayVisible",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequireGameplayVisible"
+ },
+ {
+ "name": "AllowSquadsight",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowSquadsight"
+ },
+ {
+ "name": "ActAsSquadsight",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetActAsSquadsight"
+ },
+ {
+ "name": "VisibleToAnyAlly",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetVisibleToAnyAlly"
+ },
+ {
+ "name": "DisablePeeksOnMovement",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDisablePeeksOnMovement"
+ },
+ {
+ "name": "ExcludeGameplayVisible",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeGameplayVisible"
+ },
+ {
+ "name": "RequireGameplayVisibleTagsMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "RequireGameplayVisibleTags",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "RequireGameplayVisibleTagsMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "MissionAborted",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMissionAborted"
+ },
+ {
+ "name": "MissionNotAborted",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMissionNotAborted"
+ },
+ {
+ "name": "CiviliansTargetedByAliens",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCiviliansTargetedByAliens"
+ },
+ {
+ "name": "CiviliansNotTargetedByAliens",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCiviliansNotTargetedByAliens"
+ },
+ {
+ "name": "IncludeTheLostInEngagedCount",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIncludeTheLostInEngagedCount"
+ },
+ {
+ "name": "MinEngagedEnemies",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMinEngagedEnemies"
+ },
+ {
+ "name": "MaxEngagedEnemies",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMaxEngagedEnemies"
+ },
+ {
+ "name": "FailOnNonUnitTargets",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFailOnNonUnitTargets"
+ },
+ {
+ "name": "MinBondLevel",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMinBondLevel"
+ },
+ {
+ "name": "MaxBondLevel",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMaxBondLevel"
+ },
+ {
+ "name": "RequiresAdjacency",
+ "type": "AdjacencyRequirement",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequiresAdjacency"
+ },
+ {
+ "name": "SkipCheckWithSource",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSkipCheckWithSource"
+ },
+ {
+ "name": "IntrusionProtocol",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIntrusionProtocol"
+ },
+ {
+ "name": "HaywireProtocol",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHaywireProtocol"
+ },
+ {
+ "name": "RequiredAbilityName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequiredAbilityName"
+ },
+ {
+ "name": "MustBeDoor",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMustBeDoor"
+ },
+ {
+ "name": "RestrictRange",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRestrictRange"
+ },
+ {
+ "name": "LootableRange",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetLootableRange"
+ },
+ {
+ "name": "NotAFloorTileTag",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNotAFloorTileTag"
+ },
+ {
+ "name": "MaxPanicUnitsPerPod",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMaxPanicUnitsPerPod"
+ },
+ {
+ "name": "HackAbilityName",
+ "type": "Name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHackAbilityName"
+ },
+ {
+ "name": "CheckFlanking",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCheckFlanking"
+ },
+ {
+ "name": "RequireVisible",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequireVisible"
+ },
+ {
+ "name": "AllowedBiomesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Condition_MapProperty"
+ },
+ {
+ "name": "AllowedBiomes",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "AllowedBiomesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "CustomProperties",
+ "type": "array",
+ "kind": "nested",
+ "description": "Free-form key/value pairs for bridge-mod editors; ignored by the built-in editors."
+ }
+ ]
+ },
+ {
+ "name": "StatChangeEdit",
+ "fields": [
+ {
+ "name": "StatType",
+ "type": "ECharStatType",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStatType"
+ },
+ {
+ "name": "StatAmount",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStatAmount"
+ },
+ {
+ "name": "ModOp",
+ "type": "EStatModOp",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetModOp"
+ },
+ {
+ "name": "ApplicationRule",
+ "type": "ECharStatModApplicationRule",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetApplicationRule"
+ }
+ ]
+ },
+ {
+ "name": "WeaponDamageValueEdit",
+ "fields": [
+ {
+ "name": "Damage",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDamage"
+ },
+ {
+ "name": "Spread",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSpread"
+ },
+ {
+ "name": "PlusOne",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPlusOne"
+ },
+ {
+ "name": "Crit",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCrit"
+ },
+ {
+ "name": "Pierce",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPierce"
+ },
+ {
+ "name": "Rupture",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRupture"
+ },
+ {
+ "name": "Shred",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetShred"
+ },
+ {
+ "name": "Tag",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetTag"
+ },
+ {
+ "name": "DamageType",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDamageType"
+ }
+ ]
+ },
+ {
+ "name": "EffectEdit",
+ "fields": [
+ {
+ "name": "Class",
+ "type": "string",
+ "kind": "plain",
+ "description": "Effect class to target/instantiate, e.g. `X2Effect_ApplyWeaponDamage`. Bare names are auto-prefixed with `XComGame.`; empty falls back to `X2Effect`."
+ },
+ {
+ "name": "Slot",
+ "type": "EAbilityEffectSlot",
+ "kind": "plain",
+ "description": "Which effect array to edit (`EAbilityEffectSlot`): `eAES_Target`, `eAES_MultiTarget` or `eAES_Shooter`."
+ },
+ {
+ "name": "Mode",
+ "type": "EArrayEditMode",
+ "kind": "plain",
+ "description": "Per-entry edit mode (`EArrayEditMode`), see [Edit modes](#edit-modes)."
+ },
+ {
+ "name": "ApplyOnHit",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "name": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "name": "ApplyChance",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "name": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "name": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "name": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "name": "IsImpairing",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "name": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "name": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "name": "ShowImmunity",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "name": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "name": "AppliesDamage",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "name": "CanBeRedirected",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "name": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "name": "DamageTypesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "DamageTypes",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "name": "MinStatContestResult",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "name": "MaxStatContestResult",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "name": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "name": "OverrideMissMessage",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "name": "NumTurns",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "name": "InitialShedChance",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "name": "PerTurnShedChance",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "name": "EffectRank",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "name": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "name": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "name": "InfiniteDuration",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "name": "TickWhenApplied",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "name": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "name": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "name": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "name": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "name": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "name": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "name": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "name": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "name": "UniqueTarget",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "name": "StackOnRefresh",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "name": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "name": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "name": "DisplayInUI",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "name": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "name": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "name": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "name": "EffectName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "name": "AbilitySourceName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "name": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "name": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "name": "VFXSocket",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "name": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "name": "FriendlyName",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "name": "FriendlyDescription",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "name": "IconImage",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "name": "SourceFriendlyName",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "name": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "name": "SourceIconLabel",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "name": "StatusIcon",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "name": "VFXTemplateName",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "name": "PersistentPerkName",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ },
+ {
+ "name": "ExplosiveDamage",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExplosiveDamage"
+ },
+ {
+ "name": "IgnoreBaseDamage",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIgnoreBaseDamage"
+ },
+ {
+ "name": "DamageTag",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDamageTag"
+ },
+ {
+ "name": "AlwaysKillsCivilians",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAlwaysKillsCivilians"
+ },
+ {
+ "name": "ApplyWorldEffectsForEachTargetLocation",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetApplyWorldEffectsForEachTargetLocation"
+ },
+ {
+ "name": "AllowFreeKill",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowFreeKill"
+ },
+ {
+ "name": "AllowWeaponUpgrade",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowWeaponUpgrade"
+ },
+ {
+ "name": "BypassShields",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBypassShields"
+ },
+ {
+ "name": "IgnoreArmor",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIgnoreArmor"
+ },
+ {
+ "name": "BypassSustainEffects",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBypassSustainEffects"
+ },
+ {
+ "name": "EnvironmentalDamageAmount",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetEnvironmentalDamageAmount"
+ },
+ {
+ "name": "WeaponDamageValue",
+ "type": "WeaponDamageValueEdit",
+ "kind": "nested",
+ "description": ""
+ },
+ {
+ "name": "StatChangeMode",
+ "type": "EStatChangeMode",
+ "kind": "mode",
+ "description": "X2Effect_PersistentStatChange"
+ },
+ {
+ "name": "StatChange",
+ "type": "array",
+ "kind": "nested",
+ "description": "",
+ "modeField": "StatChangeMode",
+ "modeEnum": "EStatChangeMode"
+ },
+ {
+ "name": "CHLForceReapplyOnRefresh",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCHLForceReapplyOnRefresh"
+ },
+ {
+ "name": "ImmuneTypesAreInclusive",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetImmuneTypesAreInclusive"
+ },
+ {
+ "name": "RemoveAfterAttackCount",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRemoveAfterAttackCount"
+ },
+ {
+ "name": "ImmuneTypesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "ImmuneTypes",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "ImmuneTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "NumActionPoints",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumActionPoints"
+ },
+ {
+ "name": "PointType",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPointType"
+ },
+ {
+ "name": "ApplyOnlyWhenOut",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetApplyOnlyWhenOut"
+ },
+ {
+ "name": "SelectUnit",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSelectUnit"
+ },
+ {
+ "name": "SkipWithEffectMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "SkipWithEffect",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "SkipWithEffectMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "EffectNamesToRemoveMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Effect_RemoveEffects"
+ },
+ {
+ "name": "EffectNamesToRemove",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "EffectNamesToRemoveMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "Cleanse",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCleanse"
+ },
+ {
+ "name": "CheckSource",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCheckSource"
+ },
+ {
+ "name": "DoNotVisualize",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDoNotVisualize"
+ },
+ {
+ "name": "UnitName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUnitName"
+ },
+ {
+ "name": "NewValueToSet",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNewValueToSet"
+ },
+ {
+ "name": "CleanupType",
+ "type": "EUnitValueCleanup",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCleanupType"
+ },
+ {
+ "name": "ArmorMitigationAmount",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetArmorMitigationAmount"
+ },
+ {
+ "name": "StunLevel",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStunLevel"
+ },
+ {
+ "name": "SkipAnimation",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSkipAnimation"
+ },
+ {
+ "name": "StunStartAnimName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStunStartAnimName"
+ },
+ {
+ "name": "StunStopAnimName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStunStopAnimName"
+ },
+ {
+ "name": "StunnedTriggerName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStunnedTriggerName"
+ },
+ {
+ "name": "SustainedAbilityName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSustainedAbilityName"
+ },
+ {
+ "name": "FragileAmount",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFragileAmount"
+ },
+ {
+ "name": "EffectsToRemoveFromSourceMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "EffectsToRemoveFromSource",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "EffectsToRemoveFromSourceMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "EffectsToRemoveFromTargetMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "EffectsToRemoveFromTarget",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "EffectsToRemoveFromTargetMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "RegisterAdditionalEventsLikeImpairMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "RegisterAdditionalEventsLikeImpair",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "RegisterAdditionalEventsLikeImpairMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "ReasonNotVisible",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetReasonNotVisible"
+ },
+ {
+ "name": "VanishRevealAdditiveAnimName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetVanishRevealAdditiveAnimName"
+ },
+ {
+ "name": "VanishRevealAnimName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetVanishRevealAnimName"
+ },
+ {
+ "name": "VanishSyncAnimName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetVanishSyncAnimName"
+ },
+ {
+ "name": "ReserveType",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetReserveType"
+ },
+ {
+ "name": "NumPoints",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumPoints"
+ },
+ {
+ "name": "AbilityToActivate",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAbilityToActivate"
+ },
+ {
+ "name": "GrantActionPoint",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetGrantActionPoint"
+ },
+ {
+ "name": "MaxPointsPerTurn",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMaxPointsPerTurn"
+ },
+ {
+ "name": "DirectAttackOnly",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDirectAttackOnly"
+ },
+ {
+ "name": "PreEmptiveFire",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPreEmptiveFire"
+ },
+ {
+ "name": "OnlyDuringEnemyTurn",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOnlyDuringEnemyTurn"
+ },
+ {
+ "name": "UseMultiTargets",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseMultiTargets"
+ },
+ {
+ "name": "OnlyWhenAttackMisses",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOnlyWhenAttackMisses"
+ },
+ {
+ "name": "SelfTargeting",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSelfTargeting"
+ },
+ {
+ "name": "ActivationPercentChance",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetActivationPercentChance"
+ },
+ {
+ "name": "TraversalChangesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Effect_PersistentTraversalChange (merged by Traversal)"
+ },
+ {
+ "name": "TraversalChanges",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "TraversalChangesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "ToHitMin",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetToHitMin"
+ },
+ {
+ "name": "DmgMod",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDmgMod"
+ },
+ {
+ "name": "AdverseClassesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Effect_AdverseSoldierClasses"
+ },
+ {
+ "name": "AdverseClasses",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "AdverseClassesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "BonusDamageMult",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBonusDamageMult"
+ },
+ {
+ "name": "MinBonusDamage",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMinBonusDamage"
+ },
+ {
+ "name": "OverrideParticleSystemFill_Name",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOverrideParticleSystemFill_Name"
+ },
+ {
+ "name": "DamageTypeTemplateName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDamageTypeTemplateName"
+ },
+ {
+ "name": "PlusNumZTiles",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPlusNumZTiles"
+ },
+ {
+ "name": "UseWeaponEnvironmentalDamage",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseWeaponEnvironmentalDamage"
+ },
+ {
+ "name": "UseWeaponDamageType",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseWeaponDamageType"
+ },
+ {
+ "name": "HitSourceTile",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHitSourceTile"
+ },
+ {
+ "name": "HitTargetTile",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHitTargetTile"
+ },
+ {
+ "name": "HitAdjacentDestructibles",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHitAdjacentDestructibles"
+ },
+ {
+ "name": "AllowDestructionOfDamageCauseCover",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowDestructionOfDamageCauseCover"
+ },
+ {
+ "name": "FireChance_Level1",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFireChance_Level1"
+ },
+ {
+ "name": "FireChance_Level2",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFireChance_Level2"
+ },
+ {
+ "name": "FireChance_Level3",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFireChance_Level3"
+ },
+ {
+ "name": "UseFireChanceLevel",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseFireChanceLevel"
+ },
+ {
+ "name": "DamageFragileOnly",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDamageFragileOnly"
+ },
+ {
+ "name": "CheckForLOSFromTargetLocation",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCheckForLOSFromTargetLocation"
+ },
+ {
+ "name": "PerUseHP",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPerUseHP"
+ },
+ {
+ "name": "IncreasedHealProject",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIncreasedHealProject"
+ },
+ {
+ "name": "IncreasedPerUseHP",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIncreasedPerUseHP"
+ },
+ {
+ "name": "Pierce",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPierce"
+ },
+ {
+ "name": "CritChance",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCritChance"
+ },
+ {
+ "name": "CritDamage",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCritDamage"
+ },
+ {
+ "name": "EventsToUpdateMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Effect_Aura"
+ },
+ {
+ "name": "EventsToUpdate",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "EventsToUpdateMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "NumHitsForMod",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumHitsForMod"
+ },
+ {
+ "name": "ExplosiveDamageReduction",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExplosiveDamageReduction"
+ },
+ {
+ "name": "BonusDamage",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBonusDamage"
+ },
+ {
+ "name": "BonusDmg",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBonusDmg"
+ },
+ {
+ "name": "WillMod",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetWillMod"
+ },
+ {
+ "name": "ModifyOutgoingDamage",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetModifyOutgoingDamage"
+ },
+ {
+ "name": "ModifyIncomingDamage",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetModifyIncomingDamage"
+ },
+ {
+ "name": "DamageModifier",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDamageModifier"
+ },
+ {
+ "name": "DamageBonus",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDamageBonus"
+ },
+ {
+ "name": "TriggerEventName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetTriggerEventName"
+ },
+ {
+ "name": "GlobalAbility",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetGlobalAbility"
+ },
+ {
+ "name": "CoverType",
+ "type": "ECoverForceFlag",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCoverType"
+ },
+ {
+ "name": "RemoveWhenMoved",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRemoveWhenMoved"
+ },
+ {
+ "name": "RemoveOnOtherActivation",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRemoveOnOtherActivation"
+ },
+ {
+ "name": "OverrideStartAnimName",
+ "type": "Name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOverrideStartAnimName"
+ },
+ {
+ "name": "OverrideStopAnimName",
+ "type": "Name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOverrideStopAnimName"
+ },
+ {
+ "name": "RequireVisibleTile",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRequireVisibleTile"
+ },
+ {
+ "name": "HeightBonus",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHeightBonus"
+ },
+ {
+ "name": "AllowedAbilitiesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Effect_Guardian"
+ },
+ {
+ "name": "AllowedAbilities",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "AllowedAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "ProcChance",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetProcChance"
+ },
+ {
+ "name": "HitMod",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHitMod"
+ },
+ {
+ "name": "DelayTimeS",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDelayTimeS"
+ },
+ {
+ "name": "AbilityToTrigger",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAbilityToTrigger"
+ },
+ {
+ "name": "BonusCritChance",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBonusCritChance"
+ },
+ {
+ "name": "AbilityName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAbilityName"
+ },
+ {
+ "name": "ActivateAbilityOnTarget",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetActivateAbilityOnTarget"
+ },
+ {
+ "name": "EffectTargetOnly",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetEffectTargetOnly"
+ },
+ {
+ "name": "ImplacableThisTurnValue",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetImplacableThisTurnValue"
+ },
+ {
+ "name": "CohesionAmount",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCohesionAmount"
+ },
+ {
+ "name": "ShieldPerMiss",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetShieldPerMiss"
+ },
+ {
+ "name": "KnockbackDistance",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetKnockbackDistance"
+ },
+ {
+ "name": "KnockbackDestroysNonFragile",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetKnockbackDestroysNonFragile"
+ },
+ {
+ "name": "OverrideRagdollFinishTimerSec",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOverrideRagdollFinishTimerSec"
+ },
+ {
+ "name": "OnlyOnDeath",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOnlyOnDeath"
+ },
+ {
+ "name": "BenefitFromEmpoweredUpgrades",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBenefitFromEmpoweredUpgrades"
+ },
+ {
+ "name": "CritBonus",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCritBonus"
+ },
+ {
+ "name": "LifeAmountMultiplier",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetLifeAmountMultiplier"
+ },
+ {
+ "name": "AbilityToMark",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAbilityToMark"
+ },
+ {
+ "name": "OnlyUseTargetLocation",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOnlyUseTargetLocation"
+ },
+ {
+ "name": "VisualizeFlagsOnCursor",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetVisualizeFlagsOnCursor"
+ },
+ {
+ "name": "DamageMod",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDamageMod"
+ },
+ {
+ "name": "MeleeDamageTypeName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMeleeDamageTypeName"
+ },
+ {
+ "name": "NumTurnsForAI",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumTurnsForAI"
+ },
+ {
+ "name": "RemoveGroupFromInitiativeOrder",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRemoveGroupFromInitiativeOrder"
+ },
+ {
+ "name": "AddGroupToInitiativeOrder",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAddGroupToInitiativeOrder"
+ },
+ {
+ "name": "AllowCrit",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowCrit"
+ },
+ {
+ "name": "ReactionModifier",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetReactionModifier"
+ },
+ {
+ "name": "ModifyFocus",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetModifyFocus"
+ },
+ {
+ "name": "ArmorPierce",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetArmorPierce"
+ },
+ {
+ "name": "ObsessedTargetValueName",
+ "type": "Name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetObsessedTargetValueName"
+ },
+ {
+ "name": "OverrideAnimNameOnLoad",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOverrideAnimNameOnLoad"
+ },
+ {
+ "name": "CritBoostPerKill",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCritBoostPerKill"
+ },
+ {
+ "name": "MaxCritBoost",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMaxCritBoost"
+ },
+ {
+ "name": "ParthenogenicPoisonType",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetParthenogenicPoisonType"
+ },
+ {
+ "name": "ParthenogenicPoisonCocoonSpawnedName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetParthenogenicPoisonCocoonSpawnedName"
+ },
+ {
+ "name": "AltUnitToSpawnName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAltUnitToSpawnName"
+ },
+ {
+ "name": "UseWeaponRadius",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseWeaponRadius"
+ },
+ {
+ "name": "ViewRadius",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetViewRadius"
+ },
+ {
+ "name": "UseSourceLocation",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseSourceLocation"
+ },
+ {
+ "name": "InitialDamage",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetInitialDamage"
+ },
+ {
+ "name": "WeaponTemplateName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetWeaponTemplateName"
+ },
+ {
+ "name": "ReaperActivatedName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetReaperActivatedName"
+ },
+ {
+ "name": "ReaperKillName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetReaperKillName"
+ },
+ {
+ "name": "Amount",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAmount"
+ },
+ {
+ "name": "ReduceAll",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetReduceAll"
+ },
+ {
+ "name": "AbilitiesToTickMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Effect_ReduceCooldowns"
+ },
+ {
+ "name": "AbilitiesToTick",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "AbilitiesToTickMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "HealAmount",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHealAmount"
+ },
+ {
+ "name": "MaxHealAmount",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMaxHealAmount"
+ },
+ {
+ "name": "HealthRegeneratedName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHealthRegeneratedName"
+ },
+ {
+ "name": "EventToTriggerOnHeal",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetEventToTriggerOnHeal"
+ },
+ {
+ "name": "UnitDamageMultiplier",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUnitDamageMultiplier"
+ },
+ {
+ "name": "DamageRadiusMultiplier",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDamageRadiusMultiplier"
+ },
+ {
+ "name": "DamageTypesToRemoveMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Effect_RemoveEffectsByDamageType"
+ },
+ {
+ "name": "DamageTypesToRemove",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "DamageTypesToRemoveMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "UseAllPointsWithAbilitiesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Effect_ReserveOverwatchPoints"
+ },
+ {
+ "name": "UseAllPointsWithAbilities",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "UseAllPointsWithAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "NumActions",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumActions"
+ },
+ {
+ "name": "BehaviorTreeName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBehaviorTreeName"
+ },
+ {
+ "name": "InitFromPlayer",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetInitFromPlayer"
+ },
+ {
+ "name": "SetActionPointCount",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSetActionPointCount"
+ },
+ {
+ "name": "LookAtDuration",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetLookAtDuration"
+ },
+ {
+ "name": "ShatteredTargetValueName",
+ "type": "Name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetShatteredTargetValueName"
+ },
+ {
+ "name": "UnitValueToRead",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUnitValueToRead"
+ },
+ {
+ "name": "DestructibleArchetype",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDestructibleArchetype"
+ },
+ {
+ "name": "DestroyOnRemoval",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDestroyOnRemoval"
+ },
+ {
+ "name": "TargetableBySpawnedTeamOnly",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetTargetableBySpawnedTeamOnly"
+ },
+ {
+ "name": "AnimationName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAnimationName"
+ },
+ {
+ "name": "StartAnimationMinDelaySec",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStartAnimationMinDelaySec"
+ },
+ {
+ "name": "StartAnimationMaxDelaySec",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStartAnimationMaxDelaySec"
+ },
+ {
+ "name": "ShadowbindUnconciousCheckName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetShadowbindUnconciousCheckName"
+ },
+ {
+ "name": "UnitToSpawnName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUnitToSpawnName"
+ },
+ {
+ "name": "ClearTileBlockedByTargetUnitFlag",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetClearTileBlockedByTargetUnitFlag"
+ },
+ {
+ "name": "CopyTargetAppearance",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCopyTargetAppearance"
+ },
+ {
+ "name": "CopySourceAppearance",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCopySourceAppearance"
+ },
+ {
+ "name": "KnockbackAffectsSpawnLocation",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetKnockbackAffectsSpawnLocation"
+ },
+ {
+ "name": "AddToSourceGroup",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAddToSourceGroup"
+ },
+ {
+ "name": "CopyReanimatedFromUnit",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCopyReanimatedFromUnit"
+ },
+ {
+ "name": "CopyReanimatedStatsFromUnit",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCopyReanimatedStatsFromUnit"
+ },
+ {
+ "name": "SetProcessedScamperAs",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSetProcessedScamperAs"
+ },
+ {
+ "name": "BecomeUnspotted",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBecomeUnspotted"
+ },
+ {
+ "name": "StunStartAnim",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStunStartAnim"
+ },
+ {
+ "name": "StunStopAnim",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStunStopAnim"
+ },
+ {
+ "name": "SkipFlyover",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSkipFlyover"
+ },
+ {
+ "name": "StartAnimBlendTime",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStartAnimBlendTime"
+ },
+ {
+ "name": "ConcealAmountScalar",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetConcealAmountScalar"
+ },
+ {
+ "name": "AbilitiesAffectedFilterMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Effect_SuperConcealModifier"
+ },
+ {
+ "name": "AbilitiesAffectedFilter",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "AbilitiesAffectedFilterMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "RemoveOnAbilityActivationMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Effect_SuperConcealModifier"
+ },
+ {
+ "name": "RemoveOnAbilityActivation",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "RemoveOnAbilityActivationMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "ResumeMissionTimer",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetResumeMissionTimer"
+ },
+ {
+ "name": "AimMod",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAimMod"
+ },
+ {
+ "name": "BonusDmgFloat",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBonusDmgFloat"
+ },
+ {
+ "name": "BonusModType",
+ "type": "EStatModOp",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBonusModType"
+ },
+ {
+ "name": "WithinTileDistance",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetWithinTileDistance"
+ },
+ {
+ "name": "PrimaryTargetOnly",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPrimaryTargetOnly"
+ },
+ {
+ "name": "BonusDamageTypesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Effect_TargetDamageTypeBonus"
+ },
+ {
+ "name": "BonusDamageTypes",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "BonusDamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "ImmediateActionPoint",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetImmediateActionPoint"
+ },
+ {
+ "name": "ApplyAsTarget",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetApplyAsTarget"
+ },
+ {
+ "name": "ConeLength",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetConeLength"
+ },
+ {
+ "name": "ConeEndDiameter",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetConeEndDiameter"
+ },
+ {
+ "name": "PassTargetAsSource",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPassTargetAsSource"
+ },
+ {
+ "name": "ActionPointType",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetActionPointType"
+ },
+ {
+ "name": "ActionPointsRemoved",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetActionPointsRemoved"
+ },
+ {
+ "name": "MovingVanishRevealAdditiveAnimName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMovingVanishRevealAdditiveAnimName"
+ },
+ {
+ "name": "DamagePerAction",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDamagePerAction"
+ },
+ {
+ "name": "HealthReturnMod",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHealthReturnMod"
+ },
+ {
+ "name": "WallBreakingEffectName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetWallBreakingEffectName"
+ },
+ {
+ "name": "CenterTile",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCenterTile"
+ },
+ {
+ "name": "StatTypesToRestoreMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "X2Effect_PersistentStatChangeRestoreDefault"
+ },
+ {
+ "name": "StatTypesToRestore",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "StatTypesToRestoreMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "ApplyDamageModConditions",
+ "type": "array",
+ "kind": "nested",
+ "description": "X2Effect_ConditionalDamageModifier"
+ },
+ {
+ "name": "LethalDamageConditions",
+ "type": "array",
+ "kind": "nested",
+ "description": "X2Effect_LethalWeaponDamage"
+ },
+ {
+ "name": "ToHitConditions",
+ "type": "array",
+ "kind": "nested",
+ "description": "X2Effect_ToHitModifier"
+ },
+ {
+ "name": "EffectHitModifiers",
+ "type": "array",
+ "kind": "plainArray",
+ "description": "**Replace-only**: when non-empty, replaces `X2Effect_ToHitModifier.Modifiers` entirely (`EffectHitModifier` entries, incl. `MatchToHit` class ref via qualified name)."
+ },
+ {
+ "name": "CustomProperties",
+ "type": "array",
+ "kind": "nested",
+ "description": "Free-form key/value pairs for bridge-mod editors; ignored by the built-in editors."
+ }
+ ]
+ },
+ {
+ "name": "ToHitCalcEdit",
+ "fields": [
+ {
+ "name": "Class",
+ "type": "string",
+ "kind": "plain",
+ "description": "Optional. Omitted = edit the existing calc in place. Set = target/instantiate that class, e.g. `X2AbilityToHitCalc_StandardAim`. Bare names are auto-prefixed with `XComGame.`."
+ },
+ {
+ "name": "HitModifiers",
+ "type": "array",
+ "kind": "plainArray",
+ "description": "**Replace-only**: when non-empty, replaces the calc's always-on `HitModifiers` array entirely (`ShotModifierInfo`: `ModType`, `Value`, `Reason`)."
+ },
+ {
+ "name": "IndirectFire",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIndirectFire"
+ },
+ {
+ "name": "MeleeAttack",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMeleeAttack"
+ },
+ {
+ "name": "ReactionFire",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetReactionFire"
+ },
+ {
+ "name": "AllowCrit",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowCrit"
+ },
+ {
+ "name": "HitsAreCrits",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHitsAreCrits"
+ },
+ {
+ "name": "MultiTargetOnly",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMultiTargetOnly"
+ },
+ {
+ "name": "OnlyMultiHitWithSuccess",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOnlyMultiHitWithSuccess"
+ },
+ {
+ "name": "GuaranteedHit",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetGuaranteedHit"
+ },
+ {
+ "name": "IgnoreCoverBonus",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIgnoreCoverBonus"
+ },
+ {
+ "name": "FinalMultiplier",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFinalMultiplier"
+ },
+ {
+ "name": "BuiltInHitMod",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBuiltInHitMod"
+ },
+ {
+ "name": "BuiltInCritMod",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBuiltInCritMod"
+ },
+ {
+ "name": "PercentToHit",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPercentToHit"
+ },
+ {
+ "name": "NoGameStateOnMiss",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNoGameStateOnMiss"
+ },
+ {
+ "name": "FocusMultiplier",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFocusMultiplier"
+ },
+ {
+ "name": "PercentToHitInBuddyZone",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPercentToHitInBuddyZone"
+ },
+ {
+ "name": "AlwaysSucceed",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAlwaysSucceed"
+ },
+ {
+ "name": "StatToRoll",
+ "type": "ECharStatType",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetStatToRoll"
+ },
+ {
+ "name": "BaseChance",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBaseChance"
+ },
+ {
+ "name": "BaseValue",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBaseValue"
+ },
+ {
+ "name": "AttackerStat",
+ "type": "ECharStatType",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAttackerStat"
+ },
+ {
+ "name": "DefenderStat",
+ "type": "ECharStatType",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDefenderStat"
+ },
+ {
+ "name": "CustomProperties",
+ "type": "array",
+ "kind": "nested",
+ "description": "Free-form key/value pairs for bridge-mod editors; ignored by the built-in editors."
+ }
+ ]
+ },
+ {
+ "name": "TargetStyleEdit",
+ "fields": [
+ {
+ "name": "Class",
+ "type": "string",
+ "kind": "plain",
+ "description": "Optional. Omitted = edit the existing style in place. Set = target/instantiate that class, e.g. `X2AbilityTarget_Cursor`. Bare names are auto-prefixed with `XComGame.`."
+ },
+ {
+ "name": "OnlyIncludeTargetsInsideWeaponRange",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOnlyIncludeTargetsInsideWeaponRange"
+ },
+ {
+ "name": "AllowInteractiveObjects",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowInteractiveObjects"
+ },
+ {
+ "name": "AllowDestructibleObjects",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowDestructibleObjects"
+ },
+ {
+ "name": "IncludeSelf",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIncludeSelf"
+ },
+ {
+ "name": "ShowAOE",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetShowAOE"
+ },
+ {
+ "name": "RestrictToWeaponRange",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRestrictToWeaponRange"
+ },
+ {
+ "name": "IncreaseWeaponRange",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIncreaseWeaponRange"
+ },
+ {
+ "name": "RestrictToSquadsightRange",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRestrictToSquadsightRange"
+ },
+ {
+ "name": "FixedAbilityRange",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFixedAbilityRange"
+ },
+ {
+ "name": "MovementRangeAdjustment",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMovementRangeAdjustment"
+ },
+ {
+ "name": "CustomProperties",
+ "type": "array",
+ "kind": "nested",
+ "description": "Free-form key/value pairs for bridge-mod editors; ignored by the built-in editors."
+ }
+ ]
+ },
+ {
+ "name": "MultiTargetStyleEdit",
+ "fields": [
+ {
+ "name": "Class",
+ "type": "string",
+ "kind": "plain",
+ "description": "Optional. Omitted = edit the existing style in place. Set = target/instantiate that class, e.g. `X2AbilityMultiTarget_Radius`. Bare names are auto-prefixed with `XComGame.`."
+ },
+ {
+ "name": "AllowSameTarget",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowSameTarget"
+ },
+ {
+ "name": "UseSourceWeaponLocation",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseSourceWeaponLocation"
+ },
+ {
+ "name": "NumTargetsRequired",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumTargetsRequired"
+ },
+ {
+ "name": "UseWeaponRadius",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseWeaponRadius"
+ },
+ {
+ "name": "UseWeaponBlockingCoverFlag",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseWeaponBlockingCoverFlag"
+ },
+ {
+ "name": "IgnoreBlockingCover",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIgnoreBlockingCover"
+ },
+ {
+ "name": "TargetRadius",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetTargetRadius"
+ },
+ {
+ "name": "TargetCoveragePercentage",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetTargetCoveragePercentage"
+ },
+ {
+ "name": "AddPrimaryTargetAsMultiTarget",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAddPrimaryTargetAsMultiTarget"
+ },
+ {
+ "name": "AllowDeadMultiTargetUnits",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowDeadMultiTargetUnits"
+ },
+ {
+ "name": "ExcludeSelfAsTargetIfWithinRadius",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetExcludeSelfAsTargetIfWithinRadius"
+ },
+ {
+ "name": "AbilityBonusRadiiMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "merged by RequiredAbility"
+ },
+ {
+ "name": "AbilityBonusRadii",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "AbilityBonusRadiiMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "ConeEndDiameter",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetConeEndDiameter"
+ },
+ {
+ "name": "ConeLength",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetConeLength"
+ },
+ {
+ "name": "UseWeaponRangeForLength",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseWeaponRangeForLength"
+ },
+ {
+ "name": "LockShooterZ",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetLockShooterZ"
+ },
+ {
+ "name": "AbilityBonusConesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "merged by RequiredAbility"
+ },
+ {
+ "name": "AbilityBonusCones",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "AbilityBonusConesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "TileWidthExtension",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetTileWidthExtension"
+ },
+ {
+ "name": "SightRangeLimited",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSightRangeLimited"
+ },
+ {
+ "name": "AbilityBonusWidthsMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "merged by RequiredAbility"
+ },
+ {
+ "name": "AbilityBonusWidths",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "AbilityBonusWidthsMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "TargetHeight",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetTargetHeight"
+ },
+ {
+ "name": "UseOnlyGroundTiles",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseOnlyGroundTiles"
+ },
+ {
+ "name": "NumExtraShots",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetNumExtraShots"
+ },
+ {
+ "name": "OnlyAllyOfType",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOnlyAllyOfType"
+ },
+ {
+ "name": "AcceptFriendlyUnits",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAcceptFriendlyUnits"
+ },
+ {
+ "name": "AcceptEnemyUnits",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAcceptEnemyUnits"
+ },
+ {
+ "name": "OnlyAcceptRoboticUnits",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOnlyAcceptRoboticUnits"
+ },
+ {
+ "name": "OnlyAcceptAlienUnits",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOnlyAcceptAlienUnits"
+ },
+ {
+ "name": "OnlyAcceptAdventUnits",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetOnlyAcceptAdventUnits"
+ },
+ {
+ "name": "RandomlySelectOne",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRandomlySelectOne"
+ },
+ {
+ "name": "DontAcceptNeutralUnits",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDontAcceptNeutralUnits"
+ },
+ {
+ "name": "RandomChance",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetRandomChance"
+ },
+ {
+ "name": "UseAbilitySourceAsPrimaryTarget",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseAbilitySourceAsPrimaryTarget"
+ },
+ {
+ "name": "ClaymoreEnvironmentalDamage",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetClaymoreEnvironmentalDamage"
+ },
+ {
+ "name": "CustomProperties",
+ "type": "array",
+ "kind": "nested",
+ "description": "Free-form key/value pairs for bridge-mod editors; ignored by the built-in editors."
+ }
+ ]
+ },
+ {
+ "name": "TriggerEdit",
+ "fields": [
+ {
+ "name": "Class",
+ "type": "string",
+ "kind": "plain",
+ "description": "Trigger class to target/instantiate, e.g. `X2AbilityTrigger_UnitPostBeginPlay`. Bare names are auto-prefixed with `XComGame.`."
+ },
+ {
+ "name": "Mode",
+ "type": "EArrayEditMode",
+ "kind": "plain",
+ "description": "Per-entry edit mode (`EArrayEditMode`), see [Edit modes](#edit-modes)."
+ },
+ {
+ "name": "Priority",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPriority"
+ },
+ {
+ "name": "ListenerEventID",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetListenerEventID"
+ },
+ {
+ "name": "ListenerDeferral",
+ "type": "EventListenerDeferral",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetListenerDeferral"
+ },
+ {
+ "name": "ListenerFilter",
+ "type": "AbilityEventFilter",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetListenerFilter"
+ },
+ {
+ "name": "ListenerPriority",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetListenerPriority"
+ },
+ {
+ "name": "MethodName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetMethodName"
+ },
+ {
+ "name": "EventObserverClass",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetEventObserverClass"
+ },
+ {
+ "name": "CustomProperties",
+ "type": "array",
+ "kind": "nested",
+ "description": "Free-form key/value pairs for bridge-mod editors; ignored by the built-in editors."
+ }
+ ]
+ },
+ {
+ "name": "AbilityEventListenerEdit",
+ "fields": [
+ {
+ "name": "EventID",
+ "type": "name",
+ "kind": "plain",
+ "description": "Matches the existing `Template.AbilityEventListeners` entry to edit. Entries cannot be added (their `EventFn` delegate is code-only)."
+ },
+ {
+ "name": "Deferral",
+ "type": "EventListenerDeferral",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDeferral"
+ },
+ {
+ "name": "Filter",
+ "type": "AbilityEventFilter",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFilter"
+ },
+ {
+ "name": "Priority",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPriority"
+ }
+ ]
+ },
+ {
+ "name": "ExtraEditorRegistration",
+ "fields": [
+ {
+ "name": "EditorClass",
+ "type": "string",
+ "kind": "plain",
+ "description": ""
+ },
+ {
+ "name": "Priority",
+ "type": "int",
+ "kind": "plain",
+ "description": ""
+ }
+ ]
+ },
+ {
+ "name": "AbilityEdit",
+ "fields": [
+ {
+ "name": "Ability",
+ "type": "name",
+ "kind": "plain",
+ "description": "Required. Template name of the ability to edit (e.g. `SwordSlice`)."
+ },
+ {
+ "name": "Hostility",
+ "type": "EAbilityHostility",
+ "kind": "optionalScalar",
+ "description": "Whether the ability is offensive, defensive or neutral. Drives AI targeting and the reticle colour. One of eHostility_Offensive, eHostility_Defensive, eHostility_Neutral.",
+ "guard": "SetHostility"
+ },
+ {
+ "name": "ConcealmentRule",
+ "type": "EConcealmentRule",
+ "kind": "optionalScalar",
+ "description": "What happens to the shooter's concealment when the ability is used.",
+ "guard": "SetConcealmentRule"
+ },
+ {
+ "name": "AdditionalAbilities",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "AdditionalAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "AdditionalAbilitiesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "PrerequisiteAbilities",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "PrerequisiteAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "PrerequisiteAbilitiesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "OverrideAbilities",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "OverrideAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "OverrideAbilitiesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "Cooldown",
+ "type": "CooldownEdit",
+ "kind": "nested",
+ "description": ""
+ },
+ {
+ "name": "CostMode",
+ "type": "EAbilityCostEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "Costs",
+ "type": "array",
+ "kind": "nested",
+ "description": "",
+ "modeField": "CostMode",
+ "modeEnum": "EAbilityCostEditMode"
+ },
+ {
+ "name": "Charges",
+ "type": "ChargesEdit",
+ "kind": "nested",
+ "description": ""
+ },
+ {
+ "name": "Effects",
+ "type": "array",
+ "kind": "nested",
+ "description": ""
+ },
+ {
+ "name": "ShooterConditions",
+ "type": "array",
+ "kind": "nested",
+ "description": "Template-level condition arrays"
+ },
+ {
+ "name": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "description": ""
+ },
+ {
+ "name": "MultiTargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "description": ""
+ },
+ {
+ "name": "ToHitCalc",
+ "type": "ToHitCalcEdit",
+ "kind": "nested",
+ "description": "To-hit calc slots"
+ },
+ {
+ "name": "ToHitOwnerOnMissCalc",
+ "type": "ToHitCalcEdit",
+ "kind": "nested",
+ "description": ""
+ },
+ {
+ "name": "TargetStyle",
+ "type": "TargetStyleEdit",
+ "kind": "nested",
+ "description": "Targeting style slots"
+ },
+ {
+ "name": "MultiTargetStyle",
+ "type": "MultiTargetStyleEdit",
+ "kind": "nested",
+ "description": ""
+ },
+ {
+ "name": "Triggers",
+ "type": "array",
+ "kind": "nested",
+ "description": "Trigger array + event listener edits"
+ },
+ {
+ "name": "AbilityEventListenerEdits",
+ "type": "array",
+ "kind": "nested",
+ "description": ""
+ },
+ {
+ "name": "CrossClassEligible",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCrossClassEligible"
+ },
+ {
+ "name": "IsPassive",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIsPassive"
+ },
+ {
+ "name": "UniqueSource",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUniqueSource"
+ },
+ {
+ "name": "AllowedByDefault",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowedByDefault"
+ },
+ {
+ "name": "TriggerChance",
+ "type": "float",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetTriggerChance"
+ },
+ {
+ "name": "SuperConcealmentLoss",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSuperConcealmentLoss"
+ },
+ {
+ "name": "ChosenActivationIncreasePerUse",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetChosenActivationIncreasePerUse"
+ },
+ {
+ "name": "LostSpawnIncreasePerUse",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetLostSpawnIncreasePerUse"
+ },
+ {
+ "name": "AbilityPointCost",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAbilityPointCost"
+ },
+ {
+ "name": "DefaultSourceItemSlot",
+ "type": "EInventorySlot",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDefaultSourceItemSlot"
+ },
+ {
+ "name": "UseThrownGrenadeEffects",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseThrownGrenadeEffects"
+ },
+ {
+ "name": "UseLaunchedGrenadeEffects",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseLaunchedGrenadeEffects"
+ },
+ {
+ "name": "AllowFreeFireWeaponUpgrade",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowFreeFireWeaponUpgrade"
+ },
+ {
+ "name": "AllowAmmoEffects",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowAmmoEffects"
+ },
+ {
+ "name": "AllowBonusWeaponEffects",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAllowBonusWeaponEffects"
+ },
+ {
+ "name": "SilentAbility",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetSilentAbility"
+ },
+ {
+ "name": "CannotTeleport",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCannotTeleport"
+ },
+ {
+ "name": "PreventsTargetTeleport",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetPreventsTargetTeleport"
+ },
+ {
+ "name": "FinalizeAbilityName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFinalizeAbilityName"
+ },
+ {
+ "name": "CancelAbilityName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCancelAbilityName"
+ },
+ {
+ "name": "TwoTurnAttackAbility",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetTwoTurnAttackAbility"
+ },
+ {
+ "name": "IconImage",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "name": "AbilityIconColor",
+ "type": "string",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAbilityIconColor"
+ },
+ {
+ "name": "AbilityIconBehaviorHUD",
+ "type": "EAbilityIconBehavior",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAbilityIconBehaviorHUD"
+ },
+ {
+ "name": "ShotHUDPriority",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetShotHUDPriority"
+ },
+ {
+ "name": "DisplayInUITooltip",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDisplayInUITooltip"
+ },
+ {
+ "name": "DisplayInUITacticalText",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDisplayInUITacticalText"
+ },
+ {
+ "name": "DontDisplayInAbilitySummary",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDontDisplayInAbilitySummary"
+ },
+ {
+ "name": "DisplayTargetHitChance",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetDisplayTargetHitChance"
+ },
+ {
+ "name": "HideOnClassUnlock",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetHideOnClassUnlock"
+ },
+ {
+ "name": "AbilitySourceName",
+ "type": "name",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "name": "LimitTargetIcons",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetLimitTargetIcons"
+ },
+ {
+ "name": "BypassAbilityConfirm",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetBypassAbilityConfirm"
+ },
+ {
+ "name": "UseAmmoAsChargesForHUD",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetUseAmmoAsChargesForHUD"
+ },
+ {
+ "name": "AmmoAsChargesDivisor",
+ "type": "int",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetAmmoAsChargesDivisor"
+ },
+ {
+ "name": "FriendlyFireWarning",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFriendlyFireWarning"
+ },
+ {
+ "name": "FriendlyFireWarningRobotsOnly",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetFriendlyFireWarningRobotsOnly"
+ },
+ {
+ "name": "CommanderAbility",
+ "type": "bool",
+ "kind": "optionalScalar",
+ "description": "",
+ "guard": "SetCommanderAbility"
+ },
+ {
+ "name": "AssociatedPassivesMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": "--- Template name arrays ---"
+ },
+ {
+ "name": "AssociatedPassives",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "AssociatedPassivesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "PostActivationEventsMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "PostActivationEvents",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "PostActivationEventsMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "name": "HideIfAvailableMode",
+ "type": "ENameArrayEditMode",
+ "kind": "mode",
+ "description": ""
+ },
+ {
+ "name": "HideIfAvailable",
+ "type": "array",
+ "kind": "modedArray",
+ "description": "",
+ "modeField": "HideIfAvailableMode",
+ "modeEnum": "ENameArrayEditMode"
+ }
+ ]
+ }
+ ],
+ "template": {
+ "fields": [
+ {
+ "config": "Hostility",
+ "type": "EAbilityHostility",
+ "kind": "scalar",
+ "gameField": "Hostility",
+ "description": "Whether the ability is offensive, defensive or neutral. Drives AI targeting and the reticle colour. One of eHostility_Offensive, eHostility_Defensive, eHostility_Neutral.",
+ "guard": "SetHostility"
+ },
+ {
+ "config": "ConcealmentRule",
+ "type": "EConcealmentRule",
+ "kind": "scalar",
+ "gameField": "ConcealmentRule",
+ "description": "What happens to the shooter's concealment when the ability is used.",
+ "guard": "SetConcealmentRule"
+ },
+ {
+ "config": "CrossClassEligible",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCrossClassEligible",
+ "description": "",
+ "guard": "SetCrossClassEligible"
+ },
+ {
+ "config": "IsPassive",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsPassive",
+ "description": "",
+ "guard": "SetIsPassive"
+ },
+ {
+ "config": "UniqueSource",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueSource",
+ "description": "",
+ "guard": "SetUniqueSource"
+ },
+ {
+ "config": "AllowedByDefault",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAllowedByDefault",
+ "description": "",
+ "guard": "SetAllowedByDefault"
+ },
+ {
+ "config": "TriggerChance",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "TriggerChance",
+ "description": "",
+ "guard": "SetTriggerChance"
+ },
+ {
+ "config": "SuperConcealmentLoss",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "SuperConcealmentLoss",
+ "description": "",
+ "guard": "SetSuperConcealmentLoss"
+ },
+ {
+ "config": "ChosenActivationIncreasePerUse",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ChosenActivationIncreasePerUse",
+ "description": "",
+ "guard": "SetChosenActivationIncreasePerUse"
+ },
+ {
+ "config": "LostSpawnIncreasePerUse",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "LostSpawnIncreasePerUse",
+ "description": "",
+ "guard": "SetLostSpawnIncreasePerUse"
+ },
+ {
+ "config": "AbilityPointCost",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "AbilityPointCost",
+ "description": "",
+ "guard": "SetAbilityPointCost"
+ },
+ {
+ "config": "DefaultSourceItemSlot",
+ "type": "EInventorySlot",
+ "kind": "scalar",
+ "gameField": "DefaultSourceItemSlot",
+ "description": "",
+ "guard": "SetDefaultSourceItemSlot"
+ },
+ {
+ "config": "UseThrownGrenadeEffects",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseThrownGrenadeEffects",
+ "description": "",
+ "guard": "SetUseThrownGrenadeEffects"
+ },
+ {
+ "config": "UseLaunchedGrenadeEffects",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseLaunchedGrenadeEffects",
+ "description": "",
+ "guard": "SetUseLaunchedGrenadeEffects"
+ },
+ {
+ "config": "AllowFreeFireWeaponUpgrade",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAllowFreeFireWeaponUpgrade",
+ "description": "",
+ "guard": "SetAllowFreeFireWeaponUpgrade"
+ },
+ {
+ "config": "AllowAmmoEffects",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAllowAmmoEffects",
+ "description": "",
+ "guard": "SetAllowAmmoEffects"
+ },
+ {
+ "config": "AllowBonusWeaponEffects",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAllowBonusWeaponEffects",
+ "description": "",
+ "guard": "SetAllowBonusWeaponEffects"
+ },
+ {
+ "config": "SilentAbility",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSilentAbility",
+ "description": "",
+ "guard": "SetSilentAbility"
+ },
+ {
+ "config": "CannotTeleport",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCannotTeleport",
+ "description": "",
+ "guard": "SetCannotTeleport"
+ },
+ {
+ "config": "PreventsTargetTeleport",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPreventsTargetTeleport",
+ "description": "",
+ "guard": "SetPreventsTargetTeleport"
+ },
+ {
+ "config": "FinalizeAbilityName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "FinalizeAbilityName",
+ "description": "",
+ "guard": "SetFinalizeAbilityName"
+ },
+ {
+ "config": "CancelAbilityName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CancelAbilityName",
+ "description": "",
+ "guard": "SetCancelAbilityName"
+ },
+ {
+ "config": "TwoTurnAttackAbility",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "TwoTurnAttackAbility",
+ "description": "",
+ "guard": "SetTwoTurnAttackAbility"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "AbilityIconColor",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "AbilityIconColor",
+ "description": "",
+ "guard": "SetAbilityIconColor"
+ },
+ {
+ "config": "AbilityIconBehaviorHUD",
+ "type": "EAbilityIconBehavior",
+ "kind": "scalar",
+ "gameField": "eAbilityIconBehaviorHUD",
+ "description": "",
+ "guard": "SetAbilityIconBehaviorHUD"
+ },
+ {
+ "config": "ShotHUDPriority",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ShotHUDPriority",
+ "description": "",
+ "guard": "SetShotHUDPriority"
+ },
+ {
+ "config": "DisplayInUITooltip",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUITooltip",
+ "description": "",
+ "guard": "SetDisplayInUITooltip"
+ },
+ {
+ "config": "DisplayInUITacticalText",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUITacticalText",
+ "description": "",
+ "guard": "SetDisplayInUITacticalText"
+ },
+ {
+ "config": "DontDisplayInAbilitySummary",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDontDisplayInAbilitySummary",
+ "description": "",
+ "guard": "SetDontDisplayInAbilitySummary"
+ },
+ {
+ "config": "DisplayTargetHitChance",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "DisplayTargetHitChance",
+ "description": "",
+ "guard": "SetDisplayTargetHitChance"
+ },
+ {
+ "config": "HideOnClassUnlock",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideOnClassUnlock",
+ "description": "",
+ "guard": "SetHideOnClassUnlock"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "LimitTargetIcons",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bLimitTargetIcons",
+ "description": "",
+ "guard": "SetLimitTargetIcons"
+ },
+ {
+ "config": "BypassAbilityConfirm",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBypassAbilityConfirm",
+ "description": "",
+ "guard": "SetBypassAbilityConfirm"
+ },
+ {
+ "config": "UseAmmoAsChargesForHUD",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseAmmoAsChargesForHUD",
+ "description": "",
+ "guard": "SetUseAmmoAsChargesForHUD"
+ },
+ {
+ "config": "AmmoAsChargesDivisor",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iAmmoAsChargesDivisor",
+ "description": "",
+ "guard": "SetAmmoAsChargesDivisor"
+ },
+ {
+ "config": "FriendlyFireWarning",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bFriendlyFireWarning",
+ "description": "",
+ "guard": "SetFriendlyFireWarning"
+ },
+ {
+ "config": "FriendlyFireWarningRobotsOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bFriendlyFireWarningRobotsOnly",
+ "description": "",
+ "guard": "SetFriendlyFireWarningRobotsOnly"
+ },
+ {
+ "config": "CommanderAbility",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCommanderAbility",
+ "description": "",
+ "guard": "SetCommanderAbility"
+ },
+ {
+ "config": "AdditionalAbilities",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "AdditionalAbilities",
+ "description": "",
+ "modeField": "AdditionalAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "PrerequisiteAbilities",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "PrerequisiteAbilities",
+ "description": "",
+ "modeField": "PrerequisiteAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "OverrideAbilities",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "OverrideAbilities",
+ "description": "",
+ "modeField": "OverrideAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "AssociatedPassives",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "AssociatedPassives",
+ "description": "",
+ "modeField": "AssociatedPassivesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "PostActivationEvents",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "PostActivationEvents",
+ "description": "",
+ "modeField": "PostActivationEventsMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "HideIfAvailable",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "HideIfAvailable",
+ "description": "",
+ "modeField": "HideIfAvailableMode",
+ "modeEnum": "ENameArrayEditMode"
+ }
+ ],
+ "notEditable": [
+ {
+ "name": "Requirements",
+ "reason": "type `StrategyRequirement`"
+ },
+ {
+ "name": "bRecordValidTiles",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bTickPerActionEffects",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bCheckCollision",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bAffectNeighboringTiles",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bFragileDamageOnly",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "AbilityRevealEvent",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "ChosenReinforcementGroupName",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "ChosenTraitType",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "ChosenExcludeTraits",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "ChosenTraitForceLevelGate",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "HideErrors",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bNoConfirmationWithHotKey",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "AbilityConfirmSound",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "DefaultKeyBinding",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "UIStatMarkups",
+ "reason": "array of `UIAbilityStatMarkup`"
+ },
+ {
+ "name": "CustomFireAnim",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "CustomFireKillAnim",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "CustomMovingFireAnim",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "CustomMovingFireKillAnim",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "CustomMovingTurnLeftFireAnim",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "CustomMovingTurnLeftFireKillAnim",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "CustomMovingTurnRightFireAnim",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "CustomMovingTurnRightFireKillAnim",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "CustomSelfFireAnim",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "AssociatedPlayTiming",
+ "reason": "type `SequencePlayTiming`"
+ },
+ {
+ "name": "bShowActivation",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bShowPostActivation",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bSkipFireAction",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bSkipExitCoverWhenFiring",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bSkipPerkActivationActions",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bSkipPerkActivationActionsSync",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bSkipMoveStop",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bOverrideMeleeDeath",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bOverrideVisualResult",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "OverrideVisualResult",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bHideWeaponDuringFire",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bHideAmmoWeaponDuringFire",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bIsASuppressionEffect",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bOverrideAim",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bUseSourceLocationZToAim",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bOverrideWeapon",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bStationaryWeapon",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "ActionFireClass",
+ "reason": "class reference"
+ },
+ {
+ "name": "bForceProjectileTouchEvents",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "ActivationSpeech",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "SourceHitSpeech",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "TargetHitSpeech",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "SourceMissSpeech",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "TargetMissSpeech",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "TargetKilledByAlienSpeech",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "TargetKilledByXComSpeech",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "MultiTargetsKilledByAlienSpeech",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "MultiTargetsKilledByXComSpeech",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "TargetWingedSpeech",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "TargetArmorHitSpeech",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "TargetMissedSpeech",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "AbilityPassiveAOEStyle",
+ "reason": "type `X2AbilityPassiveAOEStyle`"
+ },
+ {
+ "name": "bAllowUnderhandAnim",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "TargetingMethod",
+ "reason": "class reference"
+ },
+ {
+ "name": "SecondaryTargetingMethod",
+ "reason": "class reference"
+ },
+ {
+ "name": "SkipRenderOfAOETargetingTiles",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "SkipRenderOfTargetingTemplate",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "MeleePuckMeshPath",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "CinescriptCameraType",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "CameraPriority",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bUsesFiringCamera",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "FrameAbilityCameraType",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "bFrameEvenWhenUnitIsHidden",
+ "reason": "not covered (deliberate core-set choice)"
+ },
+ {
+ "name": "BuildNewGameStateFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "BuildInterruptGameStateFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "BuildVisualizationFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "BuildAppliedVisualizationSyncFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "BuildAffectedVisualizationSyncFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "SoldierAbilityPurchasedFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "OnVisualizationTrackInsertedFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "ModifyNewContextFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "DamagePreviewFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "GetBonusWeaponAmmoFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "MergeVisualizationFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "AlternateFriendlyNameFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "ShouldRevealChosenTraitFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "OverrideAbilityAvailabilityFn",
+ "reason": "delegate — code-only"
+ },
+ {
+ "name": "MP_PerkOverride",
+ "reason": "not covered (deliberate core-set choice)"
+ }
+ ]
+ },
+ "families": [
+ {
+ "name": "Costs",
+ "configKey": "Costs",
+ "editStruct": "CostEdit",
+ "wired": true,
+ "dispatchOrder": [
+ "X2AbilityCostEditor_Ammo",
+ "X2AbilityCostEditor_Charges",
+ "X2AbilityCostEditor_ConsumeItem",
+ "X2AbilityCostEditor_Focus",
+ "X2AbilityCostEditor_ReserveActionPoints",
+ "X2AbilityCostEditor_HeavyWeaponActionPoints",
+ "X2AbilityCostEditor_QuickdrawActionPoints",
+ "X2AbilityCostEditor_ActionPoints",
+ "X2AbilityCostEditor_Base"
+ ],
+ "intro": "Edits the `AbilityCosts` array of the template. Costs are edited **in place** when a cost of the given `Class` already exists; otherwise behaviour depends on the modes below. Fields you do not `Set` keep their current value.",
+ "editors": [
+ {
+ "class": "X2AbilityCostEditor_Ammo",
+ "extends": "X2AbilityCostEditor",
+ "gameClass": "X2AbilityCost_Ammo",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "FreeCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bFreeCost",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCostEditor",
+ "description": "",
+ "guard": "SetFreeCost"
+ },
+ {
+ "config": "NumAmmo",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iAmmo",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetNumAmmo"
+ },
+ {
+ "config": "UseLoadedAmmo",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "UseLoadedAmmo",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetUseLoadedAmmo"
+ },
+ {
+ "config": "ReturnChargesError",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bReturnChargesError",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetReturnChargesError"
+ },
+ {
+ "config": "ConsumeAllAmmo",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConsumeAllAmmo",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetConsumeAllAmmo"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityCostEditor_Charges",
+ "extends": "X2AbilityCostEditor",
+ "gameClass": "X2AbilityCost_Charges",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "FreeCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bFreeCost",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCostEditor",
+ "description": "",
+ "guard": "SetFreeCost"
+ },
+ {
+ "config": "NumCharges",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "NumCharges",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetNumCharges"
+ },
+ {
+ "config": "OnlyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bOnlyOnHit",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetOnlyOnHit"
+ },
+ {
+ "config": "AlsoExpendChargesOnSharedBondmateAbility",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAlsoExpendChargesOnSharedBondmateAbility",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetAlsoExpendChargesOnSharedBondmateAbility"
+ },
+ {
+ "config": "SharedAbilityCharges",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "SharedAbilityCharges",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "SharedAbilityChargesMode",
+ "modeEnum": "ENameArrayEditMode"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityCostEditor_ConsumeItem",
+ "extends": "X2AbilityCostEditor",
+ "gameClass": "X2AbilityCost_ConsumeItem",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "FreeCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bFreeCost",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCostEditor",
+ "description": "",
+ "guard": "SetFreeCost"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityCostEditor_Focus",
+ "extends": "X2AbilityCostEditor",
+ "gameClass": "X2AbilityCost_Focus",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "FreeCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bFreeCost",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCostEditor",
+ "description": "",
+ "guard": "SetFreeCost"
+ },
+ {
+ "config": "FocusAmount",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "FocusAmount",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetFocusAmount"
+ },
+ {
+ "config": "ConsumeAllFocus",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "ConsumeAllFocus",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetConsumeAllFocus"
+ },
+ {
+ "config": "GhostOnlyCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "GhostOnlyCost",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetGhostOnlyCost"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityCostEditor_ReserveActionPoints",
+ "extends": "X2AbilityCostEditor",
+ "gameClass": "X2AbilityCost_ReserveActionPoints",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "FreeCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bFreeCost",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCostEditor",
+ "description": "",
+ "guard": "SetFreeCost"
+ },
+ {
+ "config": "NumPoints",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumPoints",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetNumPoints"
+ },
+ {
+ "config": "ConsumeAllPoints",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConsumeAllPoints",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetConsumeAllPoints"
+ },
+ {
+ "config": "AllowedTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "AllowedTypes",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "AllowedTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityCostEditor_HeavyWeaponActionPoints",
+ "extends": "X2AbilityCostEditor_ActionPoints",
+ "gameClass": "X2AbilityCost_HeavyWeaponActionPoints",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "FreeCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bFreeCost",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCostEditor",
+ "description": "",
+ "guard": "SetFreeCost"
+ },
+ {
+ "config": "NumPoints",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumPoints",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "guard": "SetNumPoints"
+ },
+ {
+ "config": "ConsumeAllPoints",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConsumeAllPoints",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "guard": "SetConsumeAllPoints"
+ },
+ {
+ "config": "AddWeaponTypicalCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAddWeaponTypicalCost",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "guard": "SetAddWeaponTypicalCost"
+ },
+ {
+ "config": "MoveCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bMoveCost",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "guard": "SetMoveCost"
+ },
+ {
+ "config": "AllowedTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "AllowedTypes",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "modeField": "AllowedTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "DoNotConsumeAllEffects",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DoNotConsumeAllEffects",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "modeField": "DoNotConsumeAllEffectsMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "DoNotConsumeAllSoldierAbilities",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DoNotConsumeAllSoldierAbilities",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "modeField": "DoNotConsumeAllSoldierAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityCostEditor_QuickdrawActionPoints",
+ "extends": "X2AbilityCostEditor_ActionPoints",
+ "gameClass": "X2AbilityCost_QuickdrawActionPoints",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "FreeCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bFreeCost",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCostEditor",
+ "description": "",
+ "guard": "SetFreeCost"
+ },
+ {
+ "config": "NumPoints",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumPoints",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "guard": "SetNumPoints"
+ },
+ {
+ "config": "ConsumeAllPoints",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConsumeAllPoints",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "guard": "SetConsumeAllPoints"
+ },
+ {
+ "config": "AddWeaponTypicalCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAddWeaponTypicalCost",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "guard": "SetAddWeaponTypicalCost"
+ },
+ {
+ "config": "MoveCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bMoveCost",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "guard": "SetMoveCost"
+ },
+ {
+ "config": "AllowedTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "AllowedTypes",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "modeField": "AllowedTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "DoNotConsumeAllEffects",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DoNotConsumeAllEffects",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "modeField": "DoNotConsumeAllEffectsMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "DoNotConsumeAllSoldierAbilities",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DoNotConsumeAllSoldierAbilities",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCostEditor_ActionPoints",
+ "description": "",
+ "modeField": "DoNotConsumeAllSoldierAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityCostEditor_ActionPoints",
+ "extends": "X2AbilityCostEditor",
+ "gameClass": "X2AbilityCost_ActionPoints",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "FreeCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bFreeCost",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCostEditor",
+ "description": "",
+ "guard": "SetFreeCost"
+ },
+ {
+ "config": "NumPoints",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumPoints",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetNumPoints"
+ },
+ {
+ "config": "ConsumeAllPoints",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConsumeAllPoints",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetConsumeAllPoints"
+ },
+ {
+ "config": "AddWeaponTypicalCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAddWeaponTypicalCost",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetAddWeaponTypicalCost"
+ },
+ {
+ "config": "MoveCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bMoveCost",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetMoveCost"
+ },
+ {
+ "config": "AllowedTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "AllowedTypes",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "AllowedTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "DoNotConsumeAllEffects",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DoNotConsumeAllEffects",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "DoNotConsumeAllEffectsMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "DoNotConsumeAllSoldierAbilities",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DoNotConsumeAllSoldierAbilities",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "DoNotConsumeAllSoldierAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityCostEditor_Base",
+ "extends": "X2AbilityCostEditor",
+ "gameClass": null,
+ "catchAll": true,
+ "fields": [
+ {
+ "config": "FreeCost",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bFreeCost",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCostEditor",
+ "description": "",
+ "guard": "SetFreeCost"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Cooldown",
+ "configKey": "Cooldown",
+ "editStruct": "CooldownEdit",
+ "wired": true,
+ "dispatchOrder": [
+ "X2AbilityCooldownEditor_AidProtocol",
+ "X2AbilityCooldownEditor_PerPlayerType",
+ "X2AbilityCooldownEditor_LocalAndGlobal",
+ "X2AbilityCooldownEditor_Global",
+ "X2AbilityCooldownEditor_Rend",
+ "X2AbilityCooldownEditor_Base"
+ ],
+ "intro": "Edits the template's `AbilityCooldown`. With `Class` **omitted**, the existing cooldown is edited **in place** (no-op if the ability has none). With `Class` set, the existing cooldown is edited in place when it is already exactly that class; otherwise it is **replaced** by a new instance — any field you do not `Set` then takes the class's default value.",
+ "editors": [
+ {
+ "class": "X2AbilityCooldownEditor_AidProtocol",
+ "extends": "X2AbilityCooldownEditor",
+ "gameClass": "X2AbilityCooldown_AidProtocol",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "IgnoreOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDoNotApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "guard": "SetIgnoreOnHit"
+ },
+ {
+ "config": "AdditionalCooldowns",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "AditionalAbilityCooldowns",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "modeField": "AdditionalCooldownMode",
+ "modeEnum": "EAdditionalCooldownEditMode"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityCooldownEditor_PerPlayerType",
+ "extends": "X2AbilityCooldownEditor_LocalAndGlobal",
+ "gameClass": "X2AbilityCooldown_PerPlayerType",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "IgnoreOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDoNotApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "guard": "SetIgnoreOnHit"
+ },
+ {
+ "config": "AdditionalCooldowns",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "AditionalAbilityCooldowns",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "modeField": "AdditionalCooldownMode",
+ "modeEnum": "EAdditionalCooldownEditMode"
+ },
+ {
+ "config": "NumTurnsForAI",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurnsForAI",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetNumTurnsForAI"
+ },
+ {
+ "config": "NumGlobalTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "NumGlobalTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityCooldownEditor_LocalAndGlobal",
+ "description": "",
+ "guard": "SetNumGlobalTurns"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityCooldownEditor_LocalAndGlobal",
+ "extends": "X2AbilityCooldownEditor",
+ "gameClass": "X2AbilityCooldown_LocalAndGlobal",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "IgnoreOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDoNotApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "guard": "SetIgnoreOnHit"
+ },
+ {
+ "config": "AdditionalCooldowns",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "AditionalAbilityCooldowns",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "modeField": "AdditionalCooldownMode",
+ "modeEnum": "EAdditionalCooldownEditMode"
+ },
+ {
+ "config": "NumGlobalTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "NumGlobalTurns",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetNumGlobalTurns"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityCooldownEditor_Global",
+ "extends": "X2AbilityCooldownEditor",
+ "gameClass": "X2AbilityCooldown_Global",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "IgnoreOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDoNotApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "guard": "SetIgnoreOnHit"
+ },
+ {
+ "config": "AdditionalCooldowns",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "AditionalAbilityCooldowns",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "modeField": "AdditionalCooldownMode",
+ "modeEnum": "EAdditionalCooldownEditMode"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityCooldownEditor_Rend",
+ "extends": "X2AbilityCooldownEditor",
+ "gameClass": "X2AbilityCooldown_Rend",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "IgnoreOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDoNotApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "guard": "SetIgnoreOnHit"
+ },
+ {
+ "config": "AdditionalCooldowns",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "AditionalAbilityCooldowns",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "modeField": "AdditionalCooldownMode",
+ "modeEnum": "EAdditionalCooldownEditMode"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityCooldownEditor_Base",
+ "extends": "X2AbilityCooldownEditor",
+ "gameClass": null,
+ "catchAll": true,
+ "fields": [
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "IgnoreOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDoNotApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "guard": "SetIgnoreOnHit"
+ },
+ {
+ "config": "AdditionalCooldowns",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "AditionalAbilityCooldowns",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityCooldownEditor",
+ "description": "",
+ "modeField": "AdditionalCooldownMode",
+ "modeEnum": "EAdditionalCooldownEditMode"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Charges",
+ "configKey": "Charges",
+ "editStruct": "ChargesEdit",
+ "wired": true,
+ "dispatchOrder": [
+ "X2AbilityChargesEditor_CocoonSpawnChryssalid",
+ "X2AbilityChargesEditor_GremlinHeal",
+ "X2AbilityChargesEditor_RevivalProtocol",
+ "X2AbilityChargesEditor_ScanningProtocol",
+ "X2AbilityChargesEditor_StasisLance",
+ "X2AbilityChargesEditor_Base"
+ ],
+ "intro": "Edits the template's `AbilityCharges`. With `Class` **omitted**, the existing charges object is edited **in place** (no-op if the ability has none). With `Class` set, the existing object is edited in place when it is already exactly that class; otherwise it is **replaced** by a new instance — any field you do not `Set` then takes the class's default value. `RemoveCharges=true` removes the charges object entirely.",
+ "editors": [
+ {
+ "class": "X2AbilityChargesEditor_CocoonSpawnChryssalid",
+ "extends": "X2AbilityChargesEditor",
+ "gameClass": "X2AbilityCharges_CocoonSpawnChryssalid",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "InitialCharges",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "InitialCharges",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityChargesEditor",
+ "description": "",
+ "guard": "SetInitialCharges"
+ },
+ {
+ "config": "BonusCharges",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "BonusCharges",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityChargesEditor",
+ "description": "",
+ "modeField": "BonusChargesMode",
+ "modeEnum": "EChargesBonusMode"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityChargesEditor_GremlinHeal",
+ "extends": "X2AbilityChargesEditor",
+ "gameClass": "X2AbilityCharges_GremlinHeal",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "InitialCharges",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "InitialCharges",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityChargesEditor",
+ "description": "",
+ "guard": "SetInitialCharges"
+ },
+ {
+ "config": "BonusCharges",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "BonusCharges",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityChargesEditor",
+ "description": "",
+ "modeField": "BonusChargesMode",
+ "modeEnum": "EChargesBonusMode"
+ },
+ {
+ "config": "Stabilize",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStabilize",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetStabilize"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityChargesEditor_RevivalProtocol",
+ "extends": "X2AbilityChargesEditor",
+ "gameClass": "X2AbilityCharges_RevivalProtocol",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "InitialCharges",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "InitialCharges",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityChargesEditor",
+ "description": "",
+ "guard": "SetInitialCharges"
+ },
+ {
+ "config": "BonusCharges",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "BonusCharges",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityChargesEditor",
+ "description": "",
+ "modeField": "BonusChargesMode",
+ "modeEnum": "EChargesBonusMode"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityChargesEditor_ScanningProtocol",
+ "extends": "X2AbilityChargesEditor",
+ "gameClass": "X2AbilityCharges_ScanningProtocol",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "InitialCharges",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "InitialCharges",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityChargesEditor",
+ "description": "",
+ "guard": "SetInitialCharges"
+ },
+ {
+ "config": "BonusCharges",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "BonusCharges",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityChargesEditor",
+ "description": "",
+ "modeField": "BonusChargesMode",
+ "modeEnum": "EChargesBonusMode"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityChargesEditor_StasisLance",
+ "extends": "X2AbilityChargesEditor",
+ "gameClass": "X2AbilityCharges_StasisLance",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "InitialCharges",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "InitialCharges",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityChargesEditor",
+ "description": "",
+ "guard": "SetInitialCharges"
+ },
+ {
+ "config": "BonusCharges",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "BonusCharges",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityChargesEditor",
+ "description": "",
+ "modeField": "BonusChargesMode",
+ "modeEnum": "EChargesBonusMode"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityChargesEditor_Base",
+ "extends": "X2AbilityChargesEditor",
+ "gameClass": null,
+ "catchAll": true,
+ "fields": [
+ {
+ "config": "InitialCharges",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "InitialCharges",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityChargesEditor",
+ "description": "",
+ "guard": "SetInitialCharges"
+ },
+ {
+ "config": "BonusCharges",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "BonusCharges",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityChargesEditor",
+ "description": "",
+ "modeField": "BonusChargesMode",
+ "modeEnum": "EChargesBonusMode"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Effects",
+ "configKey": "Effects",
+ "editStruct": "EffectEdit",
+ "wired": true,
+ "dispatchOrder": [
+ "X2AbilityEffectsEditor_Obsessed",
+ "X2AbilityEffectsEditor_Shattered",
+ "X2AbilityEffectsEditor_VanishingWind",
+ "X2AbilityEffectsEditor_KineticPlating",
+ "X2AbilityEffectsEditor_Vanish",
+ "X2AbilityEffectsEditor_BlastPadding",
+ "X2AbilityEffectsEditor_KillUnit",
+ "X2AbilityEffectsEditor_ParthenogenicPoison",
+ "X2AbilityEffectsEditor_PersistentStatChange",
+ "X2AbilityEffectsEditor_PersistentStatChangeRestoreDefault",
+ "X2AbilityEffectsEditor_SpawnPsiZombie",
+ "X2AbilityEffectsEditor_SpawnShadowbindUnit",
+ "X2AbilityEffectsEditor_ThreatAssessment",
+ "X2AbilityEffectsEditor_WallBreaking",
+ "X2AbilityEffectsEditor_Achilles",
+ "X2AbilityEffectsEditor_AdverseSoldierClasses",
+ "X2AbilityEffectsEditor_Amplify",
+ "X2AbilityEffectsEditor_ApplyBlazingPinionsTargetToWorld",
+ "X2AbilityEffectsEditor_ApplyFireToWorld",
+ "X2AbilityEffectsEditor_APRounds",
+ "X2AbilityEffectsEditor_Aura",
+ "X2AbilityEffectsEditor_Bewildered",
+ "X2AbilityEffectsEditor_BloodTrail",
+ "X2AbilityEffectsEditor_BonusArmor",
+ "X2AbilityEffectsEditor_BonusWeaponDamage",
+ "X2AbilityEffectsEditor_ConditionalDamageModifier",
+ "X2AbilityEffectsEditor_CoveringFire",
+ "X2AbilityEffectsEditor_DamageImmunity",
+ "X2AbilityEffectsEditor_DelayedAbilityActivation",
+ "X2AbilityEffectsEditor_FaceMultiRoundTarget",
+ "X2AbilityEffectsEditor_GenerateCover",
+ "X2AbilityEffectsEditor_Groundling",
+ "X2AbilityEffectsEditor_Guardian",
+ "X2AbilityEffectsEditor_HoloTarget",
+ "X2AbilityEffectsEditor_HolyWarriorDeath",
+ "X2AbilityEffectsEditor_HomingMine",
+ "X2AbilityEffectsEditor_HuntersInstinctDamage",
+ "X2AbilityEffectsEditor_ImmediateAbilityActivation",
+ "X2AbilityEffectsEditor_Impatient",
+ "X2AbilityEffectsEditor_Implacable",
+ "X2AbilityEffectsEditor_LaserSight",
+ "X2AbilityEffectsEditor_MeleeDamageAdjust",
+ "X2AbilityEffectsEditor_MindControl",
+ "X2AbilityEffectsEditor_ModifyReactionFire",
+ "X2AbilityEffectsEditor_ModifyStats",
+ "X2AbilityEffectsEditor_Nearsighted",
+ "X2AbilityEffectsEditor_Needle",
+ "X2AbilityEffectsEditor_Oblivious",
+ "X2AbilityEffectsEditor_OverrideDeathAnimOnLoad",
+ "X2AbilityEffectsEditor_PaleHorse",
+ "X2AbilityEffectsEditor_PersistentSquadViewer",
+ "X2AbilityEffectsEditor_PersistentTraversalChange",
+ "X2AbilityEffectsEditor_PersistentVoidConduit",
+ "X2AbilityEffectsEditor_Possessed",
+ "X2AbilityEffectsEditor_Reaper",
+ "X2AbilityEffectsEditor_Regeneration",
+ "X2AbilityEffectsEditor_RemoveEffectsByDamageType",
+ "X2AbilityEffectsEditor_ReserveOverwatchPoints",
+ "X2AbilityEffectsEditor_RunBehaviorTree",
+ "X2AbilityEffectsEditor_ScanningProtocol",
+ "X2AbilityEffectsEditor_SmokeGrenade",
+ "X2AbilityEffectsEditor_SpawnDestructible",
+ "X2AbilityEffectsEditor_SpawnUnit",
+ "X2AbilityEffectsEditor_Stasis",
+ "X2AbilityEffectsEditor_Stunned",
+ "X2AbilityEffectsEditor_SuperConcealModifier",
+ "X2AbilityEffectsEditor_Sustain",
+ "X2AbilityEffectsEditor_Sustained",
+ "X2AbilityEffectsEditor_TalonRounds",
+ "X2AbilityEffectsEditor_TargetDamageDistanceBonus",
+ "X2AbilityEffectsEditor_TargetDamageTypeBonus",
+ "X2AbilityEffectsEditor_ToHitModifier",
+ "X2AbilityEffectsEditor_TrackingShotMarkTarget",
+ "X2AbilityEffectsEditor_TurnStartActionPoints",
+ "X2AbilityEffectsEditor_VolatileMix",
+ "X2AbilityEffectsEditor_ApplyDirectionalWorldDamage",
+ "X2AbilityEffectsEditor_ApplyMedikitHeal",
+ "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "X2AbilityEffectsEditor_Brutal",
+ "X2AbilityEffectsEditor_EnableGlobalAbility",
+ "X2AbilityEffectsEditor_GetOverHere",
+ "X2AbilityEffectsEditor_GrantActionPoints",
+ "X2AbilityEffectsEditor_IncreaseBondmateCohesion",
+ "X2AbilityEffectsEditor_Knockback",
+ "X2AbilityEffectsEditor_LifeSteal",
+ "X2AbilityEffectsEditor_MarkValidActivationTiles",
+ "X2AbilityEffectsEditor_ModifyInitiativeOrder",
+ "X2AbilityEffectsEditor_ModifyTemplarFocus",
+ "X2AbilityEffectsEditor_LethalWeaponDamage",
+ "X2AbilityEffectsEditor_Persistent",
+ "X2AbilityEffectsEditor_ReduceCooldowns",
+ "X2AbilityEffectsEditor_RemoteStart",
+ "X2AbilityEffectsEditor_RemoveEffects",
+ "X2AbilityEffectsEditor_ReserveActionPoints",
+ "X2AbilityEffectsEditor_SetUnitValue",
+ "X2AbilityEffectsEditor_SoulSteal",
+ "X2AbilityEffectsEditor_Spotted",
+ "X2AbilityEffectsEditor_SuspendMissionTimer",
+ "X2AbilityEffectsEditor_TriggerEvent",
+ "X2AbilityEffectsEditor_VoidConduit",
+ "X2AbilityEffectsEditor_World",
+ "X2AbilityEffectsEditor_Base"
+ ],
+ "intro": "Edits the effect arrays of the template. `Slot` selects which array is edited (see `EAbilityEffectSlot`). Within the selected array the effect of class `Class` is edited **in place** if present; otherwise behaviour depends on `Mode`.",
+ "editors": [
+ {
+ "class": "X2AbilityEffectsEditor_Obsessed",
+ "extends": "X2AbilityEffectsEditor_PersistentStatChange",
+ "gameClass": "X2Effect_Obsessed",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ObsessedTargetValueName",
+ "type": "Name",
+ "kind": "scalar",
+ "gameField": "ObsessedTargetValueName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetObsessedTargetValueName"
+ },
+ {
+ "config": "CHLForceReapplyOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bForceReapplyOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_PersistentStatChange",
+ "description": "",
+ "guard": "SetCHLForceReapplyOnRefresh"
+ },
+ {
+ "config": "StatChange",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "m_aStatChanges",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_PersistentStatChange",
+ "description": "",
+ "modeField": "StatChangeMode",
+ "modeEnum": "EStatChangeMode"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Shattered",
+ "extends": "X2AbilityEffectsEditor_PersistentStatChange",
+ "gameClass": "X2Effect_Shattered",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ShatteredTargetValueName",
+ "type": "Name",
+ "kind": "scalar",
+ "gameField": "ShatteredTargetValueName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetShatteredTargetValueName"
+ },
+ {
+ "config": "CHLForceReapplyOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bForceReapplyOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_PersistentStatChange",
+ "description": "",
+ "guard": "SetCHLForceReapplyOnRefresh"
+ },
+ {
+ "config": "StatChange",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "m_aStatChanges",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_PersistentStatChange",
+ "description": "",
+ "modeField": "StatChangeMode",
+ "modeEnum": "EStatChangeMode"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_VanishingWind",
+ "extends": "X2AbilityEffectsEditor_Vanish",
+ "gameClass": "X2Effect_VanishingWind",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "MovingVanishRevealAdditiveAnimName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "MovingVanishRevealAdditiveAnimName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetMovingVanishRevealAdditiveAnimName"
+ },
+ {
+ "config": "ReasonNotVisible",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ReasonNotVisible",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Vanish",
+ "description": "",
+ "guard": "SetReasonNotVisible"
+ },
+ {
+ "config": "VanishRevealAdditiveAnimName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VanishRevealAdditiveAnimName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Vanish",
+ "description": "",
+ "guard": "SetVanishRevealAdditiveAnimName"
+ },
+ {
+ "config": "VanishRevealAnimName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VanishRevealAnimName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Vanish",
+ "description": "",
+ "guard": "SetVanishRevealAnimName"
+ },
+ {
+ "config": "VanishSyncAnimName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VanishSyncAnimName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Vanish",
+ "description": "",
+ "guard": "SetVanishSyncAnimName"
+ },
+ {
+ "config": "CHLForceReapplyOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bForceReapplyOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_PersistentStatChange",
+ "description": "",
+ "guard": "SetCHLForceReapplyOnRefresh"
+ },
+ {
+ "config": "StatChange",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "m_aStatChanges",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_PersistentStatChange",
+ "description": "",
+ "modeField": "StatChangeMode",
+ "modeEnum": "EStatChangeMode"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_KineticPlating",
+ "extends": "X2AbilityEffectsEditor_PersistentStatChange",
+ "gameClass": "X2Effect_KineticPlating",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ShieldPerMiss",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ShieldPerMiss",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetShieldPerMiss"
+ },
+ {
+ "config": "CHLForceReapplyOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bForceReapplyOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_PersistentStatChange",
+ "description": "",
+ "guard": "SetCHLForceReapplyOnRefresh"
+ },
+ {
+ "config": "StatChange",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "m_aStatChanges",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_PersistentStatChange",
+ "description": "",
+ "modeField": "StatChangeMode",
+ "modeEnum": "EStatChangeMode"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Vanish",
+ "extends": "X2AbilityEffectsEditor_PersistentStatChange",
+ "gameClass": "X2Effect_Vanish",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ReasonNotVisible",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ReasonNotVisible",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetReasonNotVisible"
+ },
+ {
+ "config": "VanishRevealAdditiveAnimName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VanishRevealAdditiveAnimName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetVanishRevealAdditiveAnimName"
+ },
+ {
+ "config": "VanishRevealAnimName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VanishRevealAnimName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetVanishRevealAnimName"
+ },
+ {
+ "config": "VanishSyncAnimName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VanishSyncAnimName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetVanishSyncAnimName"
+ },
+ {
+ "config": "CHLForceReapplyOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bForceReapplyOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_PersistentStatChange",
+ "description": "",
+ "guard": "SetCHLForceReapplyOnRefresh"
+ },
+ {
+ "config": "StatChange",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "m_aStatChanges",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_PersistentStatChange",
+ "description": "",
+ "modeField": "StatChangeMode",
+ "modeEnum": "EStatChangeMode"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_BlastPadding",
+ "extends": "X2AbilityEffectsEditor_BonusArmor",
+ "gameClass": "X2Effect_BlastPadding",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ExplosiveDamageReduction",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "ExplosiveDamageReduction",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetExplosiveDamageReduction"
+ },
+ {
+ "config": "ArmorMitigationAmount",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ArmorMitigationAmount",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_BonusArmor",
+ "description": "",
+ "guard": "SetArmorMitigationAmount"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_KillUnit",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_KillUnit",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_ParthenogenicPoison",
+ "extends": "X2AbilityEffectsEditor_SpawnUnit",
+ "gameClass": "X2Effect_ParthenogenicPoison",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ParthenogenicPoisonType",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ParthenogenicPoisonType",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetParthenogenicPoisonType"
+ },
+ {
+ "config": "ParthenogenicPoisonCocoonSpawnedName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ParthenogenicPoisonCocoonSpawnedName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetParthenogenicPoisonCocoonSpawnedName"
+ },
+ {
+ "config": "AltUnitToSpawnName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AltUnitToSpawnName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetAltUnitToSpawnName"
+ },
+ {
+ "config": "UnitToSpawnName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "UnitToSpawnName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetUnitToSpawnName"
+ },
+ {
+ "config": "ClearTileBlockedByTargetUnitFlag",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bClearTileBlockedByTargetUnitFlag",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetClearTileBlockedByTargetUnitFlag"
+ },
+ {
+ "config": "CopyTargetAppearance",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopyTargetAppearance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetCopyTargetAppearance"
+ },
+ {
+ "config": "CopySourceAppearance",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopySourceAppearance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetCopySourceAppearance"
+ },
+ {
+ "config": "KnockbackAffectsSpawnLocation",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bKnockbackAffectsSpawnLocation",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetKnockbackAffectsSpawnLocation"
+ },
+ {
+ "config": "AddToSourceGroup",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAddToSourceGroup",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetAddToSourceGroup"
+ },
+ {
+ "config": "CopyReanimatedFromUnit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopyReanimatedFromUnit",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetCopyReanimatedFromUnit"
+ },
+ {
+ "config": "CopyReanimatedStatsFromUnit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopyReanimatedStatsFromUnit",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetCopyReanimatedStatsFromUnit"
+ },
+ {
+ "config": "SetProcessedScamperAs",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSetProcessedScamperAs",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetSetProcessedScamperAs"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_PersistentStatChange",
+ "extends": "X2AbilityEffectsEditor_ModifyStats",
+ "gameClass": "X2Effect_PersistentStatChange",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "CHLForceReapplyOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bForceReapplyOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetCHLForceReapplyOnRefresh"
+ },
+ {
+ "config": "StatChange",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "m_aStatChanges",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "StatChangeMode",
+ "modeEnum": "EStatChangeMode"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_PersistentStatChangeRestoreDefault",
+ "extends": "X2AbilityEffectsEditor_ModifyStats",
+ "gameClass": "X2Effect_PersistentStatChangeRestoreDefault",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "StatTypesToRestore",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "StatTypesToRestore",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "StatTypesToRestoreMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_SpawnPsiZombie",
+ "extends": "X2AbilityEffectsEditor_SpawnUnit",
+ "gameClass": "X2Effect_SpawnPsiZombie",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "AnimationName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AnimationName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetAnimationName"
+ },
+ {
+ "config": "AltUnitToSpawnName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AltUnitToSpawnName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetAltUnitToSpawnName"
+ },
+ {
+ "config": "StartAnimationMinDelaySec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "StartAnimationMinDelaySec",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetStartAnimationMinDelaySec"
+ },
+ {
+ "config": "StartAnimationMaxDelaySec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "StartAnimationMaxDelaySec",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetStartAnimationMaxDelaySec"
+ },
+ {
+ "config": "UnitToSpawnName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "UnitToSpawnName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetUnitToSpawnName"
+ },
+ {
+ "config": "ClearTileBlockedByTargetUnitFlag",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bClearTileBlockedByTargetUnitFlag",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetClearTileBlockedByTargetUnitFlag"
+ },
+ {
+ "config": "CopyTargetAppearance",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopyTargetAppearance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetCopyTargetAppearance"
+ },
+ {
+ "config": "CopySourceAppearance",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopySourceAppearance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetCopySourceAppearance"
+ },
+ {
+ "config": "KnockbackAffectsSpawnLocation",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bKnockbackAffectsSpawnLocation",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetKnockbackAffectsSpawnLocation"
+ },
+ {
+ "config": "AddToSourceGroup",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAddToSourceGroup",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetAddToSourceGroup"
+ },
+ {
+ "config": "CopyReanimatedFromUnit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopyReanimatedFromUnit",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetCopyReanimatedFromUnit"
+ },
+ {
+ "config": "CopyReanimatedStatsFromUnit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopyReanimatedStatsFromUnit",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetCopyReanimatedStatsFromUnit"
+ },
+ {
+ "config": "SetProcessedScamperAs",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSetProcessedScamperAs",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetSetProcessedScamperAs"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_SpawnShadowbindUnit",
+ "extends": "X2AbilityEffectsEditor_SpawnUnit",
+ "gameClass": "X2Effect_SpawnShadowbindUnit",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ShadowbindUnconciousCheckName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ShadowbindUnconciousCheckName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetShadowbindUnconciousCheckName"
+ },
+ {
+ "config": "UnitToSpawnName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "UnitToSpawnName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetUnitToSpawnName"
+ },
+ {
+ "config": "ClearTileBlockedByTargetUnitFlag",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bClearTileBlockedByTargetUnitFlag",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetClearTileBlockedByTargetUnitFlag"
+ },
+ {
+ "config": "CopyTargetAppearance",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopyTargetAppearance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetCopyTargetAppearance"
+ },
+ {
+ "config": "CopySourceAppearance",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopySourceAppearance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetCopySourceAppearance"
+ },
+ {
+ "config": "KnockbackAffectsSpawnLocation",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bKnockbackAffectsSpawnLocation",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetKnockbackAffectsSpawnLocation"
+ },
+ {
+ "config": "AddToSourceGroup",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAddToSourceGroup",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetAddToSourceGroup"
+ },
+ {
+ "config": "CopyReanimatedFromUnit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopyReanimatedFromUnit",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetCopyReanimatedFromUnit"
+ },
+ {
+ "config": "CopyReanimatedStatsFromUnit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopyReanimatedStatsFromUnit",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetCopyReanimatedStatsFromUnit"
+ },
+ {
+ "config": "SetProcessedScamperAs",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSetProcessedScamperAs",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_SpawnUnit",
+ "description": "",
+ "guard": "SetSetProcessedScamperAs"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_ThreatAssessment",
+ "extends": "X2AbilityEffectsEditor_CoveringFire",
+ "gameClass": "X2Effect_ThreatAssessment",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ImmediateActionPoint",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ImmediateActionPoint",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetImmediateActionPoint"
+ },
+ {
+ "config": "AbilityToActivate",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilityToActivate",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_CoveringFire",
+ "description": "",
+ "guard": "SetAbilityToActivate"
+ },
+ {
+ "config": "GrantActionPoint",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "GrantActionPoint",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_CoveringFire",
+ "description": "",
+ "guard": "SetGrantActionPoint"
+ },
+ {
+ "config": "MaxPointsPerTurn",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxPointsPerTurn",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_CoveringFire",
+ "description": "",
+ "guard": "SetMaxPointsPerTurn"
+ },
+ {
+ "config": "DirectAttackOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDirectAttackOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_CoveringFire",
+ "description": "",
+ "guard": "SetDirectAttackOnly"
+ },
+ {
+ "config": "PreEmptiveFire",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPreEmptiveFire",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_CoveringFire",
+ "description": "",
+ "guard": "SetPreEmptiveFire"
+ },
+ {
+ "config": "OnlyDuringEnemyTurn",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bOnlyDuringEnemyTurn",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_CoveringFire",
+ "description": "",
+ "guard": "SetOnlyDuringEnemyTurn"
+ },
+ {
+ "config": "UseMultiTargets",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseMultiTargets",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_CoveringFire",
+ "description": "",
+ "guard": "SetUseMultiTargets"
+ },
+ {
+ "config": "OnlyWhenAttackMisses",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bOnlyWhenAttackMisses",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_CoveringFire",
+ "description": "",
+ "guard": "SetOnlyWhenAttackMisses"
+ },
+ {
+ "config": "SelfTargeting",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSelfTargeting",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_CoveringFire",
+ "description": "",
+ "guard": "SetSelfTargeting"
+ },
+ {
+ "config": "ActivationPercentChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ActivationPercentChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_CoveringFire",
+ "description": "",
+ "guard": "SetActivationPercentChance"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_WallBreaking",
+ "extends": "X2AbilityEffectsEditor_PersistentTraversalChange",
+ "gameClass": "X2Effect_WallBreaking",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "WallBreakingEffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "WallBreakingEffectName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetWallBreakingEffectName"
+ },
+ {
+ "config": "TraversalChanges",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "aTraversalChanges",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_PersistentTraversalChange",
+ "description": "",
+ "modeField": "TraversalChangesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Achilles",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Achilles",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ToHitMin",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ToHitMin",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetToHitMin"
+ },
+ {
+ "config": "DmgMod",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DmgMod",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDmgMod"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_AdverseSoldierClasses",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_AdverseSoldierClasses",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "AdverseClasses",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "AdverseClasses",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "AdverseClassesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "DmgMod",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DmgMod",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDmgMod"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Amplify",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Amplify",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "BonusDamageMult",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "BonusDamageMult",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetBonusDamageMult"
+ },
+ {
+ "config": "MinBonusDamage",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinBonusDamage",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetMinBonusDamage"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_ApplyBlazingPinionsTargetToWorld",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_ApplyBlazingPinionsTargetToWorld",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "OverrideParticleSystemFill_Name",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideParticleSystemFill_Name",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetOverrideParticleSystemFill_Name"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_ApplyFireToWorld",
+ "extends": "X2AbilityEffectsEditor_World",
+ "gameClass": "X2Effect_ApplyFireToWorld",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "FireChance_Level1",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "FireChance_Level1",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetFireChance_Level1"
+ },
+ {
+ "config": "FireChance_Level2",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "FireChance_Level2",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetFireChance_Level2"
+ },
+ {
+ "config": "FireChance_Level3",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "FireChance_Level3",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetFireChance_Level3"
+ },
+ {
+ "config": "UseFireChanceLevel",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseFireChanceLevel",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetUseFireChanceLevel"
+ },
+ {
+ "config": "DamageFragileOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDamageFragileOnly",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDamageFragileOnly"
+ },
+ {
+ "config": "CheckForLOSFromTargetLocation",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCheckForLOSFromTargetLocation",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetCheckForLOSFromTargetLocation"
+ },
+ {
+ "config": "CenterTile",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCenterTile",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_World",
+ "description": "",
+ "guard": "SetCenterTile"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_APRounds",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_APRounds",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "Pierce",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "Pierce",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetPierce"
+ },
+ {
+ "config": "CritChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "CritChance",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetCritChance"
+ },
+ {
+ "config": "CritDamage",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "CritDamage",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetCritDamage"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Aura",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Aura",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "EventsToUpdate",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "EventsToUpdate",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "EventsToUpdateMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Bewildered",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Bewildered",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "DmgMod",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DmgMod",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDmgMod"
+ },
+ {
+ "config": "NumHitsForMod",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "NumHitsForMod",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetNumHitsForMod"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_BloodTrail",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_BloodTrail",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "BonusDamage",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "BonusDamage",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetBonusDamage"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_BonusArmor",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_BonusArmor",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ArmorMitigationAmount",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ArmorMitigationAmount",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetArmorMitigationAmount"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_BonusWeaponDamage",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_BonusWeaponDamage",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "BonusDmg",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "BonusDmg",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetBonusDmg"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_ConditionalDamageModifier",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_ConditionalDamageModifier",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ModifyOutgoingDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bModifyOutgoingDamage",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetModifyOutgoingDamage"
+ },
+ {
+ "config": "ModifyIncomingDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bModifyIncomingDamage",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetModifyIncomingDamage"
+ },
+ {
+ "config": "DamageModifier",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DamageModifier",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDamageModifier"
+ },
+ {
+ "config": "DamageBonus",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "DamageBonus",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDamageBonus"
+ },
+ {
+ "config": "ApplyDamageModConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": null,
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "X2Effect_ConditionalDamageModifier"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": [
+ {
+ "name": "ApplyDamageModConditions",
+ "reason": "array of `X2Condition`"
+ }
+ ]
+ },
+ {
+ "class": "X2AbilityEffectsEditor_CoveringFire",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_CoveringFire",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "AbilityToActivate",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilityToActivate",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetAbilityToActivate"
+ },
+ {
+ "config": "GrantActionPoint",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "GrantActionPoint",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetGrantActionPoint"
+ },
+ {
+ "config": "MaxPointsPerTurn",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxPointsPerTurn",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetMaxPointsPerTurn"
+ },
+ {
+ "config": "DirectAttackOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDirectAttackOnly",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDirectAttackOnly"
+ },
+ {
+ "config": "PreEmptiveFire",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPreEmptiveFire",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetPreEmptiveFire"
+ },
+ {
+ "config": "OnlyDuringEnemyTurn",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bOnlyDuringEnemyTurn",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetOnlyDuringEnemyTurn"
+ },
+ {
+ "config": "UseMultiTargets",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseMultiTargets",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetUseMultiTargets"
+ },
+ {
+ "config": "OnlyWhenAttackMisses",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bOnlyWhenAttackMisses",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetOnlyWhenAttackMisses"
+ },
+ {
+ "config": "SelfTargeting",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSelfTargeting",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetSelfTargeting"
+ },
+ {
+ "config": "ActivationPercentChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ActivationPercentChance",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetActivationPercentChance"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_DamageImmunity",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_DamageImmunity",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ImmuneTypesAreInclusive",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "ImmueTypesAreInclusive",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetImmuneTypesAreInclusive"
+ },
+ {
+ "config": "RemoveAfterAttackCount",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "RemoveAfterAttackCount",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetRemoveAfterAttackCount"
+ },
+ {
+ "config": "ImmuneTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "ImmuneTypes",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "ImmuneTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_DelayedAbilityActivation",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_DelayedAbilityActivation",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "TriggerEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "TriggerEventName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetTriggerEventName"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_FaceMultiRoundTarget",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_FaceMultiRoundTarget",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "TriggerEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "TriggerEventName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetTriggerEventName"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_GenerateCover",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_GenerateCover",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "CoverType",
+ "type": "ECoverForceFlag",
+ "kind": "scalar",
+ "gameField": "CoverType",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetCoverType"
+ },
+ {
+ "config": "RemoveWhenMoved",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenMoved",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetRemoveWhenMoved"
+ },
+ {
+ "config": "RemoveOnOtherActivation",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveOnOtherActivation",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetRemoveOnOtherActivation"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Groundling",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Groundling",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "HeightBonus",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "HeightBonus",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetHeightBonus"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Guardian",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Guardian",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "AllowedAbilities",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "AllowedAbilities",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "AllowedAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "ProcChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ProcChance",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetProcChance"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_HoloTarget",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_HoloTarget",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "HitMod",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "HitMod",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetHitMod"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_HolyWarriorDeath",
+ "extends": "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "gameClass": "X2Effect_HolyWarriorDeath",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "DelayTimeS",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayTimeS",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDelayTimeS"
+ },
+ {
+ "config": "ExplosiveDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bExplosiveDamage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "description": "",
+ "guard": "SetExplosiveDamage"
+ },
+ {
+ "config": "IgnoreBaseDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnoreBaseDamage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "description": "",
+ "guard": "SetIgnoreBaseDamage"
+ },
+ {
+ "config": "DamageTag",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "DamageTag",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "description": "",
+ "guard": "SetDamageTag"
+ },
+ {
+ "config": "AlwaysKillsCivilians",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAlwaysKillsCivilians",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "description": "",
+ "guard": "SetAlwaysKillsCivilians"
+ },
+ {
+ "config": "ApplyWorldEffectsForEachTargetLocation",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyWorldEffectsForEachTargetLocation",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "description": "",
+ "guard": "SetApplyWorldEffectsForEachTargetLocation"
+ },
+ {
+ "config": "AllowFreeKill",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAllowFreeKill",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "description": "",
+ "guard": "SetAllowFreeKill"
+ },
+ {
+ "config": "AllowWeaponUpgrade",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAllowWeaponUpgrade",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "description": "",
+ "guard": "SetAllowWeaponUpgrade"
+ },
+ {
+ "config": "BypassShields",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBypassShields",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "description": "",
+ "guard": "SetBypassShields"
+ },
+ {
+ "config": "IgnoreArmor",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnoreArmor",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "description": "",
+ "guard": "SetIgnoreArmor"
+ },
+ {
+ "config": "BypassSustainEffects",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBypassSustainEffects",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "description": "",
+ "guard": "SetBypassSustainEffects"
+ },
+ {
+ "config": "EnvironmentalDamageAmount",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EnvironmentalDamageAmount",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "description": "",
+ "guard": "SetEnvironmentalDamageAmount"
+ },
+ {
+ "config": "WeaponDamageValue",
+ "type": "WeaponDamageValueEdit",
+ "kind": "nested",
+ "gameField": "EffectDamageValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ApplyWeaponDamage",
+ "description": ""
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_HomingMine",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_HomingMine",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "AbilityToTrigger",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilityToTrigger",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetAbilityToTrigger"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_HuntersInstinctDamage",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_HuntersInstinctDamage",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "BonusDamage",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "BonusDamage",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetBonusDamage"
+ },
+ {
+ "config": "BonusCritChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "BonusCritChance",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetBonusCritChance"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_ImmediateAbilityActivation",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_ImmediateAbilityActivation",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "AbilityName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilityName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetAbilityName"
+ },
+ {
+ "config": "ActivateAbilityOnTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "ActivateAbilityOnTarget",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetActivateAbilityOnTarget"
+ },
+ {
+ "config": "EffectTargetOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "EffectTargetOnly",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetEffectTargetOnly"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Impatient",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Impatient",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "DmgMod",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DmgMod",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDmgMod"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Implacable",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Implacable",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ImplacableThisTurnValue",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ImplacableThisTurnValue",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetImplacableThisTurnValue"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_LaserSight",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_LaserSight",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "BenefitFromEmpoweredUpgrades",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBenefitFromEmpoweredUpgrades",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetBenefitFromEmpoweredUpgrades"
+ },
+ {
+ "config": "CritBonus",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "CritBonus",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetCritBonus"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_MeleeDamageAdjust",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_MeleeDamageAdjust",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "DamageMod",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "DamageMod",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDamageMod"
+ },
+ {
+ "config": "MeleeDamageTypeName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "MeleeDamageTypeName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetMeleeDamageTypeName"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_MindControl",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_MindControl",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "NumTurnsForAI",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurnsForAI",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetNumTurnsForAI"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_ModifyReactionFire",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_ModifyReactionFire",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "AllowCrit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAllowCrit",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetAllowCrit"
+ },
+ {
+ "config": "ReactionModifier",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ReactionModifier",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetReactionModifier"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_ModifyStats",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_ModifyStats",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": true,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Nearsighted",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Nearsighted",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "DmgMod",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DmgMod",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDmgMod"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Needle",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Needle",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ArmorPierce",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ArmorPierce",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetArmorPierce"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Oblivious",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Oblivious",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "DmgMod",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DmgMod",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDmgMod"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_OverrideDeathAnimOnLoad",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_OverrideDeathAnimOnLoad",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "OverrideAnimNameOnLoad",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "OverrideAnimNameOnLoad",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetOverrideAnimNameOnLoad"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_PaleHorse",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_PaleHorse",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "CritBoostPerKill",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "CritBoostPerKill",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetCritBoostPerKill"
+ },
+ {
+ "config": "MaxCritBoost",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxCritBoost",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetMaxCritBoost"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_PersistentSquadViewer",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_PersistentSquadViewer",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "UseWeaponRadius",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseWeaponRadius",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetUseWeaponRadius"
+ },
+ {
+ "config": "ViewRadius",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "ViewRadius",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetViewRadius"
+ },
+ {
+ "config": "UseSourceLocation",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourceLocation",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetUseSourceLocation"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_PersistentTraversalChange",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_PersistentTraversalChange",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "TraversalChanges",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "aTraversalChanges",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "TraversalChangesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_PersistentVoidConduit",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_PersistentVoidConduit",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "InitialDamage",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "InitialDamage",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetInitialDamage"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Possessed",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Possessed",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "WeaponTemplateName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "WeaponTemplateName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetWeaponTemplateName"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Reaper",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Reaper",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ReaperActivatedName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ReaperActivatedName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetReaperActivatedName"
+ },
+ {
+ "config": "ReaperKillName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ReaperKillName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetReaperKillName"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Regeneration",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Regeneration",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "HealAmount",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "HealAmount",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetHealAmount"
+ },
+ {
+ "config": "MaxHealAmount",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxHealAmount",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetMaxHealAmount"
+ },
+ {
+ "config": "HealthRegeneratedName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "HealthRegeneratedName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetHealthRegeneratedName"
+ },
+ {
+ "config": "EventToTriggerOnHeal",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EventToTriggerOnHeal",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetEventToTriggerOnHeal"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_RemoveEffectsByDamageType",
+ "extends": "X2AbilityEffectsEditor_RemoveEffects",
+ "gameClass": "X2Effect_RemoveEffectsByDamageType",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "DamageTypesToRemove",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypesToRemove",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "DamageTypesToRemoveMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "Cleanse",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCleanse",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_RemoveEffects",
+ "description": "",
+ "guard": "SetCleanse"
+ },
+ {
+ "config": "CheckSource",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCheckSource",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_RemoveEffects",
+ "description": "",
+ "guard": "SetCheckSource"
+ },
+ {
+ "config": "DoNotVisualize",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDoNotVisualize",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_RemoveEffects",
+ "description": "",
+ "guard": "SetDoNotVisualize"
+ },
+ {
+ "config": "EffectNamesToRemove",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "EffectNamesToRemove",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_RemoveEffects",
+ "description": "",
+ "modeField": "EffectNamesToRemoveMode",
+ "modeEnum": "ENameArrayEditMode"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_ReserveOverwatchPoints",
+ "extends": "X2AbilityEffectsEditor_ReserveActionPoints",
+ "gameClass": "X2Effect_ReserveOverwatchPoints",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "UseAllPointsWithAbilities",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "UseAllPointsWithAbilities",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "UseAllPointsWithAbilitiesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "ReserveType",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ReserveType",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ReserveActionPoints",
+ "description": "",
+ "guard": "SetReserveType"
+ },
+ {
+ "config": "NumPoints",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "NumPoints",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_ReserveActionPoints",
+ "description": "",
+ "guard": "SetNumPoints"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_RunBehaviorTree",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_RunBehaviorTree",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "NumActions",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "NumActions",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetNumActions"
+ },
+ {
+ "config": "BehaviorTreeName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "BehaviorTreeName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetBehaviorTreeName"
+ },
+ {
+ "config": "InitFromPlayer",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInitFromPlayer",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetInitFromPlayer"
+ },
+ {
+ "config": "SetActionPointCount",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "SetActionPointCount",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetSetActionPointCount"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_ScanningProtocol",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_ScanningProtocol",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "LookAtDuration",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "LookAtDuration",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetLookAtDuration"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_SmokeGrenade",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_SmokeGrenade",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "HitMod",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "HitMod",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetHitMod"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_SpawnDestructible",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_SpawnDestructible",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "DestructibleArchetype",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "DestructibleArchetype",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDestructibleArchetype"
+ },
+ {
+ "config": "DestroyOnRemoval",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDestroyOnRemoval",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetDestroyOnRemoval"
+ },
+ {
+ "config": "TargetableBySpawnedTeamOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTargetableBySpawnedTeamOnly",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetTargetableBySpawnedTeamOnly"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": [
+ {
+ "name": "TargetingIcon",
+ "reason": "type `Texture2D`"
+ }
+ ]
+ },
+ {
+ "class": "X2AbilityEffectsEditor_SpawnUnit",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_SpawnUnit",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "UnitToSpawnName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "UnitToSpawnName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetUnitToSpawnName"
+ },
+ {
+ "config": "ClearTileBlockedByTargetUnitFlag",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bClearTileBlockedByTargetUnitFlag",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetClearTileBlockedByTargetUnitFlag"
+ },
+ {
+ "config": "CopyTargetAppearance",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopyTargetAppearance",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetCopyTargetAppearance"
+ },
+ {
+ "config": "CopySourceAppearance",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopySourceAppearance",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetCopySourceAppearance"
+ },
+ {
+ "config": "KnockbackAffectsSpawnLocation",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bKnockbackAffectsSpawnLocation",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetKnockbackAffectsSpawnLocation"
+ },
+ {
+ "config": "AddToSourceGroup",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAddToSourceGroup",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetAddToSourceGroup"
+ },
+ {
+ "config": "CopyReanimatedFromUnit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopyReanimatedFromUnit",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetCopyReanimatedFromUnit"
+ },
+ {
+ "config": "CopyReanimatedStatsFromUnit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCopyReanimatedStatsFromUnit",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetCopyReanimatedStatsFromUnit"
+ },
+ {
+ "config": "SetProcessedScamperAs",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSetProcessedScamperAs",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetSetProcessedScamperAs"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Stasis",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Stasis",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "StunStartAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "StunStartAnim",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetStunStartAnim"
+ },
+ {
+ "config": "StunStopAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "StunStopAnim",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetStunStopAnim"
+ },
+ {
+ "config": "SkipFlyover",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSkipFlyover",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetSkipFlyover"
+ },
+ {
+ "config": "StartAnimBlendTime",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "StartAnimBlendTime",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetStartAnimBlendTime"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Stunned",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Stunned",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "StunLevel",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "StunLevel",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetStunLevel"
+ },
+ {
+ "config": "SkipAnimation",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSkipAnimation",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetSkipAnimation"
+ },
+ {
+ "config": "StunStartAnimName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "StunStartAnimName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetStunStartAnimName"
+ },
+ {
+ "config": "StunStopAnimName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "StunStopAnimName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetStunStopAnimName"
+ },
+ {
+ "config": "StunnedTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "StunnedTriggerName",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetStunnedTriggerName"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_SuperConcealModifier",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_SuperConcealModifier",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array",
+ "kind": "nested",
+ "gameField": "TargetConditions",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "Conditions attached to the effect (X2Effect.TargetConditions)"
+ },
+ {
+ "config": "ConcealAmountScalar",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "ConcealAmountScalar",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "guard": "SetConcealAmountScalar"
+ },
+ {
+ "config": "AbilitiesAffectedFilter",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "AbilitiesAffectedFilter",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "AbilitiesAffectedFilterMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "RemoveOnAbilityActivation",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "RemoveOnAbilityActivation",
+ "origin": "derived",
+ "inheritedFrom": null,
+ "description": "",
+ "modeField": "RemoveOnAbilityActivationMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "InfiniteDuration",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bInfiniteDuration",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInfiniteDuration"
+ },
+ {
+ "config": "TickWhenApplied",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bTickWhenApplied",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetTickWhenApplied"
+ },
+ {
+ "config": "CanTickEveryAction",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanTickEveryAction",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCanTickEveryAction"
+ },
+ {
+ "config": "ConvertTurnsToActions",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bConvertTurnsToActions",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetConvertTurnsToActions"
+ },
+ {
+ "config": "RemoveWhenSourceDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDies"
+ },
+ {
+ "config": "RemoveWhenTargetDies",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetDies",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetDies"
+ },
+ {
+ "config": "RemoveWhenSourceDamaged",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenSourceDamaged",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenSourceDamaged"
+ },
+ {
+ "config": "RemoveWhenTargetConcealmentBroken",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bRemoveWhenTargetConcealmentBroken",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetRemoveWhenTargetConcealmentBroken"
+ },
+ {
+ "config": "PersistThroughTacticalGameEnd",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bPersistThroughTacticalGameEnd",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistThroughTacticalGameEnd"
+ },
+ {
+ "config": "IgnorePlayerCheckOnTick",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIgnorePlayerCheckOnTick",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIgnorePlayerCheckOnTick"
+ },
+ {
+ "config": "UniqueTarget",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUniqueTarget",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetUniqueTarget"
+ },
+ {
+ "config": "StackOnRefresh",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bStackOnRefresh",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStackOnRefresh"
+ },
+ {
+ "config": "DupeForSameSourceOnly",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDupeForSameSourceOnly",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDupeForSameSourceOnly"
+ },
+ {
+ "config": "EffectForcesBleedout",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bEffectForcesBleedout",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectForcesBleedout"
+ },
+ {
+ "config": "DisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInUI"
+ },
+ {
+ "config": "DisplayInSpecialDamageMessageUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bDisplayInSpecialDamageMessageUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetDisplayInSpecialDamageMessageUI"
+ },
+ {
+ "config": "SourceDisplayInUI",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bSourceDisplayInUI",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceDisplayInUI"
+ },
+ {
+ "config": "NumTurns",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iNumTurns",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetNumTurns"
+ },
+ {
+ "config": "InitialShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iInitialShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetInitialShedChance"
+ },
+ {
+ "config": "PerTurnShedChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "iPerTurnShedChance",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPerTurnShedChance"
+ },
+ {
+ "config": "EffectRank",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectRank",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectRank"
+ },
+ {
+ "config": "EffectHierarchyValue",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "EffectHierarchyValue",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectHierarchyValue"
+ },
+ {
+ "config": "VisionArcDegreesOverride",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "VisionArcDegreesOverride",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVisionArcDegreesOverride"
+ },
+ {
+ "config": "CustomIdleOverrideAnim",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "CustomIdleOverrideAnim",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetCustomIdleOverrideAnim"
+ },
+ {
+ "config": "EffectName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectName"
+ },
+ {
+ "config": "AbilitySourceName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "AbilitySourceName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetAbilitySourceName"
+ },
+ {
+ "config": "EffectAppliedEventName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "EffectAppliedEventName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetEffectAppliedEventName"
+ },
+ {
+ "config": "ChanceEventTriggerName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "ChanceEventTriggerName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetChanceEventTriggerName"
+ },
+ {
+ "config": "VFXSocket",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocket",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocket"
+ },
+ {
+ "config": "VFXSocketsArrayName",
+ "type": "name",
+ "kind": "scalar",
+ "gameField": "VFXSocketsArrayName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXSocketsArrayName"
+ },
+ {
+ "config": "FriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyName"
+ },
+ {
+ "config": "FriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "FriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetFriendlyDescription"
+ },
+ {
+ "config": "IconImage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "IconImage",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetIconImage"
+ },
+ {
+ "config": "SourceFriendlyName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyName"
+ },
+ {
+ "config": "SourceFriendlyDescription",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceFriendlyDescription",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceFriendlyDescription"
+ },
+ {
+ "config": "SourceIconLabel",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "SourceIconLabel",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetSourceIconLabel"
+ },
+ {
+ "config": "StatusIcon",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "StatusIcon",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetStatusIcon"
+ },
+ {
+ "config": "VFXTemplateName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "VFXTemplateName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetVFXTemplateName"
+ },
+ {
+ "config": "PersistentPerkName",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "PersistentPerkName",
+ "origin": "derived",
+ "inheritedFrom": "X2AbilityEffectsEditor_Persistent",
+ "description": "",
+ "guard": "SetPersistentPerkName"
+ }
+ ],
+ "abstract": false,
+ "notEditable": []
+ },
+ {
+ "class": "X2AbilityEffectsEditor_Sustain",
+ "extends": "X2AbilityEffectsEditor_Persistent",
+ "gameClass": "X2Effect_Sustain",
+ "catchAll": false,
+ "fields": [
+ {
+ "config": "ApplyOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnHit"
+ },
+ {
+ "config": "ApplyOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyOnMiss"
+ },
+ {
+ "config": "ApplyChance",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "ApplyChance",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyChance"
+ },
+ {
+ "config": "ApplyToWorldOnHit",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnHit",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnHit"
+ },
+ {
+ "config": "ApplyToWorldOnMiss",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bApplyToWorldOnMiss",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetApplyToWorldOnMiss"
+ },
+ {
+ "config": "UseSourcePlayerState",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bUseSourcePlayerState",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetUseSourcePlayerState"
+ },
+ {
+ "config": "IsImpairing",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairing",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairing"
+ },
+ {
+ "config": "IsImpairingMomentarily",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bIsImpairingMomentarily",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetIsImpairingMomentarily"
+ },
+ {
+ "config": "BringRemoveVisualizationForward",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bBringRemoveVisualizationForward",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetBringRemoveVisualizationForward"
+ },
+ {
+ "config": "ShowImmunity",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunity",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunity"
+ },
+ {
+ "config": "ShowImmunityAnyFailure",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bShowImmunityAnyFailure",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetShowImmunityAnyFailure"
+ },
+ {
+ "config": "AppliesDamage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bAppliesDamage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetAppliesDamage"
+ },
+ {
+ "config": "CanBeRedirected",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bCanBeRedirected",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetCanBeRedirected"
+ },
+ {
+ "config": "HideDeathWorldMessage",
+ "type": "bool",
+ "kind": "scalar",
+ "gameField": "bHideDeathWorldMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetHideDeathWorldMessage"
+ },
+ {
+ "config": "MinStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MinStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMinStatContestResult"
+ },
+ {
+ "config": "MaxStatContestResult",
+ "type": "int",
+ "kind": "scalar",
+ "gameField": "MaxStatContestResult",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetMaxStatContestResult"
+ },
+ {
+ "config": "DelayVisualizationSec",
+ "type": "float",
+ "kind": "scalar",
+ "gameField": "DelayVisualizationSec",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetDelayVisualizationSec"
+ },
+ {
+ "config": "OverrideMissMessage",
+ "type": "string",
+ "kind": "scalar",
+ "gameField": "OverrideMissMessage",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "guard": "SetOverrideMissMessage"
+ },
+ {
+ "config": "DamageTypes",
+ "type": "array",
+ "kind": "namearray",
+ "gameField": "DamageTypes",
+ "origin": "base",
+ "inheritedFrom": "X2AbilityEffectsEditor",
+ "description": "",
+ "modeField": "DamageTypesMode",
+ "modeEnum": "ENameArrayEditMode"
+ },
+ {
+ "config": "TargetConditions",
+ "type": "array