Перейти к основному содержанию
Скидка 50% все планы, ограниченное время. Начиная от $2.48/mo
14 min left
Игры и медиа

Пять практичных способов использовать ChatGPT для разработки модпаков Minecraft

B Автор: Bill 14 мин чтения
AI chat window returning a diagnosis next to a Minecraft crash log and KubeJS recipe script

Вы вставляете отчёт о краше в ChatGPT, и он уверенно называет мод, которого вообще нет в вашем паке. Вы просите рецепт KubeJS и получаете event.recipes.minecraft.shaped(...) — устаревший синтаксис, не соответствующий актуальным примерам рецептов KubeJS. Вы просите блок FTB Quests, а получаете запятые в стиле JSON, которые могут сломать многострочный формат FTB SNBT, используемый в файлах квестов эпохи 1.21.1.

Инструмент не сломан. Сломан промпт. ИИ-модели часто скатываются к старым примерам моддинга Minecraft, а это рискованно для актуальных файлов KubeJS и FTB Quests. Дайте модели точную версию игры, сборку загрузчика, целевой формат файла и рабочий пример из вашего собственного кода, и результат превратится из «уверенно неверного» в «в основном верный, остальное проверьте».

В этом вся суть: эти промпты работают в том ассистенте, за который вы уже платите (ChatGPT, Claude, Copilot), без регистрации в отдельном инструменте для крашей и без лишней подписки. И они предполагают, что вы умеете читать вывод. Сгенерированный ИИ KubeJS — это черновой ускоритель для того, кто знает KubeJS; если вы не способны заметить выдуманный ID предмета, такой KubeJS вас укусит. Ниже пять промптов под конкретные задачи и с учётом версии, каждый с реалистичным примером ответа и заметкой о том, где он ошибается.

Кратко (TL;DR)

Лучшие промпты ChatGPT для разработки модпаков Minecraft каждый раз дают три вещи: точную версию Minecraft, точный мод-загрузчик и его версию, а также рабочий пример из вашего собственного кода. С таким контекстом ИИ выдаёт более полезные черновики для разбора крашей, рецептов KubeJS, SNBT для FTB Quests, списков модов и сообщений коммитов. Но каждый ID предмета, вызов API и шестнадцатеричный ID квеста вы проверяете сами. ИИ ускоряет умелого моддера, но не пишет пак за него.

Чего эти промпты не сделают

Определитесь с ожиданиями, прежде чем что-то копировать:

  • Они не соберут модпак за вас. Каждый промпт создаёт один артефакт (рецепт, блок квеста, диагноз), который вы вставляете в пак, который уже проектируете.
  • Они не научат вас KubeJS или SNBT. Если синтаксис ниже кажется вам незнакомым, вы не заметите типичных сбоев. Сначала освойте формат, а потом используйте ИИ для скорости.
  • Они не заменят настоящий тестовый сервер. ИИ рассуждает о стеке вызовов, но не может подтвердить, что пак действительно запускается со 150 загруженными модами.
  • Они не гарантируют корректный результат. Считайте всё, что возвращает ИИ, черновиком для проверки, а не готовым ответом.

Почему ИИ нужен правильный контекст, прежде чем он что-то напишет

Minecraft version, loader build, and known-good code example supplying context to an AI prompt

Вот в чём разница между рабочим промптом и общим «сделай мне рецепт для Minecraft»: контекст. Уберите версию и загрузчик — и модель может выдать старый синтаксис KubeJS для вашего пака 1.21.1 на NeoForge, придумать несуществующие ID предметов или отформатировать FTB SNBT как обычный JSON. Скрипт либо ничего не сделает, либо упадёт с ошибкой, закопанной в лог, который вам всё равно придётся читать.

Поэтому каждый промпт в этой статье несёт один и тот же трёхчастный контекст, который вы заполняете из своего пака:

  1. Точная версия Minecraft: 1.20.1, 1.21.1 или та, на которой вы реально играете.
  2. Точный мод-загрузчик и версия: Forge, NeoForge, Fabric или Quilt плюс номер сборки.
  3. Рабочий пример из вашего собственного кода, везде, где можете его дать. Один настоящий рецепт из вашего server_scripts/, один валидный блок квеста, одно прежнее сообщение коммита. Это самый мощный рычаг качества: модель воспроизводит стиль и API, которые вы ей дали, куда надёжнее, чем те, что она угадывает.

