# Your own menus and HUD panels

> Menus of buttons that run a command as the player who clicks, and HUD panels of text with {placeholders} - written as lines in the settings, no plugin. New in 0.3, off by default.

Source: https://stygion.eu/docs/keystone/menus
Updated: 2026-10-25

New in 0.3, module `menus`, off by default. An owner composes client screens of their own - a `/menu` of warps, say - and HUD panels, as lines the editor shows. The game's own screens and other mods' screens are never restyled.

## Menus

- `buttons`: one line per button, `menu | label | icon item | command | permission | tooltip`:
  `warps | Spawn | minecraft:compass | spawn`
  `warps | Mine | minecraft:iron_pickaxe | warp mine | | The mining world`
  The command runs **as the player who clicks, with their own permissions** - a button never lets anybody do more than they could type. Permission and tooltip may be left out; a button with a permission is shown only to those who hold it.
- `titles`: a menu's title, `warps | Warps`; `[en]…[cs]…` works.
- `permissions`: who may open a menu, `staff | keystone.menu.staff`. A menu not named here is for everybody with `keystone.menu`.

`/menu <menu>` opens it; with Keystone's client half as a screen of buttons with item icons.

## HUD panels

- `hud`: one line of text each, `panel | text`. Any HUD value fills in - `{coins}`, `{server.tps}`, `{vote.streak}`, `{player}`, `{x} {y} {z}`, `{fps}` and the rest ([HUD values](/docs/keystone/hud-values)): `info | Online: {server.online}`.
- `hud-titles`: a panel's title and where it starts: `panel | Title | top-right` (`top-left`, `top`, `top-right`, `left`, `right`, `bottom-left`, `bottom-right`). The player may move it like any other HUD element unless the server locks it.
- `hud-permissions`: who sees a panel, `panel | permission`; not named, everybody.

`GET /v1/menus` (scope `players.read`) lists the menus and panels as written. Addons and modules run commands as a player the same way through `Player.runCommand`.
