MC Toolkit

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:

  1. Ruta de textura incorrecta — incluye textures/ o .png, o el archivo no está donde dice la ruta.
  2. 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.
  3. pack.mcmeta desactualizado — 26.x quiere min_format y max_format; un número de formato actual en un pack_format sin más hace que el paquete aparezca como incompatible.
  4. Comprimido mal — pack.mcmeta debe 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.

Herramientas de modelo y componentes de objeto →

Más guías

Ver todas →