# Guides

> The pages in Guides, part of Xi's Multiversion UI Lib docs.

URL: https://xichil.dev/docs/xis-mvui/v1/guides/

- [Build one mod for every loader](https://xichil.dev/docs/xis-mvui/v1/guides/multiversion-mod/index.md): 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](https://xichil.dev/docs/xis-mvui/v1/guides/registering/index.md): 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](https://xichil.dev/docs/xis-mvui/v1/guides/opening-menus/index.md): 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](https://xichil.dev/docs/xis-mvui/v1/guides/navigation/index.md): 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](https://xichil.dev/docs/xis-mvui/v1/guides/async-work/index.md): 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](https://xichil.dev/docs/xis-mvui/v1/guides/validation/index.md): 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](https://xichil.dev/docs/xis-mvui/v1/guides/translations/index.md): 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](https://xichil.dev/docs/xis-mvui/v1/guides/saving-config/index.md): 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](https://xichil.dev/docs/xis-mvui/v1/guides/game-options/index.md): 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](https://xichil.dev/docs/xis-mvui/v1/guides/keybinds/index.md): 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](https://xichil.dev/docs/xis-mvui/v1/guides/testing/index.md): 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.
