
Moxlib - библиотека для разработки датапаков
Moxlib - библиотечный датапак для Minecraft с готовыми функциями, тегами и предикатами: работа с NBT-массивами, строками, математикой и текстовыми интерфейсами. Скачать Moxlib для Minecraft 1.19-1.21.
Moxlib - это библиотека для разработчиков датапаков от автора Moxvallix: большой набор готовых функций, тегов и предикатов, который берет на себя всю рутину при создании датапаков для Майнкрафт. Если вы хоть раз пытались на чистых mcfunction-файлах реализовать обход массива NBT, манипуляции со строками или математику посложнее стандартных операций скорборда, то знаете, насколько это боль. Командный язык Minecraft сам по себе очень ограничен, и Moxlib как раз закрывает эти дыры, превращая разработку из страдания в нормальный рабочий процесс.
Сразу важный момент: это инструмент для создателей контента, а не для обычных игроков. Сам по себе датапак Moxlib ничего в игру не добавляет - ни мобов, ни блоков, ни механик. Его ставят как зависимость, чтобы другие датапаки работали через его API. Скачать Moxlib стоит либо если вы пишете свои датапаки, либо если какой-то проект прямо требует его в списке зависимостей.
Философия проекта: производительность прежде всего
Главная фишка библиотеки - она почти не грузит игру. Автор сознательно свел к минимуму всё, что выполняется в tick-функции: подавляющее большинство функций запускается только тогда, когда их вызывают. Никаких фоновых проверок каждый игровой тик.
Второй принцип - мгновенное выполнение. Функции спроектированы так, чтобы отрабатывать за один тик, без schedule-цепочек и таймеров. Для серверов это критично: многие датапаки просаживают TPS именно из-за постоянных отложенных задач и циклических проверок, а тут такой проблемы просто нет по дизайну.
Как устроен API
API у Moxlib предсказуемый и построен вокруг data-driven подхода. Основные правила, которые нужно знать перед работой:
- Всё, что лежит за пределами папки
moxlib:api, считается приватным и не поддерживается. Лезть туда в своих проектах не стоит. - Функции, принимающие данные через storage, читают и пишут по тому же пути, по которому вы их вызываете. Например,
/function moxlib:api/helpers/block/getзапишет результат в/data get storage moxlib:api/helpers/block/get. Удобно: путь вызова и путь данных всегда совпадают. - Исключение - модули
testиtui, у них своя семантика под конкретные задачи. - Основной входной аргумент обычно называется
target- это данные, которые функция обрабатывает. Результат, если он есть, пишется вoutput. Некоторые функции дополнительно проставляют флагsuccess, но не все. - Часть функций и модулей помечена как экспериментальная. Для них нужен Moxlib Exp - без него они не заведутся.
Модули библиотеки
Весь функционал разбит на тематические модули. Вот что есть внутри:
| Модуль | Что делает |
|---|---|
| Helpers | Мелкие, но полезные функции-помощники, слишком специфичные для отдельного модуля |
| Data | Работа с массивами NBT-данных - обход, обработка, манипуляции |
| Test | Тестирование других функций: пока умеет проверять, что функция вернула корректное значение |
| TUI | Создание текстовых интерфейсов на основе данных - кликабельные меню и панели в чате |
| Math | Математические функции, которых не хватает в ванильном скорборде |
| Player | Доступ к полезной информации об игроке |
| String | Манипуляции со строками - то, чего в ванили практически нет |
| Dimension | Отдельное измерение для хранения и доступа к блокам (требует Moxlib Exp) |
Пару слов о том, почему это ценно. Модуль String решает одну из самых старых болей датапакеров - в Minecraft нет нативных инструментов для работы со строками, и любая конкатенация или поиск подстроки превращается в костыли. Модуль Dimension дает служебное измерение с известными блоками, а это классическая основа для продвинутых трюков с NBT предметов и инвентарей. А TUI позволяет быстро собирать интерактивные меню через tellraw-компоненты, не выписывая каждый JSON вручную.
Версии и лицензия
Последний релиз - 0.5.13, вышел 19 июня 2024 года и рассчитан на Minecraft Java 1.21. В этом обновлении автор поднял требование версии и заодно починил работу ASCII-таблицы лута. До этого были сборки под 1.19.x и 1.20.x, так что если ваш проект живет на более старой версии игры, подходящий релиз тоже найдется. Учитывайте только, что новых версий с июня 2024 не выходило - для самых свежих обновлений Майнкрафта совместимость стоит проверять самостоятельно.
Библиотека распространяется под лицензией GNU LGPL. На практике это значит: вы можете свободно использовать Moxlib в своих датапаках под любой лицензией, но если изменяете саму библиотеку, эти изменения должны публиковаться под LGPL. Для типичного использования как зависимости никаких ограничений нет.
Советы из практики
- Так как это датапак, на сервер он ставится элементарно: кидаете в папку
datapacksвашего мира, и игрокам ничего скачивать не нужно - всё работает на стороне сервера. - Не используйте приватные функции вне
moxlib:api, даже если они делают ровно то, что вам надо. При обновлении библиотеки они могут измениться или пропасть, и ваш датапак молча сломается. - Если планируете модуль Dimension - сразу закладывайте в зависимости Moxlib Exp, иначе функции просто не отработают.
- Модуль Test полезен на этапе разработки: пишете свою функцию, прогоняете через тесты и проверяете возвращаемые значения. На релизной сборке его можно не тащить.
Если вы собираетесь писать свой датапак для Minecraft и не хотите изобретать велосипеды для базовых операций - скачать датапак Moxlib будет правильным первым шагом. Это аккуратная, быстрая и продуманная основа, которая экономит десятки часов разработки.
Как запустить датапак Moxlib - библиотека для разработки датапаков на сервере?
Датапак Moxlib - библиотека для разработки датапаков удобнее всего раскрывается на общем сервере: установили один раз - и вся компания играет с новыми механиками. Создать сервер Майнкрафт с датапаком Moxlib - библиотека для разработки датапаков можно за пару минут вместе с BungeeHost.
