Categoría: Plugins de Minecraft
Crear un servidor de Minecraft con un equipo de IA#4¡Un flujo de paquetes de recursos donde ChatGPT dibuja y Claude revisa! 🎨
Esta entrada es una traducción del original en coreano.
De un vistazo
ChatGPT dibuja; Claude se encarga de las medidas y la revisión. Verás cómo poner coordenadas de píxeles en el prompt y pedir que la cuadrícula se dibuje primero con Python, el JSON de definición de ítem para las 3 fases del arco en 1.21.11 y 5 fallos que habrían llegado al juego sin revisión.
- Paquete de recursos de Minecraft Java 1.21.11 (pack_format 75) · fusionado y probado en el juego el 2026-09-30
- Las texturas de ítems van en textures/item/; si las pones en textures/gui/ aparece la cuadrícula morada y negra
- Los fondos de GUI hechos con glifos de fuente, solo al tamaño exacto de la ventana (1x): a 2x (352 px) no se dibujaron en el juego
- Desde 1.21.4, el tensado del arco se hace con condition + range_dispatch en la definición de items/, no con overrides
Índice8 secciones

¡Hola! Soy Mojangcam 😎
En el #3 anterior hablamos del balance de números. Este episodio va de ilustraciones. Este servidor tiene GUI personalizadas (el menú del ayudante "Orbel" y el diario de misiones), decenas de íconos y las ilustraciones de las armas de cada clase. No había forma de dibujarlo todo yo, así que repartí los papeles.
| Quién | Qué hace |
|---|---|
| ChatGPT | Dibujar + empaquetar los archivos y entregarlos en un zip |
| Claude (líder) | Escribir los prompts, revisar el zip, fusionarlo en el paquete de recursos, subir la versión |
| Yo | Copiar el prompt y pegarlo en ChatGPT, pasarle el zip a Claude, comprobarlo en el juego |
En este episodio te cuento este flujo de trabajo y los 5 fallos que atrapó la revisión.

📌 Paso 1 - El prompt: coordenadas en lugar de "dibújalo bonito"
En una GUI de Minecraft, basta con que una casilla se desplace 1 píxel para que se note. Por eso en el prompt no escribí sensaciones, sino especificaciones.
- Fórmula del tamaño de la ventana: ancho 176, alto
114 + 18 × 줄 수(18 por cada fila), casillas de 18×18 a partir de(7 + 18c, 17 + 18r) - Una tabla con el número de slot y las coordenadas del rectángulo
(x, y, w, h)de cada botón - "Dibuja primero la cuadrícula con exactitud usando Python (PIL) y pon encima solo la textura y la decoración"
- El interior de la ventana, totalmente opaco (para que no se transparente la ventana gris de vanilla)
- Nada de texto en las imágenes: los nombres de los botones van como tooltip en el juego
- Prohibido todo lo que parezca una capa, y prohibido imitar el estilo de juegos o marcas reales
- El resultado, un solo zip: las piezas del paquete de recursos + vistas previas +
validation.json+ un README en coreano
Si la IA de imágenes dibuja la cuadrícula "a ojo", todo se arruina. Lo que más funcionó fue separar: la cuadrícula con código, el dibujo con IA.

📌 Paso 2 - La revisión: lo que hace Claude al recibir el zip
- Abrir las imágenes de vista previa y mirarlas de verdad (sin fiarse solo del validation.json que escribió la IA)
- Medir el tamaño de las imágenes, la transparencia y la posición de las casillas
- Comprobar que las texturas a las que apunta cada JSON de modelo existen de verdad
- Sobrescribir los archivos que choquen con el paquete de recursos existente después de hacer una copia de seguridad
- Subir la versión del paquete de recursos, empaquetarlo en zip y publicarlo en el canal de paquetes de recursos de Discord
En este proceso salieron cinco fallos.
📌 Fallo 1 - Ruta de texturas: a un paso de la cuadrícula morada y negra
En el primer prompt puse la ruta de los íconos como textures/gui/quest/<id>.png. ChatGPT me preguntó de vuelta: "con esta ruta, el modelo de ítem no la puede leer".
Minecraft agrupa las imágenes que usan los modelos de ítem en el atlas de bloques e ítems, y por defecto solo incluye las carpetas textures/block/ y textures/item/. Si las pones en textures/gui/, no entran en el atlas y aparece la cuadrícula morada y negra.
{
"parent": "minecraft:item/generated",
"textures": { "layer0": "myserver:item/gui/quest/crest_main" }
}→ La imagen va en assets/myserver/textures/item/gui/quest/crest_main.png. (También se puede cambiar la configuración del atlas, pero lo evité porque implica tocar el espacio de nombres minecraft.)
📌 Fallo 2 - Los nombres de los dos arcos, intercambiados
Recibí 6 imágenes del arco tensándose (2 arcos × 3 fases). En la vista previa se veían bien. Pero al compararlas píxel a píxel con las imágenes originales, algo no cuadraba.
- Todas las imágenes que llegaron con el nombre
t0(arco del aventurero) eran en realidad delt1(arco del juramento), y al revés también - La empuñadura estaba desplazada hasta 9 píxeles respecto al original → al tensar, el arco parecía saltar de la mano
- Había puntitos como de polvo esparcidos alrededor del arco

Así que Claude las corrigió directamente.
- Comparar con los originales y corregir los nombres
- Buscar el centro de la parte enrollada color turquesa de la empuñadura y alinearla con la posición original
- Borrar los grupitos sueltos de unos pocos píxeles

