HexaForms
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
HexaForms
HexaForms
An advanced menu system for Minecraft servers with PlaceholderAPI integration, Bedrock form support, and DeluxeMenus conversion.
Features
- Economy & Permissions: Automatic detection of Bedrock players and display of native forms - Economy & Permissions: Interactive dropdown menus for Bedrock players with custom options - Economy & Permissions: Advanced 3-dropdown forms for complex selections (ban commands, etc.) - Economy & Permissions: Convert DeluxeMenus configurations to HexaForms format automatically - Economy & Permissions: Full support for all PlaceholderAPI placeholders - Economy & Permissions: Simple YAML-based menu configuration - Economy & Permissions: Advanced condition checking for menu items - Economy & Permissions: 30+ actions including commands, messages, sounds, dropdowns, and more - Economy & Permissions: Support for enchantments and glow effects - Economy & Permissions: Vault integration for economy and permission management
Installation
1. Make sure you have the following plugins installed: - Vault (required) - Vault (optional, for Bedrock support) - Vault (optional, for Bedrock support) - Vault (optional, for economy/permission actions)
2. Download the HexaForms.jar to your plugins folder
3. Restart the server
4. Configure the menus in the `plugins/HexaForms/menus/` folder
Quick Start
Convert DeluxeMenus (New!)
If you're migrating from DeluxeMenus:
1. Place your DeluxeMenus `.yml` files in `plugins/HexaForms/dmconvert/` 2. Run `/hexaconvert deluxemenus all` (or `/hexaconvert deluxemenus <filename>`) 3. Converted menus appear in `plugins/HexaForms/menus/`
See CONVERTER_README.md for detailed conversion guide.
Create a Menu
Create a YAML file in `plugins/HexaForms/menus/`:
```yaml 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" ```
Configuration
Main Configuration (config.yml)
```yaml 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 ```
Commands
- `/menu [menuName]` - Opens a menu (default: main_menu) - `/menureload` - Reloads the configuration - `/hexaconvert <deluxemenus> <all|file_name>` - Converts DeluxeMenus to HexaForms (NEW!)
Permissions
- `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!)
Actions
Command Actions
- `[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 Actions
- `[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
Menu Control Actions
- `[command] menu <menu-name>` - Opens another menu - `[close]` - Closes the currently opened menu - `[refresh]` - Refreshes items in the current menu view
Network Actions
- `[connect] <server-name>` - Connects the player to a server on BungeeCord
Sound Actions
- `[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
Economy Actions (Vault required)
- `[givemoney] <amount>` - Gives money to the player - `[takemoney] <amount>` - Takes money from the player
Experience Actions
- `[giveexp] <amount>L` - Gives exp levels (add L) or points to a player - `[takeexp] <amount>L` - Takes exp levels or points from a player
Permission Actions (Vault required)
- `[givepermission] <perm.node>` - Gives a permission to a player - `[takepermission] <perm.node>` - Takes a permission from a player
Meta Data Actions
- `[meta] <set/remove/add/subtract/switch> <key> <type> <value>` - Modifies player meta data
Placeholder Actions
- `[placeholder] <papi-placeholders>` - Parses placeholders for a player
Dropdown Menu Actions (Bedrock Only)
Player Dropdown
```yaml [playerdropdown] <title>|<content>|<actions> ``` Shows a dropdown with all online players.
Placeholders: - `%selected_player%` - The selected player name - `%player_name%` - The executing player's name
Example: ```yaml - "[playerdropdown] &6Teleport|&7Select a player:|[console] tp %player_name% %selected_player%;[message] &aYou have been teleported!" ```
Custom Dropdown
```yaml [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: ```yaml - "[dropdown] &aGamemode|&7Choose:|Survival,Creative,Adventure|[console] gamemode %selected_option% %player_name%" ```
Multi-Dropdown (NEW!)
```yaml [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 indices
Example (Ban Command): ```yaml - "[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!" ```
Action Examples
```yaml 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%" ```
Conditions
Available Condition Types
- `permission:<permission>` - Checks permissions - `placeholder:<placeholder> <operator> <value>` - Checks placeholder values - `world:<worldname>` - Checks the player's world - `gamemode:<gamemode>` - Checks the game mode - `time:<range>` - Checks the game time
Examples
```yaml conditions: - "permission:shop.weapons" - "placeholder:vault_eco_balance >= 1000" - "world:world" - "gamemode:survival" - "time:0-12000" ```
PlaceholderAPI
The plugin supports all PlaceholderAPI placeholders:
- `%player_name%` - Player name - `%vault_eco_balance%` - Account balance (Vault) - `%player_health%` - Player health - `%player_world%` - Current world - And many more...
Bedrock Support
For Bedrock players, native forms are automatically displayed:
- Automatic detection of Bedrock players - Native form API with dropdown support - Image support (URL and path) - Interactive dropdown menus for player/option selection - Multi-dropdown forms for complex selections - Fallback to Java menus if problems occur
Example Menus
The plugin includes several example menus:
- admin_menu.yml - Main navigation menu - admin_menu.yml - Player teleport with dropdown (Bedrock) - admin_menu.yml - Shop with items and categories - admin_menu.yml - Admin tools and commands
Troubleshooting
Common Issues
1. Converter not working: Check permissions and configuration 2. Converter not working: Make sure PlaceholderAPI is installed 3. Converter not working: Check Floodgate/Geyser installation 4. Converter not working: Only works for Bedrock players - Java players see chest menus 5. Converter not working: Place DeluxeMenus files in `plugins/HexaForms/dmconvert/`
Debug Mode
Enable debug mode in config.yml:
```yaml debug-mode: true ```
Version History
See CHANGELOG.md for detailed version history.
Current Version: 1.1.2 - Added DeluxeMenus Converter - Added Multi-Dropdown Action - Fixed color code handling for Bedrock forms - Enhanced placeholder support
Support
For problems or questions:
1. Check the server logs 2. Make sure all dependencies are installed 3. Test with debug mode 4. Check CHANGELOG.md for recent changes 5. Discord
License
This plugin is licensed under CC-BY-NC-4.0.