Перейти до основного вмісту
Знижка 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, точний мод-завантажувач та його версію, і робочий приклад із вашої власної кодової бази. З таким контекстом ШІ видає кориснішi чернетки для розбору крашів, рецептів 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 днів.