Aller au contenu principal
50 % de réduction toutes les offres, durée limitée. À partir de $2.48/mo
14 min left
Jeux et médias

Cinq façons pratiques d'utiliser ChatGPT pour le développement de modpacks Minecraft

B Par Bill 14 min de lecture
AI chat window returning a diagnosis next to a Minecraft crash log and KubeJS recipe script

Vous collez un rapport de crash dans ChatGPT et il désigne avec assurance un mod qui n'est même pas dans votre pack. Vous demandez une recette KubeJS et vous obtenez event.recipes.minecraft.shaped(...), une syntaxe héritée qui ne correspond pas aux exemples de recettes KubeJS actuels. Vous demandez un bloc FTB Quests et il vous rend des virgules à la manière du JSON, ce qui peut casser le format FTB SNBT multiligne utilisé par les fichiers de quêtes de l'ère 1.21.1.

L'outil n'est pas cassé. C'est le prompt. Les modèles d'IA retombent souvent sur d'anciens exemples de modding Minecraft, ce qui est risqué pour les fichiers KubeJS et FTB Quests actuels. Donnez au modèle la version exacte du jeu, la build du loader, le format de fichier visé et un exemple fonctionnel tiré de votre propre code, et la sortie passe de « manifestement faux » à « globalement juste, vérifiez le reste ».

C'est tout l'enjeu ici : ces prompts fonctionnent dans l'assistant que vous payez déjà (ChatGPT, Claude, Copilot), sans inscription à un outil de crash ni abonnement supplémentaire. Et ils supposent que vous savez déjà lire la sortie. Le KubeJS généré par IA est un raccourci de rédaction pour quelqu'un qui connaît KubeJS ; si vous ne savez pas repérer un ID d'objet halluciné, le KubeJS généré par IA vous mordra. Voici cinq prompts spécifiques à une tâche et conscients de la version, chacun avec un exemple réaliste de ce qui revient et une note sur ce qui déraille.

En bref

Les meilleurs prompts ChatGPT pour le développement de modpacks Minecraft fournissent trois choses à chaque fois : la version exacte de Minecraft, le mod loader exact et sa version, et un exemple fonctionnel tiré de votre propre code. Avec ce contexte, l'IA produit des premiers jets plus utiles pour le tri des crashs, les recettes KubeJS, le SNBT de FTB Quests, les listes de mods et les messages de commit. Mais c'est à vous de vérifier chaque ID d'objet, chaque appel d'API et chaque ID de quête hexadécimal. L'IA accélère un moddeur compétent ; elle n'écrit pas un pack.

Ce que ces prompts ne feront pas

Fixez les attentes avant de copier quoi que ce soit :

  • Ils ne construiront pas un modpack à votre place. Chaque prompt rédige un seul artefact (une recette, un bloc de quête, un diagnostic) que vous déposez dans un pack que vous concevez déjà.
  • Ils ne vous apprendront pas KubeJS ni SNBT. Si la syntaxe ci-dessous vous semble inconnue, les modes de défaillance vous échapperont. Apprenez d'abord le format, puis utilisez l'IA pour aller plus vite.
  • Ils ne remplaceront pas un vrai serveur de test. L'IA raisonne sur une trace d'exécution ; elle ne peut pas vous dire que le pack démarre réellement avec 150 mods chargés.
  • Ils ne garantiront pas une sortie correcte. Traitez tout ce que renvoie l'IA comme un premier jet à relire, pas comme une réponse finale.

Pourquoi l'IA a besoin du bon contexte avant d'écrire quoi que ce soit

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

Voici ce qui distingue un prompt qui marche d'un prompt générique du type « fais-moi une recette Minecraft » : le contexte. Omettez la version et le loader, et le modèle peut générer une syntaxe KubeJS ancienne pour votre pack 1.21.1 NeoForge, inventer des ID d'objets inexistants ou formater du FTB SNBT comme du JSON ordinaire. Le script risque de ne rien faire ou d'échouer avec une erreur enfouie dans un log que vous devrez quand même lire.

Chaque prompt de cet article porte donc le même contexte en trois parties, que vous complétez à partir de votre propre pack :

  1. Version exacte de Minecraft : 1.20.1, 1.21.1, celle sur laquelle vous êtes réellement.
  2. Mod loader exact et version : Forge, NeoForge, Fabric ou Quilt, plus le numéro de build.
  3. Un exemple fonctionnel tiré de votre propre code, chaque fois que vous pouvez en fournir un. Une vraie recette tirée de votre server_scripts/, un bloc de quête valide, un message de commit antérieur. C'est le levier de qualité le plus puissant : le modèle reproduit le style et l'API que vous lui donnez bien plus fidèlement que ceux qu'il devine.

