---
title: Reusing assets with prototypes and instances
framework: Reality Composer Pro
role: article
role_heading: Article
path: realitycomposerpro/realitycomposerpro-essentials-understandingprototypes
---

# Reusing assets with prototypes and instances

Edit a prototype once and propagate the change to every placement of that asset in a scene.

## Overview

Overview In Reality Composer Pro, a prototype is a source asset, and an instance is a placement of that prototype in a scene. Dragging the asset into your scene creates a single instance of that prototype. You can place as many instances of the prototype in your scene as you want. If you change a prototype, Reality Composer Pro propagates those changes to every instance of that prototype in your project. If you make changes in the Scene Hierarchy to an instance of a prototype, Reality Composer Pro treats the changes as an override on the instance. Overrides don’t affect the prototype itself. Overrides appear in the Scene Hierarchy as a small dot next to the icon.

important: When you directly assign a prototype to a component — for example, assigning a material to a model component — Reality Composer Pro may not automatically create an instance. Any edits to the material directly edit the prototype instead. To assign an instance, Control-click the material in the Project Browser, select Instance, and then assign the instanced material to the model component. Create an instance of a prototype An instance is a virtual copy of a prototype asset that you can change without affecting the source prototype. In the Project Browser, Control-click a prototype asset, and then click **Instantiate **to create an instance of the asset. Add an instance of a prototype to a scene Drag the instance from the Project Browser into the Viewport as you would any asset. Alternatively, Control-click anywhere in the Hierarchy, choose Add Child Entity > From Asset, and select the entity instance from the menu. Propagate, reset, or make an instance unique Once you create an instance of a prototype and make changes, you have three options when an instance and its prototype have diverged: Propagate, Reset, or Make Unique. Use Propagate when an instance has the look or behavior you want and you want every other instance of the same prototype to match. Propagating from one instance updates the source prototype, which in turn updates every other instance of the prototype in your project. Use Reset when you’ve experimented with overrides on an instance and want to discard those local edits but keep the link to the prototype. This reverts the instance’s values to the prototype’s but preserves the link so future changes to the prototype still flow through. Use Make Unique when an instance has diverged enough that tracking the prototype is no longer useful. This removes the link to the prototype and converts the instance into a standalone copy. The new copy retains the instance’s current values but no longer receives changes propagated from the original prototype. Manage prototype overrides Use the Inspector or the Scene Hierarchy to propagate or reset overrides on an instance. Make Unique is available only from the Scene Hierarchy. From the Inspector: Control-click the entry you want to change, and then select Propagate or Reset.

From the Scene Hierarchy: Control-click an asset, and then select Reset, Propagate, or Make Unique.

Change the prototype referenced by an instance In the Inspector, change the prototype that an instance references. Select the instance in the Hierarchy. In the Inspector, click the prototype field and select a different prototype from the Project Browser. The instance retains its current overrides, which now apply on top of the new prototype’s values. Remove any overrides that no longer apply to the new prototype.

## See Also

### Essentials

- [Linking an Xcode project](realitycomposerpro/realitycomposerpro-essentials-linkingxcodeproject.md)
- [Configuring the project workspace](realitycomposerpro/realitycomposerpro-essentials-configuringprojectworkspace.md)
- [Navigating the Reality Composer Pro workspace](realitycomposerpro/realitycomposerpro-essentials-workspaceoverview.md)
- [Adding entities and assets to a scene](realitycomposerpro/realitycomposerpro-essentials-addingentitiestoscene.md)
- [Working with the Graph Editor](realitycomposerpro/realitycomposerpro-essentials-grapheditoroverview.md)
- [Previewing content and running simulations](realitycomposerpro/realitycomposerpro-essentials-previewcontentrunsimulations.md)
