# Home

> A next-generation Minecraft GUI plugin based on the Paper Dialog API, delivering a brand-new interactive experience beyond traditional chest menus

**KaMenu** is a GUI plugin built specifically for modern Minecraft Paper servers. It abandons the traditional chest (Inventory) menu model and instead adopts **Paper 1.21.7+ native Dialog API**, providing players with a modern menu interface featuring rich interactive components such as text input, sliders, dropdowns, and checkboxes. The configuration files are YAML-based, concise and intuitive, and ready to use out of the box.

> **⚠️ Important Notice**:
>
> * **Minimum version**: Paper 1.21.7
> * **Recommended version**: Paper 1.21.8+
> * **Full-featured version**: Paper 1.21.9+ (supports advanced features such as sprite item icons and player head avatars)
>
> KaMenu **Not supported** Paper 1.21.6 and below. Please make sure the server version meets the requirements!

***

## ✨ Core Features

### 🖥️ Modern GUI based on the Dialog API

Say goodbye to traditional chest menus and embrace the native UI:

* A brand-new Paper Dialog menu interface with a more modern look
* Supports a variety of rich interactive components: text input boxes, numeric sliders, dropdown selection boxes, checkboxes
* Supports content components such as item display (Item) and plain text messages (Message)
* Three bottom button layout modes:`notice`、`confirmation`、`multi`

### 🔧 Highly customizable

* Fully YAML-based configuration, requiring no programming knowledge
* Supports a multi-level folder structure, making it easy to manage a large number of menus
* Supports hot reload, so configuration changes do not require a server restart

### 🔀 Powerful action system

Supports a rich set of button click actions:

* `tell` / `actionbar` / `title` — multiple ways to send messages
* `command` / `console` — execute player or console commands
* `sound` — play sounds (supports volume, pitch, and category parameters)
* `open` / `close` — menu navigation and closing
* `hovertext` — chat text that can be hovered over and clicked
* `actions` — execute a predefined list of actions (supports reuse and conditional logic)
* `wait` — delay the execution of subsequent actions
* `set-data` / `set-gdata` — read and write persistent data
* `url` / `copy` — open a link or copy to clipboard

### 🔍 General condition checking

* Use conditional checks in**any text field**(title, button text, component text)
* Use conditional checks in**Action list**to nest conditions and implement branching execution logic
* Supports PlaceholderAPI variables and comparison operators (`==` `!=` `>` `<` `>=` `<=`) and logical operators (`&&` `||`)

### 💾 Built-in data storage

* Supports **SQLite**(default) and **MySQL** dual-database support
* **Player data** (`{data:key}`): independent key-value pairs stored by player UUID
* **Global data** (`{gdata:key}`): key-value pairs shared by all players
* Expose data variables externally through **PlaceholderAPI** extensions

### 🌐 Quick access methods

* `/km open <menu ID>` — open via standard command
* **Shortcut key listener**: supports configuring `F`(toggle offhand) to trigger opening a specified menu
* **Custom command registration**: a single line of configuration turns any word into a shortcut command for opening menus

### 📊 PlaceholderAPI support

* Full support for PAPI variable parsing (usable in menu titles, component text, and actions)
* Provides `%kamenu_data_<key>%` and `%kamenu_gdata_<key>%` variables

***

## 💰 Support

KaMenu is a free and open-source plugin. You can download the source code on GitHub and build the latest experimental features yourself for use.

{% embed url="<https://github.com/Katacr/KaMenu/>" %}

***

## 🤝 Community & Feedback

* **GitHub**: [Katacr/KaMenu](https://github.com/Katacr/KaMenu/)
* **Issue feedback**: [GitHub Issues](https://github.com/Katacr/KaMenu/issues)

## 📄 License

This project is open-source under the [GPL-3.0](https://www.gnu.org/licenses/gpl-3.0.html) license.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://katacr.gitbook.io/plugins/kamenu-en/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
