> For the complete documentation index, see [llms.txt](https://fast-studios.gitbook.io/bindables/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fast-studios.gitbook.io/bindables/manual/settings.md).

# Settings

Customize how Bindables behaves and integrates with your Unity workflow.

<figure><img src="https://2481222926-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmaoQ3JqmajH03CSjQGSD%2Fuploads%2F1odReUb4LKAGR9aSRv0t%2FSettingsMain.png?alt=media&amp;token=f48a4397-f73f-481b-8106-94fa9841bd77" alt="The Bindables Settings window"><figcaption></figcaption></figure>

The **Settings** window is the central place for customizing how Bindables behaves and integrates with your Unity workflow.

From here, you can adjust editor features, change how Bindables are displayed, configure animations, manage compatibility with different component types, and set up optional integrations. Most settings are here to tailor the workflow to your taste: none of them are required for Bindables to work, and the defaults are ready to go out of the box.

To open the window, go to **`Tools > Fast Studios > Bindables > Settings`** in Unity's top menu bar.

The settings are organized into **Features, Style, Animations, Compatibility,** and **Extension**, with each tab focusing on a specific part of the Bindables experience.

***

## Features

The **Features** tab controls optional editor tools and workflow behaviors used throughout Bindables. Tweak them to match the way you like to work.

### Variable Drag

Lets you drag compatible variables directly from their fields in the Inspector and drop them into Bindable fields, Dynamic Windows, and other supported Bindables interfaces.

Instead of manually selecting the source GameObject, Component, and Variable, you can start dragging from the variable's label and drop it where you want to create the binding.

<figure><img src="https://2481222926-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmaoQ3JqmajH03CSjQGSD%2Fuploads%2FJK7dfIxcvOLZUcw8cpGQ%2FVariableDrag.gif?alt=media&amp;token=077c1083-d494-4679-81cf-757f4a72bfc3" alt="Dragging a variable into a Bindable field"><figcaption></figcaption></figure>

Disabling **Variable Drag** turns off this drag-and-drop workflow without affecting existing bindings.

#### Require Support Key

When enabled, **Variable Drag** only starts while the configured **Support Key** is being held.

This is especially useful for numeric fields, since dragging their labels normally changes their value in Unity. With a support key required, normal numeric dragging remains untouched, while holding the key switches the same interaction to Variable Drag.

#### Numeric Fields Drag Directly

Available when **Require Support Key** is disabled.

When enabled, numeric fields can start a **Variable Drag** directly, just like other supported fields. Holding the configured **Support Key** instead gives the drag back to Unity, allowing you to change the numeric value normally.

This lets you choose which interaction should happen by default when dragging a numeric field.

#### Support Key

Selects the modifier key used by **Variable Drag**. The options are **Action, Control, Command, Shift,** and **Alt**, where **Action** follows the platform: Command on macOS, Control on Windows and Linux.

When **Require Support Key** is enabled, this is the key that must be held to start Variable Drag. When direct numeric dragging is enabled, the same key is used to access Unity's normal numeric drag instead.

#### Show Tooltip

Controls whether the helper tooltip used by **Variable Drag** is shown during the drag-and-drop workflow.

You can disable it if you prefer a cleaner interface once you are already familiar with Variable Drag.

### Max Width Bindables

When enabled, Bindable fields are allowed to use the maximum horizontal space available in the Inspector.

This can make bindings easier to read in wider Inspectors, particularly when GameObject, Component, or Variable names are long.

### Source Generator

An optional optimization that makes eligible bindings faster: the included **Roslyn Source Generator** generates direct access code for them, so those bindings don't need to rely on reflection (a slower lookup technique). It's not required. If it noticeably increases script compilation times, it can be safely disabled and Bindables will automatically fall back to reflection. If you experience any other issues related to the Source Generator, please contact [support](/bindables/introduction.md#support).

By default the generator covers `float` fields, the type that dominates real bindings; everything else keeps using Bindables' cached reflection path. To widen the coverage (at the cost of slightly longer compiles), add an assembly attribute to any script: `[assembly: BindableAccessorCoverage(BindableAccessorCoverage.Common)]` for `float`, `int`, and `bool`, or `BindableAccessorCoverage.All` for the remaining primitives, strings, enums, common Unity structs, and object references.

{% hint style="warning" %}
Toggling this setting registers or unregisters the generator DLL as a Roslyn Analyzer, so Unity will recompile your scripts afterwards.
{% endhint %}

### Component Window

The **Component Window** lets you detach a component from the Inspector into its own floating window. This is useful when you want to keep a component visible while selecting or working with other objects.

To open one, drag the component's header out of the Inspector. You can also open it from the component's **Bindables > Open Component Window** context menu.

<figure><img src="https://2481222926-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmaoQ3JqmajH03CSjQGSD%2Fuploads%2FsrZK61XEWVkeMvuHSZHo%2FComponentWindow.gif?alt=media&amp;token=33557a39-d53f-4d41-8987-95d92e3f1873" alt="Dragging a component header out into a Component Window"><figcaption></figcaption></figure>

A Component Window retains the component's Inspector functionality, including supported Bindable fields, Local Conversions, and Variable Drag.

#### Require Support Key

When enabled, the configured modifier key must be held while using the Component Window drag workflow.

This helps prevent a Component Window from being opened accidentally while interacting with or reorganizing components in the Inspector.

#### Support Key

Selects which modifier key is used when **Require Support Key** is enabled for the Component Window.

This setting is independent from the Support Key used by **Variable Drag**, so the two workflows can use different shortcuts. The default configuration, for example, uses **Alt** for Component Windows and **Control** for Variable Drag.

#### Persistent Windows

When enabled, Component Windows are kept persistent across scene changes and restored when possible, including their previous position.

Disable it if you prefer Component Windows to be temporary and close when you change scenes.

***

## Style

The **Style** tab changes how Bindable fields are presented in the Inspector. These options only affect the editor interface; they do not change how the bindings themselves work.

The **Preview** at the top of the page updates with your selected settings, allowing you to compare the available layouts before using them throughout the Inspector.

<figure><img src="https://2481222926-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FmaoQ3JqmajH03CSjQGSD%2Fuploads%2FeFCpR4sKdd3b8dRUVpiC%2FStyleComparison.png?alt=media&amp;token=20c5c9b1-1a93-4179-a9bd-d9be0ecb675f" alt="The four combinations of the Legacy and Simple styles"><figcaption></figcaption></figure>

### Legacy

**Legacy** removes the custom Bindables container styling and displays each Bindable separately, producing a more traditional Unity Inspector appearance.

Because each Bindable is drawn independently in this mode, adjacent Bindables are not visually grouped together.

When **Legacy** and **Simple** are enabled at the same time, the field becomes even closer to a standard Unity field: the additional **Live View**, **Dynamic Mode**, and **Parameters** buttons are moved to the field's context menu instead of being displayed beside it.

### Simple

**Simple** replaces the separate **OBJ, COMP,** and **VAR** selectors with a single variable field.

Clicking the field opens a scene variable picker. Once a variable is selected, Bindables automatically stores its GameObject and Component behind the scenes, giving you the same binding with a much more compact Inspector layout.

### Group

When enabled, consecutive Bindable fields are visually connected into a single group instead of each appearing inside a separate container.

This can make components containing several related Bindables more compact and easier to scan.

**Group** is not available while **Legacy** is enabled, since Legacy intentionally draws every Bindable independently.

***

## Animations

The **Animations** tab controls visual animations used by Bindables inside the Unity Editor. Disabling these options only removes their visual transitions and does not change the behavior or result of a binding.

### Bindable's Fields Animation

Controls the transition between the **OBJ, COMP,** and **VAR** stages of a Bindable field.

When enabled, the field smoothly rearranges itself as a GameObject, Component, and Variable are selected or cleared. When disabled, the same layout changes happen immediately without animation.

### Dynamic Window

**Card Scale** and **Card Shake** control the two animations that cards play inside the **Dynamic Window**: the scale feedback on interactions, and the shake shown while you drag a card around. Both are purely visual and can be toggled independently.

***

## Compatibility

Your own scripts are `MonoBehaviour`s, so Bindables supports them automatically. Some components that do not derive from `MonoBehaviour`, including built-in Unity types such as `Camera` and `MeshRenderer`, need a small generated **compat file** so Bindables can integrate its editor features with their custom Inspectors.

These compat files allow features such as **Conversion, Variable Drag,** and the **Component Window** to behave correctly with those component types.

### Components

The **Components** list shows the component types for which Bindables can manage generated compatibility files.

**All MonoBehaviours (automatic)** stands for the built-in support every `MonoBehaviour` script already gets, with no generated file needed.

Use **Add Component Type** to manually add another component type, the search field to find an existing entry, and **Refresh** to rescan and update the list. Individual compat entries can also be enabled, disabled, or removed from here.

{% hint style="warning" %}
Adding or removing a compat file can cause Unity to recompile scripts, since an editor script is created or removed.
{% endhint %}

### Auto Generate Files

When enabled, Bindables automatically generates a compat file when it encounters a component type that requires one, removing the need to configure that component manually beforehand.

When disabled, Bindables will not create missing compat files automatically. If a component requires one, you can add it yourself through the **Components** list.

Normal `MonoBehaviour` scripts are still handled automatically regardless of this setting.

***

## Extension

The **Extension** tab manages the optional [**Bindables VS Code extension**](/bindables/scripting/vscode-extension.md) and its editor-specific settings.

Bindables automatically detects whether VS Code is available and whether the extension is installed. Depending on the extension's current state, the tab's main button lets you **Install**, **Reinstall**, or **Update** it, and the box above the button tells you which version is bundled and which one is installed.

{% hint style="warning" %}
After installing or updating the extension, restart VS Code so the new version can load.
{% endhint %}

### Hide Unity Serialized Field

Controls whether the extension hides the extra **Unity Serialized Field** CodeLens shown above serialized Unity fields in VS Code.

Enable it if you prefer a cleaner script view and only want to see the information added by Bindables. This changes only how the information is displayed in the editor and does not affect Unity serialization itself. For the details (and a side effect to be aware of), see [Hide Unity Serialized Field](/bindables/scripting/vscode-extension.md#hide-unity-serialized-field) on the extension page.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://fast-studios.gitbook.io/bindables/manual/settings.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
