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

# Configuration files

ArcMenu stores its configuration in `plugins/ArcMenu/`. Back up this directory before making changes and use the configuration files for your server type.

## Paper, Folia and Leaf

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

| File or directory | Purpose                                                                             | Apply changes with                                    |
| ----------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------- |
| `config.yml`      | Default language, main-menu shortcut, interaction mode and other basic settings.    | `/arcmenu reload`                                     |
| `offset.yml`      | Menu screen position and distance, configured separately for touch and mouse modes. | `/arcmenu reload`                                     |
| `menus/`          | Menu text, layouts, hit regions and actions.                                        | `/arcmenu reload`                                     |
| `animations.yml`  | Menu animations and their element settings.                                         | `/arcmenu reload`                                     |
| `templates/`      | Reusable menu components.                                                           | `/arcmenu reload all`                                 |
| `tooltip.yml`     | Tooltip text size, position, background and border styles.                          | `/arcmenu reload all`                                 |
| `images/`         | PNG images for menus, tooltips and cursors.                                         | `/arcmenu reload all`, then update the resource pack. |
| `languages/`      | Plugin command messages, error messages and other notices.                          | `/arcmenu reload`                                     |

### Basic settings

The following are commonly used settings in `config.yml`. Edit the corresponding fields in the existing file and retain its other settings.

```yaml
language:
  default: zh_CN
  follow-player-locale: true

shortcuts:
  shift-f: true

mouse:
  policy: player-choice
  default: touch
```

| Field                           | Description                                                                                                                                                                                   |
| ------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `language.default`              | Default language. Bundled options are `zh_CN` (Simplified Chinese) and `en_US` (English). Console messages use this language.                                                                 |
| `language.follow-player-locale` | When `true`, plugin messages follow the player's client language, falling back to the default language when a translation is unavailable. When `false`, all players use the default language. |
| `shortcuts.shift-f`             | Enables or disables the Shift+F main-menu shortcut.                                                                                                                                           |
| `mouse.policy`                  | `player-choice` lets players choose; `force-touch` forces touch mode; `force-mouse` forces mouse mode.                                                                                        |
| `mouse.default`                 | Default mode for players without a saved preference when player choice is allowed. Use `touch` or `mouse`.                                                                                    |

Language settings affect plugin messages. Edit custom menu titles and button labels in their menu files.

### Menu files

Each menu uses a `.yml` file, such as `menus/welcome.yml`. Its `id` is used when opening the menu:

```
/arcmenu open welcome
```

Menu identifiers must be unique. Keep exactly one menu marked `main-menu: true` for the Shift+F shortcut; do not mark multiple menus as the main menu.

For a complete example, see [Your first menu](/arcmenu-wiki/getting-started/first-menu.md).

### Images and resource packs

Place images in `images/` and use lowercase file and subdirectory names. After adding or changing images, run `/arcmenu reload all`, then update the pack players receive.

With CraftEngine installed, run `/ce reload all` afterward. Otherwise, distribute the generated pack as described in [Resource pack configuration](/arcmenu-wiki/getting-started/install.md#resource-pack-configuration).

See [Images and resource packs](/arcmenu-wiki/feature-configuration/resource-packs.md) for references, file limits and the update workflow.

### Generated files and backups

| Path                                 | Purpose                                                      |
| ------------------------------------ | ------------------------------------------------------------ |
| `generated/arcmenu-resourcepack.zip` | Resource pack for distribution or merging.                   |
| Other files in `generated/`          | Generated resources that normally require no manual editing. |
| `backup-menu/`                       | Menu backups created by the editor, when present.            |
| `data.properties`                    | Saved plugin data; do not edit it as menu configuration.     |

Edit the original images in `images/` and rebuild the pack. Direct changes to generated files may be overwritten by the next rebuild.

## Spigot

Spigot menus and shortcuts are stored in `plugins/ArcMenu/spigot/`. Language settings remain in `plugins/ArcMenu/config.yml`, with translations in `plugins/ArcMenu/languages/`.

| File or directory | Purpose                      | Apply changes with |
| ----------------- | ---------------------------- | ------------------ |
| `config.yml`      | Main-menu shortcut settings. | `/arcmenu reload`  |
| `menus/`          | Basic menu configuration.    | `/arcmenu reload`  |

These paths are relative to `plugins/ArcMenu/spigot/`. For example, the full configuration path is `plugins/ArcMenu/spigot/config.yml`.

### Main-menu shortcut

```yaml
shortcuts:
  shift-f: true
```

Set `shift-f` to `false` to disable the shortcut. Keep exactly one menu marked `main-menu: true` even when the shortcut is disabled.

### Menu configuration

Place menu files in `plugins/ArcMenu/spigot/menus/`, rather than Paper's `plugins/ArcMenu/menus/`. Start with the bundled `example.yml`, `details.yml` or the example in [Your first menu](/arcmenu-wiki/getting-started/first-menu.md).

Spigot does not provide the mouse, image, animation, tooltip or template settings described above. Check examples against the [Spigot limitations](/arcmenu-wiki/getting-started/requirements.md#spigot-limitations) before using them.

Spigot shares the language settings used by Paper-family servers. See [Language management](/arcmenu-wiki/feature-configuration/languages.md). Edit menu titles, button labels and custom messages in menu files.

## Applying configuration changes

1. Back up the files to be edited.
2. Edit them using a UTF-8 text editor and preserve YAML indentation.
3. After changing menus, run `/arcmenu validate` to check the configuration.
4. Run the appropriate reload command listed above.
5. Reopen the menu and check its appearance and click actions.

{% hint style="info" %}
Validation and reload commands require `arcmenu.admin`, granted to OPs by default. A successful reload closes currently open menus. Correct reported errors before reloading again.
{% endhint %}

Resource pack changes also require players to load the updated pack. Replacing the plugin `.jar` file requires a server restart.

## Next step

See [Commands and permissions](/arcmenu-wiki/configuration-and-administration/commands-permissions.md) for the full command reference and permission requirements.
