Cómo crear Bloques en Hytale

Hytale: Guías, Mods, Opiniones | Videojuegos en CIBERED

Crear bloques personalizados en Hytale requiere habilitar asset packs y organizar correctamente tus archivos. Esta guía te mostrará cómo hacerlo paso a paso.

Explorando el Código de HytaleServer.jar

Configuración Inicial

Antes de crear cualquier bloque, asegúrate de que los asset packs estén habilitados y que tu proyecto tenga la estructura de carpetas correcta.

Habilitar Asset Packs

En el archivo manifest.json, activa la opción IncludesAssetPack:

"IncludesAssetPack": true

Estructura de Carpetas Recomendada

Crea la siguiente estructura de carpetas dentro de tu proyecto:

resources/
├─ Server/
│  ├─ Item/
│  │  └─ Items/
│  └─ Languages/
│     └─ en-US/
├─ Common/
│  ├─ Icons/
│  ├─ Blocks/
│  │  └─ my_new_block/
│  │     └─ model.blockymodel
│  └─ BlockTextures/
│     └─ texture.png

Esta organización asegura que Hytale pueda localizar correctamente modelos, texturas y traducciones.


Traducciones de Bloques

Para que tu bloque tenga nombre y descripción en el juego, agrega traducciones en:

Server/Languages/en-US/items.lang

Ejemplo:

my_new_block.name = Mi Nuevo Bloque
my_new_block.description = Una descripción de mi bloque

Nota: Puedes agregar más idiomas creando carpetas adicionales dentro de Languages/.


Crear un Bloque Básico (Cubo)

Para un bloque cúbico simple, crea un archivo JSON en:

Server/Item/Items/my_new_block.json

Contenido de ejemplo:

{
  "TranslationProperties": {
    "Name": "items.my_new_block.name",
    "Description": "items.my_new_block.description"
  },
  "Id": "My_New_Block",
  "MaxStack": 100,
  "Icon": "Icons/ItemsGenerated/my_new_block.png",
  "Categories": ["Blocks.Rocks"],
  "PlayerAnimationsId": "Block",
  "Set": "Rock_Stone",
  "BlockType": {
    "Material": "Solid",
    "DrawType": "Cube",
    "Group": "Stone",
    "Flags": {},
    "Gathering": {
      "Breaking": {
        "GatherType": "Rocks",
        "ItemId": "my_new_block"
      }
    },
    "BlockParticleSetId": "Stone",
    "Textures": [
      {
        "All": "BlockTextures/my_new_block.png"
      }
    ],
    "ParticleColor": "#aeae8c",
    "BlockSoundSetId": "Stone",
    "BlockBreakingDecalId": "Breaking_Decals_Rock"
  },
  "ResourceTypes": [
    {
      "Id": "Rock"
    }
  ]
}

Explicación de Campos Clave

  • TranslationProperties: Vincula el bloque con sus traducciones de nombre y descripción.
  • Id: Identificador único del bloque.
  • MaxStack: Cantidad máxima que puede apilar el jugador.
  • Icon: Ruta del icono que se mostrará en inventario.
  • BlockType: Define las propiedades del bloque, como material, tipo de dibujo, texturas, partículas y sonidos.
  • Gathering: Determina cómo se recoge el bloque y qué objeto se obtiene al romperlo.
  • Textures: Ruta a las texturas utilizadas en el bloque.

Asegúrate de que todos los archivos referenciados existan y que las rutas sean correctas.