> For the complete documentation index, see [llms.txt](https://docs.myarc.icu/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.myarc.icu/en/getting-started/install.md).

# Installation and updates

## Install the plugin

Stop your server, place the downloaded ArcMenu plugin JAR into the server's `plugins/` folder, and start the server.

On its first startup, the plugin generates `config.yml`, language files, image assets, and a ready-to-use set of default menus inside `plugins/ArcMenu/` (including the `main` menu, `start`, `cursor-setting`, shop categories, a `teleport` example, and three random teleport Effect examples: `rtp-overworld`, `rtp-nether`, and `rtp-end`). If you later delete any of these bundled example menus, images, or animations, the plugin respects your deletions on future restarts, reloads, and upgrades rather than recreating them.

Once you join the game, run the following command to open the default main menu:

```
/arcmenu open main
```

With the default settings, pressing **Shift+F** (the swap offhand key) in-game opens the main menu. While a menu or application is open, pressing **Shift+F** again or pressing **Space** (jump) closes it (`close-on-shift-f` and `close-on-space` both default to `true` independently for menus and applications), or you can run `/arcmenu close` at any time. To keep the camera angle and screen plane steady, if a player requests a menu while jumping in mid-air, the menu waits until they land before opening; players in Creative mode, Spectator mode, or with flight enabled open it right away in the air.

To open a menu, a player needs both the default `arcmenu.use` permission and any permission configured on that specific menu. Reload, validation, and editing commands are controlled by `arcmenu.admin`, which is granted to server operators by default.

## Configure the resource pack

When your menus use images, animated GIFs, custom tooltip styles, or **Mouse mode**, player clients need a resource pack that includes the generated ArcMenu assets.

### Automatic merging with custom item plugins

If your server runs **CraftEngine**, **Nexo**, or **ItemsAdder**, ArcMenu automatically merges its generated images, fonts, and shaders whenever those plugins build their resource pack—no manual folder copying required:

1. After adding or replacing images in `plugins/ArcMenu/images/`, run `/arcmenu resources` (or `/arcmenu reload all`) to rebuild ArcMenu's own assets.
2. Run the packaging command for your plugin to finish merging and distributing the pack:
   * **CraftEngine**: Run `/ce reload pack` (or `/ce reload all`).
   * **Nexo**: Run `/nexo reload pack`.
   * **ItemsAdder**: Run `/iazip`.

When you install an ArcPack or modify workspace assets through the project manager in the client editor, the server automatically requests a resource pack rebuild (if multiple supported plugins are installed, it checks CraftEngine, then Nexo, then ItemsAdder in order). If you run more than one of these plugins at the same time, we recommend having only one of them send the final resource pack to players.

### Standalone distribution or manual client installation

If your server does not use any of those resource pack plugins, run the following command after updating your assets:

```
/arcmenu reload all
```

The plugin writes the complete generated resource pack to:

```
plugins/ArcMenu/generated/arcmenu-resourcepack.zip
```

You can upload this ZIP file to your resource pack host and configure it in `server.properties`, or share it directly with players to drop into their client `resourcepacks/` folder and enable manually.

In `config.yml`, `mouse.assume-resource-pack-loaded` is set to `true` by default. This means that as long as a player has a matching ArcMenu resource pack enabled manually on their client, Mouse mode will still activate the locked view, flat lighting, local cursor, and client-side GIF playback even if the server did not receive a resource pack download status packet. If you prefer to require a confirmed resource pack load callback from the server before enabling those features, set this option to `false` (see [Images and resource packs](/en/feature-configuration/resource-packs.md) for details).

## Everyday changes and reloading

As you build and tweak menus, pick the command that matches what you changed:

| What you changed                                                                 | How to apply it                                                  |
| -------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| Edited menu YAML, animations, language files, or `config.yml`                    | Run `/arcmenu reload`                                            |
| Created a blank `.yml` file in `menus/` to auto-generate a canvas skeleton       | Run `/arcmenu reload`                                            |
| Clicked Save in the ArcMenu Editor visual editor                                 | Updates immediately on save; reopen the menu to see the new view |
| Rebuilt only ArcMenu's resource pack files                                       | Run `/arcmenu resources`                                         |
| Reloaded all configuration files and rebuilt the resource pack together          | Run `/arcmenu reload all`                                        |
| Checked all menu configurations for syntax or field errors without writing files | Run `/arcmenu validate`                                          |

Every time you reload, ArcMenu validates the syntax and fields of your configuration files first. If a file has a mistake, the plugin reports the exact error location in the console and chat while keeping the last valid menu state active in memory, so running menus keep working smoothly.

## Updating the plugin and editor

When upgrading to a new release, back up your `plugins/ArcMenu/` directory first, stop the server, replace the old JAR in `plugins/` with the new one, and start the server back up.

On startup or reload, the plugin automatically adds any newly introduced default keys to `config.yml` while preserving all of your existing values (including explicit `false`, `0`, empty strings, and empty lists), custom keys, and comments.

After updating the server:

* If the update includes changes to built-in shaders or image assets, regenerate and redistribute the client resource pack using the steps above.
* Administrators using the editor and players using **Vision mode** should head to the [ArcMenu Editor releases page](https://github.com/FENTAIIII/ArcMenu-Editor/releases), download the latest mod JAR matching their game client version, replace the old file in their client `mods/` folder, and restart the game.


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.myarc.icu/en/getting-started/install.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
