
Launchpad - разработка модов для NeoForge в стиле Fabric
Launchpad - инструмент для разработчиков модов Minecraft: собирайте моды под NeoForge по конвенциям Fabric, с метаданными из fabric.mod.json, фабриковскими entrypoints и Access Wideners. Быстрый порт без нативной переработки.
Launchpad - небольшой инструмент для разработчиков модов под Minecraft, который позволяет собирать моды для NeoForge, живя полностью в экосистеме Fabric. Вы пишете мод как обычный фабриковский проект с fabric.mod.json, а Launchpad берёт на себя всю грязную работу по загрузке этого кода на НеоФордже. Полноценный нативный порт при этом делать не нужно.
Зачем такой проект вообще существует? После раскола Forge сообщество мододелов оказалось между двух платформ. С одной стороны Fabric с его лёгким API, миксинами и json-метаданными. С другой - NeoForge, где свои mods.toml, AccessTransformer'ы и аннотационные точки входа. Поддерживать две кодовые базы дорого, особенно для небольшого мода. Launchpad закрывает именно эту боль: одна кодовая база, две платформы.
Проект родом из той же экосистемы, что и Sinytra Connector с Forgified Fabric API. Только Connector решает задачу со стороны игрока, позволяя запускать чужие Fabric-моды на Forge, а Launchpad работает со стороны автора: вы официально выпускаете сборку под NeoForge, но продолжаете разрабатывать её по правилам Фабрика. Если вы собираете модпак на НеоФордже и вам не хватает каких-то фабриковских модов - велика chance, что они появятся там именно благодаря этой связке.
Что умеет Launchpad
- Чтение метаданных из fabric.mod.json - название, версия, зависимости и описание мода подтягиваются из привычного файла Fabric, дублировать всё это в neoforge.mods.toml не придётся.
- Запуск точек входа - поддерживаются и стандартные entrypoints (main, client, server), и пользовательские. Ваши ModInitializer'ы отработают на NeoForge так, будто это Fabric.
- Трансформация доступа через Class Tweakers (Access Wideners) - фабриковский способ открыть приватные поля и методы игры вместо AccessTransformer'ов из мира Forge.
- Загрузка вложенных jar-зависимостей - аналог jar-in-jar из Fabric: библиотеки можно паковать прямо внутрь своего джарника, и загрузчик их подхватит.
Сверх этого авторы накинули несколько собственных расширений поверх стандарта Fabric. Они описаны в разделе Usage в репозитории проекта, там же лежит и вся инструкция по настройке, так что перед первой сборкой стоит туда заглянуть.
Когда Launchpad - то, что нужно
Инструмент лучше всего показывает себя на маленьких и средних модах для Fabric, которые и так почти совместимы с NeoForge и которым не хватает буквально последнего штриха для загрузки. Берите его, если:
- хотите порт на NeoForge, но времени на полноценный нативный перенос нет;
- мод требует минимальных правок или вообще их не требует (в первую очередь это касается модов на Mixin - сам фреймворк миксинов работает на обоих загрузчиках, поэтому такой код переносится почти бесплатно);
- вас не пугают лишние зависимости у пользователей: для запуска такого мода на НеоФордже понадобятся Forgified Fabric API и сам Launchpad.
Когда лучше сделать нативный порт
Честно скажем и про обратную сторону. Launchpad подходит не всем. Делайте нативный порт или берите MultiLoader template, если:
- планируете активно использовать API NeoForge (ивенты, capabilities, регистры и всё, чего в Fabric API просто нет);
- нужен полный контроль над метаданными и точками входа;
- не хотите тащить за собой дополнительные зависимости.
MultiLoader template, к слову, это шаблон проекта, где общая логика живёт в common-модуле, а платформоспецифичный код разнесён по Fabric- и NeoForge-частям. Для больших модов на долгую дистанцию это обычно разумнее, чем прослойка поверх другого загрузчика.
| Сценарий | Что выбрать |
|---|---|
| Мелкий или средний мод на миксинах, нужен быстрый порт | Launchpad + FFAPI |
| Мод глубоко использует Fabric API | Проверить покрытие FFAPI, иначе нативный порт |
| Нужны API NeoForge (ивенты, капабилити, регистры) | Нативный порт или MultiLoader |
| Один проект под обе платформы надолго | MultiLoader template |
Важный нюанс
Launchpad не творит магию с API. Если ваш мод дёргает Fabric API, на NeoForge эти вызовы обслуживает Forgified Fabric API, а он покрывает не все модули целиком. Перед портом пройдитесь по используемым модулям и убедитесь, что они есть в FFAPI, иначе получите краш уже на этапе запуска. И ещё один совет из практики: обязательно укажите на странице мода, что для NeoForge-версии нужны Launchpad и FFAPI. Иначе первые же игроки придут с репортами в духе "мод не запускается".
Лицензия
Launchpad распространяется под GNU GPL v3 с Classpath Exception v2.0. На практике это свободное использование, изучение кода и форки, а исключение classpath снимает главное ограничение GPL для моддинга: линковка с закрытым кодом (самим Майнкрафтом и сторонними модами) не заражает их копилефтом. Для инструментов такого рода это стандартная и вполне дружелюбная связка.
Если вы автор небольшого Fabric-мода и давно откладывали порт на NeoForge - скачать Launchpad стоит хотя бы ради эксперимента. Во многих случаях порт сведётся к добавлению пары строк в build script, и ваша аудитория на НеоФордже скажет спасибо.
Как поиграть с друзьями с модом Launchpad - разработка модов для NeoForge в стиле Fabric?
Мод Launchpad - разработка модов для NeoForge в стиле Fabric куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода Launchpad - разработка модов для NeoForge в стиле Fabric будет готов за пару минут - BungeeHost сделает всё за вас.
