Guides
The pages in Guides, part of Xi's Multiversion UI Lib docs.
- Build one mod for every loader: Structure a mod so one shared codebase ships as a jar per loader family, for Fabric, Quilt, Forge and NeoForge from Minecraft 1.7.10 to 26.3.
- Register your menu: Where and when to call MultiversionUi.register on each loader, what the arguments must be, and how to keep it safe on dedicated servers.
- Open your menu: Every way a player reaches a registered menu - the Options screen button, the Mod menus list, the mod list's Config button and your own code.
- Several screens and dialogs: Open sub-screens, go back, close the whole menu and ask yes-or-no questions with ConfirmDialog before destructive actions.
- Slow work: files and network: Run file IO and network requests off the main thread with runAsync, show progress and report the result in a StatusLine.
- Validate what players type: Check text and number input with validators, show errors under the field, and enable a Save button only while every field is valid.
- Translate your menu: Write every label as Text with an English fallback, ship lang files for each Minecraft era, and reuse the ready-made UiTexts.
- Save and load settings: Keep settings in your own class, load them at startup, save them from Done off the main thread, and offer Cancel with a draft copy.
- Read and write options.txt: Use GameBridge to flush, reload and apply the game's options.txt from a menu, and report the options that need a restart.
- Key bindings: Let players pick a key with the Keybind widget, store it as text with Key.name, and compare it with the game's input on old and new versions.
- Test menus without Minecraft: Drive your menus in plain JUnit tests with FakeHost from the API's test fixtures - click, type, slide and read the rendered screen as text.