Control Panel

A customizable GUI panel that gives players easy access to all BentoBox game mode settings and actions.

55

Control Panel

🎛️ ControlPanel Addon for BentoBox

Give your players a slick, clickable GUI menu to run their most-used island commands — no typing required. ControlPanel is a BentoBox addon that lets server admins build fully customizable control panels using a simple YAML file.

---

✨ Features

- 🖱️ Works with — left-click, right-click, and shift-click can each trigger a different command - 🗂️ Works with — define as many panels as you want per gamemode; assign them to players via permissions - 🎨 Works with — use any vanilla material, BentoBox `ItemParser` format, or Works with custom items - 📋 Works with — button descriptions support PlaceholderAPI, color codes, and `[gamemode]` substitution - 📦 Works with — prefix a command with `[server]` to run it as the console - 🔢 Works with — fill a row of slots with a single button definition using `"0-8"` - 🌍 Works with — cs, de, en-US, es, fr, id, ko, lv, pl, ru, zh-CN, zh-HK, zh-TW - 🔌 Works with AcidIsland, BSkyBlock, CaveBlock, SkyGrid, AOneBlock, etc.

---

📦 Installation

1. Drop the `ControlPanel` JAR into `plugins/BentoBox/addons/`. 2. Restart the server — ControlPanel creates a default `controlPanelTemplate.yml` in `plugins/BentoBox/addons/ControlPanel/`. 3. Edit `controlPanelTemplate.yml` to build your panels (see below). 4. Run the import command in-game to load your panels: ``` /bsb cp import ``` Supply a custom filename to import from a different file: ``` /bsb cp import myCustomPanels ``` > ⚠️ Importing when panels already exist will ask for confirmation and replace them.

---

🎮 Commands

Player command

``` /is cp /is controlpanel ``` Opens the player's assigned control panel. Players without a specific panel permission see the `defaultPanel`.

Admin command

``` /{admin} cp import [filename] /{admin} cp import ``` | Command | Description | |---|---| | `/{admin} cp import` | Import panels from `controlPanelTemplate.yml` (default) | | `/{admin} cp import myFile` | Import panels from `myFile.yml` in the addon data folder |

> Replace `{admin}` with your gamemode's admin command, e.g. `bsb` for BSkyBlock or `oa` for AOneBlock.

---

🔑 Permissions

| Permission | Default | Description | |---|---|---| | `[gamemode].controlpanel` | `true` | Open the control panel | | `[gamemode].controlpanel.admin` | `op` | Use admin import command | | `[gamemode].controlpanel.panel.default` | `true` | Access the default panel | | `[gamemode].controlpanel.panel.<suffix>` | — | Access a custom panel named `<suffix>` |

Replace `[gamemode]` with the gamemode name in lowercase, e.g. `bskyblock`, `acidisland`, `aoneblock`.

---

🛠️ Configuration File Reference

The template file lives at `plugins/BentoBox/addons/ControlPanel/controlPanelTemplate.yml`.

Top-level structure

```yaml panel-list: <panel-key>: defaultPanel: true|false panelName: '<title>' permission: '<suffix>' buttons: <slot>: name: '<display name>' material: MATERIAL_NAME icon: 'namespace:item_id' itemsadder: 'namespace:item_id' description: |- line one line two command: '<left-click command>' right_click_command: '<right-click command>' shift_click_command: '<shift+left-click command>' ```

Panel fields

| Field | Description | |---|---| | `defaultPanel` | `true` = shown to players with no specific panel permission | | `panelName` | Title of the inventory GUI. Supports `&` color codes. | | `permission` | Suffix for `[gamemode].controlpanel.panel.<suffix>`. Players with that permission see this panel. |

Button fields

