![]() |
VOOZH | about |
Models are three-dimensional shapes used in Minecraft that are used to display objects encountered in the game.
The models pertaining to the vast majority of blocks and items can be configured, as well as those of a small selection of entities. Models are stored as JSON files in a resource pack in the assets/<namespace>/models folder.
"parent" and "elements" are set, the "elements" tag overrides the "elements" tag from the previous model.
"builtin/generated" to use a model that is created out of the specified icon. Only the first layer is supported, and rotation can be achieved only by using block states files.true - default), or not (false).thirdperson_righthand, thirdperson_lefthand, firstperson_righthand, firstperson_lefthand, gui, head, ground, fixed, or on_shelf. Place where an item model is displayed. Holds its rotation, translation and scale for the specified situation. fixed refers to item frames, while the rest are as their name states. Translations are applied to the model before rotations.
[x, y, z].[x, y, z]. The values are clamped between -80 and 80.[x, y, z]. If the value is greater than 4, it is displayed as 4.textures folder. The variable can be referenced by prefixing it with a # in the model, e.g. the variable "texture" is referenced as "#texture". The texture variable named "particle" defines what texture the breaking particles are loaded from, but can also be referenced by the model as "#particle". The particle texture is also used as an overlay if you are in a nether portal, for water and lava's still textures,[1] and for the particle textures of non-model blocks (such as for barriers)."particle".
true overrides that behavior for this texture. This is useful for textures that don't have any translucent pixels, but use the mean mipmap strategy. Defaults to false."parent" and "elements" are set, the "elements" tag overrides the "elements" tag from the previous model.
[x, y, z]. Values must be between -16 and 32.[x, y, z]. Values must be between -16 and 32.[x, y, z].x axis. This value will be ignored if an axis and angle are specified.y axis. This value will be ignored if an axis and angle are specified.z axis. This value will be ignored if an axis and angle are specified."x", "y" or "z".1 / cos(angle). Can be true or false. Defaults to false.true - default) or not (false). This does not affect ambient occlusion or shading based on light level.down, up, north, south, west or east. Contains the properties of the specified face.
[x1, y1, x2, y2]. The texture behavior is inconsistent if UV extends below 0 or above 16. If the numbers of x1 and x2 are swapped (e.g. from 0, 0, 16, 16 to 16, 0, 0, 16), the texture flips. UV is optional, and if not supplied it automatically generates based on the element's position.#.down, up, north, south, west, or east. It also determines the side of the block to use the light level from for lighting the face, and if unset, defaults to the side.uv)."parent" and "elements" are set, the "elements" tag overrides the "elements" tag from the previous model.
thirdperson_righthand, thirdperson_lefthand, firstperson_righthand, firstperson_lefthand, gui, head, ground, fixed, or on_shelf. Place where an item model is displayed. Holds its rotation, translation and scale for the specified situation. fixed refers to item frames, while the rest are as their name states. Translations are applied to the model before rotations. If this is specified but not all of translation, rotation and scale are in it, the others aren't inherited from the parent.
[x, y, z].[x, y, z]. If the value is greater than 80, it is displayed as 80. If the value is less than -80, it is displayed as -80.[x, y, z]. If the value is greater than 4, it is displayed as 4."item/generated".items/barrier.png as blockbreaking particle), which otherwise uses "layer0"."front" or "side". If set to "side", the model is rendered like a block. If set to "front", model is shaded like a flat item. Defaults to "side"."parent" and "elements" are set, the "elements" list overrides the "elements" list from the parent model.
[x, y, z]. Values must be between -16 and 32.[x, y, z]. Values must be between -16 and 32.[x, y, z]."x", "y" or "z".true - default) or not (false). This does not affect ambient occlusion or shading based on light level.down, up, north, south, west or east. Contains the properties of the specified face.
[x1, y1, x2, y2]. If unset, it defaults to values equal to xyz position of the element. The texture behavior is inconsistent if UV extends below 0 or above 16. If the numbers of x1 and x2 are swapped (e.g. from 0, 0, 16, 16 to 16, 0, 0, 16), the texture flips. UV is optional, and if not supplied it automatically generates based on the element's position.#.down, up, north, south, west, or east. It also determines the side of the block to use the light level from for lighting the face, and if unset, defaults to the side.uv).Some models contain fields used by Blockbench due to Mojang utilizing the software, these fields are only used by Blockbench and aren't used by Minecraft.
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[verify] | No | |
| Snow Golem headpiece[2] | Carved Pumpkin | [verify] | |
| 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 | |
| Items on shelves | All items excluding air | [verify] | |
| Totem of undying animation | Any item with the "death protection" component | No[verify] | |
Each of the item display types are used in the following situations:
| Use case | Display type |
|---|---|
| Inventory items Crafting station icon on recipe unlock toasts |
gui
|
| Items equipped on the heads of certain mobs[more information needed] Spyglasses when in use |
head
|
| Dropped items Items held by dolphins[3] Items held by pandas[4] Items held by foxes[5] Thrown projectiles[6][more information needed] Items held by villagers and wandering traders Potions held by witches Ominous item spawner |
ground
|
| Items in item frames Totem of undying animation Items placed on campfires Items being brushed out of suspicious sand and gravel |
fixed
|
| Items on shelves | on_shelf
|
| Items held in a humanoid's left hand | thirdperson_lefthand
|
| Items held in a humanoid's right hand Items held in a humanoid's left hand, if thirdperson_lefthand is left unspecified
|
thirdperson_righthand
|
| Items held in the left hand in first person | firstperson_lefthand
|
| Items held in the right hand in first person Items held in the left hand in first person, if firstperson_lefthand is left unspecified
|
firstperson_righthand
|
| Item display entities | Depends on what is specified |
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. Bells can have their attachment model changed but not the bell model itself.
| Block | Reason |
|---|---|
| The block is hardcoded to be invisible. Despite having empty physical model data, defining such a model does not change it.[7] | |
| This is a highly technical block which is only used in specific circumstances, with its own special rendering method. | |
| These blocks display a starfield which is completely separate from models. Unlike other block entities, a block model specified with these IDs will not render.[8] | |
| Fluid rendering is hardcoded and their handling differs significantly from blocks. Defining a model will change the associated particles, but will add no geometry.[9] | |
| This is intended to render mostly as water and uses particles, however custom models still do not render planes within it, unlike in Bedrock Edition.[10] |
Even these blocks 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.
| Java Edition pre-Classic | |||||||
|---|---|---|---|---|---|---|---|
| Cave game tech test | 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 | Added display types for items. | |||||
| 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. | |||||||
| Default model offset/position and scale has changed. | |||||||
| Known bug in this version caused many/all items to be shifted down/positioned wrongly compared to prior versions. MC-82928 | |||||||
| 15w31c | Item positions have been fixed to match how they were prior to 15w31a. Although the fishing rod is still different and still is to this day. | ||||||
| 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. | |||||
| ? | Blocks that render as entities, such as chests, will now display block model data alongside their block entity (much like how enchanting tables and lecterns did previously), rather than refusing to render any model data and only using it for particle definitions. | ||||||
| 1.21.2 | 24w33a | The "light_emission" field for models has been added. | |||||
| 24w36a | All item models can now use the broken property in model overrides that was previously limited to just elytra.
| ||||||
The model of an item is selected based on the minecraft:item_model component, following the format /assets/<namespace>/models/item/<id>. | |||||||
| 1.21.4 | 24w45a | New format has been introduced for describing item models. See Items model definition. | |||||
The minecraft:item_model component now reference an Items model definition.
| |||||||
overrides section has been removed from existing block models.
| |||||||
There are no longer any hardcoded paths in models directory - models will be now only used if referenced by definitions in items or blockstates directories.
| |||||||
Models in models/item that only redirect to a block model have been removed. | |||||||
| 1.21.6 | 25w16a | Block model rotations are no longer limited to multiples of 22.5. | |||||
| 1.21.9 | 25w33a | New item display transform on_shelf. It is ignored by shelf with the align_items_to_bottom block state. | |||||
| 1.21.11 | 25w46a | Block model elements can now be rotated around multiple axes. | |||||
Existing restriction for angle value limiting them to [-45, 45] has been removed. | |||||||
| 26.1 | snap7 | Any block model can now support cutout or translucent (partially transparent pixels) textures. | |||||
The format of the textures map has been updated. | |||||||
Issues relating to "Block model" or "Item model" are maintained on the bug tracker. Issues should be reported and viewed there.
| Resource packs | |||||
|---|---|---|---|---|---|
| Components |
| ||||
| Built-in |
| ||||
| Tutorials | |||||