Chuyển đến nội dung chính
Giảm 50% tất cả các gói, có thời hạn. Khởi điểm từ $2.48/mo
14 min left
Gaming và Media

Năm cách thực tế để dùng ChatGPT trong phát triển modpack Minecraft

B Bởi Bill 14 phút đọc
AI chat window returning a diagnosis next to a Minecraft crash log and KubeJS recipe script

Bạn dán một crash report vào ChatGPT và nó tự tin gọi tên một mod thậm chí không có trong pack của bạn. Bạn hỏi một công thức KubeJS và nhận được event.recipes.minecraft.shaped(...), cú pháp cũ không khớp với các ví dụ công thức KubeJS hiện tại. Bạn hỏi một khối FTB Quests và nó đưa cho bạn dấu phẩy kiểu JSON, thứ có thể phá vỡ định dạng FTB SNBT nhiều dòng mà các tệp quest thời 1.21.1 sử dụng.

Công cụ không hỏng. Prompt mới hỏng. Các mô hình AI thường quay về những ví dụ modding Minecraft cũ, điều này rủi ro với các tệp KubeJS và FTB Quests hiện tại. Hãy cho mô hình biết phiên bản game chính xác, bản dựng loader, định dạng tệp mục tiêu và một ví dụ chạy được từ chính mã của bạn, và kết quả sẽ chuyển từ "sai một cách tự tin" sang "phần lớn là đúng, phần còn lại tự kiểm chứng".

Toàn bộ vấn đề nằm ở đây: những prompt này chạy được trên chính trợ lý bạn đang trả tiền (ChatGPT, Claude, Copilot), không cần đăng ký công cụ phân tích crash nào và không cần thuê bao thêm. Và chúng giả định bạn đã đọc hiểu được kết quả. KubeJS do AI sinh ra là lối tắt soạn thảo dành cho người đã biết KubeJS; nếu bạn không nhận ra một item ID bịa đặt, KubeJS do AI viết sẽ phản lại bạn. Dưới đây là năm prompt chuyên cho từng tác vụ và có tính đến phiên bản, mỗi prompt kèm một ví dụ thực tế về câu trả lời và ghi chú về chỗ nó sai.

Tóm tắt nhanh

Những prompt ChatGPT tốt nhất cho phát triển modpack Minecraft luôn cung cấp ba thứ: phiên bản Minecraft chính xác, mod loader và phiên bản chính xác của nó, và một ví dụ chạy được từ chính codebase của bạn. Với ngữ cảnh đó, AI tạo ra bản nháp đầu hữu ích hơn cho việc phân loại crash, công thức KubeJS, SNBT của FTB Quests, danh sách mod rút gọn và thông điệp commit. Nhưng bạn phải tự kiểm chứng từng item ID, từng lệnh gọi API và từng quest ID thập lục phân. AI tăng tốc cho một modder có nghề; nó không viết ra cả một pack.

Những gì các prompt này không làm được

Hãy đặt đúng kỳ vọng trước khi sao chép bất cứ thứ gì:

  • Chúng sẽ không dựng modpack thay bạn. Mỗi prompt soạn ra một sản phẩm (một công thức, một khối quest, một chẩn đoán) để bạn đưa vào pack mà bạn vốn đang thiết kế.
  • Chúng sẽ không dạy bạn KubeJS hay SNBT. Nếu cú pháp bên dưới trông xa lạ, bạn sẽ không nhận ra các kiểu lỗi. Hãy học định dạng trước, rồi mới dùng AI để đi nhanh hơn.
  • Chúng sẽ không thay thế được một máy chủ thử nghiệm thật. AI suy luận trên stack trace; nó không thể cho bạn biết rằng pack thực sự khởi động được với 150 mod đã nạp.
  • Chúng không đảm bảo kết quả đúng. Hãy xem mọi thứ AI trả về là bản nháp đầu tiên để bạn rà soát, không phải câu trả lời hoàn chỉnh.

Vì sao AI cần đúng ngữ cảnh trước khi viết bất cứ thứ gì

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