| Field | Description | |---|---| | `slot` | Inventory slot (0–53). Also accepts a range like `"0-8"` to fill multiple slots. | | `name` | Button display name. Supports `&` color codes and command placeholders. | | `material` | Vanilla Minecraft material (e.g. `GRASS_BLOCK`). Resolved with `Material.match`. | | `icon` | BentoBox `ItemParser` string (e.g. `minecraft:diamond`). shift+left-click | | `itemsadder` | ItemsAdder custom item ID (e.g. `iasurvival:ruby`). Requires the ItemsAdder plugin. | | `description` | Lore lines shown under the button name. Supports `&` color codes, multi-line `|`, PlaceholderAPI `%placeholders%`, and `[gamemode]`. | | `command` | Command run on shift+left-click (and any click with no specific override). Supports placeholders. | | `right_click_command` | Command run on shift+left-click or shift+left-click. Falls back to `command` if omitted. | | `shift_click_command` | Command run on shift+left-click. Falls back to `command` if omitted. |

Click type summary

| Click | Command used | |---|---| | Left click | `command` | | Right click | `right_click_command` → `command` | | Shift + Right click | `right_click_command` → `command` | | Shift + Left click | `shift_click_command` → `command` | | Any other click | `command` |

Command placeholders

| Placeholder | Replaced with | |---|---| | `[label]` | The gamemode's player command label (e.g. `island`, `ob`) | | `[player]` | The clicking player's username | | `[server]` | Runs the command as the server console instead of the player |

Description placeholders

| Placeholder | Replaced with | |---|---| | `[gamemode]` | Lowercase gamemode name (e.g. `bskyblock`, `aoneblock`) | | `%PlaceholderAPI_placeholder%` | Any registered PlaceholderAPI placeholder |

---

📄 Example Configuration

A complete, real-world example for an active BSkyBlock / AOneBlock server. It shows two panels — a default panel for all players and a VIP panel for donors — along with all button features.

