Repository navigation
Dialog API and Older Clients
Players on Minecraft 1.21.5 or older cannot use UltimateDonutSMP V2 menus correctly. This is a Minecraft client limitation, not a plugin bug, and it cannot be patched in UltimateDonutSMP V2.
Require Java clients 1.21.6 or newer. Block 1.21.5 and below on the proxy or with ViaVersion / ViaBackwards. Do not let those clients onto a live network.
Join on 1.21.5 or lower (usually through ViaVersion or ViaBackwards) and dialog screens
render as a broken, unusable layout. Commands that open those screens — /menu, /ah,
/homes, /pay, /settings, /stats, /friends, /rtp queue, and similar — do not
present a usable UI. Some chest-based menus still exist for a few flows, but dialog-first
features (Auction House included) will not work for that player.
That is the same result any other plugin gets when it uses Mojang's Dialog API.
Dialogs are a vanilla Minecraft client feature. Mojang added the Dialog API in 1.21.6. The server sends a dialog packet; the client draws the screen. A 1.21.5 (or older) client has no renderer for that packet, so the layout is garbage.
UltimateDonutSMP V2 cannot:
- Repair the old client's missing UI
- Detect each player's protocol and swap that player onto chest menus
- Ship a "DonutSMP-style" dual UI that uses dialogs on 1.21.6+ and chests on older clients
DialogSupport only checks whether this server exposes Paper's dialog classes. On
Spigot, or on Paper older than 1.21.6, every command falls back to the chest menus in
menus.yml. On a current Paper / Purpur / Pufferfish / Folia build (the versions this
plugin actually supports: 26.1.2–26.2), dialogs are on for everyone. The plugin does
not look at ViaVersion protocol versions.
Turning ENABLED: false in dialog.yml forces chest menus for the
whole server. That is a global switch, not a per-client fallback.
- Tell players the Java client must be 1.21.6 or newer.
- On Velocity, BungeeCord, or ViaVersion, block protocol versions below 1.21.6. That is the supported way to keep 1.21.5-and-older clients off the network.
- Do not rely on ViaBackwards as a compatibility layer for this plugin's menus.
Layout and copy for the dialogs themselves live in dialog.yml and
DIALOG in languages/<locale>.yml.
Minecraft Bedrock Edition does not implement Mojang's Java Dialog API. Geyser translates Java packets to Bedrock, but it cannot turn a Java dialog into a working Bedrock UI. That is expected: it is the same class of limitation as an old Java client on ViaBackwards, not a UltimateDonutSMP V2 bug.
Any flow that opens a Java dialog on Paper 26.x will fail or look broken on Bedrock. That includes most of the DonutSMP-style hub, not only one command:
| Area | Examples | On Bedrock |
|---|---|---|
| Hub / navigation |
/menu, /settings, /stats, /friends, leaderboards |
Dialog — not usable |
| Economy UI |
/pay, /ah (dialog browser), /worth choose-item |
Dialog — not usable |
| Teleport / social |
/homes (dialog path), /rtp queue, teleport menus |
Dialog — not usable |
Tell Bedrock players to use Java Edition 1.21.6+ for the full experience, or accept that dialog-first features stay Java-only.
Quick Buy is not entirely dialog-based. /shop opens a chest menu (the pinned-item grid)
that Geyser can display. Pinning a new item is different:
- Java — empty slot opens the Choose Item dialog (one button per material).
-
Bedrock with Floodgate — the plugin sends a paged Floodgate form with search
(
QUICK-BUY.BEDROCKin shop.yml). Geyser alone is not enough; install Floodgate on the backend and link it to Geyser. - Bedrock without Floodgate — the plugin falls back to the chest item catalogue (45 materials per page) instead of the dialog. Search on that screen, and Search on the main Quick Buy grid, asks for the item name in chat.
If someone reports "the shop does not work on Bedrock," check:
- Is only Geyser installed? Install Floodgate for Quick Buy pinning and for Orders / Homes Bedrock forms (see Placeholders & Integrations).
- Are they using Search? With Floodgate, search is a form. Without it, they type the item
name in chat (
cancelgoes back). It does not open a Java dialog or a sign. Either of those can leave Bedrock unable to open the shop until the player rejoins. Right-click still clears an active search on the chest buttons. - Are they expecting
/menu,/ah, or/paydialogs? Those remain Java-only.
- Run Geyser + Floodgate together if Bedrock players should use Quick Buy pinning, Orders prompts, or Homes forms.
- Keep
QUICK-BUY.BEDROCK.ENABLED: trueinshop.yml(default) when Floodgate is present. - Set player expectations: Bedrock can use chest-based Quick Buy and configured Floodgate flows; the rest of the Dialog API network UI requires a Java 1.21.6+ client.
UltimateDonutSMP V2 1.0 · Paper / Purpur / Pufferfish / Spigot / Folia · Minecraft 26.1.2–26.2 · Java clients 1.21.6+
- Economy & Marketplaces
- Crates & Spawners
- Duels & Instanced FFA
- Ranked PvP Arena
- Cuboids & Portals
- Staff & Security
Core
Menus & display
Economy
Progression
PvP
Staff