
HexaForms – Minecraft menu plugin for Java & Bedrock with PlaceholderAPI. Features: Cross-platform forms, YAML menus, conditions, actions (cmds, msgs, sounds, economy, XP, perms), enchant/glow. Setup: Install PlaceholderAPI (+ Floodgate/Geyser), add Menu
An advanced menu system for Minecraft servers with PlaceholderAPI integration, Bedrock form support, and DeluxeMenus conversion.
Make sure you have the following plugins installed:
Download the HexaForms.jar to your plugins folder
Restart the server
Configure the menus in the plugins/HexaForms/menus/ folder
If you're migrating from DeluxeMenus:
.yml files in plugins/HexaForms/dmconvert//hexaconvert deluxemenus all (or /hexaconvert deluxemenus <filename>)plugins/HexaForms/menus/See CONVERTER_README.md for detailed conversion guide.
Create a YAML file in plugins/HexaForms/menus/:
title: "&6&lShop Menu"
size: 27
bedrock_form:
title: "&6&lShop Menu"
content: "&7Purchase items and equipment"
buttons:
- text: "&a&lWeapons"
actions:
- "[command] shop weapons"
- "[sound] ENTITY_PLAYER_LEVELUP 1 1.5"
items:
weapons_button:
slot: 10
material: DIAMOND_SWORD
display-name: "&a&lWeapons"
lore:
- "&7Click to browse weapons"
glowing: true
actions:
- "[command] shop weapons"
messages:
player-only: "&cThis command can only be used by players!"
menu-not-found: "&cMenu '%menu%' not found!"
no-permission: "&cYou don't have permission!"
condition-denied: "&cYou don't meet the requirements for this!"
reloaded: "&aPlugin reloaded successfully!"
default-menu: "main_menu"
auto-save: true
debug-mode: false
placeholders:
enabled: true
cache-time: 1000
bedrock:
enabled: true
fallback-to-java: true
image-cache: true
/menu [menuName] - Opens a menu (default: main_menu)/menureload - Reloads the configuration/hexaconvert <deluxemenus> <all|file_name> - Converts DeluxeMenus to HexaForms (NEW!)hexaforms.menu.use - Allows access to menus (default: true)hexaforms.reload - Allows reloading the plugin configuration (default: op)hexaforms.admin - Allows access to admin menus (default: op)hexaforms.convert - Allows using the converter command (default: op) (NEW!)[command] <command> - Executes a command as the player[console] <command> - Executes a command from the console[commandevent] <command> - Executes an unregistered command as the player[message] <text> - Sends a message to the player[broadcast] <text> - Sends a message to everyone online[minimessage] <text> - Sends a message using MiniMessage format[minibroadcast] <text> - Broadcasts using MiniMessage format[json] <JSON-text> - Sends a JSON message to the player[jsonbroadcast] <JSON-text> - Broadcasts a JSON message[chat] <message> - Sends a message in chat as the player[command] menu <menu-name> - Opens another menu[close] - Closes the currently opened menu[refresh] - Refreshes items in the current menu view[connect] <server-name> - Connects the player to a server on BungeeCord[sound] <sound> <volume> <pitch> - Plays a sound for the player[broadcastsound] <sound> <volume> <pitch> - Broadcasts a sound to all players[broadcastsoundworld] <sound> <volume> <pitch> - Broadcasts a sound to all players in the world[givemoney] <amount> - Gives money to the player[takemoney] <amount> - Takes money from the player[giveexp] <amount>L - Gives exp levels (add L) or points to a player[takeexp] <amount>L - Takes exp levels or points from a player[givepermission] <perm.node> - Gives a permission to a player[takepermission] <perm.node> - Takes a permission from a player[meta] <set/remove/add/subtract/switch> <key> <type> <value> - Modifies player meta data[placeholder] <papi-placeholders> - Parses placeholders for a player[playerdropdown] <title>|<content>|<actions>
Shows a dropdown with all online players.
Placeholders:
%selected_player% - The selected player name%player_name% - The executing player's nameExample:
- "[playerdropdown] &6Teleport|&7Select a player:|[console] tp %player_name% %selected_player%;[message] &aYou have been teleported!"
[dropdown] <title>|<content>|<options>|<actions>
Shows a dropdown with custom options.
Placeholders:
%selected_option% - The selected option text%selected_index% - The index of the selected option (0-based)Example:
- "[dropdown] &aGamemode|&7Choose:|Survival,Creative,Adventure|[console] gamemode %selected_option% %player_name%"
[multidropdown] <title>|<content>|<label1>|<label2>|<label3>|<options1>||<options2>||<options3>||<actions>
Shows 3 dropdowns in one form. Perfect for ban commands!
Placeholders:
%selected_option_1%, %selected_option_2%, %selected_option_3% - Selected options%selected_index_1%, %selected_index_2%, %selected_index_3% - Selected indicesExample (Ban Command):
- "[multidropdown] &c&lBan Player|&7Select player, duration, and reason|Player|Duration|Reason|Player1,Player2,Player3||1h,24h,7d,Permanent||Hacking,Spam,Beleidigung||[console] ban %selected_option_1% %selected_option_2% %selected_option_3%;[message] &a%selected_option_1% was banned!"
actions:
# Commands
- "[command] warp spawn"
- "[console] give %player_name% diamond 1"
# Messages
- "[message] &aWelcome to the shop!"
- "[broadcast] &6%player_name% entered the shop!"
- "[minimessage] <gradient:green:blue>Welcome!</gradient>"
# Sounds
- "[sound] ENTITY_PLAYER_LEVELUP 1 1.5"
- "[broadcastsound] ENTITY_EXPERIENCE_ORB_PICKUP 1 1"
# Economy
- "[givemoney] 1000"
- "[takemoney] 500"
# Experience
- "[giveexp] 10L"
- "[takeexp] 5"
# Permissions
- "[givepermission] shop.vip"
- "[takepermission] shop.basic"
# Menu Control
- "[command] menu vip_shop"
- "[close]"
- "[refresh]"
# Dropdowns (Bedrock Only)
- "[playerdropdown] Select Player|Choose:|[console] tp %player_name% %selected_player%"
- "[dropdown] Choose|Select:|Option1,Option2|[message] You selected %selected_option%!"
- "[multidropdown] Ban|Select player, time, reason|Player|Time|Reason|P1,P2||1h,24h||Hack,Spam||[console] ban %selected_option_1% %selected_option_2%"
permission:<permission> - Checks permissionsplaceholder:<placeholder> <operator> <value> - Checks placeholder valuesworld:<worldname> - Checks the player's worldgamemode:<gamemode> - Checks the game modetime:<range> - Checks the game timeconditions:
- "permission:shop.weapons"
- "placeholder:vault_eco_balance >= 1000"
- "world:world"
- "gamemode:survival"
- "time:0-12000"
The plugin supports all PlaceholderAPI placeholders:
%player_name% - Player name%vault_eco_balance% - Account balance (Vault)%player_health% - Player health%player_world% - Current worldFor Bedrock players, native forms are automatically displayed:
The plugin includes several example menus:
plugins/HexaForms/dmconvert/Enable debug mode in config.yml:
debug-mode: true
See CHANGELOG.md for detailed version history.
Current Version: 1.1.2
For problems or questions:
This plugin is licensed under CC-BY-NC-4.0.