Skip to content

X2Effect_Persistent

Editor: X2AbilityEffectsEditor_Persistent · extends X2AbilityEffectsEditor.

Own fields

Config field Type Requires Game field Description
InfiniteDuration bool SetInfiniteDuration=true bInfiniteDuration The effect never expires on its own. It then only ends through one of the RemoveWhen... rules below, or by something cleansing it.
TickWhenApplied bool SetTickWhenApplied=true bTickWhenApplied Ticks once the moment it is applied, rather than waiting for the turn to come round. Damage-over-time effects use this to hurt immediately.
CanTickEveryAction bool SetCanTickEveryAction=true bCanTickEveryAction Ticks after every action the target takes rather than once a turn, where the character template supports it.
ConvertTurnsToActions bool SetConvertTurnsToActions=true bConvertTurnsToActions When ticking per action, multiplies NumTurns by the actions available per turn, so a "3 turn" effect still lasts roughly three turns.
RemoveWhenSourceDies bool SetRemoveWhenSourceDies=true bRemoveWhenSourceDies Removes the effect when whoever applied it dies. Typical for effects sustained by their caster, such as mind control.
RemoveWhenTargetDies bool SetRemoveWhenTargetDies=true bRemoveWhenTargetDies Removes the effect when the affected unit dies, rather than leaving it on the body.
RemoveWhenSourceDamaged bool SetRemoveWhenSourceDamaged=true bRemoveWhenSourceDamaged Removes the effect as soon as the source takes damage, for concentration-style effects broken by being hit.
RemoveWhenTargetConcealmentBroken bool SetRemoveWhenTargetConcealmentBroken=true bRemoveWhenTargetConcealmentBroken Removes the effect when the target loses concealment. Used by effects that only make sense while hidden.
PersistThroughTacticalGameEnd bool SetPersistThroughTacticalGameEnd=true bPersistThroughTacticalGameEnd Keeps the effect on the unit after it leaves play, until the mission ends. Needed by effects that must still be read when the mission is scored.
IgnorePlayerCheckOnTick bool SetIgnorePlayerCheckOnTick=true bIgnorePlayerCheckOnTick Ticks regardless of whose turn it is. Normally an effect only ticks on its owner’s turn.
UniqueTarget bool SetUniqueTarget=true bUniqueTarget Only one target may carry this effect from a given source at a time; applying it elsewhere removes the earlier one.
StackOnRefresh bool SetStackOnRefresh=true bStackOnRefresh Re-applying the effect increments a stack counter instead of simply refreshing its duration, so effects that grow with repetition can read the count.
DupeForSameSourceOnly bool SetDupeForSameSourceOnly=true bDupeForSameSourceOnly When checking whether the target already has this effect, only consider copies from the same source. Lets several units apply their own instance.
EffectForcesBleedout bool SetEffectForcesBleedout=true bEffectForcesBleedout A unit reduced to zero health while under this effect bleeds out instead of dying outright.
DisplayInUI bool SetDisplayInUI=true bDisplayInUI Whether the effect appears in the unit’s status UI at all. An effect with no FriendlyName set will show as blank.
DisplayInSpecialDamageMessageUI bool SetDisplayInSpecialDamageMessageUI=true bDisplayInSpecialDamageMessageUI Shows FriendlyName in the damage feedback as a distinct source, so its damage reads separately from the weapon’s.
SourceDisplayInUI bool SetSourceDisplayInUI=true bSourceDisplayInUI As DisplayInUI, but for the unit that applied the effect rather than the one carrying it.
NumTurns int SetNumTurns=true iNumTurns How many turns the effect lasts. Ignored when InfiniteDuration is true.
InitialShedChance int SetInitialShedChance=true iInitialShedChance Percentage chance the effect is shed immediately on the first tick, before PerTurnShedChance takes over.
PerTurnShedChance int SetPerTurnShedChance=true iPerTurnShedChance Percentage chance per tick that the effect wears off early. 0 means it only ends when its turns run out.
EffectRank int SetEffectRank=true EffectRank Precedence among effects of the same kind, used by auras so a stronger source wins over a weaker one.
EffectHierarchyValue int SetEffectHierarchyValue=true EffectHierarchyValue Decides which effect controls the unit’s animation when several apply at once. The higher value wins.
VisionArcDegreesOverride float SetVisionArcDegreesOverride=true VisionArcDegreesOverride Narrows the unit’s sight arc to this many degrees. When two effects both set it, the smaller arc applies.
CustomIdleOverrideAnim name SetCustomIdleOverrideAnim=true CustomIdleOverrideAnim Idle animation to play while the effect is active, taking over the unit’s normal idle.
EffectName name SetEffectName=true EffectName Identifier used when deciding how this effect stacks with others, and the name other effects use to find or remove it.
AbilitySourceName name SetAbilitySourceName=true AbilitySourceName Which ability this is presented as coming from. Controls how a passive buff is coloured in the HUD.
EffectAppliedEventName name SetEffectAppliedEventName=true EffectAppliedEventName Event fired when the effect is applied, for listeners and triggered abilities to react to.
ChanceEventTriggerName name SetChanceEventTriggerName=true ChanceEventTriggerName Event fired when the per-turn shed-chance roll succeeds.
VFXSocket name SetVFXSocket=true VFXSocket Socket on the unit’s skeleton to attach the particle system to.
VFXSocketsArrayName name SetVFXSocketsArrayName=true VFXSocketsArrayName Named array of sockets to attach the particle system to, for effects that appear in several places at once. Optional.
FriendlyName string SetFriendlyName=true FriendlyName Name shown in the unit’s status UI.
FriendlyDescription string SetFriendlyDescription=true FriendlyDescription Description shown beneath FriendlyName in the status UI.
IconImage string SetIconImage=true IconImage Path to the status icon shown in the UI.
SourceFriendlyName string SetSourceFriendlyName=true SourceFriendlyName Name shown on the unit that applied the effect, as opposed to the one carrying it.
SourceFriendlyDescription string SetSourceFriendlyDescription=true SourceFriendlyDescription Description shown on the applying unit.
SourceIconLabel string SetSourceIconLabel=true SourceIconLabel Short label drawn on the applying unit’s icon.
StatusIcon string SetStatusIcon=true StatusIcon Path to the small status icon used in condensed UI, alongside IconImage.
VFXTemplateName string SetVFXTemplateName=true VFXTemplateName Particle system played on the unit for as long as the effect lasts.
PersistentPerkName string SetPersistentPerkName=true PersistentPerkName Perk effect played on the unit while this effect is active.

