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.
- 🖱️ Click-to-run — left-click, right-click, and shift-click can each trigger a different command
- 🗂️ Multiple panels — define as many panels as you want per gamemode; assign them to players via permissions
- 🎨 Rich icons — use any vanilla material, BentoBox
ItemParserformat, or ItemsAdder custom items - 📋 Live placeholders — button descriptions support PlaceholderAPI, color codes, and
[gamemode]substitution - 📦 Console commands — prefix a command with
[server]to run it as the console - 🔢 Slot ranges — fill a row of slots with a single button definition using
"0-8" - 🌍 13 localisations — 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.
- Drop the
ControlPanelJAR intoplugins/BentoBox/addons/. - Restart the server — ControlPanel creates a default
controlPanelTemplate.ymlinplugins/BentoBox/addons/ControlPanel/. - Edit
controlPanelTemplate.ymlto build your panels (see below). - Run the import command in-game to load your panels:
Supply a custom filename to import from a different file:
/bsb cp import/bsb cp import myCustomPanels⚠️ Importing when panels already exist will ask for confirmation and replace them.
/is cp
/is controlpanel
Opens the player's assigned control panel. Players without a specific panel permission see the defaultPanel.
/{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.bsbfor BSkyBlock oroafor AOneBlock.
| 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.
The template file lives at plugins/BentoBox/addons/ControlPanel/controlPanelTemplate.yml.
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>'| 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. |
| 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). Takes priority over material. |
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 left-click (and any click with no specific override). Supports placeholders. |
right_click_command |
Command run on right-click or shift+right-click. Falls back to command if omitted. |
shift_click_command |
Command run on shift+left-click. Falls back to command if omitted. |
| 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 |
| 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 |
| Placeholder | Replaced with |
|---|---|
[gamemode] |
Lowercase gamemode name (e.g. bskyblock, aoneblock) |
%PlaceholderAPI_placeholder% |
Any registered PlaceholderAPI placeholder |
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.
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: ''- Alternative clicks — add
right_click_commandand/orshift_click_commandto a button to run different commands on right-click and shift+left-click. Omitting them falls back tocommand. - Slot layout — a standard chest row is slots 0–8. A 6-row chest (the max) uses slots 0–53.
- Slot ranges — use
"0-8"(quoted) to place the same button across a range of slots. Great for border decorations. - Blank buttons — set
command: ''andname: ' 'to create a visual spacer or border. - Console commands — 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. - Multiple panels — give a player the permission
[gamemode].controlpanel.panel.<suffix>to show them a different panel. Handy for staff, donors, or ranked players. - ItemsAdder icons — use the
itemsadder:key (instead oficon:ormaterial:) 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 importagain to reload. Existing panels will be replaced after confirmation.
More information can be found in the BentoBox Docs.
Need help? Join the BentoBox Discord.