> 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/integrations/game-creator/ability-recipes.md).

# Ability Recipes

`GameCreatorAbilityDefinition` is the main asset for building playable GAT skills with Game Creator authoring tools.

Create one from:

```
Assets > Create > Gameplay Ability Toolkit > Game Creator > Game Creator Ability
```

The Inspector keeps the regular GAT ability fields first, then adds a Game Creator recipe workspace. Pick an `Execution Type`, fill the visible steps, and use event rows to connect Game Creator instructions to the GAT runtime.

![Game Creator Ability Inspector showing an Execution Type recipe, step rail, and event editor.](/files/6O3ZY3kr8NR5w4lYNK5B)

## Execution Modes

| Execution Type       | Recipe                                                      | Use For                                                                |
| -------------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------- |
| `Instant`            | `Input -> Execute -> Finish`                                | Immediate self effects, short utility skills, simple ability triggers. |
| `Melee`              | `Input -> Swing -> Hit -> Finish`                           | Montage-timed melee attacks and combo chains.                          |
| `Projectile`         | `Input -> Cast -> Projectile -> Impact -> Finish`           | Cast animation plus linear projectile impact.                          |
| `TargetedProjectile` | `Input -> Target -> Cast -> Projectile -> Impact -> Finish` | Ground-targeted or actor-targeted projectile skills.                   |
| `Channel`            | `Input -> Hold -> Tick -> Finish`                           | Hold-to-channel skills with periodic cost, effects, or cues.           |
| `Movement`           | `Input -> Move -> Finish`                                   | Dodge, dash, leap, shove, and short movement abilities.                |
| `SelfEffect`         | `Input -> Cast -> Apply -> Finish`                          | Buffs, shouts, stances, and other self-applied effects.                |

## Recipe Steps

| Step                | Main Fields                                                                                  | Events                                                                                                                                       |
| ------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| `Input`             | Release gating and press suppression while targeting.                                        | `On Started` -> `Started`                                                                                                                    |
| `Cast`              | Montage, play rate, duration scaling, notify wait, post-notify hold, cancel behavior.        | `On Started` -> `MontageStarted`; `On Notify` -> `MontageNotify`; `On Completed` -> `MontageCompleted`; `On Cancelled` has no phase binding. |
| `Target`            | Target collector prefab, forward fallback, targeting tag.                                    | `On Confirmed` -> `TargetConfirmed`; `On Cancelled` -> `TargetCancelled`                                                                     |
| `Swing`             | Combo count, hit effects, swing montages, attack-speed attribute.                            | Recipe fields only.                                                                                                                          |
| `Hit`               | Melee hit event logic.                                                                       | `On Hit` -> `Hit`                                                                                                                            |
| `Projectile`        | Mode, prefab, speed, radius, lifetime, spawn offsets, fall settings, impact VFX, impact cue. | Recipe fields only.                                                                                                                          |
| `Impact`            | Projectile impact instructions.                                                              | `On Impact` -> `ProjectileImpact`                                                                                                            |
| `Hold`              | Resource tick effect, tick effects, interval, box shape, cue tag, release behavior.          | Recipe fields only.                                                                                                                          |
| `Tick`              | Channel tick event logic.                                                                    | `On Tick` -> `ChannelTick`                                                                                                                   |
| `Move`              | Duration, speed, movement curve, self effects.                                               | Recipe fields only.                                                                                                                          |
| `Execute` / `Apply` | Self effects and target effects.                                                             | `On Applied` has no phase binding.                                                                                                           |
| `Finish`            | Completion, cancellation, and final end instructions.                                        | `On Completed` -> `Completed`; `On Cancelled` -> `Cancelled`; `On Ended` -> `Ended`                                                          |

## Run Vs Only If

Each event editor has two authoring lanes:

| Lane      | Behavior                                                                                                               |
| --------- | ---------------------------------------------------------------------------------------------------------------------- |
| `Run`     | The normal Game Creator `RunInstructionsList` for the event. Add instructions here first.                              |
| `Only If` | Optional `GameCreatorAbilityVisualScriptingModule` entries. Conditions must pass before the module's instructions run. |

Use `Run` for event work that always happens. Use `Only If` when the same event needs conditional branches, reusable phase logic, or a saved module shared by multiple abilities.

## Runtime Phases

`GameCreatorAbilityVisualScriptingModule` can bind to:

```
Started
BeforeCommit
AfterCommit
BeforeExecute
MontageStarted
MontageNotify
MontageCompleted
TargetConfirmed
TargetCancelled
Hit
ProjectileImpact
ChannelTick
Completed
Cancelled
Ended
```

`BeforeCommit` and `AfterCommit` are available for explicit commit-driven workflows. Most game skills use `Started`, `BeforeExecute`, montage phases, target phases, `Hit`, `ProjectileImpact`, `ChannelTick`, and finish phases.

## Embedded Module Behavior

When you click `+ Condition` inside `Only If`, the Inspector creates a `GameCreatorAbilityVisualScriptingModule` as an embedded child asset of the ability.

| Behavior                  | Result                                                                                                                                      |
| ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Ability is not saved      | Condition creation is disabled and the button tooltip says to save the ability first.                                                       |
| `+ Condition` on an event | Creates an embedded module, sets its phase to the event phase, and references it from the ability.                                          |
| Reuse saved module        | The event editor can reference an existing saved module asset when its phase matches the event.                                             |
| Same module added twice   | Duplicate references are ignored.                                                                                                           |
| Module removed from event | The reference is removed from the ability. Embedded child assets remain part of the ability file unless manually cleaned by editor tooling. |

## Runtime Flow

```mermaid
flowchart LR
    Trigger["Game Creator Trigger"]
    Input["Press or Release Input"]
    ASC["AbilitySystemComponent"]
    Runtime["GameCreatorAbilityRuntime"]
    Recipe["Execution Type Executor"]
    Events["Run Instructions"]
    Modules["Only If Modules"]
    GAT["Effects, Tags, Cues, Targeting, Montage"]

    Trigger --> Input --> ASC --> Runtime --> Recipe
    Recipe --> Events
    Recipe --> Modules
    Recipe --> GAT
```

When you extend this flow, keep the Inspector recipe, runtime executor, validation, and Visual Scripting phase hooks in sync.


---

# 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://morningheartgames.gitbook.io/docs/gameplay-ability-toolkit/integrations/game-creator/ability-recipes.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.