Inherited fields

From X2AbilityEffectsEditor (20)

ApplyOnHit, ApplyOnMiss, ApplyChance, ApplyToWorldOnHit, ApplyToWorldOnMiss, UseSourcePlayerState, IsImpairing, IsImpairingMomentarily, BringRemoveVisualizationForward, ShowImmunity, ShowImmunityAnyFailure, AppliesDamage, CanBeRedirected, HideDeathWorldMessage, MinStatContestResult, MaxStatContestResult, DelayVisualizationSec, OverrideMissMessage, DamageTypes, TargetConditions

Every one of these is documented under Shared fields or on the page for the class that introduces it.

Not editable from config
  • TickTriggers — array of X2EffectTrigger
  • DuplicateResponse — not yet supported
  • ApplyOnTick — array of X2Effect
  • WatchRule — type GameRuleStateChange
  • BuffCategory — not yet supported
  • SourceBuffCategory — not yet supported
  • GameStateEffectClass — class reference
  • VisualizationFn — delegate — code-only
  • CleansedVisualizationFn — delegate — code-only
  • EffectTickedVisualizationFn — delegate — code-only
  • EffectSyncVisualizationFn — delegate — code-only
  • EffectRemovedVisualizationFn — delegate — code-only
  • EffectRemovedSourceVisualizationFn — delegate — code-only
  • DeathVisualizationFn — delegate — code-only
  • ModifyTracksFn — delegate — code-only
  • EffectRemovedFn — delegate — code-only
  • EffectAddedFn — delegate — code-only
  • EffectTickedFn — delegate — code-only
  • GetModifyChosenActivationIncreasePerUseFn — delegate — code-only
  • UnitBreaksConcealmentIgnoringDistanceFn — delegate — code-only