Bedrock UI Forms & Cumulus Integration
The Rule of Bedrock Text Formatting
Section titled “The Rule of Bedrock Text Formatting”Minecraft Bedrock UI (Geyser/Cumulus forms) does NOT support Adventure MiniMessage tags (such as <gradient:#ff0000:#00ff00>, <bold>, or <#00d2ff>).
If raw MiniMessage strings are passed into Cumulus buttons or titles, Bedrock clients display ugly raw XML syntax:
<#00d2ff><bold>BUY RANK</bold></#00d2ff>
The Standard Solution: CC.toBedrock(...)
Section titled “The Standard Solution: CC.toBedrock(...)”Always wrap any dynamic or translated text using CC.toBedrock(...) before passing it to Cumulus Form builders:
// ❌ INCORRECT (Displays raw mini-message tags on Bedrock):SimpleForm.builder() .title(miniMessage.deserialize(configTitle)) .button(miniMessage.deserialize(buttonText)) .build();
// ✅ CORRECT:String cleanTitle = CC.toBedrock(configTitle);String cleanButton = CC.toBedrock(buttonText);
SimpleForm.builder() .title(cleanTitle) .button(cleanButton) .build();Bedrock Form Types
Section titled “Bedrock Form Types”SimpleForm: Used for menus, rank pickers, warp selectors, and cosmetic selectors.CustomForm: Used for settings, sliders, toggle switches, and input text fields.ModalForm: 2-button Yes/No confirmations (e.g. confirming purchase with BMC coins).