
Powering servers since 2019
Lightweight and Capable
CommandPanels is a menu plugin built for server owners who want full control over the player experience. Designed with a tight scope to focus only on what matters and do it well. It stays fast, stable, and easy to maintain while still including the advanced features you need.
Highly Versatile
Supports three panel types: Inventory GUIs, Dialogs, and Bedrock/Floodgate Forms.
Compatible with Paper and Folia servers.
Useful Links
Documentation
Web Editor
Discord
Web Editor
Prefer building visually over editing YAML? A standalone companion visual builder with full feature parity for designing panels in your browser. It's actively maintained alongside the plugin as a separate tool for easy panel creation.
- Full Feature Parity: Everything the plugin can do, the editor supports
- All Panel Types: Inventory menus, Dialogs, and Bedrock/Floodgate menus
- Accurate Live Preview: See your menu as it will appear in-game
- Always up to Date: New features ship in the editor alongside the plugin
- No Account Required: Open it and start building
See a showcase of the editor here!

Logic Engine
Advanced Scripting
Build menus that react to players, not just display static items. Advanced condition logic with grouping, fallbacks, and persistent or session-based player data accessible anywhere via PlaceholderAPI.
Permission Observer
The Permission Observer throws out the idea of refresh intervals entirely. CommandPanels dynamically observes the permission nodes used in a panel's logic. When a relevant permission updates, the panel refreshes automatically. If nothing changes, nothing refreshes.
Features
- Advanced Logic: Custom engine with condition grouping and logical fallbacks
- Permission Observer: For dynamic, event-driven panel refreshes with no polling
- Web Editor: Actively maintained visual builder with full feature parity
- Animation System: Fully capable for total control
- PlaceholderAPI and MiniMessage: supported everywhere on all panels
- Compatibility: Native Bedrock and Dialog support via Geyser and Floodgate
- Developer API: Add hooks for custom Command Tags, Material Tags and more
- Data System: Persistent and session-based player data
From simple kit menus to full MMO experiences with shops, quests, and navigation, CommandPanels provides the tools to build a professional, responsive server interface.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 | ||||
| 1d ago | 1 |
- Fixes and Improvements**
- Now built on Paper 26.3.
- Panel refreshes no longer move player placed items back into their inventory.
- Custom heads improved, now load much faster and smoother.
- Condition observer has been added. Has to be enabled in
config.ymland will refresh panels when any condition changes. - New warnings added for duplicate panels and duplicate keys in yaml.
- Optimisations and fixes**
- Floodgate custom labels now parse colour codes
- Panel items will no longer update unless a change in a placeholder is detected, saving resources. Additionally it will not rebuild all items but only individual items that need updating.
- Fixes a small chance of a concurrent exception error on plugin reload.
- Condition parsing optimisations
- Items built multiple times on panel open now cache
- On Average**
- Panel Opening: 20-40% faster
- Panel Updates: 500% faster
- Condition Parsing: 10-20% faster
- A couple small changes**
- NOTE:
update-delayneeds to be renamed toupdate-interval - NOTE:
[data] overwriteneeds to be renamed to[data] set - NOTE:
[data] setneeds to be renamed to[data] add
- Fixes and Enhancements**
- Removed conditions from the example panels that generate on plugin first use as they were dependant on PAPI Player Expansion
- Requirements not being met on panel open commands will no longer stop a panel from opening
- Floodgate panels now use parsed placeholders correctly instead of raw placeholders in output
- Floodgate dropdown will now filter out empty cases
- Refresh commands have been added to dialog panels
- Enchant glint and fixes**
- Added
glint-overrideitem option to force enchant glint on or off regardless of enchantments - Fix item dialog component accepting width and height values from the editor
- No longer using ItemMeta when accessing data from items on item clicks
- Small bug fix and MC 26.2 added**
- Now compiling plugin for MC 26.2
- Simplified plugin message code
- Folia correct scheduler now used for panel custom commands
- CommandPanels 4.2.0** _For Minecraft 1.21.4_
This is a special release to allow 1.21.4 servers to use CommandPanels v4. There won't be ongoing support, this is built on a stable release. Source code for this release can be found under 4.2.0 in GitHub releases.
- Dialog Panel support is not included, as they don't exist on 1.21.4
- Dynamic Logic Update**
- Added session eval tag
[session] eval <key> :: <conditions> :: <true_val> :: <false_val>- Added refresh commands inventory panels. These will run on every refresh of the panel, not just when it initially opens (runs after open commands)
- Condition parser no longer parses underscores to spaces. spaces are now supported.
- Folia (CanvasMC specific) fix to open panels via console commands
- Add file name to generator output
- Skip cancelled PlayerCommandPreprocessEvent
- Permission observer moved to hashset to avoid object retention
- Small optimisations to command tags
- Small fixes**
- Moved to CraftEngine's new API so that it continues to work on newer versions
- Added
after-actionfor dialogs, this can be used to prevent mouse resets on screen when moving between dialogs
- Small additions and updates**
- Simplified stopsound command tag
- craftengine support added with material tag, eg
[craftengine] default:bench - Now supporting MC 26.1.2
- API Enhancement Update**
- New API Registry added so plugins can hook in their own command tags, material tags, or requirement tags [#422](https://github.com/rockyhawk64/CommandPanels/pull/422)
- Fix to item positioning behaviour on Dialog panels when no text is defined [#426](https://github.com/rockyhawk64/CommandPanels/pull/426)
- Small stability improvements**
- Added the ability to use custom attributes to item materials, such as:
material: lime_dye[max_stack_size=99] - Folia bug fix that causes an error when closing containers
- Player items now return to the players inventory on panel refreshes
- Small features and other improvements**
- Panel close commands no longer run on panel refreshes
- Language file (lang.yml) can now be regenerated on reload, not just server restarts
- [item] tag will now return a pass if item amount required is 0 as expected
- Using
-sin the /pa open command will now silence plugin responses (useful to keep console logs clear) - Newline can now be used in item lores for new lines
- New features and some bug fixes**
- Colours will no longer parse inside dialog input fields
- Colours will no longer parse on command execution
- Inventory lock added, when enabled players will not be able to move their inventory items while a panel is open
- Messages will not send if set to an empty string in the lang file
- Close commands has been added, commands run when panel is closed (only works on Inventory Panels)
- Commands (open commands) layout has been updated. (See Below)
Before:
``
yaml
commands:
- '[msg] Panel has been opened'
`
After:
`yaml
open:
commands:
- '[msg] Panel opened'
``The change was made to keep it uniform with outside and close commands, and it now supports requirements and fail by using the Command Actions system.
- Bug fixes and head improvements**
- Command event is correctly cancelled when players have no permission to open the panel
- Fixes commands running after the panel is already open
- Custom heads methods improved, queue added to avoid timeouts
- Enhancements and bug fixes**
- Inventory panels now have outside commands (commands can be defined when clicking outside the GUI)
- Fixes teleport tag when using folia
- Added the Permission Observer feature. The Permission Observer can be disabled in the config.yml, it will detect which permissions are used in a panel, and will automatically refresh the panel when those permissions change for the player
- Data will save to file more frequently than just on server close
- Minor update release**
- Moved plugin to 1.21.9 (this version had had extra testing on 1.21.7 - 1.21.10)
- Added support for Folia servers
- Colour parsing has been overhauled, now supports all colour formats at the same time
- Added missing default field for dropdown in floodgate forms
- [delay] tag has been added.
- Session logic between panels has been simplified and other optimisations have been made
- Cooldown between opening panels has been added (configurable in config.yml)
- There is no longer a requirement for a minimum of one item to be in inventory panels
- Important note when updating**
[refresh] numberno longer works, use the new [delay] tag instead to delay your refresh
- Small bug fixes and improvements**
- Improvements for custom heads, now using Papers API
- Added missing width and height properties for Dialog Item and Text components
- Bundle and Shulker box attributes will now be hidden when attributes are toggled off
- Fixes armour trims, some options missing/ did not work correctly
- Language Updates**
- Fixes so sound tag can now play resource pack sounds
- Music disc attributes are now hidden
- Language file has been improved, now generates a lang.yml file by default with all translation keys included
- Old language files will no longer work, new ones are much easier to use and will take just a couple minutes to migrate to
- Bug Fixes and Improvements**
- Conditions cannot contain spaces, placeholders that contain spaces will change them to underscores
- Removes no vault error messages for some when vault isn't configured fully on their server
- Different panels can now contain the same base command, eg
/shop redstoneand/shop farmingfor different panels - Conditions to open a panel can now contain arguments from open commands
- Fixes for placeholders, no longer break when reloading placeholderapi
- Other placeholders using brackets can now be used inside commandpanels placeholders
- Conditions now work in requirements section (condition tag has been added)
- Bug fixes**
- Conditions do not accept spaces so spaces in placeholders will automatically be replaced with underscores
- MMOItems material tag fixed
- Label component type missing from floodgate forms has been added
- Dependencies loop problem fixes
- Vault tag no longer provides errors with economy problems (likely just not using vault)
- Fixes range in dialogs no longer always outputs true
- Fixes and additions**
- Data placeholder now accepts optional player name to read other players data
- Added
[grant]command tag, execute a chat/command for the player while granting the player a specific permission to run the command temporarily [msg]tag now allows ALL minimessage functionality (eg hover text)- Fixes to some attributes not being hidden (fireworks)
- Errors when conditions are invalid will now state the error is due to conditions
- Fixed double chests not working when generating panels in game
- Alias feature and fixes**
- Added aliases which can now be used for commands to open panels
- Itemsadder and Nexo fixed, now loads correctly (before commandpanels)
- Adventure api removed from dependencies, already bundled in paper
- Bug fixes and improvements**
- Moved from plugin to paper-plugin
- Fixes issues with panels not updating automatically while open
- Fixes animations
- Fixes [previous] command tag
- Some improvements to commandpanels data methods
- Server tag fixes**
- Adds missing channel register code for server command tag
- Bug fixes and small features**
- [item] requirement tag now has custom model data support
- Custom model data can now be used with numbers instead of just strings
- Conditions will now ignore colour formatting
- Refresh tag now has an optional delay function
- Bug Fixes & Improvements**
- Resolves issues with custom heads saving their state across panels from cache
- Fixes item names on items such as potions
- Conditions now parse ignoring color codes
- Session data & panel data no longer parse color prematurely
- Changed the default for color from legacy codes to mini message
- Session data is now persistent while the player is online instead of only during panel interaction, this resolves issues with data being cleared after panel refresh
- Fixes and 1.21.8**
- Updated dependencies for 1.21.8
- leather-armor -> leather-color (now only accepts RGB values)
- Fixes issues with & symbol in strings when using mini message
- Started moving ItemMeta implementations to Papers DataComponentTypes
- Some attributes like potions are now hidden correctly
- Converter and Bug Fixes**
- Added a panel converter for v3 -> v4 panels. To convert panels, place them in a folder named
old_panelsnext to the panels folder and type/pa convertto start the conversion. Note: the two versions are incompatible and you WILL need to modify the panels after converting them, this will just save you from doing most of the repetitive work - Some bug fixes, inventory panels cannot be opened if they do not contain any items and fixed xp requirement tag
- Better example panels on folder generation have been added
## Breaking Changes
- Minecraft 1.21.8+ only:**
Older versions (1.8.8–1.20.x) remain supported by v3 at [v3.commandpanels.net](https://v3.commandpanels.net) downloads available on SpigotMC.
- PaperMC exclusive:**
- Config overhaul:**
No converter yet, but a new online editor will be released shortly after this update.
## New Features
- Dialogs support:**
- Improved performance and stability:**
## Notes
- This is an early release so please report bugs on the Discord server.
- Focused on modern Minecraft versions for a cleaner, faster plugin.
## Legacy Support
Use **CommandPanels v3** for older Minecraft versions:
🌐 [v3.commandpanels.net](https://v3.commandpanels.net)