> For the complete documentation index, see [llms.txt](https://stylizededge-devs.gitbook.io/aqs-doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stylizededge-devs.gitbook.io/aqs-doc/building-menus/descriptor-overrides.md).

# Descriptor Overrides

`AQS Descriptor Overrides` is the optional asset that lets you reshape the auto-generated menu — without touching C++. If you don't assign one, the auto-panel uses pure reflection defaults: every field, default control type, default label.

## Creating One

Content Browser → right-click → **Auto Quality Switcher → AQS Descriptor Overrides**.

## The Overrides Array

One entry per field you want to change. Every field is optional within an entry — set only what you actually want to override.

| Property              | What it does                                                                                                          |
| --------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `FieldName`           | Must match a `FAQSPresetData` field name exactly, e.g. `ShadowQuality`                                                |
| `DisplayNameOverride` | Replaces the auto-generated label                                                                                     |
| `TooltipOverride`     | Replaces the player-facing description                                                                                |
| `CoherenceHint`       | Appends cross-field guidance — see [Coherence Hints](/aqs-doc/building-menus/coherence-hints.md)                      |
| `ControlTypeOverride` | Renders this field with a different control type (must be valid for its value type)                                   |
| `SortOrderOverride`   | Position within its group                                                                                             |
| `GroupOverride`       | Which named group this field belongs to — see [Grouping & Ordering](/aqs-doc/building-menus/grouping-and-ordering.md) |
| `bHide`               | Removes this field from the menu entirely                                                                             |

## Two Ways to Decide What's Visible

**Default mode** — everything shows unless you explicitly set `bHide = true` on a field's entry. Good for a full-control menu where you're mostly renaming/recontrolling a few fields.

**Allowlist mode** — set `bUseAsAllowlist = true` on the asset itself. Now the rule flips: only fields with an entry in `Overrides` are shown; everything else is hidden automatically. Good for a minimal menu (4 fields visible out of 23) without writing 19 `bHide = true` entries by hand.

## Changing a Control Type Safely

`ControlTypeOverride` is validated against the field's value type at bake time. Assigning `Toggle` to a float field, for example, is rejected with a warning in the Output Log — the field keeps its generated default instead of silently breaking. Valid combinations:

* **Float** → `Slider01`, `Stepper`, `DirectInput`
* **Bool** → `Toggle`, `BoolDropdown`, `BoolButtonList`
* **Int** → `SliderStepped`, `IntDropdown`, `IntButtonList`

## Applying the Override

Assign your override asset to a Baked Descriptors asset's **SourceOverrides** slot, then click **Bake Now**. Overrides only take effect at bake time — editing the override asset later requires a re-bake to actually change anything in the menu.


---

# 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://stylizededge-devs.gitbook.io/aqs-doc/building-menus/descriptor-overrides.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.
