# Settings

The settings can be found in *Project Settings -> Binding System*.

{% tabs %}
{% tab title="Unity 2022+" %}

<figure><img src="https://2360058278-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3rw9jjjjlPycieM3U3MU%2Fuploads%2FKvLwMbz2xp2P0Bbsu5I1%2FSettings_2022.png?alt=media&#x26;token=e1a52c5c-c9a0-4595-87fc-095f53176a25" alt=""><figcaption><p>Settings Page</p></figcaption></figure>

Here is a short description of each settting:

* **Show Implicit Converters**: if **on**, the converters which are safe and without parameters are always shown in Bind drawer.
* **Show Incompatible Modifiers**: whether to show incompatible modifiers or not. An incompatible modifier is a modifier that has a `ModifyMode` which is not coherent with the `BindMode`. E.g. a value which is readonly cannot use a writeonly modifier.
* Show Target Replacement: whether to show or not the bind source replacement controls, that is, Group Rebinding.<br>

  <figure><img src="https://2360058278-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3rw9jjjjlPycieM3U3MU%2Fuploads%2FEzPwQ5r8S5BVk2gViZ36%2FSettings_ShowTargetReplacement.png?alt=media&#x26;token=eea2c050-9bd6-42f2-bf95-ec56f776a3ef" alt="" width="375"><figcaption><p>Target Replacement</p></figcaption></figure>
* **Minimal UI**: enables the Bind fields modern drawers based on UI Toolkit.
* **Optimization**: offers various levels of optimization. The optimization typically consists of a generator building a file with fast access to slow class members. For more info refer to [Performance](https://postica.gitbook.io/binding-system/product/performance) section.
* **Auto Apply Optimization**: when to apply the optimization logic. Three options are available:
  * **Never**: the optimization will never be applied.
  * **On Each Compilation**: will run on each recompilation, thus optimizing in editor as well. May lead to occasional short-lived compile error messages.
  * **On Each Build**: will apply only before building the player. This is the recommended approach.
* **Auto Conversion**: enables an automatic logic which detects field type change and reserializes its value to keep the data consistent. For more info refer to Bind Types Reserialization section.
* **\*Build All AOT Code**: <mark style="color:orange;">not needed anymore</mark>.
  {% endtab %}

{% tab title="Unity 2021 LTS" %}

<figure><img src="https://2360058278-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F3rw9jjjjlPycieM3U3MU%2Fuploads%2Fgb7SvjOaFX0vgLpBqDbD%2FSettings_2021.png?alt=media&#x26;token=366212f9-bb83-4bf2-b2f2-9207c4c4e550" alt=""><figcaption><p>Settings Page</p></figcaption></figure>

Here is a short description of each settting:

* **Show Implicit Converters**: if **on**, the converters which are safe and without parameters are always shown in Bind drawer.
* **Show Incompatible Modifiers**: whether to show incompatible modifiers or not. An incompatible modifier is a modifier that has a `ModifyMode` which is not coherent with the `BindMode`. E.g. a value which is readonly cannot use a writeonly modifier.
* **Optimization**: offers various levels of optimization. The optimization typically consists of a generator building a file with fast access to slow class members. For more info refer to [Performance](https://postica.gitbook.io/binding-system/product/performance) section.
* **Auto Apply Optimization**: when to apply the optimization logic. Three options are available:
  * **Never**: the optimization will never be applied.
  * **On Each Compilation**: will run on each recompilation, thus optimizing in editor as well. May lead to occasional short-lived compile error messages.
  * **On Each Build**: will apply only before building the player. This is the recommended approach.
* **Auto Conversion**: enables an automatic logic which detects field type change and reserializes its value to keep the data consistent. For more info refer to Bind Types Reserialization section.
* **Build All AOT Code**: how to generate all AOT code required by the BindingSystem. There are several modes:
  * **Skip**: skips the code generation. May be useful when using external generator files. <mark style="color:orange;">No Build Overhead.</mark>
  * **Partial**: generates code only for all types it encounters in scenes to build and resources, along with their dependencies. <mark style="color:orange;">Reduced Build Overhead. Depends on project codebase size, built scenes complexity and number of resources.</mark>
  * **Full**: generates full code. Useful when AssetBundles with bind fields are used. <mark style="color:orange;">Moderate Build Overhead. Depends on project codebase.</mark>
  * **Optimized**: generates only the code which is required for all bind fields in scenes to build and resources, along with their dependencies. <mark style="color:orange;">Minimal Build Overhead. Depends on number of distinct bound fields in built scenes and resources along with their dependencies.</mark>
    {% endtab %}
    {% endtabs %}
