Strata UI
Мод-разработка в Minecraft давно перестала быть уделом одиночек, которые правят один класс и молятся, чтобы игра не упала на старте. Сегодня моды растут до полноценных приложений с меню, настройками, инвентарями и диалогами. И вот тут начинается боль: стандартные экраны Minecraft плохо масштабируются, верстка разъезжается, а тестировать интерфейс приходится, каждый раз запуская клиент. Strata UI решает именно эту проблему — она приносит в мир Fabric-модов декларативный подход к построению интерфейсов.
Что такое Strata UI
Strata UI — это декларативная UI-библиотека для модов Minecraft на загрузчике Fabric. Вместо того чтобы вручную расставлять кнопки и высчитывать координаты, вы описываете экран как дерево компонентов: колонки, кнопки, текст, списки, изображения. Библиотека сама измеряет и размещает дочерние элементы через систему layout-ов, а вы управляете состоянием приложения в собственном коде.
Ключевая идея — разделение на две части. Есть API, против которого компилируется ваш мод, и есть отдельно устанавливаемый runtime, который связывает определения экранов с конкретной версией клиента и её ресурсами. Это значит, что один и тот же код интерфейса может работать на разных версиях Minecraft — достаточно подключить подходящий runtime.
Компоненты и модификаторы
В основе лежит набор готовых компонентов. Вы комбинируете текст, поля ввода, прокручиваемые списки, изображения и привязки к инвентарю Minecraft в полноценные экраны приложения. Размеры, внешний вид, фокус и поведение при вводе настраиваются через композируемые модификаторы — маленькие строительные блоки, которые навешиваются на элемент цепочкой.
- Layout-ы, которые сами измеряют и размещают детей.
- Готовые компоненты: текст, кнопки, поля ввода, списки, изображения.
- Привязки к инвентарю Minecraft для интерактивных экранов.
- Модификаторы размера, фона меню, отступов и обработки активации.
- Возможность писать собственные компоненты и расширять публичные контракты Element и Node.
Как установить Strata UI для Minecraft
Установка не сводится к перекидыванию одного jar-файла в папку mods, потому что Strata UI — это библиотека для разработчиков. Если вы автор мода, порядок такой: сначала компилируете обычный исходник мода только против API, а затем устанавливаете runtime, соответствующий активной версии Minecraft, вместе с Fabric Language Kotlin.
В файле сборки это выглядит как подключение зависимости strata-api для компиляции и двух runtime-зависимостей: самого Strata runtime под нужную версию Minecraft и fabric-language-kotlin совместимой версии. Кроме того, в fabric.mod.json вашего мода нужно объявить strata как обязательную зависимость — иначе игра не поймёт, что без библиотеки мод работать не будет.
Если вы просто хотите посмотреть, как это работает, и не хотите возиться с Gradle, удобнее поставить всё через лаунчер foxygame.net: в его каталоге дополнений Strata UI для Minecraft устанавливается в один клик, а версии runtime подбираются автоматически под ваш клиент. Это экономит время тем, кто тестирует чужие сборки и не хочет вручную сверять артефакты.
Устанавливать нужно ровно один runtime, совпадающий с версией клиента. Актуальные имена артефактов и требования к Java смотрите в разделе совместимости Minecraft.
Поддерживаемые версии и загрузчик
Strata UI работает на Fabric и охватывает широкий диапазон версий Minecraft: 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, а также 26.1 и 26.2. Такой список закрывает практически все актуальные сборки, на которых сегодня играют и разрабатывают.
Тестирование без запуска игры
Одна из самых сильных сторон Strata UI — возможность переиспользовать определения экранов в headless-тестах. Вы описываете интерфейс один раз и прогоняете его в тестах без запуска Minecraft, проверяя поведение UI на уровне логики. Это радикально ускоряет разработку: не нужно ждать загрузки клиента, чтобы понять, что кнопка не нажимается или список не скроллится.
Пример экрана подтверждения
Типовой сценарий — экран подтверждения действия. Вы создаёте ScreenDefinition с заголовком, внутри размещаете колонку с модификаторами размера, фона меню и отступов, задаёте выравнивание по центру и расстояние между элементами. Внутри колонки — текст вопроса и кнопка «Yes», на которую навешен модификатор активации с вашим колбэком. Вызов open() открывает экран в потоке владельца установленного runtime.
Такой код компилируется против одного только strata-api, что подчёркивает чистоту разделения: определения экранов не знают о деталях клиента, а runtime берёт на себя всю работу по отрисовке.
Документация и исходники
Для разработчиков доступны справочник Dokka API, руководства для читателей на GitHub, каталог компонентов с проверенными изображениями, репозиторий исходного кода и трекер задач. Отдельно стоит упомянуть публичный AI-навык для авторинга: он помогает быстрее разобраться с API и собрать первый экран.
Любопытный факт: генеративный ИИ существенно помог в реализации, ревью, тестах, документации и текстах релизных страниц, но дизайн задавал мейнтейнер, а артефакты релиза проверяются через публичный набор тестов. Такой подход делает библиотеку предсказуемой и стабильной.
Итог
Strata UI — это шаг вперёд для тех, кто устал от ручной верстки интерфейсов в Minecraft. Декларативные компоненты, модификаторы, headless-тесты и поддержка десятков версий на Fabric делают её отличным выбором для серьёзных модов. Если вы разрабатываете на Fabric и хотите писать UI как код, а не как набор координат, стоит скачать Strata UI и попробовать собрать первый экран.