Skip to content

Buffs

Buffs are runtime stat modifiers attached to characters as components.

What buffs do

A buff can modify one or more of the following stats on the character that receives it:

StatEffect
Passive cooldownMake passives fire faster or slower
Movement speedChange character speed
Damage resistanceReduce or increase damage taken
Healing receivedAmplify or reduce healing
Healing doneAmplify or reduce outgoing heals
Passive damageAmplify or reduce passive weapon damage

Duration

  • Finite — the buff expires after a set number of seconds (Duration > 0).
  • InfiniteDuration = 0: the buff stays active until the character is destroyed or RemoveBuff is called.

Ticking buffs

Some buffs trigger an action on a timer (e.g. deal damage every second, spawn an AoE repeatedly).
Set IsBuffTicking = true and TickCooldown to the desired interval.

Combo system

A buff can require other buffs to already be active before it can apply (RequiredBuffs).
This allows creating combo effects: only when buff A and B are present does buff C apply.

How buffs interact with passives

Passives read the owner's PassiveCooldownModifier and PassiveDamageModifier at fire time.
When a buff changes those values, all passives on that character are affected immediately.

Application flow

Character receives buff (AddBuff called)
  → Stat changes applied immediately on BeginPlay
  → Ticking starts if IsBuffTicking
  → On expiry: ResetStats() reverses all changes → component destroyed

Creating a buff

See Create a Buff for a step-by-step Blueprint guide.

C++ reference

See Buffs C++ API.