Données de modèle personnalisées : plusieurs modèles pour un même objet sans rien remplacer
Le système de modèles d'objets a remplacé l'ancien prédicat CustomModelData. Voici l'arborescence des dossiers, le JSON qui associe les valeurs aux modèles, et pourquoi votre texture apparaît comme un cube violet.
Les modèles d'objets personnalisés permettent à un serveur de distribuer une « baguette magique » qui est en réalité une Carotte sur un bâton avec un modèle différent. Le mécanisme a changé, et la plupart des tutoriels décrivent encore l'ancienne méthode.
Ce qui a changé
Ancienne méthode — un bloc predicate à l'intérieur du fichier de modèle de l'objet de base, indexé sur custom_model_data en tant que nombre :
{ "predicate": { "custom_model_data": 1 }, "model": "item/wand" }
Méthode actuelle — une définition items/ qui sélectionne un modèle :
assets/minecraft/items/carrot_on_a_stick.json
{
"model": {
"type": "minecraft:range_dispatch",
"property": "minecraft:custom_model_data",
"fallback": { "type": "minecraft:model", "model": "minecraft:item/carrot_on_a_stick" },
"entries": [
{ "threshold": 1, "model": { "type": "minecraft:model", "model": "minecraft:item/wand" } }
]
}
}
Le fallback est l'apparence d'une Carotte sur un bâton ordinaire. Sans cela, chaque Carotte sur un bâton non modifiée dans le monde se transformerait en votre baguette.
L'arborescence des dossiers
pack.mcmeta
assets/minecraft/
├── items/carrot_on_a_stick.json the dispatch
├── models/item/wand.json the model
└── textures/item/wand.png the texture
models/item/wand.json dans sa forme la plus simple :
{ "parent": "minecraft:item/generated", "textures": { "layer0": "minecraft:item/wand" } }
Notez que le chemin de la texture n'a pas de préfixe textures/ et pas de .png — c'est la cause la plus fréquente d'un cube violet et noir.
Donner l'objet
/give @p carrot_on_a_stick[custom_model_data={floats:[1]}]
Le composant prend désormais un objet avec des listes typées, et non un simple entier. custom_model_data=1 est l'ancienne syntaxe et ne fait rien en silence.
Pourquoi il apparaît comme un cube violet
Par ordre de probabilité :
- Chemin de texture incorrect — inclut
textures/ou.png, ou le fichier n'est pas à l'emplacement indiqué par le chemin. - Casse du nom de fichier — le jeu est sensible à la casse, même si votre système d'exploitation ne l'est pas.
pack_formattrop bas — le pack se charge mais le dossieritems/est ignoré. Faites correspondre le format à la version sur laquelle vous êtes.- Compression incorrecte —
pack.mcmetadoit être à la racine du fichier zip, et non à l'intérieur d'un dossier dans le fichier zip.
Autres sélecteurs
range_dispatch sur un nombre n'est qu'une option. Vous pouvez également dispatcher sur minecraft:display_context (modèle différent en main par rapport à un cadre), minecraft:using_item, ou minecraft:selected — c'est ainsi qu'un Arc montre un état tendu.
Construisez le JSON de dispatch, le fichier de modèle et la commande de don ensemble dans les Outils de modèle personnalisé et de composant d'objet.