Creating Blocks
Creating Blocks
Blocks are the foundation of Hytale’s world. Learn how to create custom blocks with unique properties, behaviors, and appearances.
Block Types
Section titled “Block Types”| Type | Description | Examples |
|---|---|---|
| Solid | Standard placeable blocks | Stone, wood, bricks |
| Transparent | See-through blocks | Glass, leaves, fences |
| Interactive | Blocks with behavior | Doors, switches, containers |
| Decorative | Non-functional decoration | Flowers, statues, lights |
| Liquid | Flowing blocks | Water, lava |
Getting Started
Section titled “Getting Started”If you haven’t created a block yet, start with the Quick Start tutorial.
Creating a Block
Section titled “Creating a Block”Using the Asset Editor
Section titled “Using the Asset Editor”- Open the Asset Editor
- Navigate to Blocks > Create New
- Set the block name and properties
- Assign a texture
- Save your pack
Manual JSON Creation
Section titled “Manual JSON Creation”Create a file in Server/Block/:
{ "identifier": "mypack:colored_stone", "displayName": "Colored Stone", "category": "building", "hardness": 1.5, "resistance": 6.0, "texture": "mypack:colored_stone", "model": "cube", "drops": ["mypack:colored_stone"], "sounds": { "break": "block.stone.break", "place": "block.stone.place", "step": "block.stone.step" }}Block Properties
Section titled “Block Properties”Key Properties
Section titled “Key Properties”| Property | Description |
|---|---|
identifier | Unique ID in format namespace:blockname |
displayName | Name shown to players |
category | Creative menu category |
hardness | Time to break (higher = longer) |
resistance | Explosion resistance |
texture | Reference to texture file |
model | Block model (cube, cross, etc.) |
drops | Items dropped when broken |
sounds | Sound events for interactions |
Hardness Values
Section titled “Hardness Values”| Value | Break Time | Example |
|---|---|---|
| 0.0 | Instant | Grass |
| 0.5 | Fast | Dirt |
| 1.5 | Medium | Stone |
| 5.0 | Slow | Obsidian |
| -1 | Unbreakable | Bedrock |
Resistance Values
Section titled “Resistance Values”| Value | Resistance | Example |
|---|---|---|
| 0.0 | None | Glass |
| 6.0 | Normal | Stone |
| 1200 | High | Obsidian |
Tool Requirements
Section titled “Tool Requirements”Specify which tools can mine the block:
{ "harvestTool": "pickaxe", "harvestLevel": 1}| Level | Tool Tier |
|---|---|
| 0 | Any tool |
| 1 | Stone+ |
| 2 | Iron+ |
| 3 | Diamond+ |
Block Categories
Section titled “Block Categories”Organize blocks into categories for the creative menu:
| Category | Purpose |
|---|---|
building | Construction materials |
decoration | Decorative items |
natural | Nature blocks (dirt, stone) |
functional | Blocks with uses |
redstone | Logic/mechanical blocks |
Creating Block Textures
Section titled “Creating Block Textures”Texture Specifications
Section titled “Texture Specifications”- Size: 16x16 pixels (standard) or 32x32 (high detail)
- Format: PNG with transparency support
- Location:
Common/BlockTextures/
Tips for Good Textures
Section titled “Tips for Good Textures”- Tile seamlessly - Edges should connect when repeated
- Use consistent lighting - Light from top-left is standard
- Avoid too much noise - Keep patterns readable at small sizes
- Test in-game - Check how it looks placed next to itself
Multi-Face Textures
Section titled “Multi-Face Textures”For blocks with different sides (like logs or crates):
{ "texture": { "top": "mypack:crate_top", "bottom": "mypack:crate_bottom", "sides": "mypack:crate_side" }}Or specify each face:
{ "texture": { "top": "mypack:crate_top", "bottom": "mypack:crate_bottom", "north": "mypack:crate_side", "south": "mypack:crate_side", "east": "mypack:crate_side", "west": "mypack:crate_side" }}Block Drops
Section titled “Block Drops”By default, blocks drop themselves. Customize drops:
{ "drops": [ { "item": "mypack:gem", "count": { "min": 1, "max": 3 } } ]}No Drops
Section titled “No Drops”{ "drops": []}Conditional Drops
Section titled “Conditional Drops”Require a specific tool:
{ "drops": [ { "item": "mypack:gem", "condition": { "tool": "pickaxe" } } ]}Complete Example
Section titled “Complete Example”File structure:
MyBlockPack/├── manifest.json├── Common/│ └── BlockTextures/│ └── glowing_ore.png└── Server/ └── Block/ └── glowing_ore.jsonmanifest.json:
{ "name": "MyBlockPack", "version": "1.0.0", "description": "Custom blocks"}glowing_ore.json:
{ "identifier": "mypack:glowing_ore", "displayName": "Glowing Ore", "category": "natural", "hardness": 3.0, "resistance": 3.0, "texture": "mypack:glowing_ore", "model": "cube", "harvestTool": "pickaxe", "harvestLevel": 2, "drops": [ { "item": "mypack:glow_crystal", "count": { "min": 1, "max": 2 } } ], "light": 8}Next Steps
Section titled “Next Steps”- Creating Items - Create items that drop from blocks
- Quick Start - Create your first block