> 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/properties/interactions/gestures/hold-and-release.md).

# Hold and Release

Trigger one action on press-and-hold and a second action on release.

<figure><img src="https://3019081569-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FZBycFFNxrdS0X9OsGtmT%2Fuploads%2Fgit-blob-9de95889c414628283f04cf457b20b5dfd559717%2Fgestures-hold-and-release.png?alt=media" alt="The Interaction Properties popup with the Hold and Release gesture selected"><figcaption></figcaption></figure>

The **Hold and Release** gesture lets a single gesture run **one action when the user presses and holds**, and **another action when the user releases**.

This is useful for patterns like:

* Hold to reveal something, release to hide it
* Hold to begin an effect, release to stop it
* Interactive “push button” behaviors that need separate down/up outcomes

### How it Works

Unlike other gestures, Hold and Release includes **two actions**:

* **Hold Action**: triggers **once**, the moment the user presses down on the layer. There is no minimum hold time.
* **Release Action**: triggers **once** when the user stops holding the layer.

{% hint style="info" %}
**Tip:** You don’t have to set both actions. If the **Hold Action** or **Release Action** is left unassigned, PLAY will simply **ignore that part of the gesture** (it won’t break the interaction).

*Example: If you only want something to happen on **release** (mouse up / finger up), leave **Hold Action** empty and set only a **Release Action**. If you want something to only happen on mouse down / finger down, set only a **Hold Action**.* [*Single Tap*](/play/properties/interactions/gestures/single-tap.md) *fires on release, not on press.*
{% endhint %}

### Actions NOT Recommended in the Hold Action

The below actions are not recommended to be used in the Hold Action. They change the scene, so the Release Action may not fire.

* **Start Next Scene**
* **Start Random Scene**
* **Restart Scene**

### Cursor / Pointer Out-of-Bounds Behavior

During export/playback: If the user clicks/presses down on the layer, then moves their cursor/pointer outside the layer bounds while still holding, the <mark style="color:red;">**interaction will NOT be canceled.**</mark> The Hold/Release flow continues normally, and the Release Action will still fire when the user releases.

### Every Press Counts as a Hold

Because the Hold Action fires on press down, every touch on the layer runs both actions, including quick taps, swipes and drags. Avoid combining Hold and Release with other gestures on the same layer unless both outcomes should happen together.


---

# 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/properties/interactions/gestures/hold-and-release.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.
