Overview

Welcome to JMenus!

The most powerful and feature-rich menu system plugin for Minecraft servers. Create stunning, interactive GUI menus with ease and zero coding required!

Key Features

Advanced Menu System

Create unlimited custom GUI menus with flexible layouts, custom items, and interactive elements. Support for 1-6 row menus with full customization.

In-Game Editor

Edit menus directly in-game with an intuitive GUI interface. No file editing required! Add items, configure actions, and test instantly.

Rich Actions System

11+ different action types including commands, messages, sounds, teleportation, BungeeCord transfers, economy transactions, and more.

BungeeCord Support

Send players between servers seamlessly with built-in BungeeCord integration. Perfect for network server selectors.

Economy Integration

Full Vault integration for money transactions. Create shops, charge for teleports, or reward players with money.

PlaceholderAPI Support

Dynamic content with full PlaceholderAPI integration plus 15+ built-in placeholders for player and server information.

Technical Specifications

RequirementDetails
Minecraft Version1.21+
Server SoftwarePaper, Spigot, Bukkit-based servers
Java VersionJava 21+
DependenciesNone (optional: PlaceholderAPI, Vault)
Plugin Versionv1.0.0
API Version1.21

What Makes JMenus Special?

  • Zero Learning Curve: Intuitive in-game editor makes menu creation effortless
  • Performance Optimized: Lightweight and efficient, won't slow down your server
  • Highly Customizable: Every aspect can be configured to match your server's style
  • Developer Friendly: Clean API for integration with other plugins
  • Future Proof: Regular updates and new feature additions
  • Professional Support: Active development with community support

Installation

Download JMenus

Download the latest JMenus plugin JAR file from Modrinth or GitHub. Make sure you're getting the version compatible with your Minecraft server version (1.21+).

Tip

Always download from official sources to ensure you get the genuine, safe version.

Place in Plugins Folder

Navigate to your server's plugins directory and place the JMenus JAR file there.

/your-server/plugins/JMenus-1.0.0.jar

Install Optional Dependencies

For enhanced functionality, install these optional plugins:

  • PlaceholderAPI - For dynamic placeholders in menus (highly recommended)
  • Vault - For economy integration and money actions

Note

JMenus works perfectly without these dependencies, but they unlock additional features.

Restart Your Server

Restart your Minecraft server to load the plugin. JMenus will automatically generate its configuration files and create an example menu.

Verify Installation

Run the following command to verify JMenus is loaded correctly:

/jmenus help

You should see the JMenus help menu if installation was successful.

Generated Files

After first startup, JMenus creates these files:

File/FolderPurpose
config.ymlMain plugin configuration
menus/Folder containing individual menu files
menus/example_menu.ymlExample menu for reference

Installation Complete!

JMenus will create an example menu file for you to explore. Use /jmenus open example_menu to see it in action!

Quick Start

Creating Your First Menu (5 Minutes)

Follow this tutorial

Create your first custom menu in under 5 minutes!

Step 1: Create the Menu

/jmenus create my_first_menu

This creates a new menu file with basic template items including welcome message and close button.

Step 2: Open the In-Game Editor

/jmenuedit my_first_menu

This opens the powerful in-game editor where you can visually customize your menu without touching any files.

Step 3: Customize Your Menu

  • Edit Items: Add, remove, or modify menu items with visual interface
  • Edit Title: Change the menu title with color codes support
  • Edit Size: Adjust the menu size from 1-6 rows (9-54 slots)
  • Settings: Configure sounds, fill items, and commands

Step 4: Test Your Menu

/jmenus open my_first_menu

Open your newly created menu to see it in action!

Example Menu Configuration

Here's what a basic menu configuration looks like:

title: "&8&l✦ &e&lMy First Menu &8&l✦" size: 3 open-sound: "BLOCK_CHEST_OPEN:1:1" close-sound: "BLOCK_CHEST_CLOSE:1:1" # Optional: Fill empty slots fill-item: material: BLACK_STAINED_GLASS_PANE name: " " # Optional: Direct command access command: enabled: true name: "myfirstmenu" items: welcome: material: PAPER slot: 13 name: "&e&lWelcome!" lore: - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" - "&7Welcome to my server!" - "&7Click for a surprise!" - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" actions: left: - "[message] &aHello %player_name%!" - "[sound] ENTITY_PLAYER_LEVELUP:1:1" close: material: BARRIER slot: 22 name: "&c&lClose Menu" lore: - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" - "&7Click to close this menu" - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" actions: left: - "[close]" - "[sound] BLOCK_CHEST_CLOSE:1:1"

