New integrations should observe ViewModel property changes instead.
All runtime output from Rive should flow through a ViewModel Instance.
How observation works
During the Artboard tick:- Unreal sets ViewModel values
- The State Machine evaluates transitions
- The State Machine may modify ViewModel values
- Property change callbacks are emitted
- Rendering occurs
Registering callbacks
Each property on a ViewModel Instance can be observed. When a property changes:- The callback is invoked
- The updated value is available
- Logic can react immediately
- Registered after creating the ViewModel Instance
- Unregistered before destroying the instance
-
Owned by the same system that owns the instance
You can use the Add Field Value Changed Delegate to trigger events when a value is changed. The following image shows an example of a delegate being added to a ViewModel field.

Observing structured data
Because ViewModels may contain nested structures:- Nested ViewModel Instances can also be observed
- Changes propagate through the same callback mechanism
- Observation remains consistent regardless of hierarchy depth
Lifetime and safety
Observation follows the lifetime of the ViewModel Instance. Important rules:- Do not observe destroyed instances
- Unbind callbacks before destroying instances
- Do not assume callbacks persist after Artboard reinitialization
Summary
ViewModels are both the input and output boundary of the runtime. Unreal writes values.The State Machine evaluates.
Unreal observes changes.