Guías / Construcción y recursos
Datos de modelo personalizados: dar a un objeto muchos modelos sin reemplazar nada
El sistema de modelos de objeto sustituyó al antiguo predicado CustomModelData. Aquí tienes la estructura de carpetas, el JSON que asigna valores a modelos y por qué tu textura aparece como un cubo morado.
Los modelos de objeto personalizados permiten que un servidor entregue una "varita mágica" que en realidad es una caña con zanahoria con un modelo distinto. El mecanismo cambió, y la mayoría de los tutoriales siguen describiendo el antiguo.
Qué cambió
Forma antigua — un bloque predicate dentro del archivo de modelo del objeto base, indexado por custom_model_data como un número:
{ "predicate": { "custom_model_data": 1 }, "model": "item/wand" }
Forma actual — una definición items/ que selecciona un modelo:
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" } }
]
}
}
El fallback es el aspecto que sigue teniendo una caña con zanahoria normal. Sin él, todas las que no estén modificadas en el mundo se renderizan como el cubo morado y negro de modelo ausente.
La estructura de carpetas
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 en su forma más simple:
{ "parent": "minecraft:item/generated", "textures": { "layer0": "minecraft:item/wand" } }
Fíjate en que la ruta de la textura no lleva el prefijo textures/ ni .png — esa es la causa más común de un cubo morado y negro.
Cómo dar el objeto
/give @p carrot_on_a_stick[custom_model_data={floats:[1]}]
El componente ahora acepta un objeto con listas tipadas, no un entero sin más. custom_model_data=1 es la sintaxis antigua, y el comando ahora la rechaza por mal formada.
Por qué aparece como un cubo morado
Por orden de probabilidad:
- Ruta de textura incorrecta — incluye
textures/o.png, o el archivo no está donde dice la ruta. - Mayúsculas y minúsculas en el nombre del archivo — el juego distingue entre mayúsculas y minúsculas incluso donde tu sistema operativo no lo hace.
pack.mcmetadesactualizado — 26.x quieremin_formatymax_format; un número de formato actual en unpack_formatsin más hace que el paquete aparezca como incompatible.- Comprimido mal —
pack.mcmetadebe estar en la raíz del zip, no dentro de una carpeta dentro del zip.
Otros selectores
range_dispatch sobre un número es solo una opción. También puedes despachar por minecraft:display_context (modelo distinto en la mano frente a en un marco), minecraft:using_item, o minecraft:selected — que es como un arco muestra un estado tensado.
Construye el JSON de despacho, el archivo de modelo y el comando de entrega juntos en las Herramientas de modelo personalizado y componentes de objeto.