KubeJS + Tinkers' Construct: кастомное литьё через скрипты
Когда стандартные рецепты литья перестают отвечать задумке сборки, на помощь приходит связка KubeJS и Tinkers' Construct. Это не отдельный мод в привычном смысле, а скорее инструмент для авторов модпаков: вы описываете поведение литейного стола и бассейна прямо в JavaScript-скриптах, а игра послушно подхватывает изменения. Никакой возни с jar-архивами, только текстовые файлы и знание нескольких методов API. Такой подход превращает статичную механику в живой конструктор, где каждая капля жидкости может обрести уникальную ценность.
Зачем скрещивать скрипты и литейное дело
Tinkers' Construct давно стал синонимом глубокой кастомизации инструментов, сплавов и многоступенчатого крафта. KubeJS, в свою очередь, даёт возможность перехватывать события, править рецепты и управлять игровой логикой на лету. Их тандем открывает перед владельцами серверов и составителями сборок три ключевых преимущества. Во-первых, можно добавлять или убирать рецепты литья под конкретную экономику — например, сделать слитки редкого металла доступными только через сложную цепочку форм. Во-вторых, разрешается связывать жидкости из сторонних модов с любыми предметами, не трогая исходники самих аддонов. В-третьих, появляется рычаг управления временем остывания: ускорьте его для ферм или замедлите, чтобы заставить игроков строить автоматизацию. Всё это работает без перезагрузки мира, если аккуратно прописать скрипты и следовать рекомендациям KubeJS по обновлению рецептов.
Ключевые возможности и поддерживаемые версии
Интеграция рассчитана на Forge-сборки и стабильно проявляет себя на версиях Minecraft 1.18.2, 1.19.2 и 1.20.1 — именно там обе модификации имеют наиболее зрелые редакции. Чтобы начать, достаточно установить Tinkers' Construct и KubeJS (для Forge), после чего в папке kubejs/server_scripts появятся скрипты, управляющие литьём. Никаких дополнительных загрузчиков не требуется — всё работает на стороне сервера, а клиент лишь отображает готовые рецепты в JEI или аналогах.
Основной арсенал скриптера сводится к двум событиям: event.recipes.tconstruct.casting_table и event.recipes.tconstruct.casting_basin. Первое отвечает за точечные отливки — слитки, мелкие детали, шуточные предметы. Второе заточено под объёмные задачи: блоки, крупные заготовки, массовое переливание. В обоих случаях вы указываете идентификатор жидкости, выходной предмет и, при необходимости, объём в миллибакетах. Если объём не задан, система сама подставит разумное значение — например, 90 мВ для слитковых сценариев.
Литейный стол: точная настройка
Вызов casting_table принимает объект с выходным результатом и ссылкой на жидкость. Простейший рецепт выглядит так: из одной жидкости получается конкретный предмет, а форма либо задаётся явно, либо остаётся пустой. Можно заставить воду или лаву участвовать в сюжетных крафтах, не перегружая интерфейс игрока. Дополнительно регулируется время остывания в тиках — для стола оно обычно короче, чем для бассейна, что логично отражает разницу в масштабе отливок.
Литейный бассейн: работа с объёмами
Бассейн ожидает больших затрат жидкости по умолчанию — часто 810 мВ для блока, но это значение легко переопределить. Синтаксис casting_basin почти идентичен столу, что упрощает запоминание шаблона. Здесь же удобно прописывать рецепты, где одна жидкость превращается в несколько предметов, или наоборот — несколько вёдер лавы уходят на массивную отливку. Время остывания для бассейна можно сделать длиннее, чтобы подчеркнуть «тяжесть» процесса и стимулировать строительство охлаждающих систем.
Формы, слоты и время остывания
API даёт гибкость в работе с формами: можно указать многоразовую форму, одноразовую (расходуемую), отказаться от формы вовсе или задействовать нестандартные слоты. Это открывает простор для квестовых механик — например, редкий предмет требует уникальную форму, которая исчезает после использования. Время остывания задаётся в тиках и становится прямым рычагом баланса: быстрые отливки делают фермы привлекательными, медленные — заставляют планировать энергию и автоматизацию. Начинать лучше с дефолтных значений, а к точной настройке переходить после тестов на сервере с живыми игроками.
Практический сценарий: от идеи до проверки
Представьте, что вы хотите оживить фермерский квест. Пусть морковь получается из странной жидкости на литейном столе с одноразовой формой, а угольный блок — из лавы в бассейне. Вы создаёте один скрипт, группируете оба вызова, проверяете, что жидкости действительно зарегистрированы в сборке. После перезагрузки рецептов через стандартную команду KubeJS заглядываете в JEI: цепочки должны отображаться корректно. Если что-то не сходится, чаще всего виноваты опечатки в идентификаторе жидкости, неверный тег формы или конфликт с другим скриптом, который перезаписывает те же рецепты позже по порядку загрузки.
Как установить и начать работу
Чтобы скачать KubeJS + Tinkers' Construct: кастомное литьё через скрипты для Minecraft, не нужно искать отдельный мод — достаточно добавить в сборку оба базовых проекта. Убедитесь, что у вас стоит Forge подходящей версии (1.18.2, 1.19.2 или 1.20.1), затем поместите Tinkers' Construct и KubeJS в папку mods. После первого запуска появится директория kubejs, где в server_scripts вы создадите файл с расширением .js. Именно там пропишутся события литья. Никаких дополнительных зависимостей не требуется — связка работает «из коробки». Если вы пользуетесь лаунчером с удобным менеджером модов, процесс сводится к паре кликов, а профиль легко перенести на сервер.
Итог: гибкость без компромиссов
KubeJS + Tinkers' Construct: кастомное литьё через скрипты — это не магическая кнопка, а прозрачный инструмент для тех, кто хочет сохранить дух мода про инструменты и сплавы, но при этом получить полный контроль над рецептами на уровне текста и событий. Начните с пары простых отливок, проверьте объёмы и формы, затем расширяйте экономику и связку с другими модами. Так прогрессия останется честной, а обновления версий не застанут врасплох — ведь вся логика лежит в скриптах, которые легко подправить под новую реальность сборки.