Models are three-dimensional shapes used in Minecraft which are used to display objects encountered in the game.
In Java Edition, the models pertaining to the vast majority of blocks and items can be configured, as well as those of a small selection of entities.
Uses of models[]
Non-hardcoded models are used in-game in the following contexts:
Use case | Uses | Image | Respects shade=false ?
|
---|---|---|---|
Blocks | |||
Placed blocks | All blocks excluding those listed here | Yes | |
Falling blocks | All blocks excluding those listed here | Yes | |
Piston-moved blocks | All blocks excluding those listed here | Yes | |
Lit TNT | TNT | No | |
Items | |||
Items in the inventory | All items excluding air | No | |
Items in the player's hand (first person) | All items excluding air[verify] | No | |
Items in the player's hand (third person) Items held by other players Items held by mobs |
All items excluding air[verify] | No | |
Items on the ground | All items excluding air | No | |
Items in item frames | All items excluding air | No | |
Totem of undying animation | Totem of undying | No[verify] |
Objects which cannot be remodelled[]
- Trident
- Bell
- Is the shield model hardcoded and non-customizable, even if the shield item definition isn't required to point to it?.
While most blocks and items can have their model changed, there are a multitude of things that cannot.
For example, no entities (with the exception of item frames and glow item frames) can have their model changed in Java Edition with resource packs alone.
Blocks and fluids[]
Block | Reason |
---|---|
The block is hardcoded to be invisible. Despite having empty physical model data, defining such a model will not change it. | |
The block renders as an entity would. As of 1.20.1, all entity models besides item frames and glow item frames remain hardcoded. | |
In addition to using an entity model, these blocks use a layering system to define textures. | |
This is a highly technical block which is only used in specific circumstances, with its own special rendering method. | |
These blocks utilize a "starfield" effect which is incompatible with the functionality of models. | |
Fluid rendering is hardcoded and their handling differs significantly from blocks. |
Even these blocks (with the exception of the three air variants)[1] have particle textures defined in dedicated model files, however it still stands that actual visual models cannot be changed.
Sub-elements of blocks, such as passively emitted particles and the book on top of the enchanting table, cannot be modified, even though the base block can.
History[]
Reason:
- When were "texture overlays" like those used for a grass block added and removed? Pretty sure is in 14w25a, since that version made the sides of grass blocks its own element
- Nearly everything after 1.9 is missing
Java Edition pre-Classic | |||||
---|---|---|---|---|---|
? | Blocks exist, however their models are completely hardcoded, and as such cannot be configured outside of modding. | ||||
Java Edition | |||||
1.8 | 14w06a | Added custom block models. | |||
14w07a | The model format has now been rewritten. Instead of having just "planes", it now has "planes" and "cubes". | ||||
The rotation of objects are now limited to one directional rotation per object in increments of 22.5 degrees. | |||||
14w11a | Lighting on solid block no longer makes inner sections completely black. | ||||
14w11b | Generic blocks now load models instead of pre-defined shapes. | ||||
April 12, 2014 | TheMogMiner posts about upcoming changes to the model format. | ||||
14w17a | Converted most of the remaining static blocks to the model format. | ||||
Added "rotateVariantTextures" to preserve uv details through rotation. | |||||
14w25a | The directional attribute from the uv definition has now been removed and replaced it with explicit texture references. "textureFacing" has been replaced with "texture" parameter, which is now prepended with the hash symbol (#).
| ||||
"useAmbientOcclusion" has now been renamed to "ambientocclusion". | |||||
"rotateVariantTextures" has now been renamed to "UV lock". | |||||
"cull" has now been renamed to "cullface", specifies the opposite of which neighboring face causes culling to occur. | |||||
Rotation has now been made more verbose, it is now more clear that it can occur only on a single axis. Example, the rotation for one of the two faces of the "cross" model is now: "rotation": { "origin": [ 8, 8, 8 ], "axis": "y", "angle": 45, "rescale": true }, . | |||||
The folder models/blocks/meshes has now been removed and model files are now stored in models/block. | |||||
The folder blockstates has now been added and stores the model selection files previously found in models/block . | |||||
The model format now supports custom item models. | |||||
14w27a | Block state names have now been replaced with data that better reflects the internal data. This does not yet reflect all data for some blocks and switches to using the actual stored data in a future version when numerical data values are completely dropped in favor of block states. | ||||
14w27b | The block state files now support an array of models allowing for random models. | ||||
14w30a | Added the item model "builtin/entity" . | ||||
1.8.2 | pre5 | The tag "translation" is now limited to the range of -24 to 24. | |||
The tag "scale" is now limited to 4 or less. | |||||
1.9 | 15w31a | UV is now optional, and if not supplied it automatically generates based on the element's position. | |||
Added different models/textures for different damage values, item states, and whether the player is left handed. This works on compasses, clocks, and anything that can have a durability bar. It also contains additional tags for bows and fishing rods. | |||||
Models can now be put together based on block state attributes, such as fences. As a result, the vanilla set of block models was reduced by almost 300 models. | |||||
Block model JSON is now strict, comments and quoteless identifiers are now not allowed. | |||||
"display" tag defaults have now been changed, and the "thirdperson" and "firstperson" tags have now been replaced with "thirdperson_righthand" , "thirdperson_lefthand" , "firstperson_righthand" , and "firstperson_lefthand" . | |||||
"parent" and "elements" tags can now coexist, though the top level elements tag overwrites all former ones. | |||||
The option to disable alternate block models has now been removed. | |||||
Multipart tag functionality added. | |||||
1.14 | 18w43a | Added the item model property "custom_model_data" . | |||
1.15.2 | Pre-Release 1 | The gui_light parameter for item models has been added. |