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 ofX2EffectTriggerDuplicateResponse— not yet supportedApplyOnTick— array ofX2EffectWatchRule— typeGameRuleStateChangeBuffCategory— not yet supportedSourceBuffCategory— not yet supportedGameStateEffectClass— class referenceVisualizationFn— delegate — code-onlyCleansedVisualizationFn— delegate — code-onlyEffectTickedVisualizationFn— delegate — code-onlyEffectSyncVisualizationFn— delegate — code-onlyEffectRemovedVisualizationFn— delegate — code-onlyEffectRemovedSourceVisualizationFn— delegate — code-onlyDeathVisualizationFn— delegate — code-onlyModifyTracksFn— delegate — code-onlyEffectRemovedFn— delegate — code-onlyEffectAddedFn— delegate — code-onlyEffectTickedFn— delegate — code-onlyGetModifyChosenActivationIncreasePerUseFn— delegate — code-onlyUnitBreaksConcealmentIgnoringDistanceFn— delegate — code-only