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

# Package Overview

> Online doc: <https://morningheartgames.gitbook.io/docs/gameplay-ability-toolkit?fallback=true>

Gameplay Ability Toolkit gives a Unity project one shared set of rules for abilities, effects, attributes and gameplay tags. You author them as ScriptableObject assets, put an `AbilitySystemComponent` on each actor, and every actor then plays by the same rules. A fireball can spend mana, start a cooldown, find its targets and apply a burn. A shield can absorb damage until it expires. To change a rule you edit an asset, not a scene script.

This page shows what is in the package, what it needs, and how to judge in about 15 minutes whether it fits your game.

## Is it for you?

| If your game needs...                                                           | The toolkit gives you...                                                               |
| ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- |
| Attacks, spells, skills, item uses or AI actions                                | `AbilityDefinition` assets that run through an `AbilitySystemComponent`.               |
| Damage, healing, buffs, debuffs, costs, cooldowns, damage over time or passives | `EffectDefinition` assets with modifiers, durations, stacking, conditions and cues.    |
| Health, Mana, Stamina, Armor, Speed or derived values                           | Attribute sets with base and current values, clamping and change events.               |
| States such as stunned, blocking, burning or invulnerable                       | Hierarchical gameplay tags and tag queries.                                            |
| Visual and audio feedback that ability code does not know about                 | Gameplay cues that map a tag to VFX, sound or UI.                                      |
| Aimed and area abilities                                                        | Target collectors, shape traces and ground indicators.                                 |
| Attack timing driven by animation                                               | Montages with sections, notify states and slots.                                       |
| Working content to look at before you commit                                    | The Basic Tutorial, Arena Training, the Arena demo and the optional integration demos. |

## What it needs

| Requirement           | Details                                                                                                                                                                                                                                                               |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Unity                 | 6000.3 LTS or newer.                                                                                                                                                                                                                                                  |
| Cysharp UniTask       | 2.5.11 or newer. It is not bundled. If it is missing, a dialog offers to install it right after import. You can also install it later in `Tools > Gameplay Ability Toolkit > Dashboard > Dependencies`.                                                               |
| uGUI with TextMeshPro | Used by the runtime UI, the Basic Tutorial and the demos. New Unity 6 projects include it. Without it, those parts stay out of the build and the rest of the toolkit still compiles.                                                                                  |
| Render pipeline       | The runtime works with any pipeline. The sample scenes are built for the Universal Render Pipeline (URP), the pipeline of Unity's Universal 3D template. In a Built-in or HDRP project their materials show magenta.                                                  |
| Input handling        | The Basic Tutorial and the Arena demo read keys and the mouse through Unity's older `Input` class. If your project uses only the new Input System, set `Edit > Project Settings > Player > Other Settings > Active Input Handling` to **Both** before you press Play. |

Optional packages. Install the package, then switch the integration on in `Tools > Gameplay Ability Toolkit > Dashboard > Extensions`. Netcode turns itself on when its package resolves.

| Optional                    | What it adds                                                                                                                                                             |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Unity Input System          | Bind Input System actions to logical ability inputs. See [Unity Input System](/docs/gameplay-ability-toolkit/integrations/unity-input-system.md).                        |
| Animancer 8 or later        | A montage animation driver that plays each montage slot on its own Animancer layer. See [Animancer](/docs/gameplay-ability-toolkit/integrations/animancer.md).           |
| Game Creator                | Abilities, effects, targeting and combat from Game Creator instructions and conditions. See [Game Creator](/docs/gameplay-ability-toolkit/integrations/game-creator.md). |
| Netcode for GameObjects 2.x | Multiplayer. See below.                                                                                                                                                  |

## Limits

* **Multiplayer comes only from the Netcode for GameObjects module.** The core runtime is for single-player games. The optional module adds server-authoritative abilities and effects, replicated actor state, client activation prediction and networked cues. See [Unity Netcode for GameObjects](/docs/gameplay-ability-toolkit/integrations/unity-netcode.md) and the [Netcode Arena demo](/docs/gameplay-ability-toolkit/integrations/netcode-arena-demo.md).
* **Thousands of actors need a separate add-on.** An ECS add-on, sold separately, runs the same definitions on Unity's Entities package. It is not part of this package.

