크래시 리포트를 ChatGPT에 붙여넣으면 팩에 있지도 않은 모드를 자신 있게 지목합니다. KubeJS 레시피를 요청하면 이런 것이 돌아옵니다 event.recipes.minecraft.shaped(...). 현재 KubeJS 레시피 예제와 맞지 않는 구식 문법입니다. FTB Quests 블록을 요청하면 JSON 스타일 쉼표를 넣어 주는데, 이는 1.21.1 시절 퀘스트 파일이 쓰는 여러 줄 FTB SNBT 형식을 망가뜨릴 수 있습니다.
도구가 고장 난 게 아닙니다. 프롬프트가 문제입니다. AI 모델은 종종 오래된 Minecraft 모딩 예제로 되돌아가는데, 이는 현재의 KubeJS와 FTB Quests 파일에 위험합니다. 모델에 정확한 게임 버전, 로더 빌드, 목표 파일 형식, 그리고 직접 작성한 코드에서 가져온 실제 예제를 주면 결과물은 "자신 있게 틀린" 것에서 "대체로 맞으니 나머지는 검증하라"로 바뀝니다.
핵심은 이겁니다. 이 프롬프트들은 이미 비용을 내고 쓰는 어시스턴트(ChatGPT, Claude, Copilot)에서 그대로 작동하며, 크래시 전용 도구 가입도 추가 구독도 필요 없습니다. 그리고 결과물을 읽을 줄 안다고 전제합니다. AI가 만든 KubeJS는 KubeJS를 아는 사람에게는 초안 작성 지름길이지만, 환각된 아이템 ID를 알아채지 못한다면 오히려 발목을 잡습니다. 아래는 작업별로 특화되고 버전을 명시한 프롬프트 다섯 개로, 각각 실제로 돌아오는 답변 예시와 어디서 어긋나는지에 대한 설명을 담았습니다.
요약
Minecraft 모드팩 개발에 가장 좋은 ChatGPT 프롬프트는 매번 세 가지를 제공합니다. 정확한 Minecraft 버전, 정확한 모드 로더와 그 버전, 그리고 자신의 코드베이스에서 가져온 실제 예제입니다. 이런 맥락이 있으면 AI는 크래시 분류, KubeJS 레시피, FTB Quests SNBT, 모드 후보 목록, 커밋 메시지에 대해 더 쓸모 있는 초안을 내놓습니다. 다만 모든 아이템 ID, API 호출, 16진수 퀘스트 ID는 직접 검증해야 합니다. AI는 유능한 모더의 속도를 높여 줄 뿐, 팩을 대신 만들어 주지는 않습니다.
이 프롬프트가 해 주지 않는 것
무엇이든 복사하기 전에 기대치를 정리해 두세요.
- 당신 대신 모드팩을 만들어 주지 않습니다. 각 프롬프트는 결과물 하나(레시피, 퀘스트 블록, 진단)를 초안으로 만들어 주며, 그것을 이미 설계 중인 팩에 넣는 것은 당신의 몫입니다.
- KubeJS나 SNBT를 가르쳐 주지 않습니다. 아래 문법이 낯설다면 실패 유형을 놓치게 됩니다. 형식을 먼저 익힌 다음, 속도를 내기 위해 AI를 쓰세요.
- 실제 테스트 서버를 대체하지 못합니다. AI는 스택 트레이스를 해석할 뿐, 모드 150개를 올린 팩이 실제로 부팅되는지는 알려 주지 못합니다.
- 올바른 결과를 보장하지 않습니다. AI가 내놓는 모든 것을 검토 대상인 초안으로 다루세요. 완성된 답이 아닙니다.
AI가 무언가를 쓰기 전에 올바른 맥락이 필요한 이유

