Command List
KaMenu provides a concise command structure. The main command is /km (aliases: /kamenu, /menu).
Main Command#
/km <subcommand> [arguments]
Aliases: /kamenu, /menu
Subcommand Details#
/km help#
Displays help information for all commands.
Format: /km help
Permission: None (available to all players)
Example:
/km help
Output includes:
- Plugin version information
- List of all available subcommands
- Brief description of each command
/km open#
Opens a specified menu.
Format:
/km open <menu-id>— Opens a menu for yourself (players only)/km open <menu-id> <player>— Opens a menu for a specified player (console-compatible)
Permission: kamenu.admin
Tab completion: After typing /km open , press Tab to auto-complete all loaded menu IDs (including subfolder paths).
Examples:
# Player opens a menu for themselves
/km open main_menu
# Player opens a menu for another player
/km open shop/weapons Player1
# Console opens a menu for a specified player (player name required)
/km open example/actions_demo Player1
# Open a menu in a subfolder
/km open shop/weapons
Notes:
- If the menu ID does not exist, the player receives an error message
- Players can omit the second argument to open the menu for themselves by default
- The console must specify the second argument (player name)
- If the specified player does not exist, an error message is displayed
/km list#
View all loaded menus on the server.
Format: /km list [page]
Permission: kamenu.admin
Features:
- Displays all loaded menus (10 per page)
- Click a menu name to open it directly
- Supports pagination
- Uses clickable text for convenient interaction
Examples:
# View the first page of the menu list
/km list
# View a specific page
/km list 2
Display output:
§6§lMenu List
§f1. example/main_menu §e[Click to open]
§f2. example/shop_menu §e[Click to open]
§f3. example/vip_menu §e[Click to open]
...
§7[Previous] §7Page 1/3 §e[Next]
/km guide#
Opens the built-in getting started guide menu.
Format: /km guide
Permission: kamenu.admin
Notes:
- The guide menu is loaded from inside the plugin jar into memory and is not written to the
menusdirectory - It helps with first-time language setup, example release, and example menu descriptions
- When no menus are loaded and an OP player joins the server, KaMenu sends a clickable prompt to open this guide
Examples:
/km guide
/kamenu guide
/km language#
Sets the plugin language and immediately reloads configuration and menus. The language ID is the .yml filename under plugins/KaMenu/lang/, without the extension.
Format: /km language <language_id>
Permission: kamenu.admin
Alias: /km lang <language_id>
Examples:
# Switch to Simplified Chinese
/km language zh_CN
# Switch to English
/km language en_US
/km examples#
Releases built-in sample menus for the selected language to plugins/KaMenu/menus/example/.
Format: /km examples [zh_CN|en_US] [overwrite]
Permission: kamenu.admin
Aliases: /km example, /km release-examples
Notes:
- If no language is specified, KaMenu uses the current
languageinconfig.yml - Both Chinese and English examples are released to
menus/example/; no runtimeexampleENdirectory is created - Existing files are skipped by default
- Add
overwriteto replace existing sample menus with the same names - Menus are automatically reloaded after release
Examples:
# Release examples using the current language
/km examples
# Release Chinese examples
/km examples zh_CN
# Release English examples
/km examples en_US
# Overwrite Chinese examples
/km examples zh_CN overwrite
/km pause#
Generates or removes the ESC pause screen entry datapack. register reads pause_menu.yml from the plugin root and compiles its static KaMenu-style layout into a vanilla Dialog.
This command is available only on Paper/Folia and forks exposing the compatible Paper custom-click API. Spigot returns an unsupported-platform message.
Format:
/km pause register— Generate the entry datapack fromplugins/KaMenu/pause_menu.yml/km pause unregister— Remove the datapack generated by KaMenu/km pause info— Show current entry status and datapack path
Permission: kamenu.admin
Examples:
/km pause register
/km pause info
/km pause unregister
Notes:
- The datapack is written to
world/datapacks/KaMenuPauseEntry - KaMenu releases the default
pause_menu.ymlduring startup when the file is missing and never overwrites an existing file - Adding, changing, or removing it requires a full server restart before the ESC pause screen changes
- KaMenu registers one ESC entry; configure its internal button matrix under
Bottom.buttons Body.messagesupports Legacy, MiniMessage, and static<text=...>clickable text- Static
Inputsare supported; buttons withactionsreceive client input through$(key) - Titles, Body, input labels, and button text do not resolve runtime values; button
actionsmay use PAPI, KaMenu variables, conditions, JavaScript, and action packages - A target opened through
menuis still parsed as a complete regular KaMenu menu - See ESC Pause Menu for the full syntax
/km reload#
Reloads plugin configuration, menus, or package folders without restarting the server. If no target is provided, KaMenu reloads everything.
Format: /km reload [all|menu|actions|js|lang|config]
Permission: kamenu.admin
Targets:
| Target | Description |
|---|---|
all |
Reload all modules. Same as omitting the target |
menu |
Reload only menu files under menus/ |
actions |
Reload only global action packages under plugins/KaMenu/actions/ |
js |
Reload only global JavaScript packages under plugins/KaMenu/js/ |
lang |
Reload only the current language file |
config |
Reload config.yml, language files, and custom commands |
Each target returns its own statistics: total, success, failed, and elapsed ms. For config, the counted items are custom commands under custom-commands. When no target is provided, or when all is used, KaMenu prints each module's reload result in sequence.
Example:
/km reload
/km reload menu
/km reload actions
/km reload js
/km reload lang
/km reload config
/km item#
Manage saved items, including saving held items, giving saved items, and deleting saved items.
Format:
/km item save <item-name>— Save the held item to the database (players only)/km item give <item-name>— Give yourself 1 item (players only)/km item give <item-name> <amount>— Give yourself a specified number of items (players only)/km item give <item-name> <player>— Give 1 item to a specified player (console-compatible)/km item give <item-name> <player> <amount>— Give a specified number of items to a specified player (console-compatible)/km item delete <item-name>— Delete a saved item
Permission: kamenu.admin
Details:
- Items are serialized in Base64 format and stored in the database
- Supports all item types (including items with NBT tags)
- Can save complex items such as enchanted items and items with custom textures
- When saving, the item count is automatically set to 1 to avoid storing quantity information
- When giving items, you can specify a quantity (range: 1–64)
- Deleting an item permanently removes it from the database
Examples:
# Save the held item
/km item save diamond_sword
/km item save vip_reward
# Give yourself 1 item
/km item give diamond_sword
# Give yourself 10 items
/km item give diamond_sword 10
# Give 1 item to a specified player
/km item give vip_reward Player1
# Give 10 items to a specified player
/km item give vip_reward Player1 10
# Console gives 1 item to a specified player (player name required)
/km item give diamond_sword Player1
# Console gives multiple items to a specified player
/km item give diamond_sword Player1 5
# Delete a saved item
/km item delete diamond_sword
/km item delete vip_reward
Tab completion:
- After
/km item, Tab shows subcommands (save, give, delete) - After
/km item give, Tab shows all saved item names - After
/km item delete, Tab shows all saved item names - After an item name, Tab shows all online players (give command only)
/km action#
Test and execute a specified action for debugging and verifying action configurations.
Format: /km action <player> <action>
Permission: kamenu.admin
Notes: This command can be used by both players and the console; a target player must always be specified.
Supported action types:
- Supports all server-executed action prefixes, such as
tell:,actionbar:,title:,hovertext:,command:,chat:,console:,sound:,open:,force-open:,close,force-close,reset,server:,tppos:,data:,gdata:,list:,glist:,meta:,toast:,money:,stock-item:,item:,js:, and more. - Action-chain or menu-context actions such as
wait,return,run-task:,stop-task:,stop-current-task,page:, andactions:can be entered, but some effects depend on the current menu config or task lifecycle. url:andcopy:are Paper Dialog static button click events. They only work as a single menu button action and are not useful/km actiontest targets.
For a full list of action types, see Actions.
Examples:
# Send a message
/km action Player1 tell:Hello World
# Play a sound
/km action Player2 sound:block_note_block_harp;volume=1.0;pitch=1.0
# Send a title
/km action Player3 title:title=Test;subtitle=Subtitle
# Operate data
/km action Player4 data:type=set;key=test;var=100
# Supports variables and PAPI
/km action Player5 tell: Your level is %player_level%, score is {data:score}
Tab completion:
- After
/km action, Tab shows all online players - After a player name, Tab shows supported server action prefixes
Custom Quick Commands#
In addition to /km open, you can register custom quick commands in config.yml that map a short command directly to opening a specific menu:
custom-commands:
shop: 'server_shop' # Players run /shop to open server_shop
menu: 'main_menu' # Players run /menu to open main_menu
For detailed configuration, see Custom Commands.