JsonEM
Data driven entity model library
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
JsonEM
JsonEM (Json Entity Models)
Library for WITH JSON, WITH JSON, and WITH JSON 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 export, install the plugin located in this repository. - %%MD1%% 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 EX: in EX: with json. - Include the mod as follows (versions can be found %%MD1%%): ```gradle 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) ```java 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` ```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 ```java public CubeEntityModel(ModelPart modelPart) { this.base = modelPart.getChild("cube"); // The original tutorial used an unspecified field called EntityModelPartNames.CUBE } ```