작동하는 프롬프트와 "마인크래프트 레시피 하나 만들어 줘" 같은 일반적인 프롬프트의 차이는 바로 맥락입니다. 버전과 로더를 빼면 모델은 1.21.1 NeoForge 팩에 옛 KubeJS 문법을 생성하거나, 존재하지 않는 아이템 ID를 지어내거나, FTB SNBT를 평범한 JSON처럼 포맷할 수 있습니다. 그러면 스크립트는 아무것도 하지 않거나, 결국 읽어야 할 로그 깊숙이 묻힌 오류와 함께 실패합니다.
그래서 이 글의 모든 프롬프트는 동일한 세 가지 맥락을 담고 있으며, 그 값은 당신의 팩에서 직접 채워 넣습니다.
- 정확한 Minecraft 버전: 1.20.1, 1.21.1 등 실제로 사용하는 버전.
- 정확한 모드 로더와 버전: Forge, NeoForge, Fabric, Quilt 중 하나와 빌드 번호.
- 직접 작성한 코드베이스에서 가져온 실제 예제. 가능한 곳이라면 언제나 넣으세요. 당신의
server_scripts/에 있는 진짜 레시피 하나, 유효한 퀘스트 블록 하나, 이전 커밋 메시지 하나. 이것이 품질을 좌우하는 가장 큰 지렛대입니다. 모델은 자신이 추측한 것보다, 당신이 건네준 스타일과 API를 훨씬 더 충실하게 따라 합니다.
전문가 팁: 버전 줄은 있어도 그만인 장식이 아닙니다. Minecraft 1.20.1용 KubeJS 6.x와 Minecraft 1.21.1용 KubeJS 7.2.x는 서로 다른 대상이며, 설치된 정확한 빌드도 여전히 중요합니다. 게임, 로더, KubeJS의 정확한 버전을 빠뜨린 프롬프트는 모델에게 추측하라고 요구하는 셈입니다.
프롬프트: 크래시 로그 분류

이 프롬프트는 스택 트레이스 더미를 의심 모드 순위 목록과 다음 단계로 바꿔 줍니다. 무작정 하는 이진 탐색을 건너뛰는 가장 빠른 방법입니다.
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줄 대신 전체 크래시 리포트를 붙여넣고, 버전이 포함된 모드 목록을 추가하세요. 그래도 여전히 애매하다면 로그가 정말로 범인을 지목하지 못하는 것이고, 다시 이진 탐색으로 돌아가야 합니다.
어디서 어긋나는가: AI는 진짜 원인이 트레이스의 다른 곳에 있는데도 범인 모드를 자신만만하게 지목합니다. 그 답을 판결이 아니라 순위가 매겨진 가설로 다루세요. 확인은 실제로 모드를 빼고 부팅해 봐야 됩니다.
사람들이 건너뛰는 대목이 바로 여기입니다. AI는 스택 트레이스를 읽을 뿐, 실제 환경에서 팩이 깔끔하게 부팅되는지는 알려 주지 못합니다. 어떤 크래시는 빠른 싱글플레이 실행이 아니라 여러 모드가 서버에서 함께 초기화될 때만 나타나기 때문입니다. 바로 이 지점에서 필요한 것이 일회용 테스트 서버. Cloudzy 마켓플레이스에는 원클릭 Minecraft Forge 배포 Ubuntu Server 24.04 LTS 기반입니다. 마켓플레이스에는 최소 RAM이 2 GB로 표시되지만, 그것은 플랫폼의 하한선일 뿐 대형 모드팩의 사양 기준이 아닙니다. 작은 테스트 팩이라면 RAM 4 GB와 2 vCPU가 무난한 출발점이고, 모드가 100개를 넘으면 8 GB와 4 vCPU쯤에서 시작한 뒤 플레이어 수, 월드 생성, 실제 프로파일링에 맞춰 조정하세요. 띄우고, 부하 상태에서 수정이 통하는지 확인한 뒤, 지워 버리면 됩니다.
고속 NVMe VPS 호스팅으로 랙 없는 게임 서버를 운영하세요.
게임용 VPS프롬프트: KubeJS 레시피 생성
이 프롬프트는 당신의 팩이 실제로 쓰는 API 그대로 KubeJS 레시피 초안을 만들어 줍니다. 단, 모델이 따라 할 수 있도록 자신의 스크립트에서 가져온 작동하는 레시피를 먼저 붙여넣어야 합니다.
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.
Minecraft 1.21.1용 KubeJS 7.2.x 계열과 붙여넣은 예제가 있으면, 현재의 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 퀘스트북 작성 (1.21.1의 SNBT)

