# Reserializer

Reserializer intercepts field type changes to/from bind type from/to standard type and applies a reserialization logic to transfer the data between these types keeping it the same.&#x20;

{% hint style="info" %}
Reserializer triggers only when there is a code change, either added or removed, involving one of the <mark style="color:orange;">`Bind<T>`</mark> classes.
{% endhint %}

<figure><picture><source srcset="https://content.gitbook.com/content/npeBTRzgLGSQUWVhwqoi/blobs/KOmSnhxMnll1NOrjngOE/Reserializer_OnSave.png" media="(prefers-color-scheme: dark)"><img src="https://content.gitbook.com/content/npeBTRzgLGSQUWVhwqoi/blobs/g4VNpzYaTLaxyxfUjvA0/Reserializer_OnSave_Light.png" alt=""></picture><figcaption><p>Reserializer in action</p></figcaption></figure>

When enabling the Reserializer, the very first compilation may take longer than normal, this is because Binding System is creating a database of currently defined fields to be able to detect changes.

{% hint style="info" %}
For the serializer to work properly, assets need to be serialized in text mode.
{% endhint %}

{% hint style="warning" %}
The logic cannot perform reserialization on `[SerializeReference]` fields as of now.
{% endhint %}
