Modifiers

n00dBuffs comes equipped with a modifier system that can control various aspects of your game based on the buff that was applied; from increasing or decreasing speed, to applying a visual overlay, modifiers provide an agnostic way for your buffs to add a level of detail to your gameplay mechanics. 

Speed Reduction Example

The Core buff type has some generic functions to handle common implementations such as modifying the character speed. Let's use that in this example

Create a child of BP_N00dBuffType and name it BP_FatiguePoison

Move it into the n00dBuffsExample folder

 Open it and override Apply

Apply is called every time this buff stacks, so make sure that you restrict this to a limit if you are stacking

Call SetCharacterWalkSpeed with a multiplier of 0.9

Create a float parameter called OriginalWalkSpeed to reapply on destroy

Every time a buff is removed (debuff) and there is a stack count greater than 0, RemoveFromStack is called

When this buff has none left in the stack, Destroy is called. This is where we will call SetCharacterWalkSpeed with our original walk speed