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:
| Stat | Effect |
|---|---|
| Passive cooldown | Make passives fire faster or slower |
| Movement speed | Change character speed |
| Damage resistance | Reduce or increase damage taken |
| Healing received | Amplify or reduce healing |
| Healing done | Amplify or reduce outgoing heals |
| Passive damage | Amplify or reduce passive weapon damage |
Duration
- Finite — the buff expires after a set number of seconds (
Duration > 0). - Infinite —
Duration = 0: the buff stays active until the character is destroyed orRemoveBuffis 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 destroyedCreating a buff
See Create a Buff for a step-by-step Blueprint guide.
C++ reference
See Buffs C++ API.