DialogForge logo

DialogForge

Configuration driven menus built on Paper's Dialog API. Write YAML in menus/, players get a real screen, not a chest GUI.

  • Paper 1.21.7 build 17+
  • Java 21
  • Stacked or panel layout
  • SQLite or MySQL
The shipped server guide in the stacked layout on a 1.21.7 server: a line of body text, a two column grid of ten category buttons and the close button below them.

Why this one

Three things most menu plugins do not do

01

A screen, not a chest

Every menu is Minecraft's native Dialog screen: a title, a readable content area, real buttons and real input fields. Nothing is drawn inside an inventory with item lore standing in for text.

A menu is one YAML file under menus/. Pages, buttons, inputs, permissions and actions are all config, so a new category is a new block in the file, not a rebuild.

See what a menu file looks like
A menu YAML file on the left with its id, label, icon, tooltip and content lines each pointing at the matching part of the rendered dialog screen on the right.
02

The panel layout is measured, not guessed

A dialog button cannot sit beside a paragraph, so the optional panel layout draws the sidebar and the content as one line of text per row. Minecraft centres that line by the exact pixel width of every character in it.

DialogForge ships the real width of every character in Minecraft's own font, read out of the client's own files, so a row lands exactly where it is supposed to instead of drifting sideways as the player changes category.

How the aligned panel is measured
One row of the aligned panel drawn as a single line holding two columns, the sidebar category and the content text, with the pixel width of each glyph labelled and summed to show how the row is centred.
03

Paper only, on purpose

The Dialog API this plugin is built on is Paper's own, and Spigot has no equivalent and will not get one. Rather than fake a screen for servers that cannot show one, DialogForge simply asks for Paper.

It is built against the oldest supported release, Paper 1.21.7 build 17, so it stays usable on everything from there up to the current line without reaching for API a 1.21.7 server does not have.

Requirements and version support
Server software
Paper only
Minimum version
1.21.7, build 17
Java
21
Client
1.21.6 or newer to see a dialog

Quick start

Running in about two minutes

The shipped menus are a working guide, not a blank slate.

  1. 1

    Drop in the jar

    One jar for Paper 1.21.7 build 17 and newer. There is nothing to configure before the first start.

  2. 2

    Start the server

    The first run writes config.yml, three language files and four example menus, every line commented.

  3. 3

    Open /guide

    The shipped server guide is a real menu you can read right away, and a template for your own.

  4. 4

    Edit menus/*.yml

    Save the file and the change appears on screen straight away, for anyone already looking at it.

Full installation guide

SQLite works with no setup at all. MySQL is there if you are running a network.

Everything is documented

Every config key, every menu key, every command and every permission has a page. If something is still unclear, ask in the Discord.

DialogForge is by zArrowTan. The Discord is the only support channel, there is no public issue tracker.