Skip to content
Leaf26 edited this page Jun 17, 2026 · 1 revision

/rtp menu opens an interactive, in-game menu of destinations and admin actions so players and operators can drive the plugin by clicking instead of memorizing parameters. It is deliberately a read-only book UI, not a chest GUI: clickable rows run the same permission-checked commands a player could type, so there is no inventory-duplication or click-exploit surface, and no Folia entity-thread state to manage.

Happy path

/rtp menu        # opens the menu (permission: rtp.menu)

That is all most servers need. The menu renders as a book on platforms that support it and mirrors the live /rtp command tree, so every row it shows is something the clicking player actually has permission to do. Rows the player cannot use are hidden rather than greyed out, keeping the page clean.

Renderer selection

How the menu is drawn is set by the menu.renderer list in config.yml:

menu:
  # Ordered preference list of renderer ids. Available: book, chat.
  renderer:
    - "book"

renderer is an ordered preference list of renderer ids. The framework tries the first id; on a missing adapter or an exception it falls through to the next. If the whole list is exhausted, the no-token open path falls back to the configurable menuInvalid message in messages.yml.

Id Renders as Availability
book A clickable written-book GUI. The recommended and default renderer. Paper-family servers (uses the Paper Book API) and Fabric 1.21+.
chat Clickable chat lines. Fallback renderer (also the Fabric 1.20.x path).

On a plain Spigot/Bukkit server without the Paper Book API the book renderer is unavailable.

Note Keep book first and add chat after it ([ "book", "chat" ]), so platforms without book support fall through instead of hitting menuInvalid.

Front page

A bare /rtp menu opens the curated front page. Which rows appear depends on the viewer's permissions:

Everyone sees:

  • Teleport me now - runs /rtp immediately.
  • Help - the permission-filtered command list (/rtp help).

Players additionally get picker rows, each shown only when the matching parameter exists and the player has at least one value to choose:

  • Pick a region - choose from the regions you can use.
  • Pick a world - choose a target world.
  • Pick a biome - restrict the destination to a biome.

Choosing a value opens a picker page; on Paper the book renderer uses an anvil text-input prompt so you can type or filter a value.

Admins (rtp.menu.admin) instead see a single Admin panel row in place of the picker rows.

Admin panel

The admin panel collects operator tooling onto its own page. Rows self-hide when their underlying subcommand is not registered or the viewer lacks the row's permission, and the panel paginates automatically when it grows past a single book page (a Back row to the front page always lands on the last page).

The rows appear top-to-bottom in this order:

# Row Action Permission
1 Setup prefabs Pick a bundled prefab to apply (/rtp admin prefab apply id=<id>). rtp.admin.prefab
2 Config editor Open the curated config selector to browse and edit config files. rtp.config.view (needs the config subcommand)
3 Server info Open the info book (plugin version, region counts, queue state); mirrors /rtp info. needs the info subcommand
4 Full diagnostics Run the full diagnostic suite (/rtp test full). needs the test subcommand
5 Memory tracker snapshot Dump active chunk-ticket and pipeline allocations (/rtp test memory). shown only when /rtp test memory is registered
6 Scan control Open the scan submenu (start / pause / cancel). rtp.scan (needs the scan subcommand)
7 Visualizations Open maps and other operator-facing visualizations. gated on rtp.menu.admin at click time
8 Reload Reload all config files (/rtp reload). rtp.reload
9 Browse all commands Open the full reflected /rtp command tree. always shown

The Config editor lets you walk the config files, pick a key, and change its value through the same picker/anvil flow used for teleport parameters - no hand-editing YAML required. The per-config Regions and Worlds editors live inside the config selector, not as separate admin-panel rows. See Core configuration for what each file controls.

Deep-linking into config

/rtp config <file> view opens the menu focused on a specific config file - a per-file deep link useful for admins editing settings in-game without leaving the game. See Commands for the full /rtp config syntax.

Styling the book

Book pages render on a parchment-yellow background. Yellow (&e, &6) and white (&f) text washes out against it - use dark colors for any text rendered into the book (for example &0 black, &1/&9 blue, &2/&a green, &4/&c red for destructive rows, &8 dark gray for hints). This applies only to the book menu; ordinary chat messages render against the chat background and are unaffected.

Permissions

Node Controls
rtp.menu Open and interact with the menu.
rtp.menu.admin See the admin panel instead of the player picker rows (implied by rtp.admin).
rtp.config.view The config-editor row and config browsing.

See the Permissions page for the full node list.

See also: Commands, Permissions, Messages.

Clone this wiki locally