Creating Hytale Packs

Packs let you add new content to Hytale without writing code. You can create custom blocks, items, mobs, particles, and more using the built-in Asset Editor.

What Are Packs?

Packs are content bundles that add new things to the game. They use JSON files and art assets (textures, models, sounds) to define new content. The game reads these files and adds your content automatically.

With packs, you can add:

  • Blocks - New building materials with custom textures
  • Items - Tools, weapons, food, and miscellaneous items
  • Mobs - Creatures with custom models and behaviors
  • Particles - Visual effects like smoke and sparks
  • Sounds - Custom audio for your content
  • Translations - Text in different languages
Packs vs Plugins

Packs add content AND behavior logic via JSON (blocks, items, mobs, AI behaviors). Plugins add custom logic beyond the built-in behavior system (commands, events, new game mechanics). You can use both together!

Pack Structure

Every pack follows the same folder structure:

YourPackName/
manifest.json
Common/
BlockTextures/
Icons/
Models/
Blocks/
Animations/
Server/
Item/
Items/
Category/
Languages/
en-US/
Particles/

The manifest.json File

Every pack needs a manifest file. This tells the game about your pack:

manifest.json
{
    "Group": "com.yourname",
    "Name": "MyAwesomePack",
    "Version": "1.0.0",
    "Description": "Adds cool new blocks and items!",
    "Authors": [
        {
            "Name": "Your Name",
            "Email": "you@example.com",
            "Url": "https://yourwebsite.com"
        }
    ],
    "Website": "https://yourwebsite.com",
    "ServerVersion": "1.0.0",
    "Dependencies": [],
    "OptionalDependencies": [],
    "DisabledByDefault": false
}
FieldWhat It DoesRequired?
GroupYour unique ID (like a domain name)Yes
NameYour pack's name (no spaces)Yes
VersionVersion number (e.g., "1.0.0")Yes
DescriptionShort description of your packNo
AuthorsList of people who made itNo
DependenciesOther packs this one needsNo

Creating Custom Blocks

Let's create a simple custom block step by step.

Step 1: Create the Texture

Make a 32x32 pixel PNG image for your block. Save it as:

YourPackName/Common/BlockTextures/my_block.png
Texture Rules

Block textures must be multiples of 32 pixels (32, 64, 96, etc). Avoid pure black and white - they break the lighting!

Step 2: Define the Block

Create a JSON file for your block:

Server/Blocks/my_block.json
{
    "identifier": "mypack:my_block",
    "displayName": "My Custom Block",
    "texture": "my_block",
    "hardness": 1.5,
    "resistance": 3.0,
    "material": "stone",
    "sounds": {
        "break": "stone_break",
        "place": "stone_place",
        "walk": "stone_walk"
    },
    "drops": [
        {
            "item": "mypack:my_block",
            "count": 1
        }
    ]
}

Block Fields Explained

FieldWhat It DoesExample
identifierUnique ID for the block"mypack:marble"
displayNameName shown to players"Marble Block"
textureName of texture file (without .png)"marble"
hardnessHow long to break1.5
resistanceExplosion resistance3.0
materialBase material type"stone", "wood", "dirt"
dropsWhat drops when brokenArray of items

Creating Custom Items

Items work similarly to blocks. Here's a basic item:

Server/Items/magic_gem.json
{
    "identifier": "mypack:magic_gem",
    "displayName": "Magic Gem",
    "icon": "magic_gem",
    "maxStackSize": 64,
    "rarity": "rare",
    "category": "materials"
}

Item Types

Different item types have different properties:

TypeExtra FieldsExample
Basicicon, stackSizeGems, materials
Tooldamage, speed, durabilityPickaxe, sword
Foodhunger, saturation, effectsApple, cooked meat
Armordefense, slot, durabilityHelmet, boots

Tool Example

Server/Items/crystal_sword.json
{
    "identifier": "mypack:crystal_sword",
    "displayName": "Crystal Sword",
    "icon": "crystal_sword",
    "type": "sword",
    "damage": 8,
    "attackSpeed": 1.6,
    "durability": 500,
    "rarity": "epic"
}

Mob Behaviors (JSON Logic)

Packs can define complex mob AI and behaviors using JSON — no Java required. Hytale's behavior system uses predefined components that you combine to create intelligent creatures.

