> 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/reference/api-reference.md).

# API Reference

Every `BlueprintCallable` / `BlueprintPure` function you're likely to call directly, grouped by class. This is a quick lookup, not exhaustive documentation — see the relevant feature page for full context on any of these.

## UAQSSubsystem

Get a reference anywhere with `UAQSSubsystem::Get(WorldContextObject)`.

| Function                                               | Returns               | Notes                                                                       |
| ------------------------------------------------------ | --------------------- | --------------------------------------------------------------------------- |
| `SetupAQS(Presets, BenchmarkConfig, bAutoApplyOnInit)` | —                     | Call once, from a GameMode, Level Blueprint, or the AQS Manager actor       |
| `GetAvailablePresets()`                                | `TArray<UAQSPreset*>` | Filtered by detected device tier — use this for your UI list                |
| `GetAllPresets()`                                      | `TArray<UAQSPreset*>` | Unfiltered. Debug/editor use only                                           |
| `GetActivePreset()`                                    | `UAQSPreset*`         | Null until the first apply                                                  |
| `ApplyPreset(Preset, ApplyMode)`                       | —                     | The core apply function                                                     |
| `ApplyPresetByIndex(Index, ApplyMode)`                 | —                     | Apply by position in the available list                                     |
| `GetDeviceTier()`                                      | `EAQSDeviceTier`      | —                                                                           |
| `GetHardwareInfo()`                                    | `FAQSHardwareInfo`    | GPU name, VRAM, RAM, CPU, tier                                              |
| `RunBenchmark()`                                       | —                     | Manually re-run hardware detection                                          |
| `GetApplier()`                                         | `UAQSPresetApplier*`  | Direct access — needed for `ApplySingleField` and binding `OnFadeRequested` |
| `SavePlayerPresetChoice(Preset)`                       | —                     | Called automatically by `ApplyPreset`; rarely called directly               |
| `LoadPlayerPresetChoice()`                             | `UAQSPreset*`         | Null if nothing saved, or the saved preset no longer exists                 |

**Delegates:** `OnPresetChanged`, `OnHardwareDetected`

## UAQSAutoPanel

| Function                                | Returns | Notes                                                                                                                  |
| --------------------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------- |
| `BuildPanel()`                          | —       | Called automatically on construct; safe to call again to rebuild                                                       |
| `ApplyChanges(ApplyMode)`               | —       | Commits `WorkingSettings` as a transient "Custom" preset — call from an Apply button when `bAutoApplyOnChange = false` |
| `ResetToActivePreset()`                 | —       | Reverts every row to the currently active preset's values                                                              |
| `ApplyPresetAndSync(Preset, ApplyMode)` | —       | Use this from preset quick-select buttons — applies AND visually syncs every row                                       |

## UAQSPresetApplier

Accessed via `Subsystem->GetApplier()`.

| Function                                | Returns | Notes                                                                                                                   |
| --------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------- |
| `ApplyPreset(Preset, ApplyMode)`        | —       | Respects the preset's `DefaultApplyMode` unless overridden                                                              |
| `ApplyLive(Preset)`                     | —       | Direct CVar writes, Layer 1 then Layer 2                                                                                |
| `ApplyNextLaunch(Preset)`               | —       | Writes to `GameUserSettings.ini`, applies on restart                                                                    |
| `ApplyLiveWithFade(Preset)`             | —       | Fires `OnFadeRequested`, waits a frame, applies live                                                                    |
| `ApplySingleField(FieldName, Settings)` | —       | Internal — used by the Auto Panel for live row edits, see [Single-Field Apply](/aqs-doc/advanced/single-field-apply.md) |

**Delegates:** `OnApplyStarted`, `OnApplyCompleted`, `OnFadeRequested`

## UAQSRowBase and Typed Bases

Available on every row template (`UAQSRowBase_Float` / `_Bool` / `_Int`):

| Function                                                     | Notes                                                                      |
| ------------------------------------------------------------ | -------------------------------------------------------------------------- |
| `InitRow(Descriptor)`                                        | Called once by the Auto Panel when the row is spawned                      |
| `SetFloatValue` / `SetBoolValue` / `SetIntValue`             | Call from your control's native change event                               |
| `RefreshFloatValue` / `RefreshBoolValue` / `RefreshIntValue` | Called by the Auto Panel on preset switch/Reset — never call this yourself |

**Events to implement:** `OnRowInitialized`, `OnValueRefreshed`

## UAQSDescriptorGenerator

Mostly used internally, but available if you're building custom editor tooling:

| Function                                          | Returns                         | Notes                                                          |
| ------------------------------------------------- | ------------------------------- | -------------------------------------------------------------- |
| `GenerateDescriptors(OptionalOverrides)`          | `TArray<FAQSSettingDescriptor>` | Editor-only — live reflection read                             |
| `BakeDescriptors(TargetAsset, OptionalOverrides)` | —                               | Editor-only — writes the result into a Baked Descriptors asset |
| `ComputeStructHash()`                             | `FString`                       | Used for staleness detection                                   |


---

# 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/reference/api-reference.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.
