Adjust
The Adjust Module allows you to modify variables, properties, and invoke methods at runtime without rebuilding. It can be used for testing different values, debugging gameplay parameters, and fine-tuning your game during runtime.
In Adjust we call values or methods exposed in the UI adjustables. Adding Adjustables is as easy as adding an [Adjust] annotation to a field, property, or method.

TIP
For a comprehensive list of examples, open Tools -> Debby -> Adjust Examples after importing the Debby package.
Features
- Runtime Variable Modification: Change field and property values on the fly
- Method Invocation: Execute methods with a button click
- This includes async methods returning
Task,Awaitable, orUniTask
- This includes async methods returning
- UI Controls: Sliders, pickers, toggles, dropdowns - context-aware controls
- Organized Display: Categories, groups, and priorities for clean organization
- Real-time Updates: See value changes reflected immediately
TIP
Apart from adding the [Adjust] annotation, you also need to register the context in which you want to use the adjustable. See Creating Contexts for more information.
Contexts
Adjustables are separated into contexts, and each context gets it's own tab in the UI:

Contexts can be registered or unregistered on demand, so you can keep your options "context-aware", for example, you might have one context that is only active in your main menu, and another one during gameplay. This way you can keep your adjustments organized and not clutter the UI with options that are not relevant / available at the moment.
Creating Contexts
To learn how to create / register contexts, see the Creating Contexts page.
Adjustable Values
Any field or property that is marked with the [Adjust] attribute will be displayed in the UI. Debby has built in support for the most common types used in Unity.
TIP
You can add support for any custom type by using the `AdjustTypeAdapter' class. To learn more, see the Custom Types page.
Supported Types
| Type | Controls | Valid Attributes |
|---|---|---|
bool | Toggle | [Adjust] |
string | Text Field | [Adjust], [AdjustString] |
int | Picker, Slider | [Adjust], [AdjustInt] |
float | Picker, Slider | [Adjust], [AdjustFloat] |
double | Picker, Slider | [Adjust], [AdjustDouble] |
long | Picker, Slider | [Adjust], [AdjustLong] |
uint | Picker, Slider | [Adjust], [AdjustUInt] |
ulong | Picker, Slider | [Adjust], [AdjustULong] |
Vector2 | Vector Input | [Adjust] |
Vector3 | Vector Input | [Adjust] |
Vector4 | Vector Input | [Adjust] |
Quaternion | Vector Input | [Adjust] |
Enums | Dropdown | [Adjust] |
Color | Color Picker | [Adjust] |
Example
[Adjust]
private bool godMode;
[AdjustInt(Min = 0, Max = 100)]
private int health;Supported Actions / Methods
Adjustable methods can be either synchronous or asynchronous. They must return void or one of the supported async types, and cannot have any parameters. Async methods can optionally have an Action<float> parameter (0f - 1f), which you can use to display a progress bar.
They are created by using the same [Adjust] attribute as before, or with the [AdjustAction] attribute, if you want to attach an icon:
[AdjustAction(Icon = DebbyIcon.Heart)]
private void Heal() { ... }| Return Type | Parameters |
|---|---|
void | None |
Task | Action<float> (optional) |
UniTask | Action<float> (optional) |
Awaitable | Action<float> (optional) |
INFO
Awaitable is only available in Unity 2023.1 and newer.
INFO
UniTask is not shipped with Debby, but you can add it via the UniTask package. Debby will automatically detect it.