Congratulations!

You've created your first JMenus menu. Continue reading to discover all the advanced features available!

Download & Support

Official Download Sources

Important

Always download JMenus from official sources to ensure you get the genuine, safe, and latest version.

Support & Contact

Bug Reports & Issues

Report bugs or request features on GitHub Issues

GitHub Issues

General Support

Get help and chat with the community

Discord: J2D

Documentation

Complete plugin documentation and guides

This Wiki

Version History

VersionRelease DateKey Features
v1.0.0 Latest In-game editor, template system, improved actions
v1.0.0 Initial Core menu system, basic actions, configuration

Commands

Main Command: /jmenus

The primary command for all JMenus functionality.
Aliases: /jmenu, /menus, /jm

Command Description Permission Example
/jmenus help Shows help information and available commands - /jmenus help
/jmenus open <menu> Opens a specific menu for the player jmenus.open /jmenus open shop
/jmenus list Lists all available menus on the server jmenus.list /jmenus list
/jmenus create <menu> [template] Creates a new menu with optional template jmenus.create /jmenus create shop basic
/jmenus delete <menu> Deletes an existing menu permanently jmenus.delete /jmenus delete old_menu
/jmenus edit <menu> Opens the in-game editor for a menu jmenus.editor /jmenus edit shop
/jmenus reload Reloads the plugin configuration and menus jmenus.reload /jmenus reload

Editor Command: /jmenuedit

Quick access to the in-game menu editor.
Aliases: /jme, /menuedit

/jmenuedit <menu_name>

Pro Tip

Use tab completion with all commands to see available options and menu names automatically!

Template Options

When creating menus, you can use these predefined templates:

basic

Simple menu with welcome message and close button

basic

server

Server selector with hub, survival, and creative options

server

warps

Warp menu with spawn, mine, shop, and PvP warps

warps

shop

Shop categories menu with blocks, tools, and misc

shop

Permissions

Important

JMenus uses a hierarchical permission system. Higher-level permissions automatically include lower-level ones where logical.

Core Permissions

Permission Description Default Level
jmenus.use Basic plugin access and usage true Player
jmenus.open Open menus using commands true Player
jmenus.list List all available menus op Moderator
jmenus.reload Reload plugin configuration op Admin
jmenus.create Create new menus op Admin
jmenus.delete Delete existing menus op Admin
jmenus.editor Access in-game menu editor op Admin

Menu-Specific Permissions

Control access to individual menus with specific permissions:

# Allow access to specific menus jmenus.open.shop # Can open the 'shop' menu jmenus.open.warps # Can open the 'warps' menu jmenus.open.admin # Can open the 'admin' menu jmenus.open.vip # Can open the 'vip' menu

How it works

If a player doesn't have the specific menu permission, they can still open it if they have the general jmenus.open permission, unless you configure menu-specific restrictions.

Permission Configuration in Menu Files

You can add permission requirements directly to menu files:

title: "&c&lAdmin Panel" size: 3 permission: "admin.use" # Require this permission to open items: ban_player: material: BARRIER slot: 10 name: "&cBan Player" permission: "admin.ban" # Require this permission to see/use item

Configuration

Configuration File

The main configuration file is located at plugins/JMenus/config.yml and controls global plugin behavior.

Plugin Settings

General Settings

settings: # Debug mode (shows extra information in console) debug: false # Check for updates on startup update-check: true # Enable PlaceholderAPI integration if installed use-placeholders: true # Default language (for future multi-language support) language: "en_US" # Auto-reload menu files when they are modified auto-reload: true # Enable metrics/statistics collection metrics: true

Menu Defaults

Default Menu Properties

menu: # Default menu settings (applied to all menus unless overridden) default-size: 3 default-title: "&8Menu" # Fill empty slots with this item default-fill-item: enabled: false material: "BLACK_STAINED_GLASS_PANE" name: " " # Play sounds when opening/closing menus sounds: enabled: true default-open: "BLOCK_CHEST_OPEN:1:1" default-close: "BLOCK_CHEST_CLOSE:1:1"

BungeeCord Configuration

Network Server Support

