DialogForge logoDialogForge

DialogForge

Configuration driven menus for Paper, built on Minecraft's native Dialog system instead of chest inventories.

DialogForge banner showing the plugin name, a dialog window with its sidebar marker, and badges for Paper 1.21.7 build 17 and newer, Java 21, and stacked or panel layout.

A menu here is a real screen with a title, a readable content area, buttons and input fields, because it is built on Paper's Dialog API rather than drawn inside a chest. Server owners write YAML in menus/ and players get a screen.

Everything a player sees comes out of that YAML. There is no material, no sentence and no layout baked into the jar.

New here? Start with Installation. It covers the requirements, the install steps and what the first run writes to disk. If you do not have the jar yet, Download is the page you want first.

What it looks like

The shipped guide.yml and settings.yml in the default stacked layout, on a plain 1.21.7 server with no resource pack.

The shipped server guide in the stacked layout: a line of body text, then a two column grid of ten category buttons, Welcome, Getting Started, Island, Team, Economy, Votes, Crates, Quests, Ranks and Discord, with the close button below them.The Privacy page of the shipped settings menu: a dropdown reading Who can visit your island, a ticked toggle reading Let others see your world, the four category buttons, a Save button and a Close button.

Quick facts

Server softwarePaper only
Minimum version1.21.7, build 17
Client1.21.6 or newer, to see a dialog at all
Java21
StorageSQLite or MySQL
LayoutStacked, works everywhere, or panel, an aligned two column sidebar
AuthorzArrowTan

Spigot, Bukkit and Purpur have no Dialog API and will not get one, so they are not supported. See Installation for the full detail.

Getting started

Features

Configuration

Reference and help

The panel layout is measured, not guessed

A dialog button always sits in a grid below the body, so a sidebar next to a paragraph has to be drawn as text rather than as buttons. Text drawn that way only lines up if the plugin knows, to the pixel, how wide every character on the row is.

DialogForge ships the real width of every character in Minecraft's own font, read out of the client's own files by a tool that ran once against an installed client. What is left to guess at is a character your own resource pack draws, and the console names those on startup so you know which ones are worth measuring yourself.

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.

Reload without kicking anyone out

Editing a menu file, config.yml or a language file and saving it is enough. The file watcher reloads the plugin on its own, and anyone with a menu open at the time is shown the same page again once the files have been read, so they stay where they were instead of being thrown out of the screen.

On this page