> For the complete documentation index, see [llms.txt](https://feliperoddd.gitbook.io/gasify/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://feliperoddd.gitbook.io/gasify/gameplay-ability-ga.md).

# Gameplay Ability (GA)

A Gameplay Ability is any action the ASC (Ability System Component) can use.\
These can be spells, skills, passives, interactions or any other action. \
The most common ability types (**Instant**, **Passive**, **Toggeable**, **Projectile**) are implemented.\
You can also extend the GameplayAbility class to create even more interesting abilities.&#x20;

### **Usage:**

Create a GameplayAbility ScriptableObject: \
1\. Right click in a folder on the editor -> Create -> GAS -> GameplayAbilitySO - InstantAbility\
2\. Select it, add GameplayEffects to **EffectsSO**, add **tags** to describe the behaviour of the GA.\
3\. Drag and drop it on a **GroupASC**.<br>

<figure><img src="/files/qptDRsHqMSTYEmEzW8yf" alt="" width="481"><figcaption></figcaption></figure>

## Effects vs. EffectsSO

Effects are objects that live in the **GA** itself, they cannot be shared across other **GAs**. \
EffectSO are objects that live in the editor, they are shareable and reusable across different **GAs**. \
The Effects property is useful when you want to create abilities using code, without having to create a ScriptableObject for it, it is a rare use case but it is supported.\
Prefer to use EffectsSO.

## Cost & Cooldown

These are optional ways to control and constraint the **GameplayAbility (GA)**.

You can override these and make additional checks if needed. \
e.g. SERVER CHECKS FOR TARGET ASC's CONNECTION. \
e.g. CHECK DISTANCE, CHECK LOS

## **Source & Target**

These are references to the **ASC**s the ability has been last activated with.&#x20;

## Cue Tags

Define what GameplayCues will be triggered when the ability is activated. Check the GameplayCues Library folder to know which prefab is associated with which tag.

## AbilityTags

**ActivationOwnedTags**\
**This is the most commonly used tag property.** While this Ability is active/executing, the owner of the Ability will be granted this set of Tags.

**DescriptionTags**\
Tags that describe the GameplayAbility. They do not do any function on their own and serve only the purpose of describing the GameplayAbility.

**CancelAbilitiesWithTags**\
Active Gameplay Abilities (on the same ASC) that have these tags will be cancelled. Cancels any already-executing Ability with Tags matching the list provided while this Ability is executing.

**BlockAbilitiesWithTags**\
Gameplay Abilities that have these tags will be blocked from activating on the same character\
\
**SourceTagsRequired**\
If any of these tags IS NOT present on source ASC, this ability won't be activated.\
\
**SourceTagsForbidden**\
If any of these tags IS present on source ASC, this ability won't be activated.

**TargetTagsRequired**\
If any of these tags IS NOT present on target, this ability won't be activated.

**TargetTagsForbidden**\
If any of these tags IS present on target, this ability won't be activated.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://feliperoddd.gitbook.io/gasify/gameplay-ability-ga.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
