Back

How to Mod Hytale: A Complete Guide from a Practitioner - Adweo

4 days ago 11 (3 today)

How to Create a Mod for Hytale: A Complete Practical Guide

Hytale is revolutionizing modding thanks to its partnership with CurseForge. After two weeks of experimenting with the modification system, I’m sharing working solutions and pitfalls.


Modding Architecture: Three Levels of Depth

Packs (Assets) — start in 15 minutes

Perfect for artists and designers. Work with JSON and visual editors without writing a single line of code.

Plugins — for developers

Java development of full-fledged game systems. Requires OOP knowledge and understanding of server architecture.

Bootstrap — hardcore modding

JVM-level modification for system changes. Similar to ASM / Mixin from Minecraft Forge.


Practice: Creating a Glowing Crystal

Step 1. Item Manifest

Path:

./AppData/Roaming/Hytale/UserData/Packs/CrystalMod/Server/Item/Items/glowing_crystal.json
{
  "TranslationProperties": {
    "Name": "server.Glowing_Crystal.name"
  },
  "MaxStack": 64,
  "Icon": "Icons/ItemsGenerated/Glowing_Crystal.png",
  "Categories": ["Blocks.Minerals"],
  "PlayerAnimationsId": "Block",
  "Set": "Crystal_Luminous",
  "BlockType": {
    "Material": "Solid",
    "DrawType": "Cube",
    "Group": "Crystal",
    "Flags": {
      "EmitsLight": true
    },
    "Gathering": {
      "Breaking": {
        "GatherType": "Minerals",
        "ItemId": "Crystal_Luminous_Shard",
        "ToolRequired": "Pickaxe"
      }
    },
    "BlockParticleSetId": "Crystal",
    "Textures": [
      {
        "All": "BlockTextures/Glowing_Crystal_Texture.png"
      }
    ],
    "ParticleColor": "#4d9fff",
    "LightEmission": 12,
    "BlockSoundSetId": "Glass",
    "BlockBreakingDecalId": "Breaking_Decals_Crystal"
  },
  "ResourceTypes": [
    {
      "Id": "Crystal"
    }
  ]
}

New features:

  • EmitsLight — block emits light
  • LightEmission — light level (0–15)
  • ToolRequired — required tool
  • ItemId — drop item

Step 2. Graphics and Localization

Texture (32x32):

Common/BlockTextures/Glowing_Crystal_Texture.png

Use the alpha channel for soft glow.

Localization RU:

Glowing_Crystal.name = Светящийся кристалл

Localization EN:

Glowing_Crystal.name = Luminous Crystal

Step 3. Asset Editor

  1. Worlds
  2. Right click → Manage Packs
  3. Enable the mod
  4. In game: ~ /asseteditor
  • Hardness
  • Blast Resistance
  • Collision Box

Advanced Categorization

{
  "Icon": "Icons/ItemCategories/Magic_Tab.png",
  "Order": 7,
  "Children": [
    {
      "Id": "Crystals_Magical",
      "Name": "ui.itemcategory.magic_crystals",
      "Icon": "Icons/ItemCategories/Crystals_Icon.png"
    },
    {
      "Id": "Artifacts_Ancient",
      "Name": "ui.itemcategory.ancient_artifacts",
      "Icon": "Icons/ItemCategories/Artifacts_Icon.png"
    },
    {
      "Id": "Potions_Enhanced",
      "Name": "ui.itemcategory.enhanced_potions",
      "Icon": "Icons/ItemCategories/Potions_Icon.png"
    }
  ]
}

Java Plugin: Teleport System

  • JDK 25
  • IntelliJ IDEA
  • Gradle 8+

Common Mistakes

  • Wrong texture path
  • Invalid JSON
  • LightEmission is not a number

Optimization

  • Textures up to 512x512
  • Use atlases
  • Cache objects
  • Async for heavy tasks

Checklist

  • PNG textures
  • Valid JSON
  • en-US translations
  • Singleplayer test
  • Server test
  • README

Conclusion

Hytale combines the simplicity of JSON with the power of Java. Start with Packs, then move to plugins and create unique mechanics.

Home
Favourites
Add
Chat
Profile