```yaml panel-list:

── Default panel — shown to all players ──────────────────────────────────

default: defaultPanel: true panelName: '&8&l⚙ &r&6&l Island Control Panel' permission: 'default' buttons:

Row 0: decorative glass pane border

"0-8": name: ' ' material: BLACK_STAINED_GLASS_PANE description: command:

── Navigation ────────────────────────────────────────────────────────

9: name: '&a&l 🏝 Go to Island' icon: minecraft:grass_block description: |- &7 Left-click: teleport to your island. &7 Right-click: go to your island nether. &7 Shift+click: set your home here. &7 Island level: &e%Level_[gamemode]_island_level% command: '[label] go' right_click_command: '[label] go nether' shift_click_command: '[label] sethome'

10: name: '&e&l 🏠 Set Home' icon: minecraft:white_bed description: |- &7 Set your island home &7 to your current location. command: '[label] sethome'

11: name: '&b&l 👥 Team' icon: minecraft:player_head description: |- &7 View and manage &7 your island team. command: '[label] team'

12: name: '&d&l ✉ Invite' icon: minecraft:paper description: |- &7 Invite a player to &7 your island. &7 Usage: &f/[label] invite <player> command: '[label] invite'

13: name: '&6&l ⚙ Settings' icon: minecraft:anvil description: |- &7 Configure your island &7 protection settings. command: '[label] settings'

── Stats & Leaderboards ──────────────────────────────────────────────

18: name: '&e&l ⭐ Island Level' icon: minecraft:experience_bottle description: |- &7 Calculate your island level. &7 Current level: &e%Level_[gamemode]_island_level% &7 Current rank: &6%Level_[gamemode]_island_rank% command: '[label] level'

19: name: '&6&l 🏆 Top Islands' icon: minecraft:gold_block description: |- &7 View the top 10 islands &7 on this server. command: '[label] top'

20: name: '&a&l 🌿 Warps' icon: minecraft:ender_eye description: |- &7 Browse player warps. command: '[label] warps'

21: name: '&5&l 🔮 Challenges' icon: minecraft:enchanting_table description: |- &7 Complete challenges &7 for great rewards! command: '[label] challenges'

22: name: '&b&l 🌊 Biomes' icon: minecraft:oak_sapling description: |- &7 Change the biome &7 on your island. command: '[label] biomes'

── World / Utility ───────────────────────────────────────────────────

27: name: '&f&l 🌍 Spawn' icon: minecraft:bedrock description: |- &7 Teleport to world spawn. command: '[label] spawn'

28: name: '&c&l 🛒 Shop' icon: minecraft:emerald description: |- &7 Open the server shop. command: 'shop'

29: name: '&e&l 💰 Balance' icon: minecraft:gold_nugget description: |- &7 Check your current balance. &7 Balance: &6%vault_balance% command: 'balance'

Console command example — runs as server, not player

35: name: '&c&l 🔔 Report Bug' icon: minecraft:writable_book description: |- &7 Report an issue to admins. &7 Opens a support ticket. command: '[server] ticket create [player] bug-report'

Row 5: decorative border

"36-44": name: ' ' material: BLACK_STAINED_GLASS_PANE description: command:

── VIP panel — assigned via permission bskyblock.controlpanel.panel.vip ─

vip: defaultPanel: false panelName: '&8&l⚙ &r&d&l VIP Control Panel' permission: 'vip' buttons:

"0-8": name: ' ' material: PURPLE_STAINED_GLASS_PANE description: command:

9: name: '&a&l 🏝 Go to Island' icon: minecraft:grass_block description: |- &7 Teleport to your island. &7 Island level: &e%Level_[gamemode]_island_level% command: '[label] go'

10: name: '&e&l 🏠 Set Home' icon: minecraft:white_bed description: |- &7 Set your island home. command: '[label] sethome'

11: name: '&b&l 👥 Team' icon: minecraft:player_head description: |- &7 View and manage your team. command: '[label] team'

12: name: '&5&l 🔮 Challenges' icon: minecraft:enchanting_table description: |- &7 Complete challenges! command: '[label] challenges'

VIP exclusive — grants a kit via console

13: name: '&d&l 🎁 VIP Kit' icon: minecraft:chest description: |- &d VIP exclusive! &7 Claim your weekly VIP kit. command: '[server] kit vipweekly [player]'

VIP exclusive — ItemsAdder custom icon example

14: name: '&6&l ✨ VIP Perks' itemsadder: 'iasurvival:vip_star' description: |- &7 Browse all your VIP perks. command: 'vipperks'

18: name: '&e&l ⭐ Island Level' icon: minecraft:experience_bottle description: |- &7 Current level: &e%Level_[gamemode]_island_level% &7 Current rank: &6%Level_[gamemode]_island_rank% command: '[label] level'

19: name: '&6&l 🏆 Top Islands' icon: minecraft:gold_block description: |- &7 View the top 10 islands. command: '[label] top'

20: name: '&f&l 🌍 Spawn' icon: minecraft:bedrock description: |- &7 Teleport to world spawn. command: '[label] spawn'

"36-44": name: ' ' material: PURPLE_STAINED_GLASS_PANE description: command: ```

---

💡 Tips

- Reloading — add `right_click_command` and/or `shift_click_command` to a button to run different commands on right-click and shift+left-click. Omitting them falls back to `command`. - Reloading — a standard chest row is slots 0–8. A 6-row chest (the max) uses slots 0–53. - Reloading — use `"0-8"` (quoted) to place the same button across a range of slots. Great for border decorations. - Reloading — set `command: ''` and `name: ' '` to create a visual spacer or border. - Reloading — prefix `[server]` to run a command silently as the console, e.g. for kits, economy rewards, or admin actions players wouldn't have permission to run directly. - Reloading — give a player the permission `[gamemode].controlpanel.panel.<suffix>` to show them a different panel. Handy for staff, donors, or ranked players. - Reloading — use the `itemsadder:` key (instead of `icon:` or `material:`) to display a custom-textured item. Requires ItemsAdder to be installed; falls back gracefully if it isn't. - Reloading — after editing the YAML, run `/{admin} cp import` again to reload. Existing panels will be replaced after confirmation.

---

🌐 Information

More information can be found in the BentoBox Docs.

Need help? Join the BentoBox Discord.

ADS