Đây là khác biệt giữa một prompt hiệu quả và một prompt chung chung kiểu "làm cho tôi một công thức Minecraft": ngữ cảnh. Bỏ đi phiên bản và loader, mô hình có thể sinh ra cú pháp KubeJS cũ cho pack 1.21.1 NeoForge của bạn, bịa ra những item ID không tồn tại, hoặc định dạng FTB SNBT như JSON thông thường. Script có thể không làm gì cả, hoặc lỗi với một thông báo chôn sâu trong log mà bạn vẫn phải đọc.

Vì vậy mọi prompt trong bài này đều mang cùng một ngữ cảnh ba phần, và bạn điền vào từ chính pack của mình:

  1. Phiên bản Minecraft chính xác: 1.20.1, 1.21.1, hay bất kỳ phiên bản nào bạn thực sự đang dùng.
  2. Mod loader và phiên bản chính xác: Forge, NeoForge, Fabric hoặc Quilt, kèm số hiệu bản dựng.
  3. Một ví dụ chạy được từ chính codebase của bạn, ở bất cứ đâu bạn có thể cung cấp. Một công thức thật từ server_scripts/, một khối quest hợp lệ, một thông điệp commit trước đó. Đây là đòn bẩy chất lượng lớn nhất: mô hình bắt chước phong cách và API bạn đưa cho nó đáng tin cậy hơn nhiều so với thứ nó tự đoán.

Mẹo hay: Dòng ghi phiên bản không phải thứ trang trí tùy chọn. KubeJS 6.x cho Minecraft 1.20.1 và KubeJS 7.2.x cho Minecraft 1.21.1 là hai đích khác nhau, và bản dựng đã cài chính xác vẫn quan trọng. Một prompt bỏ qua phiên bản chính xác của game, loader và KubeJS chính là đang bảo mô hình đoán mò.

Prompt: Phân loại crash log

Minecraft crash log moving through suspect ranking and controlled mod testing

Prompt này biến một bức tường stack trace thành danh sách mod tình nghi được xếp hạng cùng một bước tiếp theo, cách nhanh nhất để bỏ qua kiểu dò nhị phân mù.

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.

Một câu trả lời thực tế trông như thế này:

Nguyên nhân khả dĩ: xung đột mixin khi nạp thế giới. Có thể hai mod đang inject vào cùng một lớp. Nghi phạm: (1) Khung org.spongepowered.asm.mixin.transformer trỏ tới một mixin không áp dụng được; mod sở hữu lớp đích là nghi phạm đầu tiên. (2) Một mod thứ hai đụng tới việc render entity xuất hiện ở khung phía trên. (3) Ít khả năng hơn, một mod cấu hình được nạp ngay trước khi lỗi xảy ra. Bước tiếp theo: Gỡ hai nghi phạm ra, khởi động, rồi thêm lại từng cái một. Cách đó xác nhận cặp này nhanh hơn là xóa nửa danh sách.

Điều cần điều chỉnh: Nếu chẩn đoán trả về mơ hồ ("có mod nào đó đang xung đột"), là do bạn chưa đưa đủ trace: hãy dán toàn bộ crash report thay vì 100 dòng đầu, và thêm danh sách mod kèm phiên bản. Nếu vẫn chung chung, thì log thực sự không chỉ ra thủ phạm, và bạn quay lại với dò nhị phân.

Chỗ nó sai: AI sẽ tự tin tuyệt đối gọi tên một mod thủ phạm trong khi nguyên nhân thật nằm ở chỗ khác trong trace. Hãy coi câu trả lời của nó là giả thuyết được xếp hạng, không phải phán quyết. Bạn xác nhận bằng cách thực sự gỡ mod ra và khởi động.

Đây là phần mà người ta hay bỏ qua. AI đọc stack trace; nó không thể cho bạn biết pack khởi động sạch sẽ trong điều kiện thật, vì một số crash chỉ xuất hiện khi nhiều mod cùng khởi tạo trên một máy chủ chứ không phải trong lần chạy chơi đơn nhanh gọn. Đó chính là lúc bạn cần một máy chủ thử nghiệm dùng một lần. Marketplace của Cloudzy cũng có một triển khai Minecraft Forge chỉ với một cú nhấp trên Ubuntu Server 24.04 LTS. Marketplace ghi mức tối thiểu là 2 GB RAM, nhưng đó là sàn của nền tảng, không phải mức cấu hình nhắm tới cho một modpack lớn. Với một pack thử nghiệm nhỏ, 4 GB RAM và 2 vCPU là điểm khởi đầu hợp lý; với hơn 100 mod, hãy bắt đầu quanh mức 8 GB và 4 vCPU, rồi điều chỉnh theo số người chơi, việc sinh thế giới và kết quả profiling thực tế. Dựng lên, xác nhận bản sửa dưới tải, rồi dẹp đi.

