CustomMenu
ModrinthCustomMenu 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.
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)
Versions
No version history available. Use the Download button to get the latest from the source.
Comments 0
No comments yet. Be the first to share your thoughts.