# Asset management

In this section we cover how **coherence** handles loading `CoherenceSync` Prefabs into memory and instantiating them when a new remote entity appears on the network.

### CoherenceSyncConfig assets

Whenever you start synchronizing one of your Prefabs, either by adding the `CoherenceSync` component manually or clicking the **Sync with coherence** toggle in the Prefab inspector, coherence will create a `CoherenceSyncConfig` ScriptableObject to track the existence of this entity, and add it to a [registry](#the-coherencesyncconfigregistry).

<figure><img src="https://2047761709-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Ffo6vUwbCyyb7fmwjPG0A%2Fuploads%2FHGwGssEDZbwTfwMudF79%2FCoherenceSyncConfig.png?alt=media&#x26;token=d110d7ef-ce61-4845-8f32-0ecd1de92454" alt="" width="563"><figcaption><p>A CoherenceSyncConfig</p></figcaption></figure>

This object holds information on how a certain type of network entity is loaded and instantiated. As a user, the two main changeable options here are [**Load via**](https://docs.coherence.io/1.2.4/manual/asset-management/load-via), and [**Instantiate via**](https://docs.coherence.io/1.2.4/manual/asset-management/instantiate-via).

There is a 1:1 correspondence between a networked Prefab and its `CoherenceSyncConfig` object, so you can also edit the related `CoherenceSyncConfig` in the inspector of any `CoherenceSync` component:

<figure><img src="https://content.gitbook.com/content/fo6vUwbCyyb7fmwjPG0A/blobs/w35wmTRknx3zqs5Z83HC/AM%2003%20Config%20in%20Sync.png" alt=""><figcaption><p>CoherenceSyncConfig in CoherenceSync Inspector</p></figcaption></figure>

The `CoherenceSyncConfig` object allows us to do the following:

* Hard reference the prefab in Editor, this means that whenever we have to do postprocessing in synced prefabs, we don't have to do a lookup or load them from Resources.
* Serialize the method of loading and instantiating this prefab in runtime.
* Soft reference the prefab in Runtime with a GUID, this means we can access the loading and instantiating implementations without having to load the prefab itself into memory.

{% hint style="info" %}
:file\_folder: `Assets/coherence/CoherenceSyncConfigs` is the default location of all `CoherenceSyncConfig` objects.
{% endhint %}

### The CoherenceSyncConfigRegistry

Every time a `CoherenceSyncConfig` object is created, it gets added to a registry that is another ScriptableObject of type `CoherenceSyncConfigRegistry`.

You can inspect all of the `CoherenceSyncConfig` assets in one place in the **CoherenceSync Objects** window, found under the **coherence > CoherenceSync Objects** menu item:

<figure><img src="https://content.gitbook.com/content/fo6vUwbCyyb7fmwjPG0A/blobs/FKj5ojswRaGtBM6rKiLq/Updated%20Objects%20Window.png" alt=""><figcaption><p>CoherenceSync Objects window</p></figcaption></figure>

This is a great way to see the configuration of different entities next to each other, and to do mass edits.

{% hint style="info" %}
You can also manually inspect the `CoherenceSyncConfigRegistry` by selecting it from :file\_folder: `Assets/coherence` folder
{% endhint %}