VPS cho Gaming

Lưu trữ máy chủ game không giật lag với dịch vụ VPS NVMe tốc độ cao.

VPS cho Gaming

Prompt: Tạo công thức KubeJS

Prompt này soạn một công thức KubeJS đúng theo API mà pack của bạn đang dùng, miễn là bạn dán trước một công thức chạy được từ chính script của mình để mô hình bám theo.

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.

Với nhánh KubeJS 7.2.x cho Minecraft 1.21.1 và một ví dụ được dán vào, bạn nhận được cú pháp event.shaped() hiện hành như trong tài liệu công thức 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' }
  )
})

Điều cần điều chỉnh: Với Minecraft 1.20.1, hãy nêu rõ bản dựng loader chính xác và bản dựng KubeJS 6.x đã cài để mô hình bám đúng nhánh đó. Để gỡ hoặc thay một công thức vanilla, hãy yêu cầu thẳng event.remove({ output: '...' }) or event.replaceInput(...) : hãy gọi đúng tên phương thức để nó không tùy hứng.

Chỗ nó sai: Ở đây có hai kiểu lỗi chiếm ưu thế: item ID bịa đặt (create:andesite_alloy là có thật; create:andesite_gear thì có thể không) và kết quả sai phiên bản khi bạn quên dòng chỉ định đích. Hãy đối chiếu từng item ID với các mod đã cài, rồi thả script vào pack thử nghiệm và đọc kubejs/logs/server.log.

Mẹo hay: Việc dán một ví dụ đã biết chắc là đúng từ chính server_scripts/ trước khi hỏi bất cứ điều gì mới đáng giá hơn mọi cách diễn đạt prompt. Mô hình bắt chước ví dụ cụ thể trước mắt trung thành hơn nhiều so với cái API "đúng" trừu tượng mà nó chỉ nhớ lõm bõm.

Prompt: Viết sách nhiệm vụ FTB Quests (SNBT trên 1.21.1)

FTB Quests SNBT and JSON5 formats compared across Minecraft versions

Prompt này soạn các mục FTB Quests theo định dạng SNBT mở rộng của FTB cho Minecraft 1.21.1. Đây là tác vụ AI khó nhất trong cả bộ, vì SNBT trông giống JSON và mô hình thì rất muốn xử lý nó như JSON. Với Minecraft 26.1.2 trở lên, FTB Quests dùng JSON5 thay thế, nên đừng dùng prompt SNBT này ở đó.

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.

Hãy lấy một khối mà bạn đã biết chắc là hợp lệ làm khuôn cho kết quả:

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

Điều cần điều chỉnh: Nếu cần cả một chương thay vì một nhiệm vụ, hãy yêu cầu phần bao của chương kèm filename và một quests: [...] rồi yêu cầu mỗi quest phải có một ID thập lục phân 16 ký tự riêng biệt. Nếu nó dùng lại ID hoặc đổi định dạng, hãy dán hai hoặc ba ID đã biết là đúng và bảo nó bám theo.

Chỗ nó sai: Nó thêm dấu phẩy kiểu JSON vào FTB SNBT nhiều dòng, đặt số lượng cần thiết vào bên trong ngăn xếp vật phẩm lồng nhau thay vì vào trường count ở cấp nhiệm vụ, hoặc sinh ra quest ID sai định dạng. Bất kỳ điều nào trong số đó cũng có thể khiến cả một chương không nạp được hoặc khiến nhiệm vụ đếm sai. Hãy đối chiếu từng khối với một cấu trúc mà bạn biết là chạy được, và kiểm tra log máy chủ trước khi nó lọt vào config/ftbquests/.

Prompt: Tuyển chọn mod theo chủ đề

Prompt này dùng AI như một lối tắt để nảy ý tưởng (một danh sách mod theo chủ đề để bạn đi kiểm chứng), chứ không bao giờ là nguồn chân lý về những gì thực sự tồn tại.

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.

