All docs

Java Edition model export

Understand the Java ZIP, open the model in Blockbench and connect it to a resource pack.

Download contents

The exported ZIP has a fixed namespace and filenames (it does not use your asset name):

assets/minecraft/
├── models/block/model.json
└── textures/block/model.png

The JSON has parent: "minecraft:block/block", a texture reference to block/model, and an elements array of cubes with from, to and per-face UVs. The PNG is the atlas those faces refer to. Cube groups are flattened; no bone or animation data is included.

Open it in Blockbench

  1. Unzip the download. In Blockbench, use File → Open Model and select assets/minecraft/models/block/model.json (Java Block/Item format).
  2. If the texture is missing, load model.png from the ZIP in the texture panel and check the model’s texture reference.
  3. Inspect UVs and bounds; adjust the model for the Java block/item workflow you actually need.

Connect it to the game

  1. Start with a resource pack for your target Java version, including that version’s required pack.mcmeta.
  2. Copy the ZIP’s assets/minecraft directory into the pack root, keeping the model/texture paths together. Consider moving both files into your own namespace to avoid replacing another model, and update the JSON texture reference accordingly.
  3. Create the appropriate blockstate or item-model mapping for your target Java version so the game actually references your model. The exported model.json alone does not register a new block or item.
  4. Enable the pack in game and test the exact target version. The mapping conventions, especially for items, vary by Java version; follow its resource-pack documentation.

Export can fail if the source has rotated bones or cubes with unsupported rotations. Java supports only a single cube rotation axis at 0, ±22.5 or ±45 degrees here. It does not export animated entities or ModelEngine configuration. If needed, simplify the source in Blockbench and use its Java tools for the final pack.