# Table of Contents - [Introduction - Rive](#introduction-rive) - [Getting Started with the Rive Runtimes - Rive](#getting-started-with-the-rive-runtimes-rive) - [Best Practices - Rive](#best-practices-rive) - [Learn Rive - Rive](#learn-rive-rive) - [Unreal - Rive](#unreal-rive) - [Quick Links - Rive](#quick-links-rive) - [Marketplace Overview - Rive](#marketplace-overview-rive) - [Pricing - Rive](#pricing-rive) - [Interface Overview - Rive](#interface-overview-rive) - [Feature Support - Rive](#feature-support-rive) - [Terms of Service - Rive](#terms-of-service-rive) - [Privacy Policy - Rive](#privacy-policy-rive) - [Acceptable Use Policy - Rive](#acceptable-use-policy-rive) - [Account Overview - Rive](#account-overview-rive) - [Runtime Sizes - Rive](#runtime-sizes-rive) - [Fundamentals - Rive](#fundamentals-rive) - [Animation Playback - Rive](#animation-playback-rive) - [State Machines - Rive](#state-machines-rive) - [Getting Started - Rive](#getting-started-rive) - [State Machines - Rive](#state-machines-rive) - [Layout - Rive](#layout-rive) - [GitHub - rive-app/awesome-rive: An awesome list that curates Rive runtime examples, articles and tutorials, videos, resources and more!](#github-rive-app-awesome-rive-an-awesome-list-that-curates-rive-runtime-examples-articles-and-tutorials-videos-resources-and-more-) - [Data Binding Overview - Rive](#data-binding-overview-rive) - [Rive Events - Rive](#rive-events-rive) - [Text - Rive](#text-rive) --- # Introduction - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Getting Started Introduction [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) [​](#getting-started) Getting Started ---------------------------------------- New to Rive? Here are some tips to get started: * [Create an account](https://rive.app/login/?redirect=https%3A%2F%2Feditor.rive.app) today and try out the Rive Editor * Ready to design and animate? Peruse the Rive docs here, or watch our series of short tutorial videos in [Rive 101](https://youtube.com/playlist?list=PLujDTZWVDSsFGonP9kzAnvryowW098-p3) * Want to jump straight into adding Rive into your apps and games? See the [app runtimes docs](../runtimes/getting-started) and [game runtime docs](../game-runtimes/unreal/unreal) for quickstart guides, examples, and code snippets * Curious about what use cases to consider when building with Rive? We’ve got examples, blogs, tutorials, and more on our [use cases page](https://rive.app/use-cases) [​](#explore-rive) Explore Rive ---------------------------------- [Interface Overview\ ------------------\ \ Ready to start designing and animating in Rive? The editor is where you create and animate designs and utilize the powerful State Machine to build your logic of how different animations mix together. From there, you can export your work ready to drop into your app or game via one of our runtimes.](../editor/interface-overview/overview) [App Runtimes\ ------------\ \ App runtimes are open-source libraries that enable real-time rendering and updating of your Rive files across various platforms and frameworks, including Web, iOS, Android, Flutter, React Native, and more.](../runtimes/getting-started) [Game Runtimes\ -------------\ \ Game runtimes are open-source libraries that allow real-time rendering and updating of your Rive files in Unity, Unreal, and Defold and is easy to integrate with custom engines.](../game-runtimes/unreal/unreal) [Marketplace Overview\ --------------------\ \ Share and remix creations with the Rive Marketplace.](/docs/community/marketplace-overview) [Admin\ -----\ \ All the information you need to manage accounts, teams, and plans.](../account-admin/account-overview/account-overview) [Terms of Service\ ----------------\ \ All our legal stuff, like our Terms of Service, Acceptable Use Policy, and Privacy Policy.](../legal/terms-of-service) Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/getting-started/introduction.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /getting-started/introduction) [Best Practices](/docs/getting-started/best-practices) On this page * [Getting Started](#getting-started) * [Explore Rive](#explore-rive) --- # Getting Started with the Rive Runtimes - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Runtime Fundamentals Getting Started with the Rive Runtimes [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) The Rive runtimes are open-source libraries that allow you to load and control your animations in apps, games, and websites. Dive into each of the subpages to get started! Note that certain Rive features may not be supported yet for a particular runtime, or may require using the Rive Renderer. For more details, refer to the [feature support](/docs/feature-support) and [choosing a renderer](/docs/runtimes/choose-a-renderer) pages. [​](#how-to-use-this-guide) How to use this guide ---------------------------------------------------- In this section you’ll find runtime subpages that provide all the needed information and resources to get started on your platform of choice. See [Installation and Getting Started](/docs/_sites/rive/runtimes/getting-started#installation-and-getting-started) below. You’ll also find pages dedicated to controlling your animation at runtime. For example, updating a state machine input or text run. See [Animation Control and Interaction](/docs/_sites/rive/runtimes/getting-started#animation-control-and-interaction) below. ### [​](#installation-and-getting-started) Installation and Getting Started Make sure to check out the additional documentation provided under each runtime section. These documents provide platform-specific considerations, migration guides, and advanced usage information. [Web (JS) Runtime\ ----------------\ \ This guide documents how to get started using the Web runtime library.](./web) [React Runtime\ -------------\ \ This guide documents how to get started using the React runtime library.](./react) [React Native Runtime\ --------------------\ \ This guide documents how to get started using the React Native runtime library.](./react-native) [Apple Runtime\ -------------\ \ This guide documents how to get started using the Apple runtime library.](./apple) [Android\ -------\ \ This guide documents how to get started using the Android runtime library.](./android) [Flutter Runtime\ ---------------\ \ This guide documents how to get started using the Flutter runtime library.](./flutter) [Unity\ -----\ \ This guide documents how to get started using the Unity runtime library.](../game-runtimes/unity) [Unreal\ ------\ \ This guide documents how to get started using the Unreal runtime library.](../game-runtimes/unreal) [​](#animation-control-and-interaction) Animation Control and Interaction ---------------------------------------------------------------------------- These sections provide details on how to interact with your Rive animations at runtime. Here, you’ll find documentation and code samples for all of Rive’s official runtimes. [Animation Playback\ ------------------\ \ Configuring runtime animation playback properties.](/docs/runtimes/animation-playback) [Layout\ ------\ \ Controlling your Rive graphic’s layout (fit and alignment) at runtime.](/docs/runtimes/layout) [State Machine\ -------------\ \ Interacting with Rive state machines from runtime.](/docs/runtimes/state-machines) [Text\ ----\ \ Update Rive text at runtime.](/docs/runtimes/text) [Playing Audio\ -------------\ \ Runtime audio properties and controls.](/docs/runtimes/playing-audio) [Rive Events\ -----------\ \ Subscribe to Rive events at runtime.](/docs/runtimes/rive-events) [Loading Assets\ --------------\ \ Loading and replacing assets (images, fonts, audio) dynamically at runtime.](/docs/runtimes/loading-assets) [Caching a Rive File\ -------------------\ \ Cache and reuse a Rive file object across multiple Rive instances.](/docs/runtimes/caching-a-rive-file) [​](#other-sections) Other Sections -------------------------------------- [Choose a Renderer\ -----------------\ \ Specify the desired renderer to use at runtime. Each runtime provides different options. We recommend using the Rive Renderer.](./choose-a-renderer) [Format\ ------\ \ The Rive File format.](./advanced-topic/format) [Feature Support\ ---------------\ \ Runtime support for Rive features.](/docs/feature-support) [​](#versioning) Versioning ------------------------------ As we publish updates to our Rive editor, we will occasionally push updated runtimes to support the new features. See [Feature Support](/docs/feature-support) for the required minimum runtime version needed for specific features. In most cases, the newest runtimes will also support previous versions of your Rive assets, so you will not need to re-export assets to update to the latest runtimes. There are a number of ways to export your Rive files in cases where re-exporting is necessary to take advantage of the latest features. Check out our documentation on [Exporting](../editor/exporting) for more information. [​](#official-runtimes) Official Runtimes -------------------------------------------- Check out the runtime subpages for steps on how to get started! Web All web runtimes are distributed via npm: * [GitHub](https://github.com/rive-app/rive-wasm) * [canvas](https://www.npmjs.com/package/@rive-app/canvas) * [canvas-lite](https://www.npmjs.com/package/@rive-app/canvas-lite) * [canvas (advanced)](https://www.npmjs.com/package/@rive-app/canvas-advanced) * [webgl](https://www.npmjs.com/package/@rive-app/webgl) * [webgl (advanced)](https://www.npmjs.com/package/@rive-app/webgl-advanced) **See [Canvas vs WebGL](/docs/_sites/rive/runtimes/getting-started#) for more on the differences between these dependencies.** React All React runtimes are distributed via npm: * [GitHub](https://github.com/rive-app/rive-react) * [canvas](https://www.npmjs.com/package/@rive-app/react-canvas) * [canvas-lite](https://www.npmjs.com/package/@rive-app/react-canvas-lite) * [webgl](https://www.npmjs.com/package/@rive-app/react-webgl) Apple The Apple runtime is distributed by: * [Swift Package Manager](https://swiftpackageregistry.com/rive-app/rive-ios) * Cocoapods [GitHub](https://github.com/rive-app/rive-ios) Android * [Maven](https://search.maven.org/artifact/app.rive/rive-android) * [GitHub](https://github.com/rive-app/rive-android) Flutter * [pub.dev](https://pub.dev/packages/rive) * [GitHub](https://github.com/rive-app/rive-flutter) C++ (Mac/Linux/Windows) * [GitHub](https://github.com/rive-app/rive-cpp) C# * [UWP (Recommended)](https://dev.azure.com/dotnet/CommunityToolkit/_artifacts/feed/CommunityToolkit-Labs/NuGet/CommunityToolkit.Labs.Uwp.RivePlayer/overview/0.0.1) * [WinUI](https://dev.azure.com/dotnet/CommunityToolkit/_artifacts/feed/CommunityToolkit-Labs/NuGet/CommunityToolkit.Labs.WinUI.RivePlayer/overview/0.0.1) * (High-level API) [RivePlayer Github](https://github.com/CommunityToolkit/Labs-Windows/blob/main/labs/RivePlayer/samples/RivePlayer.Samples/RivePlayer.md) * (Low-level API) [RiveSharp Github](https://github.com/rive-app/rive-sharp) **High-level APIs**: * [WinUI (High-level)](https://dev.azure.com/dotnet/CommunityToolkit/_artifacts/feed/CommunityToolkit-Labs/NuGet/CommunityToolkit.Labs.WinUI.RivePlayer/overview/0.0.1) React Native * [npm](https://www.npmjs.com/package/rive-react-native) * [GitHub](https://github.com/rive-app/rive-react-native) [​](#community-runtimes) Community Runtimes ---------------------------------------------- | **Runtime** | **Author** | **Link** | | --- | --- | --- | | QtQuick | [basysKom](https://github.com/basysKom) | [Github](https://github.com/basysKom/RiveQtQuickPlugin) | | UWP (C#) | Windows Community Toolkit | [Github](https://github.com/CommunityToolkit/Labs-Windows/blob/main/components/RivePlayer/samples/RivePlayer.md) | [​](#handling-riv-files) Handling .riv Files ----------------------------------------------- When checking in `.riv` files with Git, consider adding a `.gitattributes` file and marking `.riv` files as `binary` files to prevent Git from changing line endings when these files are checked in. Otherwise, some platforms may accidentally corrupt the `.riv` file where there are line returns (i.e. Windows CRLF line endings vs LF line endings) and cause issues at runtime when the file is read. .gitattributes *.riv binary [​](#licensing) Licensing ---------------------------- Our official runtimes are all open-source and licensed under the [MIT License](https://choosealicense.com/licenses/mit/) . You’re free to use them for personal and commercial applications. [​](#contributing) Contributing ---------------------------------- Since all the runtimes are open-source, we encourage you to dive in and take a look around! If you see something missing or feel you can improve upon it, then fork it! Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/runtimes/getting-started.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /runtimes/getting-started) [Sizes](/docs/runtimes/runtime-sizes) On this page * [How to use this guide](#how-to-use-this-guide) * [Installation and Getting Started](#installation-and-getting-started) * [Animation Control and Interaction](#animation-control-and-interaction) * [Other Sections](#other-sections) * [Versioning](#versioning) * [Official Runtimes](#official-runtimes) * [Community Runtimes](#community-runtimes) * [Handling .riv Files](#handling-riv-files) * [Licensing](#licensing) * [Contributing](#contributing) --- # Best Practices - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Getting Started Best Practices [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) Rive is built to efficiently play interactive graphics in the editor and at runtime in applications and games. However, poorly optimized animations can consume significant resources and cause poor performance, particularly on low-end devices. In the following sections, we will outline important considerations and tips for maintaining optimal performance and minimal resource utilisation both during design/animate time in the Rive editor, as well as during runtime in applications. We recommend continuous testing of your animations on your target devices/platforms. [​](#design-time-considerations) Design-time Considerations -------------------------------------------------------------- See below for some techniques to employ in the Rive editor to keep Rive performant: ### [​](#raster-assets) Raster Assets Raster assets could have a significant impact on runtime memory and file size. When using images, you should strike a balance between image quality, image dimension, and file size. Considerations include resizing images to fit the desired display area and choosing an appropriate compression level to reduce file size while maintaining acceptable visual quality. **Image Size/Dimension** It is crucial to ensure that the size of an image asset is appropriate for its usage. For instance, avoid using an image with large dimensions (e.g., 8192 x 7022) when it will be displayed in a small section of your artboard (e.g., sized 100 x 100). Using large images can quickly consume device memory. This is particularly true on mobile devices where applications are more memory-constrained. Even if these images are compressed, their dimensions will still impact the amount of application memory used. #### [​](#compression) Compression Compression involves reducing the file size by employing various algorithms to discard some image data. You can compress images directly from the Rive editor, which means you maintain the original image but compress the images for runtime use. If the asset is embedded in the animation, this will reduce the file size of the exported riv. #### [​](#other-considerations) Other Considerations * If you’re importing assets for reference only, ensure they are deleted before exporting the .riv file to ensure the asset doesn’t get bundled in. * Depending on your target device/platform, it may make sense to have multiple different raster assets. For example, use smaller images when targeting mobile vs. desktop. * See our docs on [Loading Assets](/docs/runtimes/loading-assets) , to dynamically load in assets at runtime, instead of embedding the files in the exported `.riv` binary. ### [​](#importing-lottie-files) Importing Lottie Files While Rive provides a Lottie converter for easy .riv file export, recreating graphics and animations directly in Rive often results in significantly smaller file sizes. If you’re importing a Lottie file, you can further reduce the .riv file size by converting images from PNG to WebP and choosing to export only the necessary glyphs for font files. Additionally, you can [load assets out of band](/docs/_sites/rive/getting-started/best-practices#out-of-band-assets) to reuse fonts and images across multiple .riv files, optimizing storage. Working directly in Rive is generally preferable as it allows for file optimization based on your animation requirements. For instance, using bones and constraints to create rigs will result in fewer keys in the animation compared to converting directly from Lottie. ### [​](#idle-animations) Idle Animations If you have idle animation states where the graphic remains static at a given state in a state machine, consider using a “one-shot” animation and ensuring that the timeline animation is not unnecessarily long. At runtime in a state machine, if no looping animations or active blend states are playing, the runtime will preemptively “pause” itself until a state machine input or Rive Listener triggers the next transition in the state machine. This is useful because resource consumption (i.e., CPU usage) may decrease to the point of making Rive impact on resources negligent on applications. Scenarios: Icons, buttons, graphics that only animate based on user interaction, etc. ### [​](#using-solos) Using Solos A [Solo](/docs/editor/manipulating-shapes/solos) is similar to a group but with the added ability to toggle the rendering of nested objects. It functions like a radio button, deactivating other objects on the same level. One common use case for Solos is creating different skins for a character that can be easily toggled on and off. Using Solos is much faster than individually animating the opacity of each object. Additionally, it allows the editor and runtimes to optimize your animation by not computing/rendering the deactivated Solos. ### [​](#blend-states) Blend States Similar to the guidance in “Idle Animations”, ensure blend states transition out to other states, or move to an exit state when finished if possible. When blend states are activated at runtime, Rive will continually play the state machine, even if it is not necessary anymore. Providing some transition away from the blend state when complete ensures Rive has one less “active” animation to track when considering whether to self-pause at any point while playing the state machine. [​](#runtime-considerations) Runtime Considerations ------------------------------------------------------ See below for some techniques to employ when using Rive runtimes in application to keep Rive performant: ### [​](#out-of-band-assets) Out-of-band Assets See our documentation on [Loading Assets](/docs/runtimes/loading-assets) . This feature allows you to dynamically load and replace assets (such as fonts, images, and audio) at runtime through code and provide the resources to your Rive graphic. This has the following benefits: * Reduces the exported `.riv` binary size. * Assets can be reused across multiple Rive files or other areas of your application. * Assets can be preloaded and cached to be more readily available before displaying a Rive graphic. ### [​](#pausing-programmatically) Pausing Programmatically There are several cases where you may want to pause a running animation/state machine configured with Rive programmatically. By pausing the Rive graphic at runtime, you may notice that Rive’s impact on the application has negligible resource consumption (i.e., CPU). 1. Rive graphic is offscreen a. If a Rive graphic is scrolled offscreen and does not need to continue playing, call the `pause` API on the respective runtime you’re using to prevent Rive from continuing to animate and consume resources when not needed. b. Call the `play` API to continue playing Rive when the graphic needs to continue animating if back onscreen. 2. Accessibility * If a user has set in device settings that they prefer reduced motion, you may want to read this property at runtime and programmatically either call `pause` or set `autoplay: false` with the Rive runtime to ensure these users have reduced motion when navigating the application. Alternatively, different artboards or state machines can be created and loaded at runtime that function differently. 3. State machine is idle with static graphics a. `Pause` when the Rive graphic is idling while it waits for a transition in the state machine from user interaction, data resolving, etc. ### [​](#low-level-runtime) Low-level runtime Most runtimes have both a high-level API for ease of use and a more “advanced” low-level runtime counterpart, which allows you to have more granular control of how animations/state machines play (”advance”) over time. You can load a Rive file (`.riv`) using low-level runtimes and manage its resources. With this pattern, you can dynamically create multiple instances of a given Artboard (and its associated state machine). This is useful if you’re creating a whole “scene” with Rive content that draws to the same canvas/view and needs to efficiently manage how each entity advances over time. For example, if you render 100 instances of an artboard you may want to control when and how each of these entities animates over time, as well as when it stops and removes itself from the scene, thus being more strategic about how much Rive utilizes in resources to draw each frame. See runtime-specific documentation here: [Low-level API Usage\ -------------------\ \ While the JS runtime offers a high-level API that allows for integrating Rives into web applications quickly, the runtime also allows for a smaller advanced low-level API that allows for constructing and controlling Rive(s) in your own render loop.](../runtimes/web/low-level-api-usage) [Custom Painter\ --------------\ \ You can manage advancing and drawing an artboard yourself by using a CustomPainter. This will give you more control at a painting level, allowing you to:](../runtimes/flutter/custom-painter) ### [​](#low-end-devices) Low-end devices Rive will try to run performantly across all browsers/devices, but if you can, test how your application performs on resource-constrained devices with your specific Rive graphics running. You may find that for a given screen, Rive files that include heavily-animated graphics might be overkill for what is truly needed and decide to display static Rive graphics (i.e., autoplay: false) or reduce the amount of Rive entities animating at any given point. A strategy for lower-end devices could be to create an alternative artboard or state machine with reduced usage/motion, that can dynamically be loaded in at runtime when running on older devices. Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/getting-started/best-practices.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /getting-started/best-practices) [Introduction](/docs/getting-started/introduction) [Quick Links](/docs/getting-started/quick-links) On this page * [Design-time Considerations](#design-time-considerations) * [Raster Assets](#raster-assets) * [Compression](#compression) * [Other Considerations](#other-considerations) * [Importing Lottie Files](#importing-lottie-files) * [Idle Animations](#idle-animations) * [Using Solos](#using-solos) * [Blend States](#blend-states) * [Runtime Considerations](#runtime-considerations) * [Out-of-band Assets](#out-of-band-assets) * [Pausing Programmatically](#pausing-programmatically) * [Low-level runtime](#low-level-runtime) * [Low-end devices](#low-end-devices) --- # Learn Rive - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Tutorials Learn Rive [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) [​](#rive-for-absolute-beginners) Rive for ABSOLUTE BEGINNERS ---------------------------------------------------------------- [​](#rive-101) Rive 101 -------------------------- [​](#community) Community ---------------------------- [School of Motion\ ----------------\ \ **Rive Academy: Volume 1**\ \ Rive Academy: Volume 1 is the ultimate introduction to the world of interactive animation built with Rive. You’ll learn how to design, animate, and prototype interactive motion design that you can ship anywhere. By the end of the course you’ll be ready to use Rive in production, and go further in more advanced courses.](https://www.schoolofmotion.com/courses/rive-academy-volume-1) [Motion Design School\ --------------------\ \ **Rive: Interactive Motion**\ \ Discover the web-based software revolutionizing interactive experiences. Build 2 big faux 3d spaces filled with awesome interactive setups. Learn on practise all Rive techniques and use it in full power.](https://motiondesign.school/courses/rive-interactive-motion/) Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/tutorials/learn-rive.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /tutorials/learn-rive) [Awesome Rive](/docs/tutorials/awesome-rive) On this page * [Rive for ABSOLUTE BEGINNERS](#rive-for-absolute-beginners) * [Rive 101](#rive-101) * [Community](#community) --- # Unreal - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Unreal Unreal [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) The Rive Unreal runtime is currently in **Alpha** for Mac and Windows versions of Unreal. We’re hoping to gather feedback about the API and feature-set as we expand platform support. Please reach out to us through our [Support Channel](https://community.rive.app/c/support/) . See ‘**Feature Support**’ below for an updated list of Rive features in Unreal. [​](#rendering-support) Rendering Support -------------------------------------------- The rive-unreal runtime uses the [Rive Renderer](https://rive.app/renderer) and supports the following: * Metal on Mac * Metal on iOS * Vulkan, D3D11, and D3D12 on Windows * OpenGL on Android (Note: be sure to uncheck “Support Vulkan” in Project Settings.) Planned support for: * Vulkan on Linux and Android. [​](#bug-reports) Bug Reports -------------------------------- If you encounter any errors or unexpected crashes while integrating the Rive Unreal runtime, we recommend logging a detailed issue directly to the [rive-unreal](https://github.com/rive-app/rive-unreal/issues) repository. [​](#feature-support) Feature Support ---------------------------------------- The rive-unreal runtime uses the [Rive C++ runtime](https://github.com/rive-app/rive-cpp) . For more details on runtime support, see the [Feature Support](/docs/feature-support) page. Refer to the following table for what is currently supported in the Unreal runtime. | **Feature** | **Supported** | | --- | --- | | [Animation Playback](./getting-started) | ✅ | | [Fit & Alignment​](/docs/runtimes/layout) | ✅ | | Listeners​ | ✅ | | [Setting State Machine Inputs​](./state-machines#setting-inputs) | ✅ | | [Listening to Events](./rive-events) | ✅ | | [​Updating text at runtime​](./text#update-rive-text-in-unreal) | ✅ | | [​Out-of-band assets​](./loading-assets) | ✅ | | ​Procedural rendering​ | Coming soon | | PNG images | ✅ | | WEBP and JPEG images | ✅ | Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/game-runtimes/unreal/unreal.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /game-runtimes/unreal/unreal) [Getting Started](/docs/game-runtimes/unreal/getting-started) On this page * [Rendering Support](#rendering-support) * [Bug Reports](#bug-reports) * [Feature Support](#feature-support) --- # Quick Links - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Getting Started Quick Links [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) [Get the runtimes](/docs/runtimes/getting-started) ​[Join us on Discord](https://discord.gg/FGjmaTr) ​ ​[Follow us on Twitter](https://twitter.com/rive_app) ​[Check out our YouTube page](https://www.youtube.com/@Rive_app/featured) Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/getting-started/quick-links.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /getting-started/quick-links) [Best Practices](/docs/getting-started/best-practices) [Community Overview](/docs/community/community-overview) --- # Marketplace Overview - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Community Marketplace Overview [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) The Rive Marketplace is a place where creators can share their files, get feedback, and learn by opening others’ files directly in the Rive editor. Marketplace files are all shared under a [CC BY](https://creativecommons.org/licenses/by/4.0/) license. [​](#remixing) Remixing -------------------------- A Remix is a copy of another user’s file. It uses their file as a starting point for a new file in your account. Remixing encourages sharing, and you’ll probably learn some new techniques too! To Remix a file from the Marketplace, find one you like, click on the thumbnail, and use the remix button on the right side. The file will open in the editor, and a new copy is added to your file browser. Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/community/marketplace-overview.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /community/marketplace-overview) [Community Overview](/docs/community/community-overview) [Rive Experts](/docs/community/rive-experts) On this page * [Remixing](#remixing) --- # Pricing - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Account Admin Pricing [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) Rive is free for individuals and supports paid plans for teams. Teams allow you to create a shared space where you and other team members can collaborate in real-time, no matter where you are. [​](#individual-free-plan) Individual Free plan -------------------------------------------------- Every user that signs up for Rive has a free individual space. The free account with Rive has the following: * Unlimited personal files * 3 collaborative files * 10 MB file size limit per image you upload into Rive * No access to revision history or deleted files * Unable to export a .rev file * Unable to import a .riv file * No share links * Cannot use custom fonts **Free** [​](#voyager) Voyager ------------------------ The Voyager plan is for single users or multiple users who want to collaborate on files. * Unlimited files and projects * Unlimited history * Import custom fonts and audio * Unable to import a .riv file * Team collaboration * Batch export files for runtime * Priority support **$32** / user/month billed yearly **$49** / user/month billed monthly [​](#enterprise-plan) Enterprise plan ---------------------------------------- Enterprise plans are for companies with more than $10M in annual revenue. * Dedicated Slack * Dedicated support * Early access to features * Onboarding & training * Ongoing best practices and reviews * Centralized billing [Contact us](https://rive.atlassian.net/servicedesk/customer/portal/3/group/4/create/34) for a quote. [​](#education-and-non-profit-discounts) Education and non-profit discounts ------------------------------------------------------------------------------ We do not offer educational or non-profit pricing at this time. Our free plan is available to anyone who wishes to try Rive. Free plans allow you to work on a maximum of 3 files at a time, and there is a 10 MB file size limit per each image you upload into Rive. **NOTE: Our [Pricing page](https://rive.app/pricing) is the most reliable source for up-to-date pricing information and account features.** Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/account-admin/pricing.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /account-admin/pricing) [Reactivating a Canceled Workspace](/docs/account-admin/workspaces/reactivating-a-canceled-workspace) [Terms of Service](/docs/legal/terms-of-service) On this page * [Individual Free plan](#individual-free-plan) * [Voyager](#voyager) * [Enterprise plan](#enterprise-plan) * [Education and non-profit discounts](#education-and-non-profit-discounts) --- # Interface Overview - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Interface Overview Interface Overview [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) [​](#toolbar) Toolbar ------------------------ The Toolbar displays the tools you have available to manipulate and create items on the stage. In addition to these tools, the Toolbar houses a variety of options to allow you to customize the look of your file, set your main artboard, and export or share your file. Read more on the Toolbar page. [Toolbar\ -------\ \ Access design and animation tools from the Rive Editor toolbar](./toolbar) [​](#hierarchy) Hierarchy ---------------------------- All the objects, assets, controls, and animations that make up your file appear in the Hierarchy. [Hierarchy\ ---------\ \ The Hierarchy is a tree view, which shows both the parent-child relationships between objects on the stage as well as the order in which they are rendered. Learn about the Hierarchy by either watching the video or reading more below.](./hierarchy) [​](#inspector) Inspector ---------------------------- The Inspector allows you to adjust the properties for the currently selected object. Read more on the Inspector page. [Inspector\ ---------\ \ An object’s editable properties can be found in the Inspector. The Inspector changes dynamically depending on your selected object and where you are in the editor.](./inspector) [​](#stage) Stage -------------------- The Stage refers to the central area between the Toolbar, the Hierarchy, and the Inspector. Here you can create the artboards that are the foundations of your designs and animations within Rive. Read more on the Stage page: [Stage\ -----\ \ The Stage is an infinite canvas where you can place artboards containing all your graphics.](./stage) [​](#timeline) Timeline -------------------------- The Timeline surfaces from the bottom of the screen upon entering animate mode. Here you can create new animations, access playback controls, and settings, and set keyframes for object parameters. Select an animation from the left-hand list to switch between the respective timelines. Read more on the Timeline page: [Timeline\ --------\ \ The Rive interface displays a timeline with playback controls and options for the current animation in Animate mode. A list of all animations is displayed to the left of the Timeline. Keep in mind that these are animations for the currently active artboard.](../animate-mode/timeline) [​](#state-machine-graph) State Machine graph ------------------------------------------------ When a state machine is selected, the Timeline is replaced by a graph. Read more on the State Machine page. [State Machine\ -------------\ \ State Machines are a visual way to connect animations together and define the logic that drives the transitions.](../state-machine/state-machine) Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/editor/interface-overview/overview.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /editor/interface-overview/overview) [Toolbar](/docs/editor/interface-overview/toolbar) On this page * [Toolbar](#toolbar) * [Hierarchy](#hierarchy) * [Inspector](#inspector) * [Stage](#stage) * [Timeline](#timeline) * [State Machine graph](#state-machine-graph) --- # Feature Support - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Feature Support [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) As our Rive editor adds features for making Rive assets, sometimes our runtimes need to be updated to support these improvements. This may mean new or changed APIs. Check below to see if a given feature used by your Rive asset is supported yet at runtime. We generally recommend that your project uses the latest version of the runtimes to take advantage of follow-on bug fixes and new features. Certain features require the use of the Rive Renderer at runtime. See our documentation on [choosing a renderer](/docs/runtimes/choose-a-renderer) . Currently, the only feature that requires the Rive Renderer is **[Vector Feathering](https://rive.app/blog/introducing-vector-feathering) **. We may include notes on migrating to newer versions if a new feature warrants recent API changes. Right to Left Layouts & Text | **Runtime** | **Version** | | --- | --- | | Web | ✅ `2.26.7+` | | React | ✅ `4.18.6+` | | React Native | ✅ `9.2.1+` | | Flutter | Not yet supported | | Flutter (rive\_native) | ✅ `v0.0.1-dev.7+` | | Apple | ✅ `6.7.4+` | | Android | ✅ `10.0.4` | | C++ | ✅ Supported | | Unity | ✅ `0.3.5+` | | Unreal | ✅ `0.3.0a-gh` | Text Follow Path | **Runtime** | **Version** | | --- | --- | | Web | ✅ `2.26.7+` | | React | ✅ `4.18.6+` | | React Native | ✅ `9.2.1+` | | Flutter | 🚧 Coming soon | | Flutter (rive\_native) | ✅ `v0.0.1-dev.7+` | | Apple | ✅ `6.7.4+` | | Android | ✅ `10.0.4` | | C++ | ✅ Supported | | Unity | ✅ `0.3.5+` | | Unreal | ✅ `0.3.0a-gh` | Data Binding See [Data Binding Overview](/docs/editor/data-binding/overview) and [Data Binding for Runtimes](/docs/runtimes/data-binding) . | **Runtime** | **Version** | | --- | --- | | Web | ✅ `2.26.6+` | | React | 🚧 Partial support; hooks coming soon | | React Native | 🚧 Coming soon | | Flutter | 🚧 Coming soon | | Flutter (rive\_native) | ✅ `0.0.1-dev.8+` | | Apple | ✅ `6.8.0+` | | Android | ✅ `10.1.0+` | | C++ | ✅ Supported | | Unity | ✅ `0.3.6-canary.27` | | Unreal | ✅ `0.3.0a-gh` | Vector Feathering This feature is only supported with the Rive Renderer. See [Choose a Renderer](/docs/runtimes/choose-a-renderer) . | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/webgl2`) | ✅ `2.26.0+` | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | Not supported | | React (`@rive-app/react-webgl2`) | ✅ `4.18.0+` | | React (`@rive-app/react-canvas` and `@rive-app/react-webgl`) | Not supported | | React Native | ✅ `9.0.0+` | | Flutter | Not yet supported | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `6.6.0+` | | Android | ✅ `10.0.0+` | | C++ | ✅ Supported | | Unity | ✅ `0.3.3-canary.72+` | | Unreal | ✅ `0.3.0a-gh` | N-Slicing See [N-Slicing](/docs/editor/layouts/n-slicing) . | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `2.23.11+` | | React | ✅ `4.16.7+` | | React Native | ✅ `8.2.0+` | | Flutter | Not yet supported | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `6.4.0+` | | Android | ✅ `9.12.0+` | | C++ | ✅ Supported | | Unity | ✅ `0.2.2-canary.22+` | | Unreal | ✅ `0.2.2+` | Layouts Allows Rive to automatically update the artboard size as the underlying view/canvas/widget/texture size changes. See [Layouts](/docs/editor/layouts/layouts-overview) . | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `2.23.3+` | | React | ✅ `4.16.0+` | | React Native | ✅ `8.1.0+` | | Flutter | Not yet supported | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `6.3.0+` | | Android | ✅ `9.10.0+` | | C++ | ✅ Supported | | Unity | ✅ `0.2.1+` | | Unreal | ✅ `0.2.1+` | Fallback Fonts Allows Rive to use a fallback font if a glyph is not available. A default font is automatically chosen, or you can optionally configure the desired fallback font based on various options. See [Fallback Fonts](/docs/runtimes/text#fallback-fonts) . | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | Not yet supported | | React | Not yet supported | | React Native | Not yet supported | | Flutter | Not yet supported | | Flutter (rive\_native) | Not yet supported | | Apple | ✅ `6.1.0+` | | Android | ✅ `9.7.0+` | | C++ | ✅ Supported | | Unity | Not supported | | Unreal | Not Supported | Nested Text Enables setting text on nested artboards. See [Nested Text](/docs/runtimes/text#read-update-nested-text-runs-at-runtime) . | **Runtime** | **Version** | | | --- | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `2.21.0+` | | | React | ✅ `4.14.0+` | | | React Native | ✅ `5.8.2+` | | | Flutter | ✅ `0.13.7+` | | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | | Apple | ✅ `6.1.0+` | | | Android | ✅ `9.8.0+` | | | C++ | ✅ Supported | | | Unity | ✅ Supported | | | Unreal | ✅ `0.1.14+` | | Nested Inputs Enables setting inputs on nested artboards. See [Nested Inputs](/docs/runtimes/state-machines#nested-inputs) . | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `2.17.3+` | | React | ✅ `4.11.3+` | | React Native | ✅ `7.2.0+` | | Flutter | ✅ `0.13.7+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `5.13.2+` | | Android | ✅ `9.4.2+` | | C++ | ✅ Supported | | Unity | ✅ `0.1.174+` | | Unreal | ✅ Supported | Randomization Enables randomizing transitions between animations and customizing the probability. | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `2.15.6+` | | React | ✅ `4.9.5+` | | React Native | ✅ `7.0.3+` | | Flutter | ✅ `0.13.4+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `5.11.5+` | | Android | ✅ `9.3.5+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ Supported | Audio See [Rive Events](/docs/runtimes/rive-events) and [Audio Events](/docs/editor/events/audio-events) . | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `2.15.6+` | | React | ✅ `4.9.5+` | | React Native | ✅ `7.0.3+` | | Flutter | ✅ `0.13.4+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `5.11.5+` | | Android | ✅ `9.3.5+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ Supported | Nested Inputs and Nested Events See [Nested Artboards](/docs/editor/fundamentals/nested-artboards) . | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `2.7.0+` | | React | ✅ `4.5.0+` | | React Native | ✅ `6.2.0+` | | Flutter | ✅ `0.12.3+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `5.6.0+` | | Android | ✅ `8.7.0+` | | C++ | ✅ Supported | | Unity | ✅ Supported | Out-of-band Assets See [Loading Assets](/docs/runtimes/loading-assets) . | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `2.7.0+` | | React | ✅ `4.5.0+` | | React Native | ✅ `8.4.0+` | | Flutter | ✅ `0.12.0+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `5.7.0+` | | Android | ✅ `8.6.1+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ `0.1.14+` | Events See [Rive Events](/docs/runtimes/rive-events) . | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `2.4.3+` | | React | ✅ `4.3.3+` | | React Native | ✅ `6.1.0+` | | Flutter | ✅ `0.11.17+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `5.3.1+` | | Android | ✅ `8.4.0+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ Supported | Text See [Text](/docs/runtimes/text) . | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `2.1.3+` | | React | ✅ `4.1.3+` | | React Native | ✅ `6.0.3+` | | Flutter | ✅ `0.11.14+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `5.1.5+` | | Android | ✅ `8.1.3+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ Supported | Note that we will proactively update the above versions as additional APIs on runtimes expose ways to dynamically set text (high and low-level), among other related features. Follow Path | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `1.2.4+` | | React | ✅ `3.0.55+` | | React Native | ✅ `5.0.0+` | | Flutter | ✅ `0.11.6+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `4.0.5+` | | Android | ✅ `6.0.1+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ Supported | Interpolation on States | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `1.2.1+` | | React | ✅ `3.0.54+` | | React Native | ✅ `4.1.2+` | | Flutter | ✅ `0.11.4+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `4.0.4+` | | Android | ✅ `5.1.5+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ Supported | Joysticks | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `1.1.9+` | | React | ✅ `3.0.49+` | | React Native | ✅ `4.1.0+` | | Flutter | ✅ `0.11.1+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `4.0.1+` | | Android | ✅ `5.0.0+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ Supported | Solos | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `1.1.2+` | | React | ✅ `3.0.42+` | | React Native | ✅ `4.0.4+` | | Flutter | ✅ `0.10.4+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `3.1.9+` | | Android | ✅ `4.4.0+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ Supported | Speed on States | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas`) | ✅ `1.0.102+` | | Web (`@rive-app/webgl`) | ✅ `1.0.98+` | | React | ✅ `3.0.38+` | | React Native | ✅ `4.0.1+` | | Flutter | ✅ `0.10.3+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `3.1.7+` | | Android | ✅ `4.2.7+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ Supported | Graph Editor | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas`) | ✅ `1.0.97+` | | Web (`@rive-app/webgl`) | ✅ `1.0.93+` | | React | ✅ `3.0.34+` | | React Native | ✅ `4.0.1+` | | Flutter | ✅ `0.10.0+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `3.1.3+` | | Android | ✅ `4.2.2+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ Supported | Listeners | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas`) | ✅ `1.0.65+` | | Web (`@rive-app/webgl`) | ✅ `1.0.62+` | | React | ✅ `3.0.6+` | | React Native | ✅ `3.0.38+` | | Flutter | ✅ `0.9.0+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `2.0.21+` | | Android | ✅ `3.0.8+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ Supported | No extra code is needed to support listeners, and you do not need to invoke listeners via event listener/detector code at runtime. If the Rive file has a listener as part of the state machine at design time, the runtime library has implicit event listener/detector code to trigger the listeners at the appropriate time. [​](#notes) Notes -------------------- * `rive-react` - Starting in `v3.0.0` the React runtime has split into two different published packages; `@rive-app/react-canvas` and `@rive-app/react-webgl`, each wrapping the respective `@rive-app/canvas` and `@rive-app/webgl` web runtimes. We recommend using `@rive-app/react-canvas` * `@rive-app/webgl` - There is a new flag here, `useOffscreenRenderer` which is off by default. This flag will allow you to work around the various browser constraints on the number of WebGL contexts created. We **highly recommend** setting this option to `true` when instantiating Rive in the high-level API. See more here: [https://github.com/rive-app/rive-wasm#other-notes](/docs/_sites/rive/feature-support#nested-inputs-and-nested-events) . * `rive-react-native` - Starting in `v3.0.0`, it will have a minimum iOS `14.0` support Mesh Deformation | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas`) | ✅ `1.0.47+` | | Web (`@rive-app/webgl`) | ✅ `1.0.44+` | | React | ✅ `3.0.1+` | | React Native | ✅ `2.1.37+` | | Flutter | ✅ `0.8.4+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `1.0.18+` | | Android | ✅ `2.0.24+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ Supported | [​](#notes-2) Notes ---------------------- * `rive-react` - Starting in `v3.0.0` the React runtime has split into two different published packages; `@rive-app/react-canvas` and `@rive-app/react-webgl`, each wrapping the respective `@rive-app/canvas` and `@rive-app/webgl` web runtimes. We recommend using `@rive-app/react-canvas` * `@rive-app/webgl` - There is a new flag here, `useOffscreenRenderer` which is off by default. This flag will allow you to work around the various browser constraints on the number of WebGL contexts created. We **highly recommend** setting this option to `true` when instantiating Rive in the high-level API. See more here: [https://github.com/rive-app/rive-wasm#other-notes](/docs/_sites/rive/feature-support#nested-inputs-and-nested-events) * Regarding web-based runtimes and meshes: * Keep in mind that as meshes grow across larger screen areas, they become more resource-heavy on some devices * Avoid complex transforms repeatedly on the `` elements that display Rive animations (or `` in the React runtimes) * We recommend using `@rive-app/webgl` to display mesh on Firefox for best performance Raster Assets | **Runtime** | **Version** | | --- | --- | | Web (`@rive-app/canvas` and `@rive-app/webgl`) | ✅ `1.0.2+` | | React | ✅ `0.0.28+` | | React Native | ✅ `2.1.36+` | | Flutter | ✅ `0.8.1+` | | Flutter (rive\_native) | ✅ `>= 0.0.1-dev.6` | | Apple | ✅ `1.0.1+` | | Android | ✅ `2.0.5+` | | C++ | ✅ Supported | | Unity | ✅ Supported | | Unreal | ✅ Supported | [​](#notes-3) Notes ---------------------- * For the web runtimes, we have deprecated `rive-js` and moved to a multi-package setup for a JS runtime that runs against the `context2d` and `webgl` renderer: * Note that the new web runtime packages all support raster assets, and the high-level JS API did not change in this migration * `@rive-app/canvas` - Renders Rive with a `CanvasRenderingContext2D` renderer * `@rive-app/webgl` - Renders Rive with a `WebGLRenderingContext` renderer. * We recommend using the `@rive-app/canvas` dependency, but [check here](https://github.com/rive-app/rive-wasm/blob/master/WEB_RUNTIMES.md) to see which might fit your needs better Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/feature-support.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /feature-support) --- # Terms of Service - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Legal Terms of Service [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) Last Updated: December 12, 2024 The following Terms of Service (the **“Terms”**) form a binding agreement between you, in your individual capacity, or on behalf of the entity you represent, as applicable (the **“User,” “you,”** and **“your”**), and Rive, Inc., a Delaware corporation (**“Rive”**, **“we”** and **“us”**), and govern your use of the internet-based applications, software, services and websites offered by Rive (the **“Service”)**. [​](#a-account-terms) A. Account Terms ----------------------------------------- ### [​](#1-acceptance-of-the-terms) 1\. Acceptance of the Terms By creating an account on the Service (an **“Account”**), accepting an invitation to join a Team created by another User as a Team Member, or otherwise using the Service, you agree, as an individual or on behalf of the entity that you represent, to be bound by these Terms. ### [​](#2-account-registration) 2\. Account Registration You may access certain portions of our Service on a limited, view-only basis without creating an Account or logging in, such as, for example, when a user shares Content publicly. But in order to use most functions of the Service, you must create an Account and become a registered User. You must provide us with complete and accurate information and keep it up-to-date, including a valid email address and, if you purchase a Subscription, all required billing information. If you create an account on behalf of an entity, you represent and warrant that you have the authority to enter into these Terms on behalf of such entity. If you create an Account on behalf of an entity but do not have the authority to bind the entity to these Terms, then you as an individual are the User. ### [​](#3-account-requirements) 3\. Account Requirements You may use the Services only if you are 13 years or older and are not barred from using the Services under applicable law. You may not share your Account or login credentials with other people. You may not use Rive in violation of export control or sanctions laws of the United States or any other applicable jurisdiction. You may not use Rive if you are or are working on behalf of a Specially Designated National (SDN) or a person subject to similar blocking or denied party prohibitions administered by a U.S. government agency. ### [​](#4-account-security) 4\. Account Security You are responsible for maintaining the confidentiality of your account credentials and must notify us immediately if you become aware of any unauthorized access to or use of your Account. You are responsible for all activity that occurs under your Account. [​](#b-teams) B. Teams ------------------------- ### [​](#1-working-with-a-team) 1\. Working with a Team You may use the Service in your own personal space, or you can create a shared team workspace (a **“Team”**) that allows you to use the Service collaboratively with other Users who you invite to the Team (each, a **“Team Member”**). ### [​](#2-team-administration) 2\. Team Administration Each Team must have at least one User who is designated as the administrator of that Team (the **“Admin”**). By default, the User who creates a Team (the **“Owner”**) will be the Admin of the Team, but the Admin may be changed, or additional Admins may be added, by the Owner at any time. Team Owners and Admins will have administrative permissions to add or remove Team Members, manage the rights and permissions of Team Members with respect to the Team, add or remove Content from the Team space and control billing and payments for the Team. ### [​](#3-access-to-team-content) 3\. Access to Team Content Team Members may access and view the Content saved to a Team space (**“Team Content”**) subject to the permissions and access settings determined by the Admins. Any Team Members that are given editing permissions can also modify and create derivative works based upon the Team Content, as permitted by the functionality of the Service. By adding Team Members to a Team, you hereby authorize us to share all Team Content (whether completed or work in progress) with all the Team Members in that Team. You acknowledge sole responsibility for and assume all risk arising from sharing your Team Content with the Team Members. You understand that anyone that has access to your Team Content can copy and save their own version of it and privately edit it. ### [​](#4-contributions-to-team-content) 4\. Contributions to Team Content If you accept an invitation to join a Team as a Team Member, then you acknowledge and agree that the Content you create, upload to, or modify on the Team space will be made available to the other Team Members as Team Content. You hereby grant and agree to grant, or permit Rive to grant, to your Team Members the right to copy, distribute, modify and create derivative works based upon your Team Content as permitted by the functionality of the Services. Additionally, you acknowledge and agree that the Team Owner and Admin may make Team Content available to other users under various licenses and permissions as described in Section D-6, and you hereby grant and agree to grant, or permit Rive to grant, to other users outside of the Team the right to copy, distribute, modify and create derivative works based upon your Team Content as determined by the Team Owner and/or Admin. [​](#c-subscriptions-and-payment) C. Subscriptions and Payment ----------------------------------------------------------------- ### [​](#1-pricing) 1\. Pricing The Service is free for individual Accounts, subject to these Terms. Creation of a Team requires you to purchase a subscription to access and use the Service for such Team (a **“Subscription”**). Your rights and the features of the Service available to your Team may depend upon the type and level of Subscription purchased. When you purchase a Subscription, you may select to be billed monthly or annually, and you will be billed immediately for the applicable interval. Pricing, payment terms and other Subscription details are described at [Rive Pricing](/docs/account-admin/pricing) . ### [​](#2-upgrades%2C-downgrades%2C-and-changes) 2\. Upgrades, Downgrades, and Changes You may add additional Team Members to a Team within the Service interface. You will be charged for any such additional Team Members at a prorated rate for the remaining portion of the then-current billing period. You may change the type of Subscription at any time by (i) emailing us at [support@rive.app](mailto:support@rive.app) and following any instructions, if any, we provide to you in response to your change request or (ii) initiating a change through your Account settings within the Service. ### [​](#3-payment-methods) 3\. Payment Methods a. **Credit Card Authorization.** By purchasing a Subscription, you give us permission to charge your credit card or other approved method of payment for all fees incurred by you for your Subscription. Rive does not store your credit card information itself but instead relies on its third-party credit card processor. By purchasing a Subscription, you give us permission to share the applicable payment information with our third-party credit card processor. b. **Invoicing.** Rive may, in its sole discretion, agree in writing to permit certain users to pay via invoice. Any such invoice will be due within 15 days of receipt thereof, payable in U.S. Dollars. If you fail to make payment on time, Rive reserves the right, in addition to taking any other action at law or equity, to (i) charge interest on past due amounts at 1.0% per month or the highest interest rate allowed by law, whichever is less, and to charge all expenses of recovery, and (ii) terminate the applicable Account. You are solely responsible for all taxes, fees, duties and governmental assessments (except for taxes based on Rive’s net income) that are imposed or become due in connection with your Subscription. ### [​](#4-cancellation-of-a-subscription) 4\. Cancellation of a Subscription You may cancel a Subscription at any time, effective upon the end of the then-current billing period, provided that you will not be entitled to receive any refund of any fees in connection with a cancellation. You may cancel either within the settings interface of the Services or by emailing us at [support@rive.app](mailto:support@rive.app) . [​](#d-user-content) D. User Content --------------------------------------- ### [​](#1-definitions) 1\. Definitions a. **“Content”** means animations, graphics, images, designs, text, code, data, photographs, works of authorship of any kind and information or other materials that are made available through the Service. b. **“User Content”** is Content that a User has made available through the Service, including without limitation Content created, generated or modified using the Service. ### [​](#2-responsibility-for-user-content) 2\. Responsibility for User Content You are solely responsible for the content of, and for any harm resulting from, any User Content that you post, upload, link to or otherwise make available via the Service, regardless of the form of that User Content. We are not responsible for any public display or misuse of your User Content. By making User Content available on the Service, you represent and warrant that: i. You own all intellectual property rights in your User Content or you have obtained all copyrights, trademark rights, rights of publicity and other rights required for you to make your User Content available through the Service and to grant us the rights granted in these Terms; ii. the downloading, copying and use of your User Content in accordance with these Terms will not infringe the proprietary or intellectual rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights, right of publicity or right of privacy, of any third party; iii. if your employer has rights to intellectual property you create, you have either (i) received permission from your employer to post or make available the Content, or (ii) secured from your employer a waiver as to all rights in or to the Content; iv. you have fully complied with any third-party licenses relating to your User Content, and have done all things necessary to successfully pass through to end users any required terms; v. your User Content does not contain or install any viruses, worms, malware, Trojan horses or other harmful or destructive content; vi. your User Content is not spam, is not machine- or randomly-generated, and does not contain unethical or unwanted commercial content designed to drive traffic to third party sites or boost the search engine rankings of third party sites, or to further unlawful acts (such as phishing) or mislead recipients as to the source of the material (such as spoofing); vii. your User Content is not obscene, libelous or defamatory, hateful or racially or ethnically objectionable, and does not violate the privacy or publicity rights of any third party; viii. your User Content is not advertised via unwanted electronic messages such as spam links on newsgroups, email lists, other blogs and web sites, and similar unsolicited promotional methods; and ix. your User Content is not named in a manner that misleads other into thinking that you are another person or company. ### [​](#3-rive-may-remove-or-restrict-user-content) 3\. Rive May Remove or Restrict User Content a. We do not pre-screen User Content, but we have the right (though not the obligation) to refuse, remove, or hide any User Content that, in our sole discretion, violates these Terms or any Rive policies. b. We further reserve the right, at our sole discretion, to mark certain content as “Restricted Content” or to allow other Users to do so within the Service, and to limit display of Restricted Content only to Users who elect to view Restricted Content, without notice to you. ### [​](#4-ownership-of-user-content) 4\. Ownership of User Content As between you and Rive, you own your User Content - Rive does not claim any ownership rights in any User Content that you make available through the Service and nothing in these Terms will be deemed to restrict any rights that you may have to use and exploit your User Content. ### [​](#5-license-grant-to-rive) 5\. License Grant to Rive a. We need the legal right to do things like host, publish and share your User Content as part of the functionality of the Service. You grant us and our legal successors the worldwide, sublicensable, non-exclusive right and license to store, reproduce, display and publicly perform your Content, and make incidental copies as necessary to render and provide the Service. This includes the right to do things like copy your Content to our database and make backups; show it to you and other users; parse it into a search index or otherwise analyze it on our servers; share it with other users; and perform it. b. This license does not grant Rive the right to sell your User Content or otherwise distribute or use it outside of our provision of the Service; provided, however, that Rive has the right to use your name, and your Community Content (as defined below) in connection with Rive’s marketing and promotional activities without the payment of any compensation to you. ### [​](#6-license-grant-to-other-users) 6\. License Grant to Other Users a. By default, User Content that you post to, or create on, the Service is designated as “Private”. You may additionally make User Content available to other Users as “Community Content”. b. Private Content. User Content that is Private is accessible only by you, or, if such User Content is created within a Team, the other members of that Team. c. Community Content. User Content that is marked as Community is accessible to all Users, and may be remixed, modified and used by all Users, including saving as their own User Content within their separate Rive account, under the creative commons license described at [https://creativecommons.org/licenses/by/4.0/](https://creativecommons.org/licenses/by/4.0/) . d. Changes. Once you have made your User Content available to another user as Community Content, you are not able to revoke the access previously provided to such other User, even if you change the permissions associated with that User Content or hide the User Content. ### [​](#7-rive-access-to-private-content) 7\. Rive Access to Private Content Notwithstanding the designation of User Content as Private, in addition to any other rights granted elsewhere in these Terms, Rive personnel may access any User Content: a. For support reasons in order to enable us to provide the Service. b. When access is required for security reasons, including when access is required to maintain ongoing confidentiality, integrity, availability and resilience of theService. c. If we have reason to believe the contents of a private file are in violation of the law or of these Terms, we have the right to access, review, and remove them. Additionally, we may be compelled by law to disclose the contents of your private files. [​](#e-rive-intellectual-property) E. Rive Intellectual Property ------------------------------------------------------------------- Any other provision of these Terms notwithstanding, Rive exclusively owns all right, title and interest in and to the Services and in all Content other than User Content, including all associated intellectual property rights. You agree that you obtain no intellectual property rights other than the limited licenses explicitly set forth herein. You may, from time to time, provide us with ideas, suggestions, feedback, recommendations or improvements pertaining to the Service (collectively, **“Feedback”**). You hereby grant us a non-exclusive, perpetual, irrevocable, royalty-free license to use all Feedback for any purpose. Feedback is provided to us on an “as-is” basis without warranties of any kind. [​](#f-acceptable-use) F. Acceptable Use ------------------------------------------- Your use of the Service must not violate any applicable laws, including, without limitation, copyright or trademark laws, export control or sanctions laws. You are responsible for making sure that your use of the Service is in compliance with laws and any applicable regulations. You agree that You will not under any circumstances violate our [Acceptable Use Policy](https://rive.app/docs/legal/acceptable-use-policy) . [​](#g-copyright-infringement-and-the-digital-millennium-copyright-act) G. Copyright Infringement and the Digital Millennium Copyright Act --------------------------------------------------------------------------------------------------------------------------------------------- If you are a copyright owner and you believe that content on our Service violates your rights, please contact us via email to [copyright@rive.app](mailto:copyright@rive.app) . There may be legal consequences for sending a false or frivolous takedown notice. Before sending a takedown request, please consider legal uses such as fair use and licensed uses. [​](#h-cancellation-and-termination) H. Cancellation and Termination ----------------------------------------------------------------------- ### [​](#1-account-cancellation) 1\. Account Cancellation You can cancel your Account at any time via the settings menu made available to you in the Service or by emailing us at [support@rive.app](mailto:support@rive.app) . ### [​](#2-effect-of-cancellation) 2\. Effect of Cancellation a. We will retain and use your information as necessary to comply with our legal obligations, resolve disputes, and enforce our agreements, but barring legal requirements, we will delete your profile and your User Content approximately 90 days after cancellation or termination (though some information may remain in encrypted backups and caching or references to your Content may not be made immediately unavailable). This information can not be recovered once deleted. b. We will not delete Content that: (i) you have contributed to a Team in your capacity as a Team Member, or (ii) other users have forked and added to their own separate accounts. c. If you are the owner of a Team at the time of termination or cancellation of your Account, the access to the Team will be suspended for all Team members. Please transfer ownership of any Team prior to termination or cancellation if you wish such Team to continue after termination or cancellation of your account. ### [​](#3-rive-may-terminate) 3\. Rive May Terminate We may terminate your access to and use of the Service, at our sole discretion, at any time and without notice or liability to you, provided that, if you have paid for a Subscription and the termination is not due to your breach of these Terms, we will refund you any prepaid but unused fees for the period of your Subscription that extends beyond the effective date of such termination. If Rive terminates your access to the Service due to your breach of these Terms, you will not be entitled to any refund. ### [​](#4-survival) 4\. Survival All provisions of these Terms which, by their nature, should survive termination will survive termination — including, without limitation: ownership provisions, warranty disclaimers, indemnity, and limitations of liability. [​](#i-disclaimer-of-warranties) I. Disclaimer of Warranties --------------------------------------------------------------- Rive does not warrant that the Service will meet your requirements; that the Service will be uninterrupted, timely, secure, or error-free; that the information provided through the Service is accurate, reliable or correct; that any defects or errors will be corrected; that the Service will be available at any particular time or location; or that the Service is free of viruses or other harmful components. You assume full responsibility and risk of loss resulting from your downloading and/or use of files, information, content or other material obtained from the Service. You acknowledge that we have no control over, and no duty to take any action regarding: (i) what Content You access via the Services; (ii) what effects the Content may have on You, and how You may interpret or use the Content; or (iii) what actions You may take as a result of having been exposed to the Content. We make no representations concerning any content contained in or accessed through the Service, and we will not be responsible or liable for the accuracy, copyright compliance, legality or decency of material contained in or accessed through the Service. RIVE PROVIDES THE SERVICE “AS IS” AND “AS AVAILABLE,” WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR THAT USE OF THE SERVICES WILL BE UNINTERRUPTED OR ERROR-FREE. YOUR USE OF THE SERVICES IS SOLELY AT YOUR OWN RISK. [​](#j-limitation-of-liability) J. Limitation of Liability ------------------------------------------------------------- You understand and agree that we will not be liable to you or any third party for any loss of profits, use, goodwill, or data, or for any incidental, indirect, special, consequential or exemplary damages, however arising, that result from: * the use, disclosure, or display of your User Content; * Your use or inability to use the Service; * any modification, price change, suspension or discontinuance of the Service; * the Service generally or the software or systems that make the Service available; * unauthorized access to or alterations of your transmissions or data; * statements or conduct of any third party on the Service; * any other user interactions that you input or receive through your use of the Service; or * any other matter relating to the Service. Our liability is limited whether or not we have been informed of the possibility of such damages, and even if a remedy set forth in these Terms is found to have failed of its essential purpose. We will have no liability for any failure or delay due to matters beyond our reasonable control. OUR MAXIMUM AGGREGATE LIABILITY UNDER, ARISING OUT OF OR RELATING TO THESE TERMS AND THE SERVICE SHALL NOT EXCEED THE GREATER OF (1) TOTAL AMOUNT OF FEES PAID OR PAYABLE BY YOU TO COMPANY DURING THE TWELVE MONTHS PRECEDING THE DATE THE LIABILITY FIRST ARISES OR (2) $100. [​](#k-indemnification) K. Indemnification --------------------------------------------- You agree to indemnify us, defend us, and hold us harmless from and against any and all claims, liabilities, and expenses, including attorneys’ fees, arising out of (1) your use of the Service, (2) your Content or (3) your violation of these Terms, provided that you may not settle any claim, demand, suit or proceeding unless the settlement unconditionally releases Rive of all liability. [​](#l-content-posted-on-other-websites) L. Content Posted on Other Websites ------------------------------------------------------------------------------- We have not reviewed, and cannot review, all of the material, including computer software, made available through the websites and webpages to which Rive links, and that link to Rive. Rive does not have any control over those non-Rive websites and webpages, and is not responsible for their contents or their use. By linking to a non-Rive website or webpage, Rive does not represent or imply that it endorses such website or webpage. You are responsible for taking precautions as necessary to protect yourself and your computer systems from viruses, worms, Trojan horses, and other harmful or destructive content. Rive disclaims any responsibility for any harm resulting from your use of non-Rive websites and webpages. [​](#m-changes-to-these-terms) M. Changes to these Terms ----------------------------------------------------------- These Terms are subject to occasional revision. We will notify you of any changes to these Terms by posting the new Terms on the Service and updating the “Last Updated” date. We will also notify you of material changes by sending an email to the email address you have provided to us. For existing User, any changes to these Terms will be effective thirty calendar days following notification of such change, and for new users entering into these Terms after the new “Last Updated” date, these changes will be effective immediately. Continued use of the Service following such changes will indicate your acknowledgement of such changes and agreement to be bound by the updated version of these Terms. [​](#n-miscellaneous) N. Miscellaneous ----------------------------------------- ### [​](#1-entire-agreement) 1\. Entire Agreement These Terms constitute the entire and exclusive understanding and agreement between Rive and you regarding the Services, and these Terms supersede and replace any and all prior oral or written understandings or agreements. If for any reason an arbitrator or court of competent jurisdiction finds any provision of these Terms invalid or unenforceable, that provision will be enforced to the maximum extent permissible and the other provisions of these Terms will remain in full force and effect. ### [​](#2-notices) 2\. Notices Any notices or other communications provided by us under these Terms, including those regarding modifications to these Terms, will be given by us: (i) via e-mail; or (ii) by posting to the Service. For notices made by e-mail, the date of receipt will be deemed the date on which such notice is transmitted. ### [​](#3-governing-law) 3\. Governing Law Except to the extent applicable law provides otherwise, these Terms and your access to or use of the Service are governed by the federal laws of the United States of America and the laws of the State of California, without regard to conflict of law provisions. You and Rive agree to submit to the exclusive jurisdiction and venue of the courts located in the County of San Francisco, California. ### [​](#4-class-action-waiver) 4\. Class Action Waiver You and Rive agree that all claims brought against the other must be brought in such party’s individual capacity, and not as a plaintiff or class member in any purported class action, collective action, private attorney general action or other representative proceeding, except to the extent such restriction is prohibited by applicable law. ### [​](#5-non-assignability) 5\. Non-Assignability Rive may assign or delegate these Terms of Service and/or the Rive Privacy Statement, in whole or in part, to any person or entity at any time with or without your consent. You may not assign or delegate any rights or obligations under the Terms of Service or Privacy Statement without our prior written consent, and any unauthorized assignment and delegation by you is void. ### [​](#6-severability%2C-no-waiver%2C-and-survival) 6\. Severability, No Waiver, and Survival If any part of these Terms is held invalid or unenforceable, that portion of these Terms will be construed to reflect the parties’ original intent. The remaining portions will remain in full force and effect. Any failure on the part of Rive to enforce any provision of these Terms will not be considered a waiver of our right to enforce such provision. Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/legal/terms-of-service.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /legal/terms-of-service) [Pricing](/docs/account-admin/pricing) [Acceptable Use Policy](/docs/legal/acceptable-use-policy) On this page * [A. Account Terms](#a-account-terms) * [1\. Acceptance of the Terms](#1-acceptance-of-the-terms) * [2\. Account Registration](#2-account-registration) * [3\. Account Requirements](#3-account-requirements) * [4\. Account Security](#4-account-security) * [B. Teams](#b-teams) * [1\. Working with a Team](#1-working-with-a-team) * [2\. Team Administration](#2-team-administration) * [3\. Access to Team Content](#3-access-to-team-content) * [4\. Contributions to Team Content](#4-contributions-to-team-content) * [C. Subscriptions and Payment](#c-subscriptions-and-payment) * [1\. Pricing](#1-pricing) * [2\. Upgrades, Downgrades, and Changes](#2-upgrades%2C-downgrades%2C-and-changes) * [3\. Payment Methods](#3-payment-methods) * [4\. Cancellation of a Subscription](#4-cancellation-of-a-subscription) * [D. User Content](#d-user-content) * [1\. Definitions](#1-definitions) * [2\. Responsibility for User Content](#2-responsibility-for-user-content) * [3\. Rive May Remove or Restrict User Content](#3-rive-may-remove-or-restrict-user-content) * [4\. Ownership of User Content](#4-ownership-of-user-content) * [5\. License Grant to Rive](#5-license-grant-to-rive) * [6\. License Grant to Other Users](#6-license-grant-to-other-users) * [7\. Rive Access to Private Content](#7-rive-access-to-private-content) * [E. Rive Intellectual Property](#e-rive-intellectual-property) * [F. Acceptable Use](#f-acceptable-use) * [G. Copyright Infringement and the Digital Millennium Copyright Act](#g-copyright-infringement-and-the-digital-millennium-copyright-act) * [H. Cancellation and Termination](#h-cancellation-and-termination) * [1\. Account Cancellation](#1-account-cancellation) * [2\. Effect of Cancellation](#2-effect-of-cancellation) * [3\. Rive May Terminate](#3-rive-may-terminate) * [4\. Survival](#4-survival) * [I. Disclaimer of Warranties](#i-disclaimer-of-warranties) * [J. Limitation of Liability](#j-limitation-of-liability) * [K. Indemnification](#k-indemnification) * [L. Content Posted on Other Websites](#l-content-posted-on-other-websites) * [M. Changes to these Terms](#m-changes-to-these-terms) * [N. Miscellaneous](#n-miscellaneous) * [1\. Entire Agreement](#1-entire-agreement) * [2\. Notices](#2-notices) * [3\. Governing Law](#3-governing-law) * [4\. Class Action Waiver](#4-class-action-waiver) * [5\. Non-Assignability](#5-non-assignability) * [6\. Severability, No Waiver, and Survival](#6-severability%2C-no-waiver%2C-and-survival) --- # Privacy Policy - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Legal Privacy Policy [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) Last Updated: January 28, 2021 [​](#overview) Overview -------------------------- This Privacy Policy explains how information is collected, used, and disclosed by Rive Inc. (**“Rive”**) and applies to information collected when you use or access Rive’s website at [rive.app](https://rive.app/) (the **“Website”**) or when you use the services we offer (our **“Product”**) (together with the Website, the **“Service”**). We respect the privacy rights of users and recognize the importance of protecting information collected about you. Please read the following carefully to understand how we will collect, use, and maintain your personal information. It also describes your choices regarding the use, access, and correction of your personal information. By accessing and using our Services, you signify acceptance to the terms of this Privacy Policy. ### [​](#changing-our-policy) Changing our Policy We may change this Privacy Policy from time to time. If we make any changes, we will revise the “Last Updated” date at the beginning of this Privacy Policy and, in some cases, we may provide you with additional notice (such as adding a statement to our homepage or sending you an email notification). If there are material changes to this Privacy Policy, we will notify you more directly by email or means of a notice on the home page prior to the change becoming effective. We encourage you to review our Privacy Policy whenever you access the Service to stay informed about our information practices and the ways you can help protect your privacy. If you disagree with any changes to this Privacy Policy and do not wish your information to be subject to the revised Privacy Policy, you will need to deactivate your account with us and stop using the Service. Your use of the Service after the posting of such changes shall constitute your consent to such changes. [​](#information-collected) Information Collected ---------------------------------------------------- We may collect certain user information (including personal information and/or sensitive personal information) in the following ways: **Information You Provide To Us.** We collect information you provide directly to us including when you visit the Website and/or use our Product. * For example, we collect information when you enter into an agreement with Rive as a customer, create or modify your profile and account, access and use the Service (including but not limited to when you upload, download, or share information), participate in any interactive features of the Service, submit a contact form, participate in a survey, activity or event, apply for a job, request customer support, or communicate with us via third-party social media sites. You may, however, visit our website anonymously. * The types of information we may collect directly from you include your name, email address, postal address, phone number, information about your account preferences, employer name, job title, transactional information (including services purchased or subscribed to and billing address), as well as any contact or other information you choose to provide. Please be aware that the information you choose to provide in your account profile may reveal or identify information that is not expressly stated (for example, information you provide may reveal your gender). We also store information that you upload or provide to the Services in order to provide you with the features and functionality of the Service. **Information Your Employer Provides to Us.** We collect information about individual users from our corporate customers who employ them. * For example, if your employer is one of our corporate customers, they may provide to us, either directly or via integration with their other systems, personal data about you, such as your name, email address, work postal address, phone number, and job title. **Information We Collect Automatically When You Use the Service.** When you access or use the Service, we may automatically collect information about you, including: * Usage, Log, and Device Information: We collect information from your use of the Service such as system activity, hardware settings, browser type, browser language, the date and time of your visit, and the referral URL. We monitor user activity in connection with the Service and may collect information about the features you use, the content you upload, download, share, or access while using the Service, the content you access, and any actions taken in connection with the access and use of your content in the Service. * Information Collected by Cookies and Other Tracking Technologies: A cookie is a small file containing a string of characters that is sent to your computer when you visit a website. When you visit the website again, the cookie allows that site to recognize your browser. Cookies may store user preferences and other information. You can set your browser to refuse all cookies or to indicate when a cookie is being sent. However, some website features or services may not function properly without cookies. We use cookies to understand and save your preferences for future visits and compile aggregate data about site traffic and site interaction so that we can offer better site experiences and tools in the future. We may contract with third-party service providers to assist us in better understanding our site visitors. These service providers are not permitted to use the information collected on our behalf except to help us conduct and improve our business. [​](#use-of-information) Use of Information ---------------------------------------------- We may use the information collected through the Service for the limited purpose of providing the Service and related functionality and services for which Rive has been engaged. The information may be used for a variety of purposes, including: * Provide, operate, maintain, and improve the Service; * Enable you to access and use the Service; * Send you technical notices, updates, security alerts, and support and administrative messages; * Provide and deliver the services and features you request, process, and complete transactions, and send you related information, including purchase confirmations and invoices; * Respond to your comments, questions, and requests, and provide customer service and support; * Communicate with you about services, features, surveys, newsletters, offers, promotions, events, and provide other news or information about Rive and our select partners; * Process and deliver survey entries and rewards; * Monitor and analyze trends, usage, and activities in connection with the Service and for marketing or advertising purposes; * Investigate and prevent unauthorized access to the Service, and other illegal activities; * Personalize and improve the Service, and provide content and/or features that match your interests and preferences or otherwise customize your experience on the Service; * Generate anonymized and aggregated analyses, benchmarks and statistics; and * For other purposes about which we notify you. Additionally we may disclose personal data in special cases when we have a good faith belief that such action is necessary to: (a) conform to legal requirements or to respond to lawful requests by public authorities, including to meet national security or law enforcement requirements; (b) protect and defend our rights or property; or (c) act to protect the interests of our users or others. **Do Not Track.** Some browsers offer a “do not track” (**“DNT”**) option. Because no common industry or legal standard for DNT has been adopted by industry groups, technology companies, or regulators, we do not respond to DNT signals. We will make efforts to continue to monitor developments around DNT browser technology and the implementation of a standard. ### [​](#sharing-and-disclosure-of-information) Sharing and Disclosure of Information We will not share personal information about you or any Content with any third parties except as described in this Privacy Policy, or as defined in an agreement with us, in connection with the Service. For example, we may share personal information about you: * **To Vendors, Consultants, and Other Service Providers:** We may share your information with third-party vendors, consultants, and other service providers who are working on our behalf and require access to your information to carry out that work, including companies that provide services such as cloud hosting and customer database software. These service providers are authorized to use your personal information only as necessary to provide services to Rive. * **In Compliance with Laws:** We may disclose your information to a third party: (a) if we believe that disclosure is reasonably necessary to comply with any applicable law, regulation, legal process, or governmental request; (b) to enforce our agreements and policies; (c) to protect the security or integrity of the Service; (d) to protect Rive, our customers, or the public from harm or illegal activities; (e) to respond to an emergency which we believe in the good faith requires us to disclose information to assist in preventing the death or serious bodily injury of any person; or (f) as otherwise directed by you. * **For Business Transfers:** We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company. You may be notified thereafter via email of any such change in ownership or control of your personal information. * **As Aggregated and/or Anonymized Data:** We may also share aggregated and/or anonymized information with third parties that does not directly identify you. [​](#international-data-transfers) International Data Transfers ------------------------------------------------------------------ Rive is headquartered in the United States and has employees and service providers who operate around the globe. Therefore, as a global business, Rive processes, hosts and transfers personal information in different countries, including in the United States. These countries may have data protection laws that are different to the laws of your country. Rive fully assesses the circumstances involving all cross-border data transfers and has appropriate safeguards in place to ensure that your personal information will remain protected in accordance with this Policy. Currently, Rive uses the European Commission’s Standard Contractual Clauses as the basis for Rives’s approach to global data privacy protection. These Standard Contractual Clauses provide appropriate safeguards with respect to the protection of the privacy and fundamental rights and freedoms of individuals and the exercise of the corresponding rights. Our Standard Contractual Clauses can be provided upon request. We have implemented similar appropriate safeguards where legally required with our third party service providers and partners and further details can be provided upon request. [​](#your-choices) Your Choices ---------------------------------- **Account Information and Retention.** You may update, correct, or delete information about you at any time by logging into your Product account and modifying your information, or by emailing us at [support@rive.app](mailto:support@rive.app) . We will retain your personal information for the period necessary to fulfill the purposes outlined in this Privacy Policy. If you wish to deactivate your account, please email us at [support@rive.app](mailto:support@rive.app) but note that we may retain certain information as required by law or for legitimate business purposes. We may also retain cached or archived copies of information about you for a certain period of time. We will respond to your access request within 30 days. We will retain your information for as long as your account is active or as needed to provide you with the Service. We will retain and use your information to comply with our legal obligations, resolve disputes, and enforce our agreements. We will retain personal data we process on behalf of our customers as directed by paying customers. Rive will retain this personal information as necessary to comply with legal obligations, resolve disputes, and enforce agreements. Upon request, Rive will provide you with information about whether we hold, or process on behalf of a third party, any of your personal information that we are aware of. To request this information, contact us at [support@rive.app](mailto:support@rive.app) . **Promotional and Newsletter Communications.** You may opt out of receiving promotional and newsletter emails from Rive by following the opt-out instructions provided in those emails. You may also opt-out of receiving promotional emails and other promotional communications from us at any time by emailing [support@rive.app](mailto:support@rive.app) with your specific request. If you opt out, we may still send you non-promotional communications, such as security alerts and notices related to your access to or use of the Service or those about your Product account or our ongoing business relations. **California Residents.** In addition to the rights provided for above, if you are a California resident, you have the right to request information from us regarding whether we share certain categories of your personal information with third parties for the third parties’ direct marketing purposes. To the extent we share your personal information in this way, you may receive the following information: (a) the categories of information we disclosed to third parties for the third parties’ direct marketing purposes during the preceding calendar year; and (b) the names and addresses of third parties that received such information, or if the nature of their business cannot be determined from the name, then examples of the products or services marketed. Effective January 1, 2020, pursuant to the California Consumer Privacy Act of 2018 (“CCPA”), California residents have certain rights in relation to their personal information, subject to limited exceptions. Any terms defined in the CCPA have the same meaning when used in this California Privacy Rights section. For personal information collected by us during the preceding 12 months that is not otherwise subject to an exception, California residents have the right to access and delete their personal information. We will not discriminate against those who exercise their rights. Specifically, if you exercise your rights, we will not deny you services, charge you different prices for services or provide you a different level or quality of services. To the extent we sell your personal information to third parties, you also have the right to request that we disclose to you: (i) the categories of your personal information that we sold, and (ii) the categories of third parties to whom your personal information was sold. You have the right to direct us not to sell your personal information. We do not sell your personal information in our ordinary course of business and will never sell your personal information to third parties without your explicit consent. To make such requests, contact us at [support@rive.app](mailto:support@rive.app) or the other contact information set out below. If you are a California resident, you may designate an authorized agent to make a request to access or a request to delete on your behalf. We will respond to your authorized agent’s request if they submit proof that they are registered with the California Secretary of State to be able to act on your behalf, or submit evidence you have provided them with power of attorney pursuant to California Probate Code section 4000 to 4465. We may deny requests from authorized agents who do not submit proof that they have been authorized by you to act on their behalf, or are unable to verify their identity. In accordance with California Civil Code Section 1789.3, California resident users are entitled to know that they may file grievances and complaints with the California Department of Consumer Affairs, 400 R Street, STE 1080, Sacramento, CA 95814; or by phone at (916) 445-1254 or (800) 952-5210; or by email to [dca@dca.ca.gov](mailto:dca@dca.ca.gov) . [​](#links-to-third-party-websites) Links to Third-Party Websites -------------------------------------------------------------------- We may place links on the Service. When you click on a link to a third-party website from our Website, your activity and use on the linked website is governed by that website’s policies, not by those of Rive. We encourage you to review their privacy and user policies. [​](#our-policy-toward-children) Our Policy Toward Children -------------------------------------------------------------- The Service is not directed to individuals under 13. We do not knowingly collect personal information from children under 13. If you become aware that a child has provided us with personal information, please contact us at [support@rive.app](mailto:support@rive.app) . If we become aware that a child under 13 has provided us with personal information, we will take steps to delete such information. If you are under the age of 13, you may not use our website, products, or services. [​](#contacting-us) Contacting Us ------------------------------------ Any questions about this Privacy Policy should be addressed to [support@rive.app](mailto:support@rive.app) . Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/legal/privacy-policy.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /legal/privacy-policy) [Acceptable Use Policy](/docs/legal/acceptable-use-policy) On this page * [Overview](#overview) * [Changing our Policy](#changing-our-policy) * [Information Collected](#information-collected) * [Use of Information](#use-of-information) * [Sharing and Disclosure of Information](#sharing-and-disclosure-of-information) * [International Data Transfers](#international-data-transfers) * [Your Choices](#your-choices) * [Links to Third-Party Websites](#links-to-third-party-websites) * [Our Policy Toward Children](#our-policy-toward-children) * [Contacting Us](#contacting-us) --- # Acceptable Use Policy - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Legal Acceptable Use Policy [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) Last Updated: October 5, 2020 Capitalized terms used but not defined in these Acceptable Use Policies have the meanings assigned to them in our Terms of Service, Corporate Terms of Service, and Privacy Statement. For customers subject to the Corporate Terms of Service, “you” and “your” refer to “Customer” or “Users”. “We”, “us”, “our” refer to “Rive”. [​](#1-compliance-with-laws-and-regulations) 1\. Compliance with Laws and Regulations ---------------------------------------------------------------------------------------- You are responsible for using the Service in compliance with all applicable laws, regulations, and all of our Acceptable Use Policies. These policies may be updated from time to time and are provided below, as well as in our Terms of Service and Corporate Terms of Service. [​](#2-content-restrictions) 2\. Content Restrictions -------------------------------------------------------- Under no circumstances will Users upload, post, host, execute, or transmit any Content that: * is unlawful or promotes unlawful activities; * is or contains sexually obscene content; * is libelous, defamatory, or fraudulent; * is discriminatory or abusive toward any individual or group; * gratuitously depicts or glorifies violence, including violent images; * is or contains false, inaccurate, or intentionally deceptive information that is likely to adversely affect the public interest (including health, safety, election integrity, and civic participation); * contains or installs any active malware or exploits, or uses our platform for exploit delivery (such as part of a command and control system); or * infringes any proprietary right of any party, including patent, trademark, trade secret, copyright, right of publicity, or other right. [​](#3-conduct-restrictions) 3\. Conduct Restrictions -------------------------------------------------------- While using the Service, under no circumstances will you: * harass, abuse, threaten, or incite violence towards any individual or group, including our employees, officers, and agents, or other users; * use our servers for any form of excessive automated bulk activity (for example, spamming or cryptocurrency mining), to place undue burden on our servers through automated means, or to relay any form of unsolicited advertising or solicitation through our servers, such as get-rich-quick schemes; * use our servers to disrupt or to attempt to disrupt, or to gain or to attempt to gain unauthorized access to, any service, device, data, account or network; * impersonate any person or entity, including any of our employees or representatives, including through false association with Rive, or by fraudulently misrepresenting your identity or site’s purpose; or * violate the privacy of any third party, such as by posting another person’s personal information without consent. [​](#4-scraping-restrictions) 4\. Scraping Restrictions ---------------------------------------------------------- Scraping refers to extracting data from our Service via an automated process, such as a bot or webcrawler. You may not scrape the Service for spamming purposes, including for the purposes of selling personal data, such as to recruiters, headhunters, and job boards. [​](#6-privacy) 6\. Privacy ------------------------------ Misuse of User Personal Information is prohibited. Any person, entity, or service collecting data from the Service must comply with the Rive Privacy Statement, particularly in regards to the collection of User Personal Information. If you collect any User Personal Information from the Service, you agree that you will only use that User Personal Information for the purpose for which that User has authorized it. You agree that you will reasonably secure any User Personal Information you have gathered from the Service, and you will respond promptly to complaints, removal requests, and “do not contact” requests from us or other users. [​](#7-advertising-on-rive) 7\. Advertising on Rive ------------------------------------------------------ While we understand that you may want to promote your Content by posting supporters’ names or logos in your Account, the primary focus of the Content posted in or through your Account to the Service should not be advertising or promotional marketing. This includes Content posted in or through Team or Organization pages, and all other parts of the Service. You may include static images, links, and promotional text in the README documents or project description sections associated with your Account, but they must be related to the project you are hosting on Rive. You may not advertise in other Users’ Accounts, such as by posting monetized or excessive bulk content in issues. You may not promote or distribute content or activity that is illegal or otherwise prohibited by our Terms of Service or Acceptable Use Policy, including excessive automated bulk activity (for example, spamming), get-rich-quick schemes, and misrepresentation or deception related to your promotion. If you decide to post any promotional materials in your Account, you are solely responsible for complying with all applicable laws and regulations, including without limitation the U.S. Federal Trade Commission’s Guidelines on Endorsements and Testimonials. We reserve the right to remove any promotional materials or advertisements that, in our sole discretion, violate any Rive terms or policies. [​](#8-spam-and-inauthentic-activity-on-rive) 8\. Spam and Inauthentic Activity on Rive ------------------------------------------------------------------------------------------ Automated excessive bulk activity and coordinated inauthentic activity, such as spamming, are prohibited on Rive. Prohibited activities include: * bulk distribution of promotions and advertising prohibited by Rive terms and policies * inauthentic interactions, such as fake accounts and automated inauthentic activity * rank abuse, such as automated starring or following * creation of or participation in secondary markets for the purpose of the proliferation of inauthentic activity * using Rive as a platform for propagating abuse on other platforms * phishing or attempted phishing Rive reserves the right to remove any Content in violation of this policy. [​](#9-user-protection) 9\. User Protection ---------------------------------------------- You must not engage in activity that significantly harms other users. We will resolve disputes in favor of protecting users as a whole. Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/legal/acceptable-use-policy.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /legal/acceptable-use-policy) [Terms of Service](/docs/legal/terms-of-service) [Privacy Policy](/docs/legal/privacy-policy) On this page * [1\. Compliance with Laws and Regulations](#1-compliance-with-laws-and-regulations) * [2\. Content Restrictions](#2-content-restrictions) * [3\. Conduct Restrictions](#3-conduct-restrictions) * [4\. Scraping Restrictions](#4-scraping-restrictions) * [6\. Privacy](#6-privacy) * [7\. Advertising on Rive](#7-advertising-on-rive) * [8\. Spam and Inauthentic Activity on Rive](#8-spam-and-inauthentic-activity-on-rive) * [9\. User Protection](#9-user-protection) --- # Account Overview - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Account Overview Account Overview [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) [Creating an Account\ -------------------\ \ Instructions on creating your Rive account.](./creating-an-account) [Account Management\ ------------------\ \ How do I find my account settings, billing information, and manage my team?](./account-management) [Creating a Workspace\ --------------------\ \ Instructions on creating a new workspace.](../workspaces/creating-a-workspace) [Cancel My Account\ -----------------\ \ Instructions on how to cancel your Rive account.](./cancel-my-account) [Delete My Account\ -----------------\ \ Instructions on deleting your free or paid Rive account.](./delete-my-account) [Trouble Logging In\ ------------------\ \ What to do if you’re having trouble logging in to your Rive account.](./trouble-logging-in) [Billing Changes\ ---------------\ \ How do I change my card on file or change my billing plan?](./billing-changes) [Downloading My Receipt / Invoice\ --------------------------------\ \ Instructions on how to download your receipts / invoices.](./downloading-my-receipt-or-invoice) Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/account-admin/account-overview/account-overview.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /account-admin/account-overview/account-overview) [Rive Experts](/docs/community/rive-experts) [Creating an Account](/docs/account-admin/account-overview/creating-an-account) --- # Runtime Sizes - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Runtime Fundamentals Runtime Sizes [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) * Android * Apple * React * React Native * Web (JS) | Target | Download Size | Install Size | | --- | --- | --- | | ARM-v7a | 1.5mb | 3.9mb | | ARM-v8a | 1.6mb | 4.7mb | | Target | Download Size | Install Size | | --- | --- | --- | | ARM-v7a | 1.5mb | 3.9mb | | ARM-v8a | 1.6mb | 4.7mb | | Target | Download Size | Install Size | | --- | --- | --- | | Framework | | 3.8mb | | iOS App + RiveRuntime | 1.4mb | 3.9mb | | macOS App + RiveRuntime | 1.4mb | 4.0mb | [](https://www.emergetools.com/app/example/ios/rive.app.ios.runtime.RiveRuntime/release) See `Web (JS)` for more details. See `Android` and `Apple` for more details. | Runtime | Uncompressed | Compressed | | --- | --- | --- | | canvas-lite | 550kb | 175kb | | canvas | 1300kb | 550kb | | webgl2 | 1650kb | 650kb | Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/runtimes/runtime-sizes.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /runtimes/runtime-sizes) [Getting Started](/docs/runtimes/getting-started) [Animation Playback](/docs/runtimes/animation-playback) --- # Fundamentals - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Unreal Fundamentals [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) [​](#adding-rive-files) Adding Rive files -------------------------------------------- To add a `.riv` file to an Unreal project, simply drag it into Unreal’s Content Browser. Once dropped, a **Rive File**, **Rive Texture Object**, and **Widget Blueprint** asset will be automatically created. A **RiveFile** is a wrapper component configuring the Rive graphic to display, using a backing `.riv` file’s data. It contains the following properties: * **Artboard name**: The [artboard](/docs/editor/fundamentals/artboards) to load. * **State machine name**: The [state machine](/docs/runtimes/state-machines) to play. * **Rive fit type**: How the graphic should fit in the available sizes (see [Fit](/docs/runtimes/layout#fit) ). * **Size**: The size of the underlying render target to which the graphic is drawn. The default value is equal to the artboard size, as set in the Rive editor. * Other texture properties. An important concept to understand is that the **RiveFile** contains the underlying **artboard** and **state machine** that the Rive runtime uses. You can view the details of a **RiveFile** by double-clicking on it in the content browser and examining the Details pane. You can see all of the **artboards**, **state machines, triggers** and **inputs** included in the file. [​](#rivetextureobjects) RiveTextureObjects ---------------------------------------------- While a **RiveFile** contains the data of a Rive asset, it is the **RiveTextureObject** that handles running the animations and handling state machines. Every **RiveTextureObject** runs independently, even if created from the same **RiveFile**. When you double-click on a **RiveTextureObject** you can examine and change various values associated with that object: Leaving the Artboard name or State Machine name blank will use the default values. Note that the **size** attribute determines the width and height of the underlying render texture. A larger size improves the quality but increases the memory usage. [​](#create-rive-widget%2C-create-rive-texture-object%2C-and-reimport) Create Rive Widget, Create Rive Texture Object, and Reimport -------------------------------------------------------------------------------------------------------------------------------------- Right-click a **RiveFile** to access common actions: Selecting **“Spawn Rive Widget Actor”** will create an Actor in your Level. Playing the Level will display the Rive file as a UMG Widget. Alternatively, you can spawn a widget actor by dragging and dropping the **RiveFile** asset into the level. Note that the location of the actor in the scene does not affect it’s display. If you need more than the default **Rive Widget** or **Rive Texture Object**, you can create them from this menu. You can also **Reimport** your Rive file to get updates made to the file outside of Unreal. [​](#create-a-material-asset) Create a material asset -------------------------------------------------------- You can easily create a material asset from a **RiveTextureObject**: * **Right-click** and select **“Create Material”** The created material asset uses the selected **RiveTextureObject** as a texture. ### [​](#displaying) Displaying This material can be added to a 3D mesh to be rendered in the scene, just like any other material. [​](#adding-rive-to-umg) Adding Rive to UMG ---------------------------------------------- You can easily create a Widget Blueprint from a **RiveFile**: * **Right click** the **RiveFile** and select **“Create Rive Widget”** This will automatically create a Widget Blueprint using the selected **RiveFile**. Alternatively, a **Rive Widget** can be added from the **UMG** **Palette** and then selecting the underlying **RiveFile** to use as a reference. This is done in the “Rive Descriptor” section in the Details pane. Leaving the Artboard name or State Machine Name blank will cause defaults in the file to be used. Be sure to click **Compile** to make the graphic visible. Listeners (pointer events) are disabled in this view. This means the Rive graphic is not interactive within UMG. ### [​](#accessing-rivewidget-in-blueprint) Accessing RiveWidget in Blueprint The **RiveWidget** can be accessed through Blueprint, if the **Is Variable** toggle is set (default is checked). ### [​](#displaying-2) Displaying Once a Widget Blueprint is configured, you only need to add it to the Viewport. In this example we’re creating a new Actor and adding the following. Once the actor is added to the game and you enter play mode the animation will function exactly as it does in the Rive Editor. See the following sections for more advanced usage. [​](#instancing-a-rivetextureobject) Instancing a RiveTextureObject ---------------------------------------------------------------------- If, for example, your `.riv` file contains multiple different artboards, or if you want to create unique instances of the same artboard and state machine combination, you can easily do so by instancing new **RiveTextureObject**s through the editor: * **Right-click** a **RiveTextureObject** and select **“Duplicate”** These new instances use the same underlying `.riv` file data; however they are unique instances and can be configured with the available properties, such as artboard, state machine, size, etc. Each **RiveTextureObject** instance contains a unique **artboard** and **state machine** instance that can be updated and used independently. An artboard and state machine can be instanced manually through Blueprint as well. Later sections will demonstrate how to do this. **How To Use Imported Rive Objects in Unreal** Was this page helpful? YesNo [Suggest edits](https://github.com/rive-app/rive-docs/edit/main/game-runtimes/unreal/fundamentals.mdx) [Raise issue](https://github.com/rive-app/rive-docs/issues/new?title=Issue on docs&body=Path: /game-runtimes/unreal/fundamentals) [Getting Started](/docs/game-runtimes/unreal/getting-started) [State Machines](/docs/game-runtimes/unreal/state-machines) On this page * [Adding Rive files](#adding-rive-files) * [RiveTextureObjects](#rivetextureobjects) * [Create Rive Widget, Create Rive Texture Object, and Reimport](#create-rive-widget%2C-create-rive-texture-object%2C-and-reimport) * [Create a material asset](#create-a-material-asset) * [Displaying](#displaying) * [Adding Rive to UMG](#adding-rive-to-umg) * [Accessing RiveWidget in Blueprint](#accessing-rivewidget-in-blueprint) * [Displaying](#displaying-2) * [Instancing a RiveTextureObject](#instancing-a-rivetextureobject) --- # Animation Playback - Rive [Rive home page![light logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_black.svg)![dark logo](https://mintlify.s3.us-west-1.amazonaws.com/rive/logo/rive_top_logo_white.svg)](https://rive.app/) Search or ask... Search... Navigation Runtime Fundamentals Animation Playback [Home](/docs/getting-started/introduction) [Editor](/docs/editor/interface-overview/overview) [App Runtimes](/docs/runtimes/getting-started) [Game Runtimes](/docs/game-runtimes/unreal/unreal) [Feature Support](/docs/feature-support) [Tutorials](/docs/tutorials/learn-rive) Rive lets you specify what artboard to use, what animations and state machines to mix and play and control the play/pause state of each animation. The term _animations_ may collectively refer to both animations and state machines. In this section, we explore how to deal with specific animation playback, rather than state machines. If you are trying to coordinate multiple animations’ playback at runtime, consider using a state machine instead to do this for you! [​](#choosing-an-artboard) Choosing an artboard -------------------------------------------------- When a Rive object is instantiated, the artboard to use can be specified. If no artboard is given, the default artboard is used. Only one artboard can be used at a time. * Web * React * React Native * Flutter * Apple * Android new rive.Rive({ src: 'https://cdn.rive.app/animations/vehicles.riv', canvas: document.getElementById('canvas'), artboard: 'Truck', autoplay: true }); new rive.Rive({ src: 'https://cdn.rive.app/animations/vehicles.riv', canvas: document.getElementById('canvas'), artboard: 'Truck', autoplay: true }); export const Simple = () => ( ); // With `useRive` Hook: export default function Simple() { const { RiveComponent } = useRive({ src: 'https://cdn.rive.app/animations/vehicles.riv', artboard: 'Truck', autoplay: true, }); return ; } export default function App() { return ( ); } RiveAnimation.network( 'https://cdn.rive.app/animations/vehicles.riv', artboard: 'Truck' ); #### [​](#swiftui) SwiftUI struct AnimationView: View { var body: some View { RiveViewModel( fileName: "dancing_banana", artboardName: "Banana" ).view() } } #### [​](#uikit) UIKit class AnimationViewController: UIViewController { @IBOutlet weak var riveView: RiveView! var bananaVM = RiveViewModel( fileName: "dancing_banana", artboardName: "Banana", ) override func viewDidLoad() { bananaVM.setView(riveView) } } ### [​](#via-xml) Via XML ### [​](#via-kotlin) Via Kotlin animationView.setRiveResource( R.raw.artboard_animations, artboardName = "Square", autoplay = true ) [​](#choosing-starting-animations) Choosing starting animations ------------------------------------------------------------------ Starting animations can also be chosen when Rive is instantiated. The first animation on the artboard may play if one is not provided, or a state machine is not set. * Web * React * React Native * Flutter * Apple * Android // Play the idle animation new rive.Rive({ src: 'https://cdn.rive.app/animations/vehicles.riv', canvas: document.getElementById('canvas'), animations: 'idle', autoplay: true }); // Play the idle animation new rive.Rive({ src: 'https://cdn.rive.app/animations/vehicles.riv', canvas: document.getElementById('canvas'), animations: 'idle', autoplay: true }); // Play the idle animation export const Simple = () => ( ); // With `useRive` Hook: export default function Simple() { const { RiveComponent } = useRive({ src: 'https://cdn.rive.app/animations/vehicles.riv', animations: ['idle'], autoplay: true, }); return ; } Currently, with the React Native runtime, you can set one animation to autoplay at the start. Despite this, see below in the playback sections to see how you can mix multiple animations on playback functions. export default function App() { return ( ); } // Play the curves animation RiveAnimation.network( 'https://cdn.rive.app/animations/vehicles.riv', animations: ['curves'], ); // Play and mix both the idle and curves animations RiveAnimation.network( 'https://cdn.rive.app/animations/vehicles.riv', animations: ['idle', 'curves'], ); By default, `RiveViewModel` will automatically play the animation or state machine you’ve given it. ### [​](#swiftui-2) SwiftUI struct AnimationView: View { var body: some View { RiveViewModel( fileName: "dancing_banana", animationName: "Charleston", artboardName: "Banana" ).view() } } ### [​](#uikit-2) UIKit class AnimationViewController: UIViewController { @IBOutlet weak var riveView: RiveView! var bananaVM = RiveViewModel( fileName: "dancing_banana", animationName: "Charleston", artboardName: "Banana" ) override func viewDidLoad() { bananaVM.setView(riveView) } } With the Android runtime, specify **one** animation with the `riveAnimation` property. Or animationView.setRiveResource( R.raw.artboard_animations, artboardName = "Square", animationName = "rollaround", autoplay = true ) [​](#controlling-playback) Controlling playback -------------------------------------------------- Playback of each animation and state machine can be separately controlled. You can play and pause playback using the `play` , `pause` and `stop` methods, either passing in the names of the animations you want to affect or passing in nothing which will affect all instanced animations. * Web * React * React Native * Flutter * Apple * Android #### [​](#invoking-playback-controls) Invoking Playback Controls With the web runtime, you can provide callback functions to receive notification when certain animation events have occurred: * `onLoad` when a rive file has been loaded and initialized; it’s now ready for playback * `onPlay` when one or more animations play; provides a list of animations * `onPause` when one or more animations pause; provides a list of animations * `onStop` when one or more animations are stopped; provides a list of animations * `onLoop` when an animation loops; provides the animation name See the following Codesandbox link to try out the below code: [https://codesandbox.io/p/sandbox/adoring-sea-n7m59f](https://codesandbox.io/p/sandbox/adoring-sea-n7m59f) const idleButton = document.getElementById("idle"); const wipersButton = document.getElementById("wipers"); const loopDiv = document.getElementById("loop"); const truck = new rive.Rive({ src: "https://cdn.rive.app/animations/vehicles.riv", artboard: "Jeep", canvas: document.getElementById("canvas"), layout: new rive.Layout({ fit: "fill" }), // Listen for play events to update button text onPlay: (event) => { const names = event.data; names.forEach((name) => { if (name === "idle") { idleButton.innerHTML = "Stop Truck"; } else if (name === "windshield_wipers") { wipersButton.innerHTML = "Stop Wipers"; } }); }, // Listen for pause events to update button text onPause: (event) => { const names = event.data; names.forEach((name) => { if (name === "idle") { idleButton.innerHTML = "Start Truck"; } else if (name === "windshield_wipers") { wipersButton.innerHTML = "Start Wipers"; } }); }, onLoop: (event) => { loopDiv.innerHTML = `Looped Animation: ${event.data.animation}`; } }); idleButton.onclick = (_) => truck.playingAnimationNames.includes("idle") ? truck.pause("idle") : truck.play("idle"); wipersButton.onclick = (_) => truck.playingAnimationNames.includes("windshield_wipers") ? truck.pause("windshield_wipers") : truck.play("windshield_wipers"); #### [​](#invoking-playback-controls) Invoking Playback Controls With the web runtime, you can provide callback functions to receive notification when certain animation events have occurred: * `onLoad` when a rive file has been loaded and initialized; it’s now ready for playback * `onPlay` when one or more animations play; provides a list of animations * `onPause` when one or more animations pause; provides a list of animations * `onStop` when one or more animations are stopped; provides a list of animations * `onLoop` when an animation loops; provides the animation name See the following Codesandbox link to try out the below code: [https://codesandbox.io/p/sandbox/adoring-sea-n7m59f](https://codesandbox.io/p/sandbox/adoring-sea-n7m59f) const idleButton = document.getElementById("idle"); const wipersButton = document.getElementById("wipers"); const loopDiv = document.getElementById("loop"); const truck = new rive.Rive({ src: "https://cdn.rive.app/animations/vehicles.riv", artboard: "Jeep", canvas: document.getElementById("canvas"), layout: new rive.Layout({ fit: "fill" }), // Listen for play events to update button text onPlay: (event) => { const names = event.data; names.forEach((name) => { if (name === "idle") { idleButton.innerHTML = "Stop Truck"; } else if (name === "windshield_wipers") { wipersButton.innerHTML = "Stop Wipers"; } }); }, // Listen for pause events to update button text onPause: (event) => { const names = event.data; names.forEach((name) => { if (name === "idle") { idleButton.innerHTML = "Start Truck"; } else if (name === "windshield_wipers") { wipersButton.innerHTML = "Start Wipers"; } }); }, onLoop: (event) => { loopDiv.innerHTML = `Looped Animation: ${event.data.animation}`; } }); idleButton.onclick = (_) => truck.playingAnimationNames.includes("idle") ? truck.pause("idle") : truck.play("idle"); wipersButton.onclick = (_) => truck.playingAnimationNames.includes("windshield_wipers") ? truck.pause("windshield_wipers") : truck.play("windshield_wipers"); #### [​](#invoking-playback-controls-2) Invoking Playback Controls Very similarly to Web, you can pass in Rive params and callbacks for certain animation events. See the Web tab for some examples of callbacks you can set. Additionally, you can use the `rive` object returned from the `useRive` hook to invoke playback controls. See the example below here: [https://codesandbox.io/p/sandbox/adoring-sea-n7m59f](https://codesandbox.io/p/sandbox/adoring-sea-n7m59f) import { useState } from "react"; import { useRive, Layout, Fit } from "@rive-app/react-canvas"; export default function App() { const [truckButtonText, setTruckButtonText] = useState("Start Truck"); const [wiperButtonText, setWiperButtonText] = useState("Start Wipers"); // animation will show the first frame but not start playing const { rive, RiveComponent } = useRive({ src: "https://cdn.rive.app/animations/vehicles.riv", artboard: "Jeep", layout: new Layout({ fit: Fit.Cover }), // Listen for play events to update button text onPlay: (event) => { const names = event.data; names.forEach((name) => { if (name === "idle") { setTruckButtonText("Stop Truck"); } else if (name === "windshield_wipers") { setWiperButtonText("Stop Wipers"); } }); }, // Listen for pause events to update button text onPause: (event) => { const names = event.data; names.forEach((name) => { if (name === "idle") { setTruckButtonText("Start Truck"); } else if (name === "windshield_wipers") { setWiperButtonText("Start Wipers"); } }); } }); function onStartTruckClick() { if (rive) { if (rive.playingAnimationNames.includes("idle")) { rive.pause("idle"); } else { rive.play("idle"); } } } function onStartWiperClick() { if (rive) { if (rive.playingAnimationNames.includes("windshield_wipers")) { rive.pause("windshield_wipers"); } else { rive.play("windshield_wipers"); } } } return ( <>
); } #### [​](#invoking-playback-controls-3) Invoking Playback Controls To trigger animation playback controls, set a `ref` on the Rive component rendered. Once the `ref` is populated, you can trigger functions such as `play`, `pause`, etc. See the `ref` method docs for React Native [Rive Ref Methods](./react-native/rive-ref-methods) . import Rive, { RiveRef } from 'rive-react-native' export default function App() { const riveRef = React.useRef(null); const handlePlayPress = () => { riveRef?.current?.play(); }; const handlePausePress = () => { riveRef?.current?.pause(); }; return (