Совет профессионала: Строка с версией — не декоративная мелочь. KubeJS 6.x для Minecraft 1.20.1 и KubeJS 7.2.x для Minecraft 1.21.1 — это разные цели, и точная установленная сборка тоже имеет значение. Промпт без точных версий игры, загрузчика и KubeJS просто просит модель угадать.

Промпт: разбор краш-логов

Minecraft crash log moving through suspect ranking and controlled mod testing

Этот промпт превращает стену стектрейса в ранжированный список подозреваемых модов и следующий шаг, а это самый быстрый способ обойтись без слепого двоичного поиска.

You are helping me diagnose a Minecraft crash. Here is the context:
- Minecraft version: 1.21.1
- Mod loader + version: NeoForge [paste your exact build]
- What triggered it: crash on world load, ~150 mods
- (If it looks like a missing-dependency error, I'll paste the mod list too)

Here is the full crash report (or the first 100 lines plus every Caused by: block):
[paste the crash-report text or the top of latest.log]

Tell me:
1. The most likely cause, in one sentence.
2. A ranked list of the 2-3 mods most likely involved and why.
3. The single next step you'd take to confirm which one it is.
Keep it short. Don't guess at mods that aren't in the trace.

Реалистичный ответ выглядит так:

Вероятная причина: конфликт mixin при загрузке мира. Возможно, два мода внедряются в один и тот же класс. Подозреваемые: (1) кадр org.spongepowered.asm.mixin.transformer указывает на mixin, который не применяется; первый подозреваемый — мод, которому принадлежит целевой класс. (2) Второй мод, затрагивающий рендеринг сущностей, виден кадром выше. (3) Менее вероятно, конфиг-мод, загруженный прямо перед сбоем. Следующий шаг: уберите обоих подозреваемых, запуститесь и возвращайте их по одному. Так вы подтвердите пару быстрее, чем удаляя половину списка.

Что подкрутить: Если диагноз вернулся расплывчатым («какой-то мод конфликтует»), значит трассы было мало: вставьте полный отчёт о краше вместо первых 100 строк и добавьте список модов с версиями. Если и после этого ответ уклончив, значит лог действительно не называет виновника, и вы возвращаетесь к двоичному поиску.

Где это ломается: ИИ с полной уверенностью назовёт мод-виновник, хотя настоящая причина в трассе другая. Считайте его ответ ранжированной гипотезой, а не приговором. Подтверждать придётся, реально убирая моды и запуская игру.

Именно этот шаг обычно пропускают. ИИ читает стектрейс, но не может подтвердить, что пак чисто стартует в боевых условиях: часть крашей проявляется только когда несколько модов инициализируются вместе на сервере, а не при быстром одиночном запуске. Вот тут вам и нужен одноразовый тестовый сервер. В маркетплейсе Cloudzy также есть развёртывание Minecraft Forge в один клик на Ubuntu Server 24.04 LTS. В маркетплейсе указан минимум 2 ГБ RAM, но это нижний порог платформы, а не ориентир для большого модпака. Для маленького тестового пака разумно начать с 4 ГБ RAM и 2 vCPU; для 100+ модов берите около 8 ГБ и 4 vCPU, а дальше корректируйте по числу игроков, генерации мира и реальному профилированию. Поднимите сервер, подтвердите исправление под нагрузкой и снесите его.

VPS для игр

Размещайте игровые серверы без лагов на скоростном NVMe VPS-хостинге.

VPS для игр

Промпт: генерация рецептов KubeJS

Этот промпт составляет рецепт KubeJS ровно в том API, который использует ваш пак, при условии что вы сначала вставите рабочий рецепт из своих скриптов, чтобы модель на него ориентировалась.

Write a KubeJS recipe for me.
- Target: Minecraft 1.21.1 / NeoForge [paste exact build] / KubeJS [paste exact installed 7.2.x build]
  (For the older line, use: Minecraft 1.20.1 / your exact loader build / your exact installed KubeJS 6.x build)
- Goal: a shaped recipe that crafts 3x create:andesite_alloy from
  iron nuggets and andesite.

Here is one working recipe from my server_scripts/ so you match my API style:
[paste one real ServerEvents.recipes block from your pack]

Output only the recipe, inside a ServerEvents.recipes(event => {...}) block.
Use item IDs exactly as I'd find them in-game; flag any ID you're unsure exists.

С линейкой KubeJS 7.2.x для Minecraft 1.21.1 и вставленным примером вы получаете актуальный синтаксис event.shaped() , показанный в документации по рецептам KubeJS:

// KubeJS 7.2.x - Minecraft 1.21.1 / NeoForge
ServerEvents.recipes(event => {
  event.shaped(
    Item.of('create:andesite_alloy', 3),
    ['III', 'IAI', 'III'],
    { I: 'minecraft:iron_nugget', A: 'minecraft:andesite' }
  )
})

Что подкрутить: Для Minecraft 1.20.1 укажите точную сборку загрузчика и точную установленную сборку KubeJS 6.x, чтобы модель попала в эту линейку. Чтобы удалить или заменить ванильный рецепт, явно попросите event.remove({ output: '...' }) or event.replaceInput(...) напрямую: назовите метод, чтобы модель не импровизировала.

Где это ломается: Здесь преобладают два сбоя: выдуманные ID предметов (create:andesite_alloy существует; create:andesite_gear может и нет) и вывод не той версии, когда вы забываете строку с целью. Сверьте каждый ID предмета с установленными модами, затем закиньте скрипт в тестовый пак и прочитайте kubejs/logs/server.log.

Совет профессионала: Вставить один заведомо рабочий пример из вашего собственного server_scripts/ прежде чем просить что-то новое, стоит больше любых формулировок промпта. Модель подражает конкретному примеру перед глазами куда точнее, чем абстрактному «правильному» API, который она помнит наполовину.

Промпт: написание книг FTB Quests (SNBT на 1.21.1)

FTB Quests SNBT and JSON5 formats compared across Minecraft versions

Этот промпт составляет записи FTB Quests в расширенном формате SNBT от FTB для Minecraft 1.21.1. Это самая сложная ИИ-задача в наборе, потому что SNBT выглядит как JSON, и модель отчаянно хочет обращаться с ним как с JSON. Для Minecraft 26.1.2 и новее FTB Quests использует JSON5 вместо этого, поэтому не применяйте там этот SNBT-промпт.

Write an FTB Quests task block in FTB SNBT for Minecraft 1.21.1 / NeoForge.

FTB SNBT is NOT JSON. Follow these rules exactly:
- Do not use commas between fields in multiline objects.
- Match the 16-character UPPERCASE hexadecimal ID format used by my existing quests
  (example: 7942A6A571A4C5EB).
- Put the required amount in the task-level count field as a long (count: 8L); keep the nested item stack count at 1.
- This is a task block only; do not add chapter-level fields such as filename or quests.

Goal: an "item" task requiring 8x minecraft:diamond.
Match this known-good block's structure exactly:
[paste a valid SNBT block from your existing chapter file]

Output only the SNBT block.

Стройте вывод по блоку, в валидности которого вы уже уверены:

{
    id: "7942A6A571A4C5EB"
    type: "item"
    item: {
        count: 1
        id: "minecraft:diamond"
    }
    count: 8L
}

Что подкрутить: Для целой главы вместо одной задачи попросите обёртку главы с filename и quests: [...] затем потребуйте отдельный 16-символьный шестнадцатеричный ID для каждого квеста. Если модель переиспользует ID или меняет формат, вставьте два-три заведомо правильных ID и велите ей им следовать.

Где это ломается: Он добавляет JSON-запятые в многострочный FTB SNBT, кладёт нужное количество внутрь вложенного стека предметов вместо поля count уровня задачи или генерирует некорректные ID квестов. Любое из этого может помешать загрузке главы или сбить подсчёт задачи. Сверяйте каждый блок с работающей структурой и проверяйте лог сервера, прежде чем он попадёт в config/ftbquests/.

Промпт: подбор модов по теме

Этот промпт использует ИИ как ускоритель идей (тематический шорт-лист модов для проверки), но никогда как источник истины о том, что существует.

Suggest mods for a modpack with this theme: [your theme, e.g. "steampunk
automation, tech-focused, no magic"].
- Minecraft version: 1.21.1
- Loader: NeoForge

For each suggestion, give me:
- The mod name and what it contributes to the theme.
- Whether you're confident it exists for 1.21.1 / NeoForge, or unsure.

Mark anything you're not certain about as UNVERIFIED. Do not assert
availability you're not sure of; I'll confirm each one on CurseForge/Modrinth.

Полезный ответ отделяет уверенные варианты от догадок:

Подтверждённые примеры для 1.21.1 / NeoForge (проверьте точный файл): Создать, для автоматизации и механизмов; Immersive Engineering, для мультиблочных машин и промышленной техники. UNVERIFIED: [мелкие аддоны, которые модель не может подтвердить]. Проверьте страницу проекта, прежде чем что-то добавлять.

Что подкрутить: Ограничьте сильнее: просите только моды с подтверждённой страницей на CurseForge или Modrinth и требуйте однострочную заметку о совместимости для каждого (зависимости, известные конфликты), чтобы шорт-лист заодно стал чек-листом для проверки.

Где это ломается: ИИ свободно выдумывает названия модов и доступность версий. Он придумает правдоподобно звучащий мод, которого нет, или заявит о сборке под 1.21 для того, что остановилось на 1.19. Каждое предложение — это зацепка для проверки на CurseForge или Modrinth, а не запись в вашем модлисте.

Промпт: составление чейнджлогов и сообщений коммитов

Это самая безопасная и надёжная ИИ-задача во всём наборе: дайте модели ваш собственный diff и попросите его пересказать, с этим она справляется действительно хорошо.

Here are the changes in this modpack update (from my packwiz .pw.toml
adds/removes/updates):
[paste your git diff or a list of added/removed/updated mods]

Write two things:
1. A Conventional Commit message (type(scope): summary + a short body).
2. A short player-facing changelog entry, with a friendlier tone and no file names.

Only summarize the changes I gave you. Don't invent changes I didn't list.

Скормите ей настоящий diff, и она вернёт то, что вы действительно отправите в релиз:

feat(mods): update Create stack and remove old storage entry

- Added Create: Steam 'n' Rails and Create Crafts & Additions
- Removed Simple Storage Network
- Updated JEI to the 1.21.1 build listed in the supplied diff

Игрокам: это обновление расширяет технологическое древо Create поездами и электрическими машинами, убирает мод хранилища из списка изменений и обновляет индекс рецептов JEI.

Что подкрутить: Задавайте тон явно: сухой для журнала коммитов, теплее для заметки игрокам. Для полноценного релиза соберите diff всего обновления и попросите сгруппированные разделы чейнджлога (Добавлено / Изменено / Удалено).

Где это ломается: Почти ничего, пока вы держите её в рамках пересказа предоставленного diff. Единственный реальный риск в том, что она разбавит чейнджлог изменениями, которых вы не делали, поэтому не просите её «догадаться, что ещё поменялось»: дайте настоящий diff и требуйте держаться его.

Когда не доверять результату (сбои с одного взгляда)

Если запомнить один раздел, пусть это будет этот. Во всех задачах выше ИИ ошибается небольшим предсказуемым набором способов, и у каждого есть контрмера, детали которой у вас уже есть:

Режим отказаГде проявляетсяЧем компенсировать
Выдуманные ID предметовРецепты KubeJS, предметы квестовСверяйте каждый ID с реальными модами; вставляйте настоящие ID в промпт
Неверная версия API KubeJSРецепты KubeJSУказывайте версию игры, сборку загрузчика и точную сборку KubeJS в каждом промпте
SNBT воспринят как JSON (запятые)FTB QuestsПропишите в промпте «без запятых между полями одного уровня»; сверяйте с заведомо рабочим блоком
Некорректные ID квестов (нижний регистр / неверная длина)FTB QuestsТребуйте 16 шестнадцатеричных символов в верхнем регистре; задайте пример валидных ID
Выдуманная доступность модовПодбор модовПодтверждайте каждое предложение на CurseForge/Modrinth перед добавлением

Две техники покрывают почти всё. Во-первых, указывайте в каждом промпте точную версию игры, сборку загрузчика, целевой формат и рабочий пример. Во-вторых, работайте в два прохода: сгенерируйте артефакт, затем вставьте его обратно и попросите модель проверить его по конкретным ограничениям, вроде разделителей FTB SNBT или формата ID квестов. Если заставить её посмотреть дважды, она ловит заметную долю собственных ошибок.

Ничто из этого не отменяет вашего чтения результата. Просто чтение занимает минуты вместо часов, которые ушли бы на написание с нуля.

Заключение

ChatGPT полезен в разработке модпаков, когда вы заставляете его работать против реальных ограничений вашего пака. Дайте ему точную версию игры, сборку загрузчика, целевой формат и заведомо рабочий пример, а затем считайте каждый рецепт, блок квеста и диагноз черновиком, который должен пережить логи и настоящий тестовый инстанс. Так вы сохраняете выигрыш в скорости, не выдавая модели полномочий, которых она не заслужила.

Часто задаваемые вопросы

Может ли ИИ читать краш-логи Minecraft?

Да. Вставьте полный отчёт о краше или хотя бы первые 100 строк плюс каждый блок Caused by: вместе с версией Minecraft и сборкой загрузчика. Способная модель прочитает стектрейс и ранжирует вероятных виновников. Используйте это, чтобы обойтись без слепого двоичного поиска, а затем подтвердите гипотезу на тестовом инстансе.

Как использовать ChatGPT для рецептов KubeJS?

Всегда указывайте версию Minecraft, сборку загрузчика и точную установленную сборку KubeJS. KubeJS 6.x — это линейка Minecraft 1.20.1, а KubeJS 7.2.x — линейка Minecraft 1.21.1. Вставьте рабочий рецепт из server_scripts/ чтобы модель попала в ваш стиль, затем проверьте каждый ID предмета и сверьте API с вашим логом KubeJS.

Какие промпты работают для написания FTB Quests?

Для Minecraft 1.21.1 подробно пропишите правила многострочного SNBT от FTB: без запятых между полями, соблюдать 16-символьный шестнадцатеричный формат ID, как в существующих квестах, сохранять типизированные числовые суффиксы там, где они есть в источнике, и не смешивать поля задачи с полями главы, такими как filename. Приложите заведомо рабочий блок и проверьте результат, прежде чем загружать его. На Minecraft 26.1.2 и новее FTB Quests хранит эти данные в JSON5, поэтому используйте пример JSON5 под соответствующую версию.

Пишет ли ИИ хорошие моды или модпаки для Minecraft?

Сама по себе нет. ИИ ускоряет разработчика, способного прочитать и проверить его вывод, набрасывая рецепты, квесты и диагнозы быстрее, чем это делается с нуля. Надёжно работающие моды или паки без ревью он не выдаёт. Как инструмент черновиков в руках знатока предметной области это реальный выигрыш в скорости; как самостоятельный автор он выпускает ошибки, которых можно было избежать.

Какую версию Minecraft и какой загрузчик нужно сообщать ИИ?

И то и другое, каждый раз. Укажите точную версию Minecraft, например 1.21.1, и точный загрузчик со сборкой для Forge, NeoForge, Fabric или Quilt. Без этого модель может выбрать устаревший или несовместимый с загрузчиком синтаксис. Проверьте результат в тестовом паке, прежде чем переносить его в продакшен.

Поделиться

Ещё в блоге

Читайте дальше.

Готовы к развёртыванию? От $2,48/мес.

Независимое облако с 2008 года. AMD EPYC, NVMe, 40 Gbps. Возврат денег в течение 14 дней.