Skip to content

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

  1. In the Content Browser, right-click → Blueprint Class.
  2. Search for BaseBuff and select it.
  3. Name it BP_Buff_<YourName> (e.g. BP_Buff_Haste).
  4. Save it in Content/Blueprints/Buffs/.

2. Duration

PropertyCategoryDescription
DurationStats › TimeHow 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.

PropertyCategoryEffectExample values
PassiveCooldownMultiplierStatsModifies how fast passives fire0.8 = −20% cooldown (faster), 1.2 = +20% (slower)
MovementSpeedMultiplierStatsChanges movement speed1.3 = +30% speed, 0.5 = −50% speed
DamageResistanceMultiplierStatsChanges damage received0.8 = −20% damage taken
HealingReceivedMultiplierStatsChanges healing received1.5 = +50% healing
HealingDoneMultiplierStatsChanges healing done1.2 = +20% healing given
PassiveDamageMultiplierStatsChanges damage dealt by passives1.5 = +50% damage

Leave a multiplier at 1.0 to have no effect.

4. Ticking buffs

Use this when the buff should trigger repeatedly (e.g. damage-over-time, periodic AoE).

PropertyCategoryDescription
IsBuffTickingStats › TimeEnable repeated triggering
TickCooldownStats › TimeSeconds between each tick

When IsBuffTicking = true, BuffTriggered() is called every TickCooldown seconds.
Override BuffTriggered() in your child Blueprint to add custom logic.

5. Icon

PropertyCategoryDescription
IconDebugTexture2D, recommended 128×128 px, shown on the UI.

6. Required buffs (combo system)

PropertyCategoryDescription
RequiredBuffsStats › InteractionsList 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_Haste

Complete example — poison (ticking)

BP_Buff_Poison
  Duration          = 10.0
  IsBuffTicking     = true
  TickCooldown      = 1.0
  (override BuffTriggered to deal damage each tick)