Một câu trả lời hữu ích sẽ tách những lựa chọn chắc chắn khỏi phần phỏng đoán:

Ví dụ đã xác nhận cho 1.21.1 / NeoForge (hãy tự kiểm tra đúng tệp): Tạo, cho tự động hóa và cơ cấu máy móc; Immersive Engineering, cho máy multiblock và công nghệ công nghiệp. UNVERIFIED: [các add-on nhỏ hơn mà mô hình không xác nhận được]. Hãy kiểm tra trang dự án trước khi thêm bất cứ thứ gì.

Điều cần điều chỉnh: Hãy siết chặt hơn bằng cách chỉ hỏi những mod có trang CurseForge hoặc Modrinth đã xác nhận, và yêu cầu mỗi mod một dòng ghi chú tương thích (phụ thuộc, xung đột đã biết) để danh sách rút gọn của bạn kiêm luôn checklist tra cứu.

Chỗ nó sai: AI bịa tên mod và tình trạng hỗ trợ phiên bản một cách thoải mái. Nó sẽ nghĩ ra một mod nghe rất hợp lý nhưng không tồn tại, hoặc khẳng định có bản dựng 1.21 cho thứ đã dừng ở 1.19. Mọi gợi ý đều là manh mối cần xác nhận trên CurseForge hoặc Modrinth, không phải một dòng để đưa thẳng vào modlist.

Prompt: Soạn changelog và thông điệp commit

Đây là tác vụ AI ít rủi ro nhất và đáng tin cậy nhất trong cả bộ: đưa cho nó một diff bạn tự tạo và bảo nó tóm tắt, nó làm việc này thực sự giỏi.

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.

Đưa cho nó một diff thật và nó trả về thứ bạn thực sự có thể phát hành:

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

Người chơi lưu ý: bản cập nhật này mở rộng cây công nghệ Create với tàu hỏa và máy móc chạy điện, gỡ bỏ mod lưu trữ được liệt kê trong danh sách thay đổi, và làm mới chỉ mục công thức JEI.

Điều cần điều chỉnh: Hãy nêu rõ giọng điệu: cộc lốc cho commit log, ấm áp hơn cho ghi chú gửi người chơi. Với một bản phát hành đầy đủ, gom diff của cả đợt cập nhật và yêu cầu changelog chia theo nhóm (Thêm / Sửa / Gỡ).

Chỗ nó sai: Gần như không có gì, miễn là bạn giữ nó ở việc tóm tắt đúng diff bạn đã đưa. Rủi ro thật sự duy nhất là nó độn thêm vào changelog những thay đổi bạn không hề làm, nên đừng bảo nó "đoán xem còn gì đổi nữa"; hãy đưa diff thật và buộc nó bám vào đó.

Khi nào không nên tin kết quả (tổng hợp các kiểu lỗi)

Nếu chỉ nhớ một mục, hãy nhớ mục này. Xuyên suốt mọi tác vụ ở trên, AI thất bại theo một nhóm nhỏ các kiểu có thể đoán trước, và mỗi kiểu đều có cách bù trừ mà bạn đã sẵn đủ nguyên liệu:

Chế độ lỗiXuất hiện ở đâuCách bù trừ
Item ID bịa đặtCông thức KubeJS, vật phẩm questĐối chiếu từng ID với mod thật của bạn; dán ID thật vào prompt
Sai phiên bản API KubeJSCông thức KubeJSĐưa phiên bản game, bản dựng loader và bản dựng KubeJS chính xác vào mọi prompt
SNBT bị xử lý như JSON (dấu phẩy)FTB QuestsGhi thẳng trong prompt "không dùng dấu phẩy giữa các trường cùng cấp"; đối chiếu với một khối đã biết là đúng
Quest ID không hợp lệ (chữ thường / sai độ dài)FTB QuestsYêu cầu 16 ký tự thập lục phân viết hoa; đưa sẵn vài ID hợp lệ làm mẫu
Tình trạng có sẵn của mod bị bịaTuyển chọn modXác nhận mọi gợi ý trên CurseForge/Modrinth trước khi thêm vào

