1. Wiki
  2. /Bloques
  3. /Tu primer bloque personalizado

Tu primer bloque personalizado

Crea un bloque de rubí brillante para Minecraft Bedrock: el archivo del bloque, su textura, sonido, nombre y botín, paso a paso.

En esta guía vas a crear un bloque de rubí: un cubo rojo y brillante que emite un poco de luz, tarda un momento en picarse y se suelta a sí mismo al romperlo. Es el "hola mundo" de la creación de bloques, y todos los bloques más elaborados empiezan igual.

Hay dos formas de hacerlo. La rápida te lleva unos minutos en el móvil. La manual te enseña qué hace cada archivo.

La forma rápida: GodCraft

GodCraft crea por ti el bloque, su textura, su nombre y su botín. Nunca tocas un archivo JSON.

  1. Abre el Taller y añade un bloque a tu complemento.
  2. Pinta las caras en el editor de píxeles, o parte de una textura del juego base y cámbiale el color.
  3. Ajusta cuánto tarda en picarse, cuánta luz da y qué suelta.
  4. Toca Exportar. GodCraft escribe los manifiestos, los UUID y los archivos de idioma, y te da un .mcaddon.

¿Quieres saber qué pasa por dentro? Sigue leyendo.

A mano

Necesitas un paquete de comportamiento (BP) y un paquete de recursos (RP) ya preparados. Si todavía no los tienes, sigue primero Preparar el proyecto. Usaremos el espacio de nombres myname; cámbialo por tu propio nombre corto en todas partes.

Estos son todos los archivos que vas a tocar:

ArchivoPaqueteQué hace
blocks/ruby_block.jsonBPQué es el bloque y cómo se comporta
loot_tables/blocks/ruby_block.jsonBPQué suelta
textures/blocks/ruby_block.pngRPLa imagen
textures/terrain_texture.jsonRPLe da un nombre corto a la imagen
blocks.jsonRPEl sonido que hace
texts/en_US.langRPEl nombre que ven los jugadores

Paso 1: el archivo del bloque

Crea este archivo en tu paquete de comportamiento:

BP/blocks/ruby_block.json
{
  "format_version": "1.26.50",
  "minecraft:block": {
    "description": {
      "identifier": "myname:ruby_block",
      "menu_category": {
        "category": "construction"
      }
    },
    "components": {
      "minecraft:destructible_by_mining": {
        "seconds_to_destroy": 3
      },
      "minecraft:destructible_by_explosion": {
        "explosion_resistance": 6
      },
      "minecraft:friction": 0.4,
      "minecraft:light_emission": 4,
      "minecraft:map_color": "#9b1c2b",
      "minecraft:geometry": "minecraft:geometry.full_block",
      "minecraft:material_instances": {
        "*": {
          "texture": "ruby_block",
          "render_method": "opaque"
        }
      },
      "minecraft:loot": "loot_tables/blocks/ruby_block.json"
    }
  }
}

La parte description dice quién es el bloque:

  • identifier es el ID del bloque, formado por tu espacio de nombres y un nombre. Lo escribirás en comandos como /give @s myname:ruby_block.
  • menu_category elige la pestaña del inventario creativo. Las opciones son construction, nature, equipment, items y none (oculto).

La parte components dice cómo se comporta:

Caras distintas

¿Quieres una parte de arriba y unos lados diferentes, como un bloque de hierba? Añade más claves junto a * en material_instances, como up, down, north, south, east y west. Cualquier cara que no pongas usa *.

Paso 2: la textura

Dibuja un PNG de 16x16 píxeles y guárdalo en tu paquete de recursos como RP/textures/blocks/ruby_block.png.

¿Eres nuevo en el pixel art? La guía Texturas pixeladas explica tamaños, transparencia y sombreado.

Paso 3: dale un nombre corto a la textura

Los bloques no apuntan directamente a archivos PNG. Usan un nombre corto de terrain_texture.json. Si tu paquete ya tiene este archivo, añade la entrada ruby_block a texture_data. Si no, créalo:

RP/textures/terrain_texture.json
{
  "resource_pack_name": "myname",
  "texture_name": "atlas.terrain",
  "texture_data": {
    "ruby_block": {
      "textures": "textures/blocks/ruby_block"
    }
  }
}

Fíjate en que la ruta no lleva .png al final. El juego encuentra el archivo solo.

Paso 4: el sonido

El blocks.json del paquete de recursos le dice al juego qué conjunto de sonidos reproducir cuando caminas sobre el bloque, lo colocas o lo rompes:

RP/blocks.json
{
  "format_version": "1.21.40",
  "myname:ruby_block": {
    "sound": "stone"
  }
}

Otros conjuntos de sonidos habituales de los bloques del juego base son wood, glass, metal, grass, sand, cloth, copper y deepslate.

Paso 5: el nombre

Sin un nombre, el juego muestra algo como tile.myname:ruby_block.name. Añade esta línea a tu archivo de idioma:

RP/texts/en_US.lang
tile.myname:ruby_block.name=Ruby Block

Paso 6: el botín

La tabla de botín decide qué se suelta. Esta suelta el propio bloque, una vez:

BP/loot_tables/blocks/ruby_block.json
{
  "pools": [
    {
      "rolls": 1,
      "entries": [
        {
          "type": "item",
          "name": "myname:ruby_block"
        }
      ]
    }
  ]
}

Cambia name por cualquier ID de objeto, como minecraft:diamond, para que el bloque suelte otra cosa.

Prueba tu bloque

  1. Exporta e instala los dos paquetes como se explica en Exportar e instalar, y actívalos en un mundo.
  2. Abre el inventario creativo y busca en la pestaña Construcción, o ejecuta /give @s myname:ruby_block. Consulta /give.
  3. Colócalo de noche: debería brillar suavemente.
  4. Cambia a supervivencia y pícalo. Debería tardar unos segundos y soltarse a sí mismo.

Problemas habituales

Tablero de ajedrez morado y negro

El juego no encuentra la textura. Comprueba que el nombre corto de material_instances coincide exactamente con la clave de terrain_texture.json, y que la ruta de terrain_texture.json coincide con la ubicación real del archivo, sin .png.

  • El bloque no aparece en el inventario. Comprueba que menu_category no es none y que el paquete de comportamiento está activado.
  • El bloque tiene un nombre raro. La línea del .lang debe usar el ID completo, con el espacio de nombres.
  • El bloque no suelta nada. Comprueba que la ruta de minecraft:loot empieza por loot_tables/ y coincide con el nombre del archivo.

Tienes más soluciones en Solución de problemas.

Qué sigue

We use cookies to improve your experience and analyse site traffic. Learn more