Bedrock (Floodgate)
Running a cross-platform server that accepts Bedrock Edition players through Geyser? uxmEssentials detects those players and, instead of showing them a chest GUI, renders native Cumulus forms — the tidy list-and-button dialogs Bedrock players expect. It all keys off Floodgate, and there is nothing to configure beyond installing the Bedrock stack itself.
What Floodgate Is¶
- Geyser lets Bedrock clients connect to a Java server.
- Floodgate is Geyser's companion that identifies which connected players are Bedrock, so plugins can treat them appropriately.
uxmEssentials uses Floodgate purely for that detection, plus the Cumulus form library Floodgate ships to build native Bedrock UIs.
What uxmEssentials Uses It For¶
When a Bedrock player opens a menu, the menu engine auto-redirects them away from the chest inventory to a native Cumulus form:
- A standard menu degrades automatically into a SimpleForm (a scrollable list of buttons).
- A menu that declares an explicit
bedrock {}block renders as a richer CustomForm (with inputs, toggles, sliders, ...).
Java players on the same server keep getting the normal chest GUI. Both audiences are served from the same menu definition — you don't maintain two versions.
Forcing the Chest Path¶
Some menus rely on real inventory slots (item grids, drag-and-drop). For those, set
chest-only = true on the menu so every player — Bedrock included — gets the
chest inventory instead of a form.
When Floodgate Is Absent¶
On a Java-only server, the Bedrock detector loads none of the org.geysermc
classes — the code path is never touched. Every player is treated as a chest-GUI
viewer and the plugin behaves exactly as it would on any vanilla Paper install.
| Situation | Behavior |
|---|---|
| Floodgate installed, Bedrock player | Native Cumulus form (SimpleForm or CustomForm). |
| Floodgate installed, Java player | Normal chest GUI. |
| No Floodgate (Java-only) | Everyone gets the chest GUI; nothing changes. |
Setup Checklist¶
- Install Geyser and Floodgate the way you normally would for Bedrock support — that's the whole setup.
- No uxmEssentials config is required; form rendering activates on its own.
- Add
chest-only = trueto any menu that must use real inventory slots.
Next Steps¶
- 📱 Bedrock Forms — SimpleForm degradation and the
bedrock {}block - 🎛️ The Custom Menu Engine — how menus are defined