bungee: # Enable BungeeCord support enabled: true # Server ping interval (in seconds) ping-interval: 60 # Server info message format server-info-format: "&fPlayers: &a%count%/%max%" # Show server status in menu items show-status: true # Default servers (for auto-complete in commands) servers: - "hub" - "survival" - "creative" - "skyblock" - "factions" - "minigames" - "prison" - "pvp" - "staff" # You can define aliases for server names aliases: main: "hub" build: "creative" lobby: "hub" games: "minigames"

Important

After modifying the configuration file, use /jmenus reload to apply changes without restarting the server.

Actions System

Actions are the heart of JMenus!

They define what happens when players interact with menu items. You can combine multiple actions for complex behaviors and chain them together.

Available Actions

Message

Send a message to the player

[message] Hello %player_name%!

Command

Execute command as the player

[command] give %player_name% diamond

Console

Execute command as console (with full permissions)

[console] say Welcome %player_name%!

Sound

Play sound (SOUND:volume:pitch)

[sound] ENTITY_PLAYER_LEVELUP:1:1

Close

Close the current menu

[close]

Menu

Open another menu

[menu] shop

Teleport

Teleport player to location or another player

[teleport] spawn

Broadcast

Send message to all online players

[broadcast] %player_name% joined!

Bungee

Send player to another BungeeCord server

[bungee] hub

Permission

Check permission before executing action

[permission] admin.use:[console] op %player_name%

Money

Economy transactions (requires Vault)

[money] give:1000

Click Types

Actions can be triggered by different click types:

Click TypeDescriptionCommon Usage
leftLeft mouse clickPrimary action, most common
rightRight mouse clickSecondary action, alternatives
middleMiddle mouse click (scroll wheel)Special actions
shift_leftShift + left clickAdvanced actions, admin functions
shift_rightShift + right clickAdvanced alternatives

Pro Tip

Actions are executed in order from top to bottom. Use this to create complex conditional logic with permission checks and money verification!

In-Game Editor

The In-Game Editor

JMenus' most powerful feature, allowing you to create and modify menus entirely in-game without touching any configuration files!

Accessing the Editor

/jmenuedit <menu_name>

or

/jmenus edit <menu_name>

Required Permission

jmenus.editor (default: OP only)

Editor Interface

Main Editor Menu

The main editor interface provides access to all editing functions:

Edit Items

Add, remove, or modify menu items visually

  • Left-click: Edit existing item
  • Right-click: Remove item
  • Shift-click: Edit item actions

Edit Title

Change the menu title with chat input

  • Supports color codes (&)
  • Supports placeholders
  • Real-time preview

Edit Size

Adjust menu size from 1-6 rows

  • Visual size selector
  • Automatic slot calculation
  • Preserves existing items

Settings

Configure sounds, fill items, and commands

  • Open/close sounds
  • Fill item configuration
  • Direct command setup

Remember

The in-game editor is designed to be intuitive and user-friendly. Experiment with different settings and don't be afraid to try new things - you can always undo changes by editing the menu file manually!

Templates

Templates

Provide pre-built menu configurations for common use cases. They're perfect for quickly creating professional-looking menus without starting from scratch.

Available Templates

Basic Template

Simple menu with welcome message and close button. Perfect for learning or basic functionality.

/jmenus create my_menu basic

Server Template

BungeeCord server selector with Hub, Survival, and Creative servers. Ideal for network servers.

/jmenus create servers server

Warps Template

Teleportation menu with Spawn, Mine, Shop, and PvP Arena warps. Great for survival servers.

/jmenus create warps warps

Shop Template

Shopping categories with Blocks, Tools, and Miscellaneous sections. Perfect for economy servers.

/jmenus create shop shop

Customizing Templates

After creating a menu from a template, you can customize it:

  1. Create from template: /jmenus create my_menu template_name
  2. Open editor: /jmenuedit my_menu
  3. Modify items: Change materials, names, lore, actions
  4. Add items: Click empty slots to add new items
  5. Adjust settings: Change title, size, sounds, etc.

Pro Tip

Templates are just starting points! Feel free to completely customize them to match your server's needs and style.

Template Comparison

TemplateSizeItemsBest For
Basic 3 rows Welcome, Close Learning, Simple functionality
Server 3 rows Hub, Survival, Creative servers BungeeCord networks
Warps 4 rows Spawn, Mine, Shop, PvP warps Survival/Factions servers
Shop 3 rows Blocks, Tools, Misc categories Economy servers

Placeholders

