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 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:
The manifest.json File
Every pack needs a manifest file. This tells the game about your pack:
{
"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
}
| Field | What It Does | Required? |
|---|---|---|
Group | Your unique ID (like a domain name) | Yes |
Name | Your pack's name (no spaces) | Yes |
Version | Version number (e.g., "1.0.0") | Yes |
Description | Short description of your pack | No |
Authors | List of people who made it | No |
Dependencies | Other packs this one needs | No |
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.pngBlock 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:
{
"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
| Field | What It Does | Example |
|---|---|---|
identifier | Unique ID for the block | "mypack:marble" |
displayName | Name shown to players | "Marble Block" |
texture | Name of texture file (without .png) | "marble" |
hardness | How long to break | 1.5 |
resistance | Explosion resistance | 3.0 |
material | Base material type | "stone", "wood", "dirt" |
drops | What drops when broken | Array of items |
Creating Custom Items
Items work similarly to blocks. Here's a basic item:
{
"identifier": "mypack:magic_gem",
"displayName": "Magic Gem",
"icon": "magic_gem",
"maxStackSize": 64,
"rarity": "rare",
"category": "materials"
}
Item Types
Different item types have different properties:
| Type | Extra Fields | Example |
|---|---|---|
| Basic | icon, stackSize | Gems, materials |
| Tool | damage, speed, durability | Pickaxe, sword |
| Food | hunger, saturation, effects | Apple, cooked meat |
| Armor | defense, slot, durability | Helmet, boots |
Tool Example
{
"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
| Component | What It Does |
|---|---|
fear | Makes mob flee from threats |
aggression | Attack players or other mobs |
hunger | Seek and consume food |
emotions | React to events (happy, angry, scared) |
threats | Define what the mob considers dangerous |
patrol | Wander or follow paths |
follow | Follow players or other entities |
attack | Combat behavior and damage |
Example: Alert Behavior
Here's how to make a mob that alerts nearby allies when it spots a player:
{
"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:
{
"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] }
]
}
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
Create or load a Creative Mode world.
Open chat (/ or T) and type /op self
Open inventory → Creative Tools
Available Tools
| Tool | Function |
|---|---|
| Asset Editor | Edit packs, blocks, items visually with real-time preview |
| Machinima Tool | Create cinematics with camera paths and keyframe animation |
| Model Changer | Access 100+ models to spawn and modify in-world |
| Prefab Browser | Preview and select from thousands of prefab structures |
| Prefab Editor | Modify structures in a dedicated workspace |
| World Tools | Terrain modification and landscaping |
| Particle VFX | Place 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
| Command | Description |
|---|---|
/gamemode creative | Switch to creative mode |
/gamemode adventure | Switch to adventure mode |
/gm c or /gm a | Shortcuts for game modes |
/op self | Get operator status |
/help | Context-aware help |
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:
{
"block.mypack.my_block": "My Custom Block",
"item.mypack.magic_gem": "Magic Gem",
"item.mypack.crystal_sword": "Crystal Sword"
}
Testing Your Pack
Copy your pack to %AppData%/Roaming/Hytale/UserData/Packs/
Launch Hytale and create or load a world.
Go to Worlds → Right-click your world → Mods → Enable your pack
Load the world and find your new content!
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:
- Create an account at curseforge.com
- Go to Author Console → Create Project
- Select Hytale and upload your pack
- Add screenshots and a description
- Submit for review