Astuce de pro : La ligne de version n'est pas une décoration facultative. KubeJS 6.x pour Minecraft 1.20.1 et KubeJS 7.2.x pour Minecraft 1.21.1 sont des cibles différentes, et la build exacte installée compte encore. Un prompt qui omet les versions exactes du jeu, du loader et de KubeJS demande au modèle de deviner.

Prompt : tri des logs de crash

Minecraft crash log moving through suspect ranking and controlled mod testing

Ce prompt transforme un mur de trace d'exécution en une liste classée de mods suspects et une prochaine étape, ce qui est le moyen le plus rapide de court-circuiter une recherche dichotomique à l'aveugle.

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.

Une réponse réaliste ressemble à ceci :

Cause probable : un conflit de mixin au chargement du monde. Deux mods injectent peut-être dans la même classe. Suspects : (1) la frame org.spongepowered.asm.mixin.transformer pointe vers un mixin qui échoue à s'appliquer ; le mod propriétaire de la classe ciblée est le premier suspect. (2) Un second mod touchant au rendu des entités apparaît une frame plus haut. (3) Moins probable, un mod de configuration chargé juste avant l'échec. Prochaine étape : retirez les deux suspects, démarrez, puis réintroduisez-les un par un. Cela confirme la paire plus vite que de supprimer la moitié de la liste.

Ce qu'il faut ajuster : Si le diagnostic revient vague (« un mod entre en conflit »), c'est que vous n'avez pas donné assez de trace : collez le rapport de crash complet plutôt que les 100 premières lignes, et ajoutez la liste des mods avec leurs versions. Si ça reste évasif, c'est que le log ne nomme réellement aucun coupable, et vous repartez sur une recherche dichotomique.

Là où ça dérape : L'IA désignera un mod coupable avec une assurance totale alors que la vraie cause est ailleurs dans la trace. Traitez sa réponse comme une hypothèse classée, pas comme un verdict. Vous la confirmez en retirant réellement des mods et en démarrant.

C'est l'étape que les gens sautent. L'IA lit la trace d'exécution ; elle ne peut pas vous dire que le pack démarre proprement en conditions réelles, car certains crashs n'apparaissent qu'une fois plusieurs mods initialisés ensemble sur un serveur, et non lors d'un lancement solo rapide. C'est là que vous voulez un serveur de test jetable. La marketplace de Cloudzy propose aussi un déploiement Minecraft Forge en un clic sur Ubuntu Server 24.04 LTS. La marketplace indique 2 Go de RAM comme minimum, mais c'est le plancher de la plateforme, pas une cible de dimensionnement pour un gros modpack. Pour un petit pack de test, 4 Go de RAM et 2 vCPU sont un point de départ raisonnable ; pour plus de 100 mods, partez sur environ 8 Go et 4 vCPU, puis ajustez selon le nombre de joueurs, la génération du monde et un vrai profilage. Lancez-le, confirmez le correctif en charge, puis détruisez-le.

VPS pour le gaming

Hébergez des serveurs de jeu sans latence avec un hébergement VPS NVMe haute vitesse.

VPS pour le gaming

Prompt : génération de recettes KubeJS

Ce prompt rédige une recette KubeJS dans l'API exacte qu'utilise votre pack, à condition de coller d'abord une recette fonctionnelle tirée de vos propres scripts pour que le modèle s'y aligne.

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.

Avec la ligne KubeJS 7.2.x pour Minecraft 1.21.1 et un exemple collé, vous obtenez la syntaxe event.shaped() actuelle, telle que la montre la documentation des recettes 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' }
  )
})

Ce qu'il faut ajuster : Pour Minecraft 1.20.1, précisez votre build de loader exacte et la build KubeJS 6.x exacte installée pour que le modèle s'aligne sur cette ligne. Pour retirer ou remplacer une recette vanilla, demandez explicitement event.remove({ output: '...' }) or event.replaceInput(...) en toutes lettres : nommez la méthode pour qu'il n'improvise pas.

Là où ça dérape : Deux défaillances dominent ici : les ID d'objets hallucinés (create:andesite_alloy existe ; create:andesite_gear peut-être pas) et la sortie dans la mauvaise version quand vous oubliez la ligne cible. Vérifiez chaque ID d'objet face à vos mods installés, puis déposez le script dans votre pack de test et lisez kubejs/logs/server.log.

