# 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 %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://postica.gitbook.io/binding-system/product/settings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
