> For the complete documentation index, see [llms.txt](https://lethium.gitbook.io/custombeacons-or-65-effects-or-35-hooks/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://lethium.gitbook.io/custombeacons-or-65-effects-or-35-hooks/running-your-server/menus-and-gui-customisation.md).

# Menus and GUI customisation

Every menu is yours to restyle. Layouts, slots, materials and button names are in `plugins/CustomBeacons/gui.yml`. The comments at the top of that file list every button and option.

## The menus

| Menu       | What it is                                                                                                                      |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `main`     | The beacon's home screen (5 rows). Effects, upgrades, settings, presets, who benefits, trusted players, type, transfer and fuel |
| `effects`  | The list of effects to unlock, switch and prestige                                                                              |
| `upgrades` | Beacon upgrades                                                                                                                 |
| `settings` | Player settings: particles, animations, info display, hologram, language                                                        |
| `presets`  | Effect presets                                                                                                                  |
| `trusted`  | Trusted players                                                                                                                 |
| `transfer` | Give the beacon away                                                                                                            |
| `language` | Pick a language                                                                                                                 |
| `manage`   | The player's own beacons, opened with `/cbeacon manage`                                                                         |
| `choice`   | The tap menu for Bedrock players (see below)                                                                                    |
| `admin`    | Staff list of all beacons                                                                                                       |

## Restyling a button

Every fixed button can be changed under `menus.<menu>.items.<button>`. Everything is optional, what you leave out keeps its default.

```yaml
menus:
  main:
    items:
      effects:
        material: NETHER_STAR              # or item: "itemsadder:mypack:menu_effects" / "nexo:menu_effects"
        custom-model-data: 1001            # number or text
        name: "&#ffaa00<bold>Effects"      # MiniMessage, &c / &#rrggbb, or lang:gui.main.effects.name
        lore:
          - "&7Unlock and upgrade"
          - "lang:gui.main.effects.lore"   # a lang: line expands to that entry's lines
        amount: 1
        glow: true
        flags: [HIDE_ATTRIBUTES, HIDE_ENCHANTS]
        slot: 11
```

* Hide any button with `items.<button>.enabled: false`.
* Lore and names can use placeholders such as `<tier>`, `<power>`, `<range>`, `<owner>`, `<effects>`, `<status>`, `<name>`, `<preset>`, `<mode>`, `<viewer>` on the main menu.
* The text can be written directly or point to a language entry with `lang:some.key`, which keeps it translatable.

## Layout

```yaml
menus:
  main:
    rows: 5
    filler: BLACK_STAINED_GLASS_PANE
    border: GRAY_STAINED_GLASS_PANE
    slots: { info: 13, effects: 11, settings: 15, presets: 20, access: 22, trusted: 24, upgrades: 29, type: 31, transfer: 33, close: 40 }
```

Slots count from 0, left to right, top to bottom. The effect, upgrade, beacon and player lists use `effect-slots`, `upgrade-slots`, `beacon-slots` and `player-slots`, and the preset and language menus can pin entries with `preset-slots` and `language-slots`.

## Resource pack models

`filler-custom-model-data`, `border-custom-model-data` and `animation.custom-model-data` let you use your own models for the background and the animated border panes.

## The animation

A coloured tail travels around the menu border. Players can switch it off in their settings.

```yaml
animation:
  period: 3         # ticks per frame
  tail-length: 10
  colors: [RED_STAINED_GLASS_PANE, ORANGE_STAINED_GLASS_PANE, ...]
```

Beacon types can bring their own colours, so a Gold beacon's menu can look different from a Diamond one. Turn the animation off for everyone with `gui.animations: false` in `config.yml`.

## Effect and preset icons

Effect icons are set in each effect file: `icon`, `icon-custom-model-data`, `display-name`, `display-lore`, `glow`, `flags`, `amount`. Preset icons are in `presets.yml`. The `icon` can be a material, `itemsadder:ns:id`, `nexo:id` or `oraxen:id`.

## Bedrock players

Bedrock Edition players (joining through Geyser or Floodgate, found automatically) have no shift-click or right-click in menus. When they tap an effect or a beacon, a small **choice screen** opens with big buttons instead: **Upgrade**, **Switch on / Switch off**, **Prestige**, **Open its menu** and **Teleport to it**.

```yaml
bedrock:
  menus: auto    # auto: only Bedrock players | always: everyone (to try it on Java) | never
```

You don't need Geyser or Floodgate installed for the plugin to work. The choice screen is the `choice` menu in `gui.yml` and its texts are `gui.choice.*` in the language files.

## Other GUI settings (config.yml)

```yaml
gui:
  open-sound: "block.ender_chest.open"   # "none" to disable
  progress-bar:                          # the bar toward the next tier
    length: 12
    filled: "█"
    empty: "░"
    filled-color: green
    empty-color: dark_gray
```

Turn every sound off with `sounds.enabled: false`.


---

# 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://lethium.gitbook.io/custombeacons-or-65-effects-or-35-hooks/running-your-server/menus-and-gui-customisation.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.