## Evaluate it in 15 minutes

1. Import the package. If the UniTask dialog appears, click **Install UniTask** and wait for Unity to recompile. Check that the menu `Tools > Gameplay Ability Toolkit` exists.
2. Open `Tutorial/Basic/Scenes/BasicTutorial.unity` and press Play. Use Left Mouse for Light Attack, hold Right Mouse for Guard, and press Q for Fire Skill, E for Heal and R to reset the dummy. The tutorial folder carries its own configuration asset, so you do not need to run any setup first.
3. Stop Play Mode. Select `Player` in the Hierarchy and look at its `AbilitySystemComponent`. Then open the `GA_*` abilities, `GE_*` effects and `ASDef_BasicTutorial` attributes in `Tutorial/Basic/`.
4. Open `Demo/Arena/Scenes/Training.unity` to try every Arena ability with no enemy pressure. Open `Demo/Arena/Scenes/Arena.unity` for the full wave, boss and win/lose loop.
5. Open `Tools > Gameplay Ability Toolkit > Dashboard` to see the project setup page that you will use for your own game.

All paths are relative to the `GameplayAbilityToolkit` folder. After this pass you know whether the asset workflow, the runtime model and the sample depth fit your project. If a sample plays without its cue effects after you have run Quick Setup, read [Keep one GASConfiguration asset](/docs/gameplay-ability-toolkit/try-it/01-getting-started.md#keep-one-gasconfiguration-asset).

## Samples

| Sample                                                                             | What it shows                                                                                                                           |
| ---------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| [Basic Tutorial](/docs/gameplay-ability-toolkit/try-it/basictutorial.md)           | The first scene to play. Light attack, guard, fire skill, heal, cooldowns, cues, runtime UI and three guided challenges.                |
| Arena Training                                                                     | A sandbox for trying each Arena ability without enemies. See the [Arena demo](/docs/gameplay-ability-toolkit/try-it/arena.md).          |
| [Arena demo](/docs/gameplay-ability-toolkit/try-it/arena.md)                       | A combat slice with player and enemies, montage playback, projectiles, buffs, costs, pickups, a boss, a HUD, an event log and VFX cues. |
| [Game Creator Arena](/docs/gameplay-ability-toolkit/try-it/gamecreatorarena.md)    | The same kind of skill loop built with the optional Game Creator integration.                                                           |
| [Netcode Arena](/docs/gameplay-ability-toolkit/integrations/netcode-arena-demo.md) | A host and a client running the same abilities over Netcode for GameObjects.                                                            |

The [Demo Overview](/docs/gameplay-ability-toolkit/evaluate/demo.md) compares them.

## Build with it

1. Follow [Getting Started](/docs/gameplay-ability-toolkit/try-it/01-getting-started.md) to build the smallest working actor yourself: one attribute set, one effect, one script.
2. Read [Authoring Abilities](/docs/gameplay-ability-toolkit/build-with-it/03-authoring-abilities.md) for attacks, spells, item uses and AI actions.
3. Read [Authoring Effects](/docs/gameplay-ability-toolkit/build-with-it/04-authoring-effects.md) for damage, healing, buffs, damage over time, costs, cooldowns and passives.
4. Go to the [Subsystem Guide](/docs/gameplay-ability-toolkit/subsystems/subsystems.md) when you know which area you are working in.
5. Copy a pattern from the [Cookbook](/docs/gameplay-ability-toolkit/build-with-it/07-cookbook.md).

The [Manual Home](/docs/gameplay-ability-toolkit/evaluate/documentation.md) lists every page. The [API Reference](/docs/gameplay-ability-toolkit/build-with-it/06-api-reference.md) lists the public types.

## Notes

* Runtime namespaces and assemblies are named `GameplayAbilityToolkit.*`. Code names such as `GASConfiguration` and the `GAS_*` scripting defines keep the short form.
* Third-party art, audio and source notices are in [THIRD\_PARTY\_NOTICES.md](https://github.com/dongfangliu/unity-gas-pure/tree/master/GameplayAbilityToolkit/THIRD_PARTY_NOTICES.md).