이 프롬프트는 FTB Quests 항목을 FTB의 확장 SNBT 형식 형식으로 Minecraft 1.21.1용으로 작성합니다. 이 세트에서 가장 어려운 AI 작업인데, 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 그리고 a quests: [...] 요청하고, 각 퀘스트마다 서로 다른 16자리 16진수 ID를 요구하세요. ID를 재사용하거나 형식을 바꾸면, 검증된 ID를 두세 개 붙여넣고 그것에 맞추라고 지시하세요.
어디서 어긋나는가: 여러 줄 FTB SNBT에 JSON 쉼표를 넣고, 필요한 수량을 태스크 수준의 count 필드 대신 중첩된 아이템 스택 안에 넣거나, 잘못된 형식의 퀘스트 ID를 만들어 냅니다. 이 중 어느 것이든 챕터가 로드되지 않게 하거나 과제 수량 집계를 틀리게 만들 수 있습니다. 모든 블록을 작동이 확인된 구조와 대조하고, 다음 경로에 넣기 전에 서버 로그를 확인하세요: config/ftbquests/.
프롬프트: 테마별 모드 선별
이 프롬프트는 AI를 아이디어 발상의 지름길로 씁니다. 즉 조사해 볼 만한 테마별 모드 후보 목록을 얻는 용도이지, 무엇이 실제로 존재하는지에 대한 진실의 출처로 쓰는 게 아닙니다.
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 페이지가 확인된 모드만 요청하고, 모드마다 한 줄짜리 호환성 메모(의존성, 알려진 충돌)를 요구하면 후보 목록이 곧 조사용 체크리스트가 됩니다.
어디서 어긋나는가: AI는 모드 이름과 버전 지원 여부를 거리낌 없이 지어냅니다. 그럴듯한 이름의 존재하지 않는 모드를 만들어 내거나, 1.19에서 멈춘 것에 1.21 빌드가 있다고 주장하기도 합니다. 모든 제안은 CurseForge나 Modrinth에서 확인해야 할 단서일 뿐, 모드 목록에 바로 넣을 항목이 아닙니다.
프롬프트: 체인지로그와 커밋 메시지 작성
이것은 이 세트 전체에서 가장 위험이 낮고 가장 믿을 만한 AI 작업입니다. 직접 만든 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를 주고 거기에만 머물게 하세요.
결과를 믿으면 안 될 때 (실패 유형 한눈에 보기)
한 절만 기억한다면 이 절로 하세요. 위의 모든 작업에서 AI는 작고 예측 가능한 몇 가지 방식으로 실패하며, 각각에는 이미 재료를 다 갖고 있는 대응책이 있습니다.
| 장애 모드 | 어디서 나타나는가 | 어떻게 보완하는가 |
|---|---|---|
| 환각된 아이템 ID | KubeJS 레시피, 퀘스트 아이템 | 모든 ID를 실제 설치 모드와 대조하고, 진짜 ID를 프롬프트에 붙여넣기 |
| 잘못된 KubeJS API 버전 | KubeJS 레시피 | 게임 버전, 로더 빌드, 정확한 KubeJS 빌드를 모든 프롬프트에 넣기 |
| SNBT를 JSON처럼 취급 (쉼표) | FTB Quests | 프롬프트 안에 "같은 수준의 필드 사이에는 쉼표 없음"이라고 명시하고, 검증된 블록과 대조하기 |
| 잘못된 퀘스트 ID (소문자 / 길이 오류) | FTB Quests | 16자리 대문자 16진수를 요구하고, 유효한 ID를 예시로 제시하기 |
| 환각된 모드 존재 여부 | 모드 선별 | 추가하기 전에 모든 제안을 CurseForge/Modrinth에서 확인하기 |
두 가지 기법이 대부분을 해결합니다. 첫째, 모든 프롬프트에 정확한 게임 버전, 로더 빌드, 목표 형식, 작동하는 예제를 넣으세요. 둘째, 2단계로 진행하세요. 먼저 결과물을 생성한 다음, 그것을 다시 붙여넣고 FTB SNBT 구분자나 퀘스트 ID 형식 같은 구체적 제약에 비추어 검토하라고 시키는 것입니다. 두 번 보게 만들면 모델은 자기 실수의 상당 부분을 스스로 잡아냅니다.
이 중 어느 것도 당신이 결과물을 읽는 일을 대신해 주지 않습니다. 다만 처음부터 직접 쓰느라 몇 시간을 들이는 대신, 읽는 데 몇 분이면 된다는 뜻입니다.
결론
ChatGPT는 당신의 팩이 가진 실제 제약 조건에 맞서 일하게 만들 때 모드팩 개발에 유용합니다. 정확한 게임 버전, 로더 빌드, 목표 형식, 검증된 예제를 주고, 모든 레시피와 퀘스트 블록과 진단을 로그와 실제 테스트 인스턴스를 통과해야 하는 초안으로 다루세요. 그래야 모델에 자격 없는 권위를 넘기지 않으면서 속도의 이점만 챙길 수 있습니다.
자주 묻는 질문
AI가 Minecraft 크래시 로그를 읽을 수 있나요?
네. 전체 크래시 리포트를 붙여넣거나, 최소한 첫 100줄과 모든 Caused by: 블록을 Minecraft 버전 및 로더 빌드와 함께 붙여넣으세요. 성능이 괜찮은 모델은 스택 트레이스를 읽고 유력한 범인 모드에 순위를 매길 수 있습니다. 이것으로 무작정 하는 이진 탐색을 건너뛴 다음, 테스트 인스턴스에서 가설을 확인하세요.
KubeJS 레시피에 ChatGPT를 어떻게 쓰나요?
항상 Minecraft 버전, 로더 빌드, 설치된 정확한 KubeJS 빌드를 밝히세요. KubeJS 6.x는 Minecraft 1.20.1 계열이고, KubeJS 7.2.x는 Minecraft 1.21.1 계열입니다. 작동하는 레시피 하나를 server_scripts/ 에서 붙여넣어 스타일이 맞도록 한 다음, 모든 아이템 ID를 검증하고 KubeJS 로그로 API를 확인하세요.
FTB Quests 작성에는 어떤 프롬프트가 효과적인가요?
Minecraft 1.21.1이라면 FTB의 여러 줄 SNBT 규칙을 조목조목 명시하세요. 필드 사이에 쉼표를 넣지 말 것, 기존 퀘스트가 쓰는 16자리 16진수 ID 형식을 따를 것, 원본이 쓰는 곳에서는 타입 표기 숫자 접미사를 유지할 것, 그리고 태스크 필드를 다음과 같은 챕터 필드와 섞지 말 것: filename. 검증된 블록을 함께 제공하고, 불러오기 전에 결과를 확인하세요. Minecraft 26.1.2 이상에서는 FTB Quests가 이 데이터를 JSON5로 저장하므로, 버전에 맞는 JSON5 예제를 대신 사용하세요.
AI가 좋은 Minecraft 모드나 모드팩을 만들어 주나요?
혼자서는 못 합니다. AI는 결과물을 읽고 검증할 수 있는 개발자의 속도를 높여 줍니다. 레시피, 퀘스트, 진단을 처음부터 쓰는 것보다 빠르게 초안으로 만들어 주기 때문입니다. 검토 없이 작동하는 모드나 팩을 안정적으로 만들어 내지는 못합니다. 해당 분야를 아는 사람이 초안 도구로 쓰면 실질적인 속도 향상이지만, 자율적인 저자로 취급하면 피할 수 있었던 오류를 그대로 내보내게 됩니다.
AI에게 어떤 Minecraft 버전과 로더를 알려 줘야 하나요?
매번 둘 다입니다. 정확한 Minecraft 버전(예: 1.21.1)과 Forge, NeoForge, Fabric, Quilt 중 어느 것인지와 그 정확한 빌드를 밝히세요. 그것이 없으면 모델이 구식이거나 로더와 호환되지 않는 문법을 고를 수 있습니다. 실제 운영에 반영하기 전에 테스트 팩에서 결과를 검증하세요.