Hai kỹ thuật lo được phần lớn. Thứ nhất, đưa phiên bản game chính xác, bản dựng loader, định dạng đích và một ví dụ chạy được vào mọi prompt. Thứ hai, làm hai lượt: sinh ra sản phẩm, rồi dán lại và yêu cầu mô hình rà nó theo những ràng buộc cụ thể như dấu phân cách của FTB SNBT hay định dạng quest ID. Khi bị buộc phải nhìn lại lần hai, nó bắt được một phần đáng kể lỗi của chính mình.

Không điều nào trong số này thay bạn đọc kết quả. Nó chỉ có nghĩa là việc đọc mất vài phút thay vì hàng giờ bạn phải bỏ ra để tự viết từ đầu.

Kết luận

ChatGPT hữu ích cho phát triển modpack khi bạn bắt nó làm việc trong đúng những ràng buộc thật của pack. Hãy cho nó phiên bản game chính xác, bản dựng loader, định dạng đích và một ví dụ đã biết là đúng; rồi coi mọi công thức, khối quest và chẩn đoán chỉ là bản nháp phải sống sót qua log và một máy thử nghiệm thật. Như vậy bạn giữ được lợi thế tốc độ mà không trao cho mô hình thứ quyền lực nó chưa xứng đáng có.

Câu hỏi thường gặp

AI có đọc được crash log của Minecraft không?

Có. Hãy dán toàn bộ crash report, hoặc ít nhất 100 dòng đầu cùng mọi khối Caused by: cùng với phiên bản Minecraft và bản dựng loader. Một mô hình đủ tốt có thể đọc stack trace và xếp hạng các mod khả nghi. Hãy dùng nó để rút ngắn việc dò nhị phân mù, rồi xác nhận giả thuyết trên một máy thử nghiệm.

Dùng ChatGPT cho công thức KubeJS thế nào?

Luôn nêu rõ phiên bản Minecraft, bản dựng loader và bản dựng KubeJS đã cài. KubeJS 6.x là nhánh cho Minecraft 1.20.1, còn KubeJS 7.2.x là nhánh cho Minecraft 1.21.1. Hãy dán một công thức chạy được từ server_scripts/ để nó khớp phong cách của bạn, rồi kiểm chứng từng item ID và đối chiếu API với log KubeJS của bạn.

Prompt nào hiệu quả khi viết FTB Quests?

Với Minecraft 1.21.1, hãy nêu rõ từng quy tắc SNBT nhiều dòng của FTB: không dùng dấu phẩy giữa các trường, bám theo định dạng ID thập lục phân 16 ký tự mà các quest hiện có đang dùng, giữ nguyên hậu tố kiểu số ở những chỗ nguồn có dùng, và đừng trộn trường cấp nhiệm vụ với trường cấp chương như filename. Hãy kèm theo một khối đã biết là đúng và kiểm chứng kết quả trước khi nạp. Trên Minecraft 26.1.2 trở lên, FTB Quests lưu dữ liệu này dưới dạng JSON5, nên hãy dùng ví dụ JSON5 khớp phiên bản.

AI có viết được mod hay modpack Minecraft tốt không?

Tự thân thì không. AI tăng tốc cho lập trình viên biết đọc và kiểm chứng kết quả của nó, bằng cách soạn công thức, quest và chẩn đoán nhanh hơn viết từ đầu. Nó không tạo ra mod hay pack chạy được một cách đáng tin cậy nếu không có người rà soát. Dùng như công cụ nháp trong tay người rành lĩnh vực, đó là sự tăng tốc thật sự; coi nó là tác giả tự chủ, nó sẽ đẩy ra những lỗi lẽ ra tránh được.

Tôi cần cho AI biết phiên bản Minecraft và loader nào?

Cả hai, mọi lần. Hãy nêu phiên bản Minecraft chính xác, chẳng hạn 1.21.1, cùng loader và bản dựng chính xác cho Forge, NeoForge, Fabric hoặc Quilt. Thiếu chúng, mô hình có thể chọn cú pháp lỗi thời hoặc không tương thích với loader. Hãy kiểm chứng kết quả trong một pack thử nghiệm trước khi đưa lên môi trường thật.

Chia sẻ

Thêm bài viết từ blog

Tiếp tục đọc.

Sẵn sàng triển khai? Từ $2.48/tháng.

Cloud độc lập, từ 2008. AMD EPYC, NVMe, 40 Gbps. Hoàn tiền trong 14 ngày.