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 - Servers with Dialog support open the Dialog guide; older platforms without Dialog support automatically open the container guide
- 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 - Older platforms without Dialog support release only four Container examples:
container_main,container_actions,container_furnace, andcontainer_anvil - Platforms with Dialog support release those Container examples plus all Dialog examples
- Changing platforms does not delete files that already exist under
menus/example/ - 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 migrate dm#
Converts DeluxeMenus chest menus into KaMenu V2 Container menus. The converter does not load DeluxeMenus or execute source actions; review third-party item, economy, and command integrations on a test server after generation.
Format: /km migrate dm [source-file-or-directory] [output-directory] [overwrite]
Permission: kamenu.admin
Notes:
- When the source is omitted, KaMenu scans
plugins/DeluxeMenus/gui_menusby default - The source may be one
.ymlfile or a directory containing YAML files - The output directory is relative to
plugins/KaMenu/menus/; the default isdm_migrated - Existing files and same-name custom commands are preserved by default; use
overwriteto replace both open_commandis converted intocustom_commands.yml > custom-commands; every command in a DM list is mapped to the migrated menu ID- Existing same-name custom commands are preserved and reported as conflicts by default, avoiding accidental replacement of menu or action commands
- KaMenu reloads menus, custom commands, and online players' client command trees after migration
- The command reports per-file success and WARNING/ERROR entries with source YAML paths
Examples:
/km migrate dm
/km migrate dm overwrite
/km migrate dm /path/to/DeluxeMenus/gui_menus
/km migrate dm /path/to/DeluxeMenus/gui_menus overwrite
/km migrate dm /path/to/DeluxeMenus/gui_menus dm_migrated overwrite
/km open dm_migrated/requirements_menu
See Menu Migration Overview for the complete workflow, incompatibilities, and report format. See Container Buttons for same-slot priority merging and state variant rules.
/km migrate trmenu#
Compiles classic TrMenu stable-v3 inventory menus into standard KaMenu V2 Container menus. The migrator only reads source YAML. It does not load TrMenu or execute Kether, JavaScript, commands, or click actions.
Format: /km migrate trmenu [source-file-or-directory] [output-directory] [overwrite]
Alias: /km migrate trm
Permission: kamenu.admin
Notes:
- When the source is omitted, KaMenu scans
plugins/TrMenu/menus - The output directory is relative to
plugins/KaMenu/menus/; the default istrmenu_migrated - Existing menus, same-name custom commands, and item bindings are preserved unless
overwriteis supplied - Plain
Bindings.Commandsentries are merged intocustom_commands.yml; regex bindings are not converted automatically - Compatible
Bindings.Itemsentries are merged intoitem_bindings.yml; unsafe item traits are skipped with diagnostics - The migrator builds the complete batch menu-ID map before converting cross-file
open:actions - Every generated file is parsed again by KaMenu's Container parser; a file with any ERROR is not written
- Menus, custom commands, item bindings, and online players' client command trees are reloaded after migration
Examples:
/km migrate trmenu
/km migrate trm overwrite
/km migrate trmenu /path/to/TrMenu/menus trmenu_migrated overwrite
/km open trmenu_migrated/example
See Menu Migration Overview for supported features, rejection rules, and TRM_* diagnostic codes.
/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, custom_commands.yml, item_bindings.yml, item_sprites.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 the plugin root file custom_commands.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.