# Playbacks

<mark style="background-color:yellow;">**Playbacks decide how an effect gets applied through time**</mark> (for example, playing an effect only once).

### Built In Playbacks

You can use the following built-in playbacks to modify your effects, either [assigning them from the inspector](https://docs.febucci.com/text-animator-unity/effects/how-to-edit-effects) or setting them as [modifier keywords:](https://docs.febucci.com/text-animator-unity/effects/modifiers#keywords)

For example, if you already have a "wave" effect that loops infinitely, but in one occasion you want to show it only once, you can write "\<wave **once**>", where "once" is the ID of the playback.

### Create Custom Playbacks

There are currently three different types of playback classes that you can instantiate:

<figure><img src="https://3857371675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXuXUTa2X5PYuYL6yRvl1%2Fuploads%2Fzupt163LqdAGyPlxMi76%2FScreenshot%202025-11-15%20alle%2019.55.30.png?alt=media&#x26;token=da819d95-9fd3-4d59-aa59-33d5a98b9717" alt=""><figcaption></figcaption></figure>

Each playback has different parameters that you can modify (e.g. duration).

{% hint style="success" %}
If any parameter is less or equal to 0, then it will be ignored and the animation engine will jump to the "next" important/related one.
{% endhint %}

{% hint style="warning" %}
Appearances  and disapperances need at least one value to be greater than 0, or their duration will be invalid and they will be skipped
{% endhint %}

#### Simple

| Parameter          | Description                                                                 |
| ------------------ | --------------------------------------------------------------------------- |
| Delay before start | How much time the animation engine waits before starting to show the effect |
| Fade duration      | How much time it takes for an effect to go from 0 to 1                      |
| Still duration     | How much time an effect is displayed on screen.                             |

#### Weighted

| Parameter   | Description                                                                                                          |
| ----------- | -------------------------------------------------------------------------------------------------------------------- |
| Intensity01 | Lets you control externally how much intense should an effect be (e.g. 1 when near a game objective, 0 when too far) |

#### Cycle

<table data-full-width="false"><thead><tr><th>Parameter</th><th>Description</th></tr></thead><tbody><tr><td>Delay before start</td><td>How much time the animation engine waits before starting to show the effect</td></tr><tr><td>Fade in duration</td><td>How much time it takes for an effect to go from 0 to 1</td></tr><tr><td>Still duration</td><td>How much time an effect is displayed on screen.</td></tr><tr><td>Fade out duration</td><td>How much time it takes for an effect to go from 1 to 0</td></tr><tr><td>Cycles</td><td>How many times this loop is repeated</td></tr><tr><td>Delay Between Cycles</td><td>How much time to wait before starting a new cycle</td></tr></tbody></table>

***

### Playbacks Databases

As always, you can store playbacks inside a **database** and assign it to the [global-settings](https://docs.febucci.com/text-animator-unity/customization/global-settings "mention") (p.s. there is already one built-in and already set up), like the following:

<figure><img src="https://3857371675-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FXuXUTa2X5PYuYL6yRvl1%2Fuploads%2FGjKdZv4dnZ0IOL9ZOFW2%2FScreenshot%202025-11-15%20alle%2019.59.17.png?alt=media&#x26;token=c03fbe88-b9cc-4d41-8d98-dd8c4ee8e92b" alt=""><figcaption></figcaption></figure>

This way you can access all playbacks from all different Text Animator components, and modify your effects individually through [modifiers](https://docs.febucci.com/text-animator-unity/effects/how-to-edit-effects/modifiers "mention") (example "`<wave once>`".

{% hint style="info" %}
If you are creating a new playback, make sure that it is stored inside that main/global database
{% endhint %}
