> ## Documentation Index
> Fetch the complete documentation index at: https://rive.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Controlling Data

> Update and react to data from within Rive or from your application code.

Once you've bound data to properties in your file, changing that data will automatically update the connected elements.

You can control data from within your Rive file, or from your application at runtime.

## Controlling data within Rive

Rive includes several ways to update data directly inside your file:

> [card] [State machine actions](https://rive.app/docs/editor/state-machine/states.md#actions)
>
> Update property values when [transitions](https://rive.app/docs/editor/state-machine/transitions.md#actions) or [state changes](https://rive.app/docs/editor/state-machine/states.md#actions) occur.

> [card] [Listener actions](https://rive.app/docs/editor/state-machine/listeners.md)
>
> Update data in response to interactions and events.

> [card] [Scripting](https://rive.app/docs/scripting/data-binding.md)
>
> Write custom logic that reads and updates data.

> [card] [Target-to-source Binding](https://rive.app/docs/editor/data-binding/overview.md#bind-direction)
>
> Update data using an element's property value.

> [card] [Property Groups](https://rive.app/docs/editor/data-binding/property-groups.md)
>
> Animate values and bind them back to data.

## Controlling data from code

Your application can also update data at runtime. For example, you might:

* Update a player's score
* Change a username or profile image
* Display live stock prices
* Trigger UI states based on user interaction

See the [Runtime Data Binding Overview](https://rive.app/docs/runtimes/data-binding) for implementation details.
