Skip to content

Blockbench Plugin

Markus Bordihn edited this page Jun 14, 2026 · 1 revision

Blockbench Plugin

This page is a WIP placeholder for the planned Easy Model Entities Blockbench exporter workflow.

🚧 Status

The runtime already loads Blockbench .bbmodel files in modded_entity format. The exporter/plugin documentation is not complete yet. Treat this page as the target workflow and naming guide, not as a finished plugin manual.

🧱 Start With Modded Entity

Create the model in Blockbench as Modded Entity.

EME currently expects:

  • meta.model_format set to modded_entity.
  • Blockbench format version 5.x.
  • Cube-based elements.
  • Groups in the outliner; group names become EME model part names.

Generic item/block model formats are not the right starting point for EME entities, because they do not provide the same group and entity-style structure.

🦴 Recommended Bones

Bone names are not hard validation requirements, but automatic animation only knows specific names. If a bone is missing or named differently, that part will still render, but it will not receive the matching automatic transform.

Biped and humanoid:

  • root
  • head
  • body
  • left_arm
  • right_arm
  • left_leg
  • right_leg

Quadruped:

  • root
  • head
  • body
  • front_left_leg
  • front_right_leg
  • back_left_leg
  • back_right_leg
  • optional tail bones such as tail, tail_1, or body_tail

Winged:

  • root
  • body
  • left_wing
  • right_wing
  • optional left_leg, right_leg, and tail bones

Arthropod:

  • root
  • body
  • front_left_leg
  • front_right_leg
  • middle_front_left_leg
  • middle_front_right_leg
  • middle_back_left_leg
  • middle_back_right_leg
  • back_left_leg
  • back_right_leg

Static, cuboid, floating, shrine, and mimic-style block models:

  • root
  • descriptive part names such as lid, jaw, crystal, or body
  • tail/wing/leg names only when you want EME's automatic transform to affect those parts

📦 What Export Should Generate

The exporter should write the files needed by the selected target:

data/<namespace>/easy_model_entities/profiles/entity/<id>.json
data/<namespace>/easy_model_entities/profiles/block_entity/<id>.json

assets/<namespace>/easy_model_entities/render_profiles/<id>.json
assets/<namespace>/easy_model_entities/models/<id>.bbmodel
assets/<namespace>/textures/entity/<texture>.png

For the simple entity workflow, the exported profiles can stay small:

{
  "model_type": "entity",
  "preset_type": "humanoid_wandering",
  "client": {
    "render_profile": "my_pack:little_explorer"
  }
}
{
  "preset_type": "humanoid_wandering"
}

For a simple mimic or shrine-style block entity:

{
  "model_type": "block_entity",
  "preset_type": "animated_randomly",
  "client": {
    "render_profile": "my_pack:mimic"
  }
}
{
  "preset_type": "static",
  "texture": "my_pack:textures/block/mimic.png",
  "animation": {
    "mode": "random_idle"
  }
}

The exporter may add generated fields when needed:

  • version for matching server and client assets.
  • dimensions from the model bounds.
  • rendering.visible_bounds_* from the visible box or calculated bounds.
  • movement, behavior, and attributes when the selected preset needs custom values.
  • animation.walk_speed_multiplier or animation.swing_speed for animation tuning.

🧾 Export Metadata

The example .bbmodel files already contain an eme_export metadata block. This is useful for the exporter UI and repeat exports, but the Minecraft runtime uses the generated JSON profiles and the model geometry, not the metadata block itself.

✅ Export Checklist

  • Model format is modded_entity.
  • Bone names match the selected body type where automatic animation is wanted.
  • Server profile and render profile IDs match the exported file layout.
  • Entity textures go under textures/entity.
  • Block entity textures usually go under textures/block and should be written explicitly in the render profile.
  • Run /easy_model_entities validate_profiles after loading the pack.

Clone this wiki locally