> For the complete documentation index, see [llms.txt](https://enchantedmobs.superiormc.cn/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://enchantedmobs.superiormc.cn/for-ultimatequest/information/configuration-files.md).

# Configuration Files

All paths below are relative to `plugins/UltimateQuest/`.

| Path                 | Purpose                                                                                                                |
| -------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| `config.yml`         | Language, math, auto-save, task limits, database, editor, and category-menu defaults.                                  |
| `languages/*.yml`    | Messages and `override-lang` text. Bundled locales: `en_US`, `zh_CN`.                                                  |
| `quests/*.yml`       | [Reusable objective templates](/for-ultimatequest/configuration/objectives.md), shared by tasks and other quest types. |
| `tasks/*.yml`        | [Normal tasks](/for-ultimatequest/configuration/tasks.md).                                                             |
| `categories/*.yml`   | [Category names, icons, and order](/for-ultimatequest/configuration/categories.md).                                    |
| `pools/*.yml`        | [Weighted objective pools](/for-ultimatequest/configuration/pools.md).                                                 |
| `reward-pools/*.yml` | [Reusable weighted reward choices](/for-ultimatequest/configuration/rewards.md).                                       |
| `periods/*.yml`      | [Periodic assignments](/for-ultimatequest/configuration/periods.md).                                                   |
| `scrolls/*.yml`      | [Physical scroll profiles](/for-ultimatequest/configuration/scrolls.md).                                               |
| `battlepasses/*.yml` | [Battle passes and challenges](/for-ultimatequest/configuration/battlepasses.md).                                      |
| `milestones/*.yml`   | [Cumulative milestones](/for-ultimatequest/configuration/milestones.md).                                               |
| `menus/*.yml`        | [Menu definitions](/for-ultimatequest/menus/menus-1.md); `settings.yml` contains shared settings.                      |
| `items/`             | [Saved items](/for-ultimatequest/configuration/custom-items.md).                                                       |
| `data/`              | YAML storage when SQL is disabled; see [storage](/for-ultimatequest/features/storage.md).                              |

Definition folders are scanned for direct `.yml` children, not nested directories. Use lowercase IDs containing letters, digits, `_`, or `-`; the filename without `.yml` identifies the definition. `enabled` defaults to `true`.

Do not put full tasks in `quests/` or reference a normal task as `source.quest`. A `source.quest` reference must identify an enabled objective template. Categories are explicit task metadata and are not inherited from objective templates.

## Important `config.yml` sections

### `config-files`

```yaml
config-files:
  language: en_US
  per-player-language: true
  force-parse-mini-message: false
```

Controls the default language, player locale selection, and MiniMessage parsing behavior. See [Advanced Language Management](/for-ultimatequest/features/advanced-language-management.md).

### `math`

```yaml
math:
  enabled: true
  enable-function: true
```

Enables expressions and math functions in supported numeric fields. See [Math Calculate Format](/for-ultimatequest/shared-formats/math-calculate-format.md).

### `hook-item-method`

```yaml
hook-item-method: DEFAULT
```

Selects how custom items are obtained from other plugins. Keep `DEFAULT` unless your setup specifically requires another mode.

### `auto-save`

```yaml
auto-save:
  enabled: true
  hide-message: false
  period-tick: 6000
  message: '{lang:auto-save.message}'
```

Saves player progress automatically every 6000 ticks by default, approximately 5 minutes at 20 TPS. Progress is also saved when players quit, claim rewards, and when the plugin shuts down. See [Storage and Saving](/for-ultimatequest/features/storage.md).

### `task-limits`

Sets how many tasks a player can have at the same time. You can limit normal tasks, scrolls, periodic tasks, and battle-pass challenges separately, and add limits by category. Use `-1` for unlimited and `0` to disable new assignments of that type. Completed tasks waiting for reward collection still occupy a slot. See [Task Limits](/for-ultimatequest/features/task-limits.md).

### `database`

```yaml
database:
  enabled: false
  jdbc-url: jdbc:sqlite:{plugin_folder}/quests.db
  properties:
    user: ''
    password: ''
```

Player data is saved in YAML by default. Set `enabled: true` and configure the JDBC URL to use a database. Back up existing data before changing storage; changing this setting does not move old data automatically. A server restart is required. See [Storage and Saving](/for-ultimatequest/features/storage.md).

### `editor`

```yaml
editor:
  enabled: true
```

Enables the in-game configuration editor opened with `/uq editor`. See [In-game Editor](/for-ultimatequest/features/editor.md).

### Display and menu settings

* `objective-display.formats`: default objective text when the objective has no explicit name.
* `task-display`: text for prerequisite tasks and administrative tasks.
* `category-menu`: shared title, layout, icons, and buttons for the category selector.
* `debug`: additional information for diagnosing a problem; normally leave it disabled.

Individual menu layouts are stored in `menus/`, with shared menu settings in `menus/settings.yml`. See [Menus](/for-ultimatequest/menus/menus.md).

## Editing configuration

1. Back up the file you want to edit.
2. Change the relevant task, objective, reward, or menu. Use spaces for YAML indentation.
3. Run `/uq reload` and check for configuration errors.
4. Accept a new task and test its objectives and rewards.

Already accepted tasks retain their original requirements. Changing a template does not reset player progress or replace rewards for those tasks.