Astuce de pro : Coller un exemple connu comme valide tiré de votre propre server_scripts/ avant de demander quoi que ce soit de nouveau vaut plus que n'importe quelle formulation de prompt. Le modèle imite l'exemple concret qu'il a sous les yeux bien plus fidèlement que l'API « correcte » et abstraite dont il se souvient à moitié.

Prompt : rédaction de livres FTB Quests (SNBT sur 1.21.1)

FTB Quests SNBT and JSON5 formats compared across Minecraft versions

Ce prompt rédige des entrées FTB Quests au format SNBT étendu de FTB pour Minecraft 1.21.1. C'est la tâche IA la plus difficile de la série, car le SNBT ressemble à du JSON et le modèle veut désespérément le traiter comme du JSON. Pour Minecraft 26.1.2 et plus récent, FTB Quests utilise JSON5 à la place, donc n'utilisez pas ce prompt SNBT dans ce cas.

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.

Calquez la sortie sur un bloc dont vous savez déjà qu'il est valide :

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

Ce qu'il faut ajuster : Pour un chapitre complet plutôt qu'une seule tâche, demandez l'enveloppe de chapitre avec filename et un quests: [...] puis exigez un ID hexadécimal distinct de 16 caractères pour chaque quête. S'il réutilise des ID ou change de format, collez deux ou trois ID connus comme valides et dites-lui de s'y conformer.

Là où ça dérape : Il ajoute des virgules JSON au FTB SNBT multiligne, place la quantité requise à l'intérieur de la pile d'objets imbriquée au lieu du champ count de niveau tâche, ou génère des ID de quête malformés. Chacun de ces cas peut empêcher un chapitre de se charger ou fausser le comptage de la tâche. Validez chaque bloc face à une structure qui fonctionne et vérifiez le log serveur avant qu'il n'approche de config/ftbquests/.

Prompt : sélection de mods par thème

Ce prompt utilise l'IA comme raccourci d'idéation (une liste thématique de mods à aller vérifier), jamais comme source de vérité sur ce qui existe.

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.

Une réponse utile sépare les choix assumés des suppositions :

Exemples confirmés pour 1.21.1 / NeoForge (vérifiez le fichier exact) : Créer, pour l'automatisation et les machines ; Immersive Engineering, pour les machines multiblocs et la technologie industrielle. UNVERIFIED : [petits add-ons que le modèle ne peut pas confirmer]. Vérifiez la page du projet avant d'ajouter quoi que ce soit.

Ce qu'il faut ajuster : Contraignez davantage en ne demandant que des mods ayant une page CurseForge ou Modrinth confirmée, et réclamez une note de compatibilité d'une ligne par mod (dépendances, conflits connus) pour que votre liste serve aussi de check-list de recherche.

Là où ça dérape : L'IA hallucine sans retenue des noms de mods et des disponibilités de version. Elle inventera un mod au nom plausible qui n'existe pas, ou affirmera une build 1.21 pour quelque chose qui s'est arrêté en 1.19. Chaque suggestion est une piste à confirmer sur CurseForge ou Modrinth, pas une entrée pour votre modlist.

Prompt : rédaction de changelogs et de messages de commit

C'est la tâche IA la moins risquée et la plus fiable de toute la série : donnez-lui un diff que vous avez produit et demandez-lui de le résumer, il s'en sort vraiment bien.

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.

Donnez-lui un vrai diff et elle renvoie quelque chose que vous expédieriez vraiment :

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

Joueurs : cette mise à jour étend l'arbre technologique de Create avec des trains et des machines électriques, retire le mod de stockage listé dans le lot de changements et rafraîchit l'index de recettes JEI.

Ce qu'il faut ajuster : Fixez le ton explicitement : sec pour le journal de commits, plus chaleureux pour la note destinée aux joueurs. Pour une version complète, regroupez tout le diff de la mise à jour et demandez des sections de changelog groupées (Ajouté / Modifié / Supprimé).

Là où ça dérape : Presque rien, tant que vous la cantonnez au résumé du diff que vous avez fourni. Le seul vrai risque est qu'elle gonfle le changelog avec des changements que vous n'avez pas faits : ne lui demandez donc pas de « deviner ce qui a changé d'autre », donnez-lui le vrai diff et tenez-la à ça.