Desde 1.21.4, el tensado del arco ya no se hace con los viejos overrides, sino con un archivo de definición de ítem. Este es el archivo que usé de verdad en 1.21.11.
{
"model": {
"type": "minecraft:condition",
"property": "minecraft:using_item",
"on_false": { "type": "minecraft:model", "model": "myserver:item/t0_sylvanor_bow_a" },
"on_true": {
"type": "minecraft:range_dispatch",
"property": "minecraft:use_duration",
"scale": 0.05,
"fallback": { "type": "minecraft:model", "model": "myserver:item/t0_sylvanor_bow_a_pulling_0" },
"entries": [
{ "threshold": 0.65, "model": { "type": "minecraft:model", "model": "myserver:item/t0_sylvanor_bow_a_pulling_1" } },
{ "threshold": 0.9, "model": { "type": "minecraft:model", "model": "myserver:item/t0_sylvanor_bow_a_pulling_2" } }
]
}
}
}Vamos a desmenuzarlo 💡
assets/myserver/items/<id>.json: esta ubicación es la "definición de ítem" de 1.21.4+. El servidor solo le poneitem_model = myserver:<id>al ítem.using_item: si el arco se está tensandouse_duration+scale: 0.05: tiempo tensado (ticks) × 0.05 → 1.0 a los 20 ticks (1 segundo). Es el mismo valor que el arco de vanilla.
📌 Fallo 3 - El fondo de la GUI no se ve
Puse los fondos del menú de Orbel y de la ventana de misiones, pero al abrirlos en el juego aparecía la ventana gris de vanilla sin fondo, y el título salía desplazado a la izquierda, fuera de la ventana.

El fondo de una GUI personalizada se hace dibujando un único carácter enorme (un glifo de fuente) en el título de la ventana. Para que se viera nítido, metí el fondo a tamaño 2x (352×444), pero un glifo de ese tamaño no se dibujó en el juego. Parece deberse al límite de tamaño del atlas donde van los glifos de fuente (supongo que 256 píxeles). Y como no había fondo, solo se aplicaba el espaciado negativo que desplaza el título a la izquierda, así que el título acabó fuera de sitio.
→ Al cambiarlo por el fondo a 1x (176×222) que ChatGPT había incluido aparte, se resolvió al instante. Desde entonces dejé escrita la regla: los fondos de fuente, solo a 1x.
📌 Fallo 4 - Un arco que parpadea con ruido
Después de añadir el tensado, los laterales del arco se veían escalonados, con un parpadeo de ruido.

Minecraft convierte en 3D los ítems 2D que llevas en la mano añadiendo grosor a cada píxel. Con una imagen de 16 píxeles no pasa nada, pero nuestro arco es de 128 píxeles, así que se generan cientos de líneas finas y caras laterales de píxeles, y eso se convierte en rayas.
- Primero lo cambié a una sola lámina de grosor 0 → las rayas desaparecieron, pero se veía demasiado fino y raro
- Así que, con un script, hice un modelo que agrupa solo el cuerpo del arco en una cuadrícula de 64 celdas con un grosor fino y deja la cuerda y la flecha como lámina (unas 70 a 100 cajas por modelo)

📌 Fallo 5 - Un "arco 3D" reducido a 16 píxeles
También le encargué a ChatGPT un arco en 3D de verdad. El modelo que recibí había reducido la imagen de 128 píxeles a 16×16 y la había convertido en cajas de un solo color por celda. Desaparecieron el diseño, la parte enrollada y los adornos de plumas, y el cuerpo quedaba cortado, con puntos flotando. Además, el tensado usaba el método overrides, eliminado en 1.21.4, así que no funcionaba en 1.21.11.

→ No lo apliqué y lo guardé. Más adelante volveré a pedir el 3D de otra forma: modelando el cuerpo a mano en Blockbench, con curvas por tramos.
📌 Para cerrar
- La cuadrícula con código, el dibujo con IA: en el prompt, coordenadas en lugar de sensaciones
- En la revisión, mira tú mismo las vistas previas y compáralas píxel a píxel con los originales
- Lo que hay que recordar en 1.21.11: las imágenes de ítems en
textures/item/, los fondos de fuente a 1x y el tensado del arco con el archivo de definición en items/ - Aunque lo haya hecho una IA, lo que hay que rechazar, se rechaza
El próximo episodio, el último de la serie, trata de la gestión en Discord. Veremos las etiquetas del foro de decisiones y las reglas de marcas de check, el foro de la lista de comandos y el canal de paquetes de recursos: canales que el bot gestiona solo. ¡No te lo pierdas! 🙌
Yo marqué la dirección de este artículo y lo redacté junto con Claude. Este servidor es un proyecto personal, no es contenido oficial de Minecraft y no tiene relación con Mojang ni Microsoft.
Serie · Parte 4 de 5
Crear un servidor de Minecraft con un equipo de IA
- #1¡1 líder de equipo IA + 15 miembros creando un plugin MMORPG! 🤖
- #2¡13 módulos en un solo plugin! La estructura del core y el incidente del 'daño 1000029' 🧩
- #3¡Números ×10, curva de experiencia de 12 horas y simulación de 6 clases! 📊
- #4¡Un flujo de paquetes de recursos donde ChatGPT dibuja y Claude revisa! 🎨Estás aquí
- #5¡Gestionar el equipo de desarrollo con un bot de Discord! Foro de decisiones, lista de comandos y canal de paquetes de recursos 🤝
