# Overview

<figure><img src="https://585731495-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPvnvgshL169KwwsLUx0q%2Fuploads%2F1HNZ5uJ6VjAvMbmoiK5o%2FASCDIAGRAMSIMPLE.png?alt=media&#x26;token=ea3a8b5a-5a8d-446e-9f7f-f227237ce624" alt=""><figcaption></figcaption></figure>

### Overview:

* **Ability System Component:** Main component to put on any entity. Holds the entity's attributes, abilities that can be used, and Gameplay Effects/Tags currently applied to it.
* **Attributes:** Numeric values e.g. Health, Mana, MaxHealth, MaxMana, MovementSpeed, AttackDamage, CriticalChance, Armor.
* **Modifiers:** Change the value of attributes (Add, Multiply, Override). Modifiers come in several flavors: Simple (a constant value), Scalable (Scales it's output by a function e.g. Curve), AttributeBased (Uses another attribute to compute the modifier output)
* **Gameplay Tags:** Can be used to categorize effects/abilities or define states. e.g. Element.Fire, Stats.Buff.Stun or State.Movement.Sprinting
* **Gameplay Effect:** Apply a set of modifiers and Calculations to an AbilitySystemComponent (asc). These effects can have different durations: Instant, Duration, Infinite and Periodic.
* **Calculations:** Adds the capability to create any custom behavior/effect. Needs custom code. Executed with the GameplayEffect that has it attached.
* **Gameplay Ability:** Abilities that apply the effects attached to it. Can have cost, cooldown, activation/blockage tags. Included: Instant, Passive, Toggle and many more! Melee and projectile ability example included. Any other custom, non general ability can be created by extending this class.
* **Gameplay Cues:** Play sounds, particle effects, animations by just adding a tag to the effect/ability and the prefab on CueLibrary

### Videos:

1 - GASify - Overview: <https://youtu.be/KIY3AKMyYJw>\
2 - GASify - Modifiers: <https://youtu.be/IXT7QvNHd6M>\
3 - GASify - Calculations: <https://youtu.be/zESfPcwKg_M>\
4 - GASify - Cues: <https://youtu.be/GZgtZTv6mN4>\
5 - GASify - More Abilities Examples: <https://youtu.be/2WOSwancZ1g>\
6 - GASify - Editor Workflow: <https://youtu.be/3p-tZk3KEiY>\
7 - GASify - Bonus Detailed Diagram conversation: <https://youtu.be/Wzqz0fnju8o>\
8 - GASify - Data Groups: <https://youtu.be/Vdbo1X1hmXg>\
9 - GASify - Networking: <https://youtu.be/6lcar1vZxrw>\ <br>

### Class Diagram Simplified&#x20;

<figure><img src="https://585731495-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPvnvgshL169KwwsLUx0q%2Fuploads%2Fuq4GuQ6xgN3MyuXUhlCD%2FSimplified%2B%2BDiagram.png?alt=media&#x26;token=9048961a-6ae4-41f6-8acd-31be83c32e26" alt=""><figcaption></figcaption></figure>

### Class Diagram

<figure><img src="https://585731495-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FPvnvgshL169KwwsLUx0q%2Fuploads%2FFiPL0Idw5drE9plAPJ2M%2FSimplifiedDiagram.png?alt=media&#x26;token=e96e0f87-3e42-4908-8fc9-2365e697bf1e" alt=""><figcaption></figcaption></figure>
