CustomMenu
CustomMenu is a powerful Paper plugin that lets you create custom menus using simple YAML files. It automatically shows the right UI for each player - Bedrock players see native forms, Java players see the new Dialog API.
64
1
CustomMenu
Create beautiful menus for both Bedrock and Java players!
CustomMenu is a powerful Paper plugin that lets you create custom menus using simple YAML files. It automatically shows the right UI for each player - Bedrock players see native forms, Java players see the new Dialog API.
✨ Features
| Feature | Description |
|---|---|
| 🎮 Cross-Platform | Works for both Bedrock (via Floodgate) and Java players |
| 📋 Easy YAML Config | Simple, readable menu configuration files |
| 🔄 Hot Reload | Reload menus without restarting the server |
| 🖼️ Button Images | Add icons to buttons (Bedrock only) |
| 📝 Input Forms | Text fields, dropdowns, toggles, sliders |
| 🔐 Permissions | Per-menu permission control |
| ⚡ Lightweight | No dependencies required |
📦 Installation
- Download the JAR file
- Place it in your
/plugins/folder - Restart your server
- Edit menus in
/plugins/CustomMenu/menu/
🎮 Commands
| Command | Permission | Description |
|---|---|---|
/cmenu open <menu> | custommenu.open | Open a menu |
/cmenu reload | custommenu.reload | Reload all menus |
/cmenu list | custommenu.list | List available menus |
Permissions
custommenu.open- Use the open commandcustommenu.open.<menu>- Open specific menucustommenu.reload- Reload menus (default: op)custommenu.list- List menus (default: true)
📝 Menu Configuration
Create .yml files in /plugins/CustomMenu/menu/
Simple Button Menu
title: "Server Menu"
content: "Welcome! Choose an option:"
buttons:
- text: "Spawn"
action: command
value: spawn
- text: "Shop"
action: command
value: shop
- text: "Close"
action: close
Button with Image (Bedrock)
buttons:
- text: "Spawn"
action: command
value: spawn
image: "https://example.com/icon.png"
image_type: url
Form with Inputs
title: "Player Report"
content: "Fill out the form:"
inputs:
- type: input
id: player
label: "Player Name"
placeholder: "Enter name..."
- type: dropdown
id: reason
label: "Reason"
options:
- Cheating
- Griefing
- Spam
- type: toggle
id: urgent
label: "Urgent"
default: "false"
submit:
text: "Submit Report"
action: console
value: "report {player} {reason} {urgent}"
🔧 Actions
| Action | Description | Example |
|---|---|---|
command | Run as player | spawn |
console | Run as console | give {player} diamond 1 |
message | Send message | Hello {player}! |
menu | Open menu | settings |
close | Close menu | - |
📌 Placeholders
| Placeholder | Description |
|---|---|
{player} | Player name |
{uuid} | Player UUID |
{input_id} | Value from input |
🎨 Input Types
| Type | Description | Platform |
|---|---|---|
input / text | Text field | Both |
dropdown | Select list | Both |
toggle / bool | On/Off switch | Both |
slider | Number range | Both |
label | Display text | Both |
🔗 Platform-Specific Settings
title: "Menu"
content: "Select option:"
buttons:
- text: "Option"
action: command
value: test
# Override for Bedrock players
form:
title: "Bedrock Menu"
content: "Tap to select!"
# Override for Java players
dialog:
title: "Java Menu"
content: "Click to select!"
📋 Requirements
- Paper 1.21.7+ (required for Dialog API)
- Floodgate (optional, for Bedrock support)
Совместимость
Создатели
Детали
Лицензия:MIT
Опубликован:2 месяца назад
Обновлён:2 месяца назад
