Como crear mods en Hytale

hytale crear mods

Tutorial completo paso a paso (Early Access)

⚠️ Aviso importante (Early Access): Hytale está en acceso anticipado. Esto significa que rutas, nombres, APIs y ejemplos pueden cambiar con el tiempo. Esta guía intenta ser lo más clara y útil posible para empezar ya, pero asume que algunas cosas podrían actualizarse.

1) 🎮 ¿Qué es el modding en Hytale?

Hytale permite crear y modificar contenido del juego mediante mods. Lo bueno: su ecosistema está diseñado para ser muy accesible, especialmente gracias a herramientas integradas como el Asset Editor.

2) 🧩 Tipos de mods en Hytale

Índice
  1. 📦 A) Packs (recomendado para empezar)
  2. 🔌 B) Plugins (Java)
  3. ☠️ C) Early / Bootstrap Plugins
  4. Paso 1 — 📁 Crear la carpeta del Pack
  5. Paso 2 — 📄 Crear manifest.json
  6. Paso 3 — 🗂️ Crear Common y Server
    1. ¿Qué va en cada una?
  7. Paso 1 — 📄 Crear el JSON del bloque
  8. Paso 2 — 🎨 Crear la textura del bloque
  9. Paso 3 — 🌍 Crear traducción (nombre del bloque)
  10. Paso 4 — 🛠️ Editar en el Asset Editor
    1. Añadir el pack al mundo
    2. Abrir Asset Editor
  11. Paso 1 — Elegir el bloque
  12. Paso 2 — Crear una interacción ChangeState
  13. Paso 3 — Definir los estados y sus propiedades
  14. Paso 1 — Asignar animación en State
  15. Paso 2 — Preparar el modelo en Blockbench (GRUPOS)
  16. Paso 3 — Crear .blockyanim
    1. Qué puedes animar
  17. Ejemplo real (Wardrobes)
  18. Paso 1 — Descargar la plantilla de IntelliJ IDEA
    1. Qué ofrece la plantilla
  19. Paso 2 — Configuración del template
  20. Paso 3 — Abrir el proyecto en IntelliJ
  21. Paso 4 — Tips importantes
    1. Compilar un plugin compartible
    2. Ejecutar el juego/servidor desde el IDE
    3. Instalar el plugin
  22. 🙌 Créditos

📦 A) Packs (recomendado para empezar)

Los Packs son paquetes de contenido y assets. Sirven para añadir o modificar:

  • 🧱 Bloques
  • 🐉 Mobs
  • ⚔️ Ítems
  • ✨ Partículas, traducciones, etc.

✅ Gran ventaja: muchas cosas se modifican con el Asset Editor, sin programar.

🔌 B) Plugins (Java)

Los Plugins se escriben en Java y usan la API del juego para:

  • Añadir sistemas nuevos
  • Expandir funcionalidad vanilla
  • Crear lógica avanzada para servidores

☠️ C) Early / Bootstrap Plugins

Plugins “a bajo nivel” que transforman clases e inyectan bytecode.

🛑 Recomendación clara: no los uses salvo que sea absolutamente necesario.

3) 🧰 Herramientas de creación (Creation Tools)

Lo que hace a Hytale especial:

  • 🎥 Machinima Tools (grabación/cinemática)
  • 🌍 World Tools (edición de mundo)
  • 🧩 Asset Editor (modificar Packs con facilidad)

El Asset Editor es el corazón del modding accesible.

4) ✅ Packs: Getting Started (estructura base)

Paso 1 — 📁 Crear la carpeta del Pack

Crea una carpeta aquí (cambia YourPackName por tu nombre):

./AppData/Roaming/Hytale/UserData/Packs/YourPackName

Ejemplo:

./AppData/Roaming/Hytale/UserData/Packs/NoangyFirstPack

Paso 2 — 📄 Crear manifest.json

Dentro de tu pack, crea:

manifest.json

Ejemplo base (cambia los datos):

{
  "Group": "YourGroupName",
  "Name": "PackName",
  "Version": "1.0.0",
  "Description": "Add the pack description here",
  "Authors": [
    {
      "Name": "AuthorName",
      "Email": "example@example.com",
      "Url": "https://your-url.com"
    }
  ],
  "Website": "https://your-website.com",
  "ServerVersion": "*",
  "Dependencies": {},
  "OptionalDependencies": {},
  "DisabledByDefault": false
}