Quand ne pas faire confiance à la sortie (les modes de défaillance en un coup d'œil)

Si vous ne retenez qu'une section, que ce soit celle-ci. Sur toutes les tâches ci-dessus, l'IA échoue selon un petit ensemble de schémas prévisibles, et chacun a une parade dont vous avez déjà les pièces :

Mode de défaillanceOù ça se manifesteComment compenser
ID d'objets hallucinésRecettes KubeJS, objets de quêteVérifiez chaque ID face à vos mods réels ; collez de vrais ID dans le prompt
Mauvaise version de l'API KubeJSRecettes KubeJSMettez la version du jeu, la build du loader et la build exacte de KubeJS dans chaque prompt
SNBT traité comme du JSON (virgules)FTB QuestsIndiquez « pas de virgules entre champs de même niveau » dans le prompt ; validez face à un bloc connu comme valide
ID de quête invalides (minuscules / mauvaise longueur)FTB QuestsExigez 16 caractères hexadécimaux en majuscules ; amorcez avec des ID valides
Disponibilité de mods hallucinéeSélection de modsConfirmez chaque suggestion sur CurseForge/Modrinth avant de l'ajouter

Deux techniques couvrent l'essentiel. D'abord, mettez la version exacte du jeu, la build du loader, le format visé et un exemple fonctionnel dans chaque prompt. Ensuite, procédez en deux temps : générez l'artefact, puis recollez-le et demandez au modèle de le relire face à des contraintes précises, comme les délimiteurs FTB SNBT ou le format des ID de quête. Il attrape une part utile de ses propres erreurs quand vous le forcez à regarder deux fois.

Rien de tout cela ne vous dispense de lire la sortie. Cela signifie simplement que la lecture prend des minutes au lieu des heures que vous passeriez à tout écrire de zéro.

Conclusion

ChatGPT est utile au développement de modpacks quand vous le faites travailler contre les contraintes réelles de votre pack. Donnez-lui la version exacte du jeu, la build du loader, le format visé et un exemple connu comme valide ; puis traitez chaque recette, bloc de quête et diagnostic comme un brouillon qui doit survivre aux logs et à une vraie instance de test. C'est ainsi qu'on garde l'avantage de vitesse sans accorder au modèle une autorité qu'il n'a pas méritée.

Foire aux questions

L'IA peut-elle lire les logs de crash Minecraft ?

Oui. Collez le rapport de crash complet, ou au minimum les 100 premières lignes plus chaque bloc Caused by: ainsi que la version de Minecraft et la build du loader. Un modèle capable sait lire la trace d'exécution et classer les mods suspects. Utilisez-le pour court-circuiter une recherche dichotomique à l'aveugle, puis confirmez l'hypothèse sur une instance de test.

Comment utiliser ChatGPT pour les recettes KubeJS ?

Indiquez toujours la version de Minecraft, la build du loader et la build KubeJS exacte installée. KubeJS 6.x est la ligne Minecraft 1.20.1, tandis que KubeJS 7.2.x est la ligne Minecraft 1.21.1. Collez une recette fonctionnelle depuis server_scripts/ pour qu'il colle à votre style, puis vérifiez chaque ID d'objet et confirmez l'API face à votre log KubeJS.

Quels prompts fonctionnent pour écrire des FTB Quests ?

Pour Minecraft 1.21.1, énoncez les règles du SNBT multiligne de FTB : pas de virgules entre les champs, respect du format d'ID hexadécimal à 16 caractères utilisé par les quêtes existantes, conservation des suffixes de type numérique là où la source en emploie, et pas de mélange entre champs de tâche et champs de chapitre comme filename. Incluez un bloc connu comme valide et validez le résultat avant de le charger. Sur Minecraft 26.1.2 et plus récent, FTB Quests stocke ces données en JSON5 : utilisez donc un exemple JSON5 correspondant à la version.

L'IA écrit-elle de bons mods ou modpacks Minecraft ?

Pas toute seule. L'IA accélère un développeur capable de lire et de vérifier sa sortie, en rédigeant recettes, quêtes et diagnostics plus vite que s'il partait de zéro. Elle ne produit pas de manière fiable des mods ou des packs fonctionnels sans relecture. Utilisée comme outil de brouillon par quelqu'un qui connaît le domaine, c'est un vrai gain de vitesse ; traitée comme un auteur autonome, elle expédie des erreurs évitables.

Quelle version de Minecraft et quel loader dois-je indiquer à l'IA ?

Les deux, à chaque fois. Indiquez la version exacte de Minecraft, par exemple 1.21.1, ainsi que le loader et la build exacts pour Forge, NeoForge, Fabric ou Quilt. Sans cela, le modèle risque de choisir une syntaxe obsolète ou incompatible avec votre loader. Vérifiez le résultat dans un pack de test avant de l'emmener en production.

Partager

Plus d'articles du blog

Continuez la lecture.

Prêt à déployer ? À partir de 2,48 $/mois.

Cloud indépendant, depuis 2008. AMD EPYC, NVMe, 40 Gbps. Remboursement sous 14 jours.