
📜 DialogForge
Write YAML in menus/, players get a real screen, not a chest GUI.
By zArrowTan, part of Arrow Plugins.
Write YAML in menus/, players get a real screen, not a chest GUI.
By zArrowTan, part of Arrow Plugins.
📋 Overview
Every menu on your server is a chest. Nine slots across, an item for every option, and a paragraph of text squeezed into item lore. DialogForge uses Minecraft's own Dialog system instead: a real screen with a title, a content area that reads like a page, buttons that look like buttons, and input fields that take typing.
Write a YAML file, get a menu. Four working ones are written out on the first start, so
/guide, /rules, /settings and /staffguide all work before you have changed anything.
The shipped rules menu

An acknowledgement the player has to click before it closes
Spoiler: More of the shipped menus

The appeals page of the rules menu

The settings menu, chat page

The settings menu, notifications page

The settings menu, privacy page
🧩 Requirements
No plugin dependencies. Drop the jar in and go.
- Paper 1.21.7 build 17 or newer, up to the current 26.x
- Java 21
- Players need a 1.21.6 or newer client
Paper only. Spigot, Bukkit and Purpur have no Dialog API, so they cannot run this. That is a limit of the server software rather than the plugin.
📂 Menus, Pages and Categories
Every file in the
menus folder is a menu, subfolders included, and a menu's id is its path. Copy one of the shipped files, change the command and the pages, and you have your own.
The shipped guide menu

The same menu further down, with its navigation at the bottom

A page inside it, opened from the list
- Pages can sit under other pages. Give one a parent and it is drawn indented beneath that category, and only while that branch is the one being read, so a menu with fifty pages still shows a list of ten
- Every branch open at once is one setting away if you would rather show the whole tree
- A page can carry its own title, so the top of the screen changes as a player moves between categories
🎨 Two Layouts
Stacked is the default and needs no setup at all: content on top, categories as buttons in a grid below, close button in the footer.
Panel draws the categories and the content as text rather than buttons, which is the only way to get them side by side. On its own it lists the categories above the content and needs nothing installed. Turn alignment on and the categories become a left hand column with the text beside them.
Both modes read exactly the same menu file, so switching between them changes nothing you have written.
The aligned column is measured from the whole menu rather than what is on screen, every subcategory counted, so opening a branch never shifts it. It needs a small font that DialogForge writes out for you on first start, either as a zip to serve yourself or merged straight into an ItemsAdder pack you already send.
🖼 Backgrounds
A menu can be drawn on a picture. Drop a PNG into the backgrounds folder, declare it, and name it from a menu or from a single page, so one category can carry its own art.
Code
backgrounds:
guide:
image: 'guide.png'
width: 400
offset: -20
- Any size of image works. DialogForge resizes it and cuts it up for you
- Set the width and the height follows your image's shape, set both and it stretches, set neither and it is drawn at a sensible default
- The offset moves it up or down, so a negative number pulls the art up over the title
- A dialog scrolls, so a background can repeat down the page as far as the text goes, by a number you set or worked out for you
✨ Icons in Your Text
Drop a PNG into the icons folder, declare it, and write its name anywhere a menu file takes text: a page icon, a label, a line of content, a button.
Code
icons:
island:
image: 'island.png'
width: 8
height: 8
offset: 1
Size it however you like, or leave it and it is drawn to match the height of the text beside it. Name an icon you have not declared and the text stays exactly as you typed it, so a typo reads as itself rather than breaking the line.
🔐 Permissions Per Menu
Each menu, and each page inside it, chooses how much permission it asks for:
| Mode | What it means |
open | No node at all. Anyone who can run the command opens it and sees every category |
optional | Everyone has the node, so the menu is open until you deny it |
required | Operators only, so the menu is shut until you grant it |
The shipped guide, rules and settings menus are open, so they work on a server with no permission plugin at all. The staff one is locked.

A staff tools page, which only appears for players who have its permission
⚔️ Command Conflicts, Handled
EssentialsX already owns
/rules, and the first plugin to ask for a command keeps it. DialogForge says so plainly in the console and answers on its own prefixed command instead, rather than failing quietly.One line in that menu file takes the command over if you would rather it won, and the command is handed straight back when DialogForge is reloaded or disabled. You can set that for every menu at once too.
⌨️ Commands
/dialogforge open <menu> [page] [player]open a menu, optionally for someone else (alias: /df)/dialogforge listlist the loaded menus and their commands/dialogforge reloadreload config, menus and languages/dialogforge versionversion and platform information
Your own menus answer to whatever commands their files declare.
📈 Metrics
This plugin sends anonymous usage stats to ArrowStats, nothing that identifies you or your players. You can opt out anytime in
plugins/ArrowStats/config.yml.💬 Support & Docs
Full setup and configuration guides are in the documentation. Have questions, found a bug, or want to suggest a feature? Join the Discord for updates, help, and support.
Latest Reviews
No reviews yet. Be the first to write one!
DialogForge | Menus, Not Chest GUIs
v1.1.1
zArrowTan
Real dialog screens from YAML, with titles, readable text, buttons and background images.
$6.29
Instant download
·
Updates included
·
Lifetime licence
$0.70 cheaper than on BuiltByBit
$6.99 there, $6.29 here every day.
Digital product, delivered instantly, no refunds · Terms
No versions available
3
Views
0
Purchases
N/A
Avg Rating
Sep 17, 2026
Release Date
Sep 17, 2026
Last Update Date
plugin
spigot plugin
gui
icons
itemsadder
essentialsx
purpur
paper
Share and earn
How referrals work
- Your link is remembered for 30 days.
- 10% of each sale, paid to you as points.
- Yours to spend 30 days later.
- Ask your buyer to turn a VPN off, or the sale will not count.
Earn on every sale you send here
10%
189 pts / sale
