Data driven entity model library

Client LibraryUtility

Created2 years ago
Updated12 days ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

JsonEM (Json Entity Models)

Library for modders, resource pack makers, and modpack makers to create and edit entity models WITH JSON
Does not work with OptiFine format!

Generate Reference Entity Models:

If you'd like to dump json versions of all entity models (vanilla or modded) so that you can edit them easily with resource packs or use them as examples, here's how:

  • Launch the game, and then open the configuration file located at .minecraft/config/jsonem.properties.
  • Edit the second line of the file to be dump_models=true.
  • Re-launch the game. Navigate to the folder .minecraft/jsonem_dump.
  • Within this folder you should find all registered entity models dumped as json, formatted like a resource pack.
  • Use this format when editing or adding models with a resource pack.

Edit Models in Blockbench:

To edit models in Blockbench, install the plugin located in this repository.

  • Download the file jsonem_models.js from this GitHub repository
  • In Blockbench, navigate to File > Plugins, and at the top of the dialog click the icon for Load Plugin from File. Choose the jsonem_models.js file.
  • Navigate to File > New and choose JsonEM Java Entity Model to begin editing.
  • You can also File > Open Model to import a JsonEM json model file, such as those dumped from the game.
  • To export your model for use with JsonEM, navigate to File > Export > Export JsonEM Java Entity Model and save the file.

For Resource Pack/Modpack Makers:

  • Complete the steps above to dump all entity models from your game or modpack.
  • When editing your resource pack/modpack resources, add entity model json files as they are formatted in the dumped model folder.

For Modders:

JsonEM can be used to create TexturedModelData for your entities entirely using json.
This guide will demonstrate how to make the model for the cube entity in this tutorial with json.

  • Include the mod as follows (versions can be found here):
repositories {
	maven { url "https://api.modrinth.com/maven" }
dependencies {
    // Replace <version> with desired version
    modImplementation "maven.modrinth:jsonem:<version>"
    include "maven.modrinth:jsonem:<version>"
  • Register the entity model layer for your entity through JsonEM instead of Fabric API (Excludes the need for a code-generated TexturedModelData)
void onInitializeClient() {
    JsonEM.registerModelLayer(MODEL_CUBE_LAYER); // Layer ID: "entitytesting:cube", Layer name: "main"
  • Add a model file to your mod resources containing your entity's model data
    EX: assets/entitytesting/models/entity/cube/main.json
    "texture": {
        "width": 64,
        "height": 64
    "bones": {
        "cube": {
            "transform": {
                "origin": [0, 0, 0]
            "cuboids": [
                    "uv": [0, 0],
                    "offset": [-6, 12, -6],
                    "dimensions": [12, 12, 12]
  • Make sure that the bone "cube" in the file above is being accessed with the same name in your entity model
public CubeEntityModel(ModelPart modelPart) {
    this.base = modelPart.getChild("cube"); // The original tutorial used an unspecified field called EntityModelPartNames.CUBE

Project members



Technical information

Client side
Server side
Project ID