Skip to content

Folder Structure

Kārlis Čerņavskis edited this page Jan 16, 2023 · 19 revisions

JEMs uses a strict folder structure for its Resource Packs. If your pack does not adhere to this structure, it will not work as intended. The following sections will detail each of the structures for Models, Textures, and Animations.

If you don't want to read all of this, you can scroll down to see an example.

Models

All models must be located in the assets/jsonentitymodels/geo/<modid> directory. From there, the folder system is as follows:

.../<entityName>/(adult|baby)/...

The is the mod that this entity comes from. In the case of Vanilla mobs, this is simply "minecraft." The should be the name of the entity in registry. Typically, this is given by the name of the mob in all lowercase with any spaces replaced by underscores (i.e. "creeper," "iron_golem," etc.). (adult|baby) indicates that both the <entityName>/baby and <entityName>/adult directories can exist. All mobs require at least one adult model in the adult directory (but the default mod ones will be used as a fallback if your pack does not include one). It is not necessary to include a file or folder for baby models. If no baby models are supplied, an adult model will be used on the baby mob. Any subdirectories beyond the adult/baby directory are at your own discretion.

Textures

Similar to Vanilla Resource Packs, textures must be located in the assets/jsonentitymodels/textures/entity/<modid> directory. From there, the folder system is as follows:

.../<entityName>/(adult|baby)/<modelName>/...

The must exactly match the name of the model file this texture is for, excluding the .geo.json ending. Any subdirectories below the defined structure can be used at your own discretion.

Animations

The animation folder structure is very similar to the structure for textures. Animations must be located in the assets/jsonentitymodels/animations/<modid> directory. From there, the folder system is as follows:

.../<entityName>/(adult|baby)/<modelName>/...

As before, the must exactly match that of the model file which this animation file is to apply to. Again, any subdirectories are at your discretion.

Variants

Adding variants is as simple as adding additional files. If you have more than one model file in any entity's adult or baby folder, those additional models will be used as alternative variants. Since textures and animations are model dependent, texture and animation variants are created by placing additional files in the corresponding model folder within the texture or animation directory. The system will handle the rest!

Example

assets/jsonentitymodels
  • geo/<modid>/<entityname>
    • adult
      • model1.geo.json
      • model2.geo.json
    • baby
      • model3.geo.json
      • model4.geo.json
  • textures/entity/<modid>/<entityname>
    • adult
      • <model1name>
        • texture1.png
        • texture2.png
      • <model2name>
        • texture3.png
    • baby
      • <model3name>
        • texture4.png
        • texture5.png
      • <model4name>
        • texture6.png
  • animations/<modid>/<entityname>
    • adult
      • <model1name>
        • animation1.json
        • animation2.json
      • <model2name>
        • animation3.json
    • baby
      • <model3name>
        • animation4.json
        • animation5.json
      • <model4name>
        • animation6.json

Clone this wiki locally