GASify
  • Introduction
  • Overview
  • Installation
  • Basic Usage
  • Ability System Component (ASC)
    • Attributes
    • Attribute Processors
    • Targetting System
  • Gameplay Ability (GA)
    • Gameplay Ability Implementations
    • Creating New Abilities
  • Gameplay Effect (GE)
    • Modifier
    • Calculation (GEC)
    • Behaviour (GEB)
  • Gameplay Tag
  • Gameplay Cue
  • Data Groups
  • Cookbook 🥣
  • Multiplayer / Networking
  • Contact & Note
Powered by GitBook
On this page
  • Modifiers come in a few flavors:
  • BasicModifier
  • ScalableModifier
  • ScalableModifierCSV
  • AttributeBasedModifier
  • ATTENTION:
  1. Gameplay Effect (GE)

Modifier

PreviousGameplay Effect (GE)NextCalculation (GEC)

Last updated 1 year ago

A modifier describes how to alter the value of an Attribute when its GameplayEffect is applied.

Modifiers can execute three distinct operations:

Add, Multiply, Override.

All the addition modifiers are applied to the base value before any multiplication.

resultValue = (baseValue + modification.add) * (modification.multiply + 1);

Modifiers come in a few flavors:

BasicModifier

The simplest modifier. A constant value that is not altered.

ScalableModifier

A modifier that scaled its value based on a AnimationCurve. The X axis, or how much to scale, is defined by the level of the GameplayEffect applying it. So a curve with point {1,1} and {10,20} will gradually scale the modifier between 1 and 20 depending on the value of ge.level.

ScalableModifierCSV

A modifier that uses a simple .csv file to scale its value. Useful if you want designer to set exactly what value it'll output at what ge.level.

AttributeBasedModifier

A modifier that uses an attribute from the ASC as its value (e.g. value 2 with baseAttribute Health, would mean 200% of currenct ASC's health). It also has an optional ge.level scaling AnimationCurve.

ATTENTION:

To add the modifier via Editor, scroll down the GE scriptable object and click the "ADD MODIFIER WITH TYPE" button. (Modifiers need to be instantiated with their type, otherwise they'll inherit the base class that does nothing (It always return 0))