> For the complete documentation index, see [llms.txt](https://help.craftsmanplus.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.craftsmanplus.com/play/settings/progression/triggers.md).

# Triggers

Fire any action automatically when a variable reaches, drops to, equals, or passes an interval value.

A trigger watches a variable and fires an action the moment the variable meets a condition. Triggers are how progression reacts to play: start the win scene when Score reaches 100, show a game over screen when Health drops to 0, play a sound every 10 coins.

Triggers live in the **Triggers** tab of the [Progression](/play/settings/progression.md) section. Click the **+** button in the header to add one; there's no limit on how many you can create.

### Configuring a Trigger

Opening a trigger shows its Progression Properties, with three parts:

* **Variable** selects which [variable](/play/settings/progression/variables.md) the trigger watches.
* **Condition** pairs a comparison with a value (default is **Reaches 100**).
* **Action** is what fires when the condition is met. Any action available on the platform can be used, including starting a scene, showing or hiding a layer, opening a URL, firing a tracker, or even another [Update Progression](/play/general/actions/update-progression.md).

{% hint style="info" %}
A trigger missing its variable, condition, or action simply never fires. You can leave one half-configured while you build without breaking anything.
{% endhint %}

### Conditions

| Condition    | Fires when...                                      | How often                      |
| ------------ | -------------------------------------------------- | ------------------------------ |
| **Reaches**  | The variable is greater than or equal to the value | Once                           |
| **Drops to** | The variable is less than or equal to the value    | Once                           |
| **Equals**   | The variable is exactly equal to the value         | Whenever it lands on the value |
| **Every**    | The variable passes each multiple of the value     | Once per interval passed       |

**Reaches** and **Drops to** are threshold conditions, so they fire a single time when the line is crossed. Use them for outcomes like winning, losing, or unlocking.

**Every** fires once per interval, and catches skipped intervals. If the value is set to Every 4 and the variable jumps from 20 to 10 in a single update, the action fires twice, once for each interval passed.

### Common Patterns

* **Win condition**: Score **Reaches** 100, action starts your end card scene.
* **Lose condition**: Health **Drops to** 0, action starts your fail scene.
* **Milestone feedback**: Score **Every** 10, action triggers a reward sound or animation.
* **Exact-state logic**: Moves **Equals** 0, action shows an out-of-moves message.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://help.craftsmanplus.com/play/settings/progression/triggers.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
