⚡ SmartMenus The most powerful, feature-rich GUI plugin ever built for Minecraft. Built on the legendary SmartInvs API — engineered to do what no other menu plugin can.
Why SmartMenus Destroys Every Other GUI Plugin
You've tried DeluxeMenus. You've tried ChestCommands. You've tried TrMenu. You've tried zMenu. They all hit a wall the moment your ideas get ambitious.
SmartMenus has no wall.
Every other GUI plugin was built for simple shops. SmartMenus was built for everything — shops, quest boards, rank upgrades, server selectors, dynamic player menus, sacrifice altars, full-screen GUIs that take over your entire inventory. If you can imagine it, SmartMenus can build it.
This is not just another menu plugin. This is the last menu plugin you will ever need.
⚙️ Built on SmartInvs — The Gold Standard of GUI APIs
SmartMenus is powered by
SmartInvs, the most respected and widely-used GUI framework in the Minecraft ecosystem. SmartInvs gives SmartMenus a rock-solid foundation that lesser plugins simply don't have:
Tick-accurate rendering — items update on a per-tick basis without flicker or desync
Full inventory type support — CHEST, HOPPER, DISPENSER, FURNACE, BREWING STAND, CRAFTING, and more
Thread-safe state management — no inventory corruption under heavy load
Smooth pagination — native page-by-page navigation with zero boilerplate
Event-driven click handling — every click type (LEFT, RIGHT, SHIFT, MIDDLE, DOUBLE) captured cleanly
Every SmartMenus GUI is a SmartInvs-powered inventory under the hood. That means
stability, performance, and flexibility that YAML-only GUI plugins simply cannot match.
FULL BEDROCK FORMS SUPPORT SmartMenus 2.1 brings full native Bedrock/Geyser support the most requested feature since launch , every GUI you've already built can now automatically serve Bedrock players without touching a single config file.
Bedrock Support WITH Zero Extra Work?? YES ! existing Java GUIs can automatically convert into Bedrock forms No need to rebuild menus No duplicate configurations Works seamlessly with Geyser Floodgate detection supported automatically Multiple Form Types SmartMenus now supports: Simple Forms Modal Forms Custom Forms Dialogue Forms Giving you complete control over the Bedrock experience. Bedrock Actions: Two new action types have been added: * `OPEN_BEDROCK_FORM` * `OPEN_BEDROCK_DIALOGUE`
Allowing you to open Bedrock-specific interfaces directly from buttons and actions. Auto Conversion System Simply enable auto conversion and SmartMenus will handle the rest. Your Java GUI → Bedrock Form conversion happens automatically.
14 Button Types — More Than Any Other Plugin
Most GUI plugins give you clickable items. SmartMenus gives you a
complete interactive system:
NONE — Standard clickable item with actions & conditions
INVENTORY — Open another GUI (with full navigation history)
BACK — Return to the previous GUI in the navigation stack
HOME / MAIN_MENU — Jump directly to the root menu from anywhere
NEXT / PREVIOUS — Page navigation with optional permanent display
JUMP — Skip directly to any page number
PAGINATION — Display a static list of items across multiple pages automatically
DYNAMIC_PAGINATION — Live server data rendered as clickable items (see below)
SWITCH — Multi-state toggle buttons driven by PlaceholderAPI or static keys
INPUT — Item slots players can drop items into, firing commands on placement
CHAT_INPUT — Prompts the player to type in chat, captures the response as a variable
No other free GUI plugin comes close to this feature depth.
Dynamic Pagination — Live Server Data as GUI Items
This is where SmartMenus truly separates itself.
DYNAMIC_PAGINATION sources pull live data from your server and renders it as interactive items — automatically, in real time.
Built-in data sources:
ONLINE_PLAYERS — Render every online player as a skull item. Click to teleport, view stats, open admin menus — anything. Shows name, UUID, world, health, level, ping, gamemode.
WORLDS — All loaded worlds as clickable items. Show player count, time, difficulty. Click to teleport.
PLAYER_INVENTORY — Displays the viewer's own inventory as GUI items. With
take-item: true, clicking removes the item. With
give-item: true, clicking gives a copy.
PLAYER_ENDERCHEST — Same as above but for the ender chest. Combine take + give to move items from ender chest → main inventory with a click.
PERMISSION_GROUPS — All LuckPerms groups rendered as items. Perfect for rank upgrade menus.
Code (Text):
# Online players list — click a player to open admin actions
online-players:
type: DYNAMIC_PAGINATION
source: ONLINE_PLAYERS
slots: [ 10-16, 19-25, 28-34 ]
material: PLAYER_HEAD
name: "&e%player_name%"
lore:
- "&7World: &f%player_world%"
- "&7Level: &a%player_level%"
- "&7Ping: &b%player_ping%ms"
- ""
- "&eClick to teleport →"
click_actions:
LEFT:
- type: CONSOLE_COMMAND
command: "tp {player} %player_name%"
SmartMenus is the
only GUI plugin with a
use_bottom_inventory feature.
When enabled, SmartMenus saves the player's inventory, replaces those slots with GUI items, and restores everything perfectly on close. This unlocks:
90 total interactive slots — 54 from the chest GUI + 36 from the player's inventory area
Immersive full-screen menus that fill the entire Minecraft inventory screen
All 90 slots support actions, conditions, and every button type
Zero item loss — real inventory is saved and restored on close, quit, and server reload
PLAYER_MESSAGE — Send a colored message to the player
BROADCAST — Announce to the entire server
ACTION_BAR — Display text above the hotbar
TITLE — Full screen title with subtitle, fade-in, stay, fade-out control
SOUND — Play a sound for the clicking player (volume + pitch control)
BROADCAST_SOUND — Play a sound for every player online
CONSOLE_COMMAND — Execute any command as console
PLAYER_COMMAND — Execute a command as the player
RANDOM_CONSOLE_COMMAND — Pick a random command from a list (loot tables!)
RANDOM_PLAYER_COMMAND — Same but as the player
TELEPORT — Teleport to any world, X/Y/Z, yaw, pitch
OPEN_INVENTORY — Open another GUI by ID
CLOSE_INVENTORY — Close the current GUI
BACK — Navigate to the previous GUI
SERVER_CONNECT — Send player to a BungeeCord/Velocity server
SCRIPT — Execute inline JavaScript (Nashorn/GraalVM) for unlimited custom logic
Every action supports per-click-type targeting — assign different actions to LEFT, RIGHT, SHIFT_LEFT, SHIFT_RIGHT, MIDDLE, and DOUBLE_CLICK independently:
Code (Text):
rank-upgrade:
type: NONE
slot: 22
material: NETHER_STAR
name: "&d&lRank Upgrade"
click_actions:
LEFT:
- type: PLAYER_MESSAGE
message: "&7Left click to preview, &eshift+left to confirm purchase."
SHIFT_LEFT:
- type: CONSOLE_COMMAND
command: "lp user {player} parent set vip"
- type: SOUND
sound: ENTITY_PLAYER_LEVELUP
- type: TITLE
title: "&d✦ RANK UP ✦"
subtitle: "&7You are now &dVIP&7!"
/smartmenus — Show help
/smartmenus open <gui> [player] — Open a GUI for yourself or another player
/smartmenus reload — Reload all GUI configs instantly (no restart!)
Code (Text):
smartmenus.use — Access to /smartmenus (default: true)
smartmenus.open — Open GUIs (default: true)
smartmenus.reload — Reload plugin (default: op)
smartmenus.command.<gui> — Use a GUI's custom command (default: true)