Paso 3 — 🗂️ Crear Common y Server

Dentro del pack, crea estas carpetas:

./AppData/Roaming/Hytale/UserData/Packs/YourPackName/Common
./AppData/Roaming/Hytale/UserData/Packs/YourPackName/Server

¿Qué va en cada una?

  • Common → modelos y texturas (lo visual)
  • Server → creación de bloques/ítems, traducciones, partículas, etc. (lo funcional)

Estructura final mínima:

YourPackName/
├── manifest.json
├── Common/
└── Server/

5) 🧱 Añadir un bloque (Adding a Block)

Paso 1 — 📄 Crear el JSON del bloque

Crea este archivo:

./AppData/Roaming/Hytale/UserData/Packs/YourPackName/Server/Item/Items/your_block.json

Ejemplo de contenido:

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

Paso 2 — 🎨 Crear la textura del bloque

Crea el PNG aquí:

./AppData/Roaming/Hytale/UserData/Packs/YourPackName/Common/BlockTextures/your_block_texture.png

Ejemplo:

.../Common/BlockTextures/Example_Block.png

Paso 3 — 🌍 Crear traducción (nombre del bloque)

Crea el archivo:

./AppData/Roaming/Hytale/UserData/Packs/YourPackName/Server/Languages/es-US/server.lang

Añade una entrada que coincida con tu TranslationProperties.Name:

Example_Block.name = Example Block

Paso 4 — 🛠️ Editar en el Asset Editor

Añadir el pack al mundo

  1. Abre Hytale
  2. Ve a Worlds
  3. Click derecho al mundo
  4. Activa el mod/pack correspondiente

Abrir Asset Editor

  1. Entra al mundo
  2. Abre inventario
  3. Creation ToolsAsset Editor
  4. Selecciona tu Pack y ajusta propiedades

6) 🔁 Cambiar estados de un bloque (Block State Changing)

Esto sirve para hacer bloques tipo:

  • On/Off
  • Abierto/Cerrado
  • Modos A/B/C

Paso 1 — Elegir el bloque

Edita tu:

.../Server/Item/Items/your_block.json

Paso 2 — Crear una interacción ChangeState

Añade una interacción que alterne estados:

"Interactions": {
  "Use": {
    "Interactions": [
      {
        "Type": "ChangeState",
        "Changes": {
          "default": "Off",
          "On": "Off",
          "Off": "On"
        }
      }
    ]
  }
}

Paso 3 — Definir los estados y sus propiedades

Cada estado puede tener modelo/textura distinta, hints, sonidos, partículas…

Ejemplo completo:

"BlockType": {
  "DrawType": "Model",
  "CustomModel": "Blocks/model_one.blockymodel",
  "CustomModelTexture": [
    { "Texture": "Blocks/your_texture.png" }
  ],

  "Interactions": {
    "Use": {
      "Interactions": [
        {
          "Type": "ChangeState",
          "Changes": {
            "default": "Off",
            "On": "Off",
            "Off": "On"
          }
        }
      ]
    }
  },

  "State": {
    "Definitions": {
      "On": {
        "InteractionHint": "interactionHints.turnoff",
        "CustomModel": "Blocks/model_one.blockymodel",
        "CustomModelTexture": [
          { "Texture": "Blocks/Texture/textureone.png" }
        ]
      },
      "Off": {
        "InteractionHint": "interactionHints.turnon",
        "CustomModel": "Blocks/model_two.blockymodel",
        "CustomModelTexture": [
          { "Texture": "Blocks/Texture/textureone.png" }
        ]
      }
    }
  }
}

7) 🎬 Animaciones en bloques (Block Animations)

Las animaciones se asignan por estado.

Paso 1 — Asignar animación en State

Ejemplo:

"State": {
  "Definitions": {
    "On": {
      "CustomModelAnimation": "Blocks/Animations/Empty_Water.blockyanim"
    },
    "Off": {
      "CustomModelAnimation": "Blocks/Animations/Rising_Water.blockyanim"
    }
  }
}

Paso 2 — Preparar el modelo en Blockbench (GRUPOS)

En Blockbench:

  • Crea un grupo (folder) en el modelo
  • Ponle nombre (ejemplo: Water)
  • Mete dentro todos los elementos que quieras animar

