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.
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.
