Block Animations
Block animations bring interactive blocks to life with movement sequences for doors, chests, and other functional blocks. Animations are created in Blockbench and exported as .blockyanim files.
Asset Location
Section titled “Asset Location”Block animations are stored in the Common assets:
DirectoryAssets/Common/Blocks/Animations/
DirectoryCandle/
- Candle_Burn.blockyanim
DirectoryChest/
- Chest_Open.blockyanim
- Chest_Close.blockyanim
DirectoryCoffin/
- Coffin_Open.blockyanim
- Coffin_Close.blockyanim
DirectoryDoor/
- Door_Open_In.blockyanim
- Door_Open_Out.blockyanim
- Door_Close_In.blockyanim
- Door_Close_Out.blockyanim
- Door_Open_Slide_In.blockyanim
- Door_Open_Slide_Out.blockyanim
DirectoryFire/
- Fire_Burn.blockyanim
- Fire_Small_Burn.blockyanim
DirectoryLight/
- Light_On.blockyanim
- Light_Off.blockyanim
DirectoryTrapdoor/
- Trapdoor_Open.blockyanim
- Trapdoor_Close.blockyanim
DirectoryWardrobe/
- Wardrobe_Open.blockyanim
- Wardrobe_Close.blockyanim
Animation Categories
Section titled “Animation Categories”Interactive Block Animations
Section titled “Interactive Block Animations”| Category | Animations | Usage |
|---|---|---|
| Door | Open/Close In/Out, Slide variants | Doors opening towards/away from player |
| Chest | Open, Close | Container lid animations |
| Wardrobe | Open, Close | Tall container door animations |
| Trapdoor | Open, Close | Horizontal door animations |
| Coffin | Open, Close | Special container animations |
Ambient Animations
Section titled “Ambient Animations”| Category | Animations | Usage |
|---|---|---|
| Candle | Burn | Looping flame flicker |
| Fire | Burn, Small_Burn | Campfire/torch flame |
| Light | On, Off | Light state transitions |
Using Animations in Block Definitions
Section titled “Using Animations in Block Definitions”Animations are referenced in the State.Definitions section of block types:
Door Animation Example
Section titled “Door Animation Example”{ "BlockType": { "State": { "Definitions": { "OpenDoorIn": { "HitboxType": "Door_Open_In", "InteractionHitboxType": "Door_Open_In_Interaction", "InteractionSoundEventId": "SFX_Door_Crude_Open", "CustomModelAnimation": "Blocks/Animations/Door/Door_Open_In.blockyanim" }, "OpenDoorOut": { "HitboxType": "Door_Open_Out", "InteractionHitboxType": "Door_Open_Out_Interaction", "InteractionSoundEventId": "SFX_Door_Crude_Open", "CustomModelAnimation": "Blocks/Animations/Door/Door_Open_Out.blockyanim" }, "CloseDoorIn": { "InteractionSoundEventId": "SFX_Door_Crude_Close", "CustomModelAnimation": "Blocks/Animations/Door/Door_Close_In.blockyanim" }, "CloseDoorOut": { "InteractionSoundEventId": "SFX_Door_Crude_Close", "CustomModelAnimation": "Blocks/Animations/Door/Door_Close_Out.blockyanim" }, "DoorBlocked": {} } }, "IsDoor": true, "Interactions": { "Use": "Door" } }}Container Animation Example
Section titled “Container Animation Example”{ "BlockType": { "State": { "Id": "container", "Capacity": 18, "Definitions": { "OpenWindow": { "InteractionSoundEventId": "SFX_Chest_Wooden_Open", "CustomModelAnimation": "Blocks/Animations/Chest/Chest_Open.blockyanim" }, "CloseWindow": { "InteractionSoundEventId": "SFX_Chest_Wooden_Close", "CustomModelAnimation": "Blocks/Animations/Chest/Chest_Close.blockyanim" } } }, "Interactions": { "Primary": "Break_Container", "Use": "Open_Container" } }}Animation Properties
Section titled “Animation Properties”State Definition Fields
Section titled “State Definition Fields”| Field | Type | Description |
|---|---|---|
CustomModelAnimation | string | Path to .blockyanim file |
InteractionSoundEventId | string | Sound to play during animation |
HitboxType | string | Hitbox when in this state |
InteractionHitboxType | string | Hitbox for interaction detection |
Default Animation
Section titled “Default Animation”For blocks with a default idle animation:
{ "BlockType": { "CustomModelAnimation": "Blocks/Animations/Candle/Candle_Burn.blockyanim" }}Door Animation Variants
Section titled “Door Animation Variants”Doors support multiple animation directions:
| Animation | Description |
|---|---|
Door_Open_In | Door swings towards player |
Door_Open_Out | Door swings away from player |
Door_Close_In | Close from inward position |
Door_Close_Out | Close from outward position |
Door_Open_Slide_In | Sliding door variant |
Door_Open_Slide_Out | Sliding door variant |
Creating Custom Animations
Section titled “Creating Custom Animations”In Blockbench
Section titled “In Blockbench”- Open or create a Hytale Model project
- Switch to the Animation tab
- Create keyframes for bone transformations
- Export as
.blockyanim
Animation Requirements
Section titled “Animation Requirements”| Requirement | Details |
|---|---|
| Format | Hytale-specific .blockyanim |
| Bones | Must match model bone hierarchy |
| Keyframes | Position, rotation, scale transforms |
| Duration | Varies by animation type |
Bone Naming
Section titled “Bone Naming”Animations reference bones in the model:
Root├── Body│ ├── Lid (for chests)│ ├── Door_Panel (for doors)│ └── ...Looping Animations
Section titled “Looping Animations”For ambient effects like flames, use looping animations:
{ "BlockType": { "CustomModelAnimation": "Blocks/Animations/Fire/Fire_Burn.blockyanim", "Looping": true }}State Transitions
Section titled “State Transitions”Animation playback is triggered by state changes:
{ "State": { "Definitions": { "On": { "CustomModelAnimation": "Blocks/Animations/Light/Light_On.blockyanim", "Light": { "Color": "#ffa", "Radius": 8 } }, "Off": { "CustomModelAnimation": "Blocks/Animations/Light/Light_Off.blockyanim", "Light": null } } }, "Interactions": { "Use": { "Interactions": [ { "Type": "ChangeState", "Changes": { "On": "Off", "Off": "On" } } ] } }}File Format
Section titled “File Format”The .blockyanim format is a binary format created by Blockbench’s Hytale plugin. Key characteristics:
- Created in Blockbench’s Animation tab
- References bone names from the model
- Supports position, rotation, and scale keyframes
- Can be looping or one-shot
Best Practices
Section titled “Best Practices”- Match bone names - Animation bones must exactly match model bone names
- Keep animations short - Interactive animations should be snappy
- Pair with sounds - Always include
InteractionSoundEventId - Update hitboxes - Change
HitboxTypefor open/closed states - Test transitions - Ensure smooth state changes
Related
Section titled “Related”- Block Type Assets - Block definition schema
- Decorative Sets - Themed block collections
- Blockbench Setup - Animation creation tool
- Audio Overview - Sound event system