Available Behavior Components

ComponentWhat It Does
fearMakes mob flee from threats
aggressionAttack players or other mobs
hungerSeek and consume food
emotionsReact to events (happy, angry, scared)
threatsDefine what the mob considers dangerous
patrolWander or follow paths
followFollow players or other entities
attackCombat behavior and damage

Example: Alert Behavior

Here's how to make a mob that alerts nearby allies when it spots a player:

Server/Behaviors/guard_alert.json
{
    "identifier": "mypack:guard_alert",
    "type": "behavior",
    "triggers": {
        "on_player_spotted": {
            "range": 16,
            "action": "alert_allies"
        }
    },
    "actions": {
        "alert_allies": {
            "type": "broadcast",
            "range": 32,
            "message": "player_detected",
            "animation": "alert_gesture"
        }
    },
    "components": {
        "aggression": {
            "target": "player",
            "attack_range": 2.5,
            "damage": 5
        },
        "patrol": {
            "radius": 10,
            "speed": 0.8
        }
    }
}

Attaching Behaviors to Mobs

Reference the behavior in your mob definition:

Server/Mobs/guard.json
{
    "identifier": "mypack:guard",
    "displayName": "Castle Guard",
    "model": "guard",
    "health": 30,
    "behaviors": [
        "mypack:guard_alert",
        "hytale:melee_combat",
        "hytale:idle_wander"
    ],
    "drops": [
        { "item": "hytale:gold_coin", "count": [1, 3] }
    ]
}
When You Need Plugins

JSON behaviors cover most use cases. You need Plugins (Java) for: custom commands, new game mechanics, database integration, external API calls, or logic that doesn't fit the behavior system.

Visual Scripting (Coming Soon)

Hytale is developing a node-based visual scripting system inspired by Unreal Blueprints. This will let you create complex behaviors by connecting nodes — no code or JSON needed.

  • Link levers, doors, spawners, and triggers visually
  • Create adventure maps and puzzles without code
  • Custom nodes can be added via Java plugins

Creative Mode Tools

Hytale includes powerful in-game tools for content creation. All tools are accessed through Creative Mode.

Accessing Creative Tools

Enter Creative Mode

Create or load a Creative Mode world.

Get Operator Status

Open chat (/ or T) and type /op self

Open Creative Tools

Open inventory → Creative Tools

Available Tools

ToolFunction
Asset EditorEdit packs, blocks, items visually with real-time preview
Machinima ToolCreate cinematics with camera paths and keyframe animation
Model ChangerAccess 100+ models to spawn and modify in-world
Prefab BrowserPreview and select from thousands of prefab structures
Prefab EditorModify structures in a dedicated workspace
World ToolsTerrain modification and landscaping
Particle VFXPlace smoke, sparks, fireflies, and other effects

Asset Editor Features

  • Create - Make new blocks, items, and mobs visually
  • Edit - Change properties with sliders and inputs
  • Preview - See changes instantly in the game
  • Export - Save your creations to pack files

Useful Commands

CommandDescription
/gamemode creativeSwitch to creative mode
/gamemode adventureSwitch to adventure mode
/gm c or /gm aShortcuts for game modes
/op selfGet operator status
/helpContext-aware help
Machinima Tool

The Machinima Tool lets you create cinematics with camera actors, keyframe animation, speed control, and time-of-day changes. Major upgrades are planned post-launch.

Adding Translations

To show names in different languages, add translation files:

Server/Languages/en-US/strings.json
{
    "block.mypack.my_block": "My Custom Block",
    "item.mypack.magic_gem": "Magic Gem",
    "item.mypack.crystal_sword": "Crystal Sword"
}

Testing Your Pack

Put Your Pack in the Right Folder

Copy your pack to %AppData%/Roaming/Hytale/UserData/Packs/

Start the Game

Launch Hytale and create or load a world.

Enable Your Pack

Go to Worlds → Right-click your world → Mods → Enable your pack

Test It

Load the world and find your new content!

Pro Tip

Use Creative Mode to test your content. You can spawn any item with commands and see how blocks look in the world.

Publishing Your Pack

When your pack is ready, share it on CurseForge:

  1. Create an account at curseforge.com
  2. Go to Author Console → Create Project
  3. Select Hytale and upload your pack
  4. Add screenshots and a description
  5. Submit for review