Create a Buff Blueprint
Buffs are components applied to characters at runtime. They modify stats and can tick over time.
All buffs derive from UBaseBuff.
1. Create the Blueprint
- In the Content Browser, right-click → Blueprint Class.
- Search for
BaseBuffand select it. - Name it
BP_Buff_<YourName>(e.g.BP_Buff_Haste). - Save it in
Content/Blueprints/Buffs/.
2. Duration
| Property | Category | Description |
|---|---|---|
Duration | Stats › Time | How long the buff lasts in seconds. Set to 0 for infinite duration (until the character is destroyed). |
3. Stat multipliers
All multipliers are applied multiplicatively to the owner's existing modifiers.
| Property | Category | Effect | Example values |
|---|---|---|---|
PassiveCooldownMultiplier | Stats | Modifies how fast passives fire | 0.8 = −20% cooldown (faster), 1.2 = +20% (slower) |
MovementSpeedMultiplier | Stats | Changes movement speed | 1.3 = +30% speed, 0.5 = −50% speed |
DamageResistanceMultiplier | Stats | Changes damage received | 0.8 = −20% damage taken |
HealingReceivedMultiplier | Stats | Changes healing received | 1.5 = +50% healing |
HealingDoneMultiplier | Stats | Changes healing done | 1.2 = +20% healing given |
PassiveDamageMultiplier | Stats | Changes damage dealt by passives | 1.5 = +50% damage |
Leave a multiplier at
1.0to have no effect.
4. Ticking buffs
Use this when the buff should trigger repeatedly (e.g. damage-over-time, periodic AoE).
| Property | Category | Description |
|---|---|---|
IsBuffTicking | Stats › Time | Enable repeated triggering |
TickCooldown | Stats › Time | Seconds between each tick |
When IsBuffTicking = true, BuffTriggered() is called every TickCooldown seconds.
Override BuffTriggered() in your child Blueprint to add custom logic.
5. Icon
| Property | Category | Description |
|---|---|---|
Icon | Debug | Texture2D, recommended 128×128 px, shown on the UI. |
6. Required buffs (combo system)
| Property | Category | Description |
|---|---|---|
RequiredBuffs | Stats › Interactions | List of buff classes that must already be active on the owner for this buff to apply. Leave empty for no requirement. |
7. Apply a buff to a character
Buffs are added at runtime by calling AddBuff() on the character from another Blueprint or C++.
From a Blueprint node:
Target (ALesDeuxPelosCharacter) → AddBuff(BP_Buff_Haste::StaticClass())Complete example — haste buff
BP_Buff_Haste
Duration = 5.0
MovementSpeedMultiplier = 1.4 (+40% speed)
PassiveCooldownMultiplier = 0.8 (−20% cooldown)
IsBuffTicking = false
Icon = T_Icon_HasteComplete example — poison (ticking)
BP_Buff_Poison
Duration = 10.0
IsBuffTicking = true
TickCooldown = 1.0
(override BuffTriggered to deal damage each tick)