Placeholders

Make your menus dynamic by displaying real-time information about players, servers, and more. JMenus supports both built-in placeholders and PlaceholderAPI integration.

Built-in Placeholders

JMenus includes 15+ built-in placeholders that work without any additional plugins:

Player Placeholders

%player_name% - Player's username

%player_uuid% - Player's UUID

%player_health% - Current health

%player_max_health% - Maximum health

%player_food% - Food level (0-20)

%player_gamemode% - Current gamemode

Location Placeholders

%player_world% - Current world name

%player_x% - X coordinate

%player_y% - Y coordinate

%player_z% - Z coordinate

Server Placeholders

%server_name% - Server name

%server_online% - Online players count

%server_max_players% - Maximum players

%server_version% - Server version

PlaceholderAPI Integration

When PlaceholderAPI is installed, you can use thousands of additional placeholders:

# Economy placeholders (Vault) %vault_eco_balance% %vault_eco_balance_formatted% # Permission placeholders %luckperms_primary_group_name% %luckperms_prefix% %luckperms_suffix% # Player statistics %statistic_deaths% %statistic_mob_kills% %statistic_player_kills% # World placeholders %player_world% %player_world_size% %player_world_time% # Date and time %server_time_HH:mm:ss% %server_time_dd/MM/yyyy% # Custom plugin placeholders %towny_town_name% %factions_faction_name% %mcmmo_level_mining%

Installation

Simply install PlaceholderAPI and relevant expansion packs. JMenus will automatically detect and support all available placeholders!

BungeeCord Support

BungeeCord Integration

Allows JMenus to send players between servers in your network seamlessly. Perfect for server selectors and network navigation menus.

Setup Requirements

BungeeCord Server

A properly configured BungeeCord proxy server

  • Multiple backend servers
  • Proper server configurations
  • Network connectivity

Plugin Installation

JMenus installed on backend servers

  • Install on all backend servers
  • Same menu configurations
  • Consistent permissions

Configuration

Enable BungeeCord support in config

  • Set bungee.enabled: true
  • Configure server list
  • Set up aliases

Using the Bungee Action

The [bungee] action sends players to other servers:

Basic Usage

# Send to specific server [bungee] hub [bungee] survival [bungee] creative [bungee] minigames # Using aliases [bungee] main # Goes to "hub" server [bungee] build # Goes to "creative" server [bungee] lobby # Goes to "hub" server

Note

BungeeCord support has not been tested with Velocity proxy yet. It should work with standard BungeeCord setups. Report any issues on GitHub!

Economy Integration

Economy Integration

Through Vault allows JMenus to handle money transactions, create shops, charge for services, and reward players with currency.

Install Vault

Download and install the Vault plugin from official sources. Vault acts as a bridge between JMenus and economy plugins.

Install Economy Plugin

Install a Vault-compatible economy plugin such as:

  • EssentialsX Economy - Most popular choice
  • CMI Economy - Feature-rich alternative
  • TNE (The New Economy) - Advanced economy system
  • iConomy - Classic economy plugin

Restart Server

Restart your server to ensure all plugins load correctly and Vault detects your economy plugin.

Verify Installation

Test the money action in a menu to ensure everything works properly.

Money Action Usage

The [money] action supports three operations:

Give Money

Add money to player's balance

[money] give:1000

Take Money

Remove money from player's balance

[money] take:500

Check Money

Verify player has enough money

[money] has:1000

Money Action Syntax

# Give money to player [money] give:amount # Take money from player (only if they have enough) [money] take:amount # Check if player has enough money (returns true/false) [money] has:amount # Examples: [money] give:1000 # Give $1000 [money] give:50.5 # Give $50.50 (supports decimals) [money] take:500 # Take $500 (if player has it) [money] has:1000 # Check if player has $1000

Pro Tip

Combine money actions with permission actions to create sophisticated shop systems with rank-based discounts and exclusive items!

API Documentation

Under Development

The JMenus API documentation is currently being developed and will be available in a future release. This will include comprehensive guides for developers who want to integrate with JMenus programmatically.

Coming Soon

  • Complete API reference
  • Code examples and tutorials
  • Custom action creation guides
  • Integration patterns

Stay Updated

Follow the project on GitHub for updates on API development progress and release announcements.

For Developers

If you need immediate API access for your plugin development, please reach out via Discord (J2D) or GitHub Issues for early access documentation and support.

