CustomMenu
PluginMIT

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.

38
Downloads
1
Followers
3 months ago
Updated
📦
1
Versions

📖About CustomMenu

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

  1. Download the JAR file
  2. Place it in your /plugins/ folder
  3. Restart your server
  4. 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 command
  • custommenu.open.<menu> - Open specific menu
  • custommenu.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)