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|falsepanelName: '<title>'permission: '<suffix>'buttons:
<slot>:
name: '<display name>'material: MATERIAL_NAMEicon: 'namespace:item_id'itemsadder: 'namespace:item_id'description: |- line one line twocommand: '<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: truepanelName: '&8&l⚙ &r&6&l Island Control Panel'permission: 'default'buttons:
# Row 0: decorative glass pane border"0-8":
name: ''material: BLACK_STAINED_GLASS_PANEdescription: ''command: ''# ── Navigation ────────────────────────────────────────────────────────9:
name: '&a&l 🏝 Go to Island'icon: minecraft:grass_blockdescription: |- &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_beddescription: |- &7 Set your island home &7 to your current location.command: '[label] sethome'11:
name: '&b&l 👥 Team'icon: minecraft:player_headdescription: |- &7 View and manage &7 your island team.command: '[label] team'12:
name: '&d&l ✉ Invite'icon: minecraft:paperdescription: |- &7 Invite a player to &7 your island. &7 Usage: &f/[label] invite <player>command: '[label] invite'13:
name: '&6&l ⚙ Settings'icon: minecraft:anvildescription: |- &7 Configure your island &7 protection settings.command: '[label] settings'# ── Stats & Leaderboards ──────────────────────────────────────────────18:
name: '&e&l ⭐ Island Level'icon: minecraft:experience_bottledescription: |- &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_blockdescription: |- &7 View the top 10 islands &7 on this server.command: '[label] top'20:
name: '&a&l 🌿 Warps'icon: minecraft:ender_eyedescription: |- &7 Browse player warps.command: '[label] warps'21:
name: '&5&l 🔮 Challenges'icon: minecraft:enchanting_tabledescription: |- &7 Complete challenges &7 for great rewards!command: '[label] challenges'22:
name: '&b&l 🌊 Biomes'icon: minecraft:oak_saplingdescription: |- &7 Change the biome &7 on your island.command: '[label] biomes'# ── World / Utility ───────────────────────────────────────────────────27:
name: '&f&l 🌍 Spawn'icon: minecraft:bedrockdescription: |- &7 Teleport to world spawn.command: '[label] spawn'28:
name: '&c&l 🛒 Shop'icon: minecraft:emeralddescription: |- &7 Open the server shop.command: 'shop'29:
name: '&e&l 💰 Balance'icon: minecraft:gold_nuggetdescription: |- &7 Check your current balance. &7 Balance: &6%vault_balance%command: 'balance'# Console command example — runs as server, not player35:
name: '&c&l 🔔 Report Bug'icon: minecraft:writable_bookdescription: |- &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_PANEdescription: ''command: ''# ── VIP panel — assigned via permission bskyblock.controlpanel.panel.vip ─vip:
defaultPanel: falsepanelName: '&8&l⚙ &r&d&l VIP Control Panel'permission: 'vip'buttons:
"0-8":
name: ''material: PURPLE_STAINED_GLASS_PANEdescription: ''command: ''9:
name: '&a&l 🏝 Go to Island'icon: minecraft:grass_blockdescription: |- &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_beddescription: |- &7 Set your island home.command: '[label] sethome'11:
name: '&b&l 👥 Team'icon: minecraft:player_headdescription: |- &7 View and manage your team.command: '[label] team'12:
name: '&5&l 🔮 Challenges'icon: minecraft:enchanting_tabledescription: |- &7 Complete challenges!command: '[label] challenges'# VIP exclusive — grants a kit via console13:
name: '&d&l 🎁 VIP Kit'icon: minecraft:chestdescription: |- &d VIP exclusive! &7 Claim your weekly VIP kit.command: '[server] kit vipweekly [player]'# VIP exclusive — ItemsAdder custom icon example14:
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_bottledescription: |- &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_blockdescription: |- &7 View the top 10 islands.command: '[label] top'20:
name: '&f&l 🌍 Spawn'icon: minecraft:bedrockdescription: |- &7 Teleport to world spawn.command: '[label] spawn'"36-44":
name: ''material: PURPLE_STAINED_GLASS_PANEdescription: ''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.