Troubleshooting

Common Issues

IssueSymptomsSolution
Plugin won't load Error in console, JMenus commands not working Check Java version (21+), server compatibility, download from official sources
Menus don't open Commands work but no GUI opens Check permissions, verify menu files exist, check for errors in menu configuration
Items don't show Menu opens but appears empty Verify item configuration syntax, check material names, ensure slots are valid
Actions don't work Items show but clicking does nothing Check action syntax, verify permissions for actions, test with simple actions
Placeholders not working Placeholder text shows instead of values Install PlaceholderAPI, download required expansions, check placeholder syntax

Debug Mode

Enable debug mode for detailed troubleshooting information:

# In config.yml settings: debug: true

Then reload the plugin:

/jmenus reload

Debug Information

Debug mode provides detailed console output about menu loading, action execution, and error details.

Getting Help

Report Bugs

GitHub Issues for bug reports

  • Include error logs
  • Describe reproduction steps
  • Mention server version
  • List other installed plugins

Community Support

Discord for general help

  • Discord: J2D
  • Ask for configuration help
  • Share menu examples
  • Get quick answers

Documentation

This wiki for complete information

  • Read relevant sections
  • Check examples
  • Follow tutorials
  • Review configuration

Self-Diagnosis

Tools for troubleshooting

  • Enable debug mode
  • Check server console
  • Validate YAML syntax
  • Test with minimal config

Examples

Real-World Examples

Showcasing different types of menus you can create with JMenus. Copy and customize these examples for your server!

Admin Control Panel

title: "&c&l⚡ &4&lAdmin Panel &c&l⚡" size: 4 permission: "admin.use" fill-item: material: RED_STAINED_GLASS_PANE name: " " items: player_management: material: PLAYER_HEAD slot: 10 name: "&e&lPlayer Management" lore: - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" - "&7Manage online players" - "&7• Kick players" - "&7• Ban/unban players" - "&7• Teleport to players" - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" actions: left: - "[menu] player_management" server_control: material: COMMAND_BLOCK slot: 12 name: "&6&lServer Control" lore: - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" - "&7Control server functions" - "&7• Restart server" - "&7• Change weather" - "&7• Set time" - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" actions: left: - "[menu] server_control" quick_actions: material: EMERALD slot: 22 name: "&a&lQuick Actions" lore: - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" - "&eLeft: &7Heal all players" - "&eRight: &7Feed all players" - "&eShift+Left: &7Clear weather" - "&eShift+Right: &7Day time" - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" actions: left: - "[console] heal *" - "[broadcast] &aAll players have been healed!" right: - "[console] feed *" - "[broadcast] &aAll players have been fed!" shift_left: - "[console] weather clear" - "[broadcast] &aWeather cleared!" shift_right: - "[console] time set day" - "[broadcast] &aTime set to day!"

VIP Perks Menu

title: "&6&l⭐ &e&lVIP Perks &6&l⭐" size: 4 permission: "vip.use" fill-item: material: YELLOW_STAINED_GLASS_PANE name: " " items: vip_kit: material: DIAMOND_CHESTPLATE slot: 11 name: "&b&lVIP Kit" lore: - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" - "&7Claim your daily VIP kit" - "&7Contains valuable items!" - "" - "&7Cooldown: &e24 hours" - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" flags: - "HIDE_ATTRIBUTES" actions: left: - "[console] kit vip %player_name%" - "[message] &aVIP kit claimed!" - "[sound] ENTITY_PLAYER_LEVELUP:1:1" fly_toggle: material: FEATHER slot: 13 name: "&f&lFly Toggle" lore: - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" - "&7Toggle flight mode" - "&7VIP exclusive feature!" - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" actions: left: - "[console] fly %player_name%" - "[message] &aFlight toggled!" - "[sound] ENTITY_BAT_TAKEOFF:1:1" economy_bonus: material: GOLD_INGOT slot: 20 name: "&6&lDaily Bonus" lore: - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" - "&7Claim daily money bonus" - "&7Amount: &a$1000" - "" - "&7Cooldown: &e24 hours" - "&8╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍╍" actions: left: - "[money] give:1000" - "[message] &aReceived $1000 daily bonus!" - "[sound] ENTITY_EXPERIENCE_ORB_PICKUP:1:2"

Customization Tips

These examples are templates! Modify them to match your server's theme, add your own items, change the styling, and integrate with your specific plugins and systems.