⚠️ Ese nombre debe coincidir con el de nodeAnimations.

Paso 3 — Crear .blockyanim

Ejemplo Rising_Water.blockyanim:

{
  "formatVersion": 1,
  "duration": 50,
  "holdLastKeyframe": true,
  "nodeAnimations": {
    "Water": {
      "position": [
        {
          "time": 0,
          "delta": { "x": 0, "y": 0, "z": 0 },
          "interpolationType": "smooth"
        },
        {
          "time": 50,
          "delta": { "x": 0, "y": 8.5, "z": 0 },
          "interpolationType": "smooth"
        }
      ],
      "orientation": [],
      "shapeStretch": [],
      "shapeVisible": [],
      "shapeUvOffset": []
    }
  }
}

Qué puedes animar

  • position (mover)
  • orientation (rotar)
  • shapeStretch (estirar)
  • shapeVisible (mostrar/ocultar)
  • shapeUvOffset (animar textura)

Ejemplo real (Wardrobes)

Los armarios animan múltiples grupos (puertas, tiradores, cajones, etc.).
Ejemplo simple: el cajón mueve Z para salir y volver un poco:

"Drawer": {
  "position": [
    { "time": 0,  "delta": { "x": 0, "y": 0, "z": 0  }, "interpolationType": "smooth" },
    { "time": 10, "delta": { "x": 0, "y": 0, "z": 12 }, "interpolationType": "smooth" },
    { "time": 20, "delta": { "x": 0, "y": 0, "z": 10 }, "interpolationType": "smooth" }
  ],
  "orientation": [],
  "shapeStretch": [],
  "shapeVisible": [],
  "shapeUvOffset": []
}

8) 🔌 Plugins: Getting Started (Java + IntelliJ)

Paso 1 — Descargar la plantilla de IntelliJ IDEA

La forma más fácil es usar la plantilla de:

  • Darkhax & Jared (y Rick)

Recursos marcados como TBC:

  • Zip File (TBC)
  • GitHub Repo (TBC)

Qué ofrece la plantilla

  • Añade los últimos server files al classpath
  • Ejecutar desde el IDE con breakpoints
  • Bundlear assets editables con Asset Editor
  • Soporta releases y pre-releases
  • Incluye ejemplo de código y assets

Paso 2 — Configuración del template

  1. Extrae el ZIP donde trabajarás
  2. Lee el README.md (importante)

✅ Checklist antes de seguir:

  • Hytale descargado con launcher oficial
  • IntelliJ IDEA instalado (Community vale)
  • Java 25 instalado y configurado como SDK en IntelliJ
  • Cambiar el nombre en settings.gradle
  • Revisar gradle.properties
  • Actualizar src/main/resources/manifest.json

Paso 3 — Abrir el proyecto en IntelliJ

  • Open Project → selecciona carpeta del template
  • Espera a que Gradle lo inicialice

Paso 4 — Tips importantes

Compilar un plugin compartible

gradle build

Salida:

builds/libs

Ejecutar el juego/servidor desde el IDE

La plantilla crea una run config llamada:

  • HytaleServer

Instalar el plugin

Copia el .jar aquí:

%appdata%/Hytale/UserData/Mods

Si no existe, crea la carpeta.

9) 🚀 Ruta recomendada (mi consejo directo)

Si quieres avanzar rápido y bien:

Nivel 1 (empezar YA):

  1. Crear Pack
  2. Añadir bloque simple
  3. Texturas + traducciones
  4. Editar con Asset Editor

Nivel 2 (pro dentro de Packs):
5) Block states (On/Off)
6) Interactions
7) Animaciones con Blockbench + .blockyanim

Nivel 3 (modo servidor serio):
8) Plugins en Java
9) Combinar Plugins + Packs (lo mejor de ambos mundos)

🙌 Créditos

Parte de estos tutoriales y estructura se basan en aportes de:

  • Sketch Macaw (Packs / bloques / states / animaciones)
  • Darkhax, Jared y Rick (Plugins template y guía inicial)

Si quieres conocer otros artículos parecidos a Como crear mods en Hytale puedes visitar la categoría Tutoriales.

Subir

Usamos cookies para mejorar la experiencia de usuario. Seleccione aceptar para continuar navegando. Más información