Focused reference · Unreal Engine 5.8

Gameplay Effect selector

unreal-gas-attributes-effects/references/effect-selector.md

Duration policy

NeedDuration policyNotes
Damage, healing, purchase, permanent progression, initializationInstantChanges base value
Timed buff/debuffHas DurationModifier exists while active
Equipped/aura/passive modifier removed by handle/conditionInfiniteExplicit removal required
Damage/heal over timeHas Duration or Infinite with PeriodPeriod and duration/removal are separate decisions

Magnitude method

NeedMethod
Constant or level-scaled dataScalable Float / configured magnitude
Runtime caller supplies one named amountSetByCaller on the Gameplay Effect Spec
Reusable magnitude from captured source/target attributesModifier Magnitude Calculation
Multi-stage authoritative result, multiple captures/outputs, custom damage resolutionGameplay Effect Execution Calculation

Prefer the simplest method that expresses the rule. Calculations add implementation and prediction constraints; fixed/scalable modifiers remain easier to inspect.

Modifier operation

Choose the operation from the desired math—additive, multiplicative, division, or override— and test multiple simultaneous sources. Document whether percentages are intended to combine additively or multiplicatively; do not infer it from UI wording.

Runtime data

Gameplay Effect assets are immutable definitions. At runtime:

  1. Make a Gameplay Effect Context with instigator/source information.
  2. Make an outgoing Gameplay Effect Spec at the desired level.
  3. Set SetByCaller magnitudes and other spec data before application.
  4. Apply the spec to self or target ASC.
  5. Retain the active effect handle when explicit removal or inspection is required.

Stacking design questions

  • Aggregate by source or by target?
  • Maximum stack count?
  • Refresh, extend, or preserve duration on reapplication?
  • Reset period on reapplication?
  • Overflow behavior?
  • Is each source independent, or should all instances combine?
  • Which tags identify and inhibit the effect?

Test the exact configured behavior; stacking policy changes gameplay semantics, not just implementation.