Missing textures and models

Minecraft makes use of missing textures and missing models to handle potential errors present in the game's resources as well as resource packs.
== Missing texture ==
The missing texture is a placeholder texture used by Minecraft for handling cases where a suitable texture cannot be found. Outside of its use in missing models, this is almost always due to a texture being referenced which simply does not exist under that name.
The texture uses a prominent black and magenta checkerboard or a black and magenta checkerboard , in order to stand out as much as possible in most cases. Using bright colors is industry standard, and black and magenta is employed by other game development studios, notably Valve.https://developer.valvesoftware.com/wiki/Missing_content
The texture is not intended to appear in vanilla gameplay, and cases where it does are due to misconfigured resource packs.
As of Java Edition 1.20.5, it is not possible to see the missing texture in the vanilla game without the use of a resource pack; creating particles associated with minecraft:air is explicitly forbidden by /particle command and associated commands.
When the game has to use the missing texture, such uses are generally announced in the game's output log:
* References to nonexistent textures results in 
* Absent texture references for model elements results in 
* Cases where no particle texture is specified does not output anything to the log at all. This is why the air and spyglass items' use of the missing texture for particles goes unreported in the game logs.
=== History ===
==== History of the texture itself ====
; b1.4-13w17a platform differences
The missing texture used in these versions would be generated differently depending on the operating system and Java version.https://github.com/NeRdTheNed/MC-TextureGen/commit/efdaa6c6a637b1f8cf8d0160c4ac7c4f779f945e#commitcomment-56639065
Texture 	Texture 	Operating system 	Java version	Notes
b1.4 - 13w01b	13w02a - 13w17a	Operating system 	Java version	Notes
 	 	Windows XP 	
* 6.0.370.6	Appears standard across all Windows versions.No smoothing.
 	 	Windows 7 	
* 7
** Update 11, 
** Update 13
** r15
** Update 17	Appears standard across all Windows versions.No smoothing.
 	 	Windows 10 	
* 1.8.0_51https://github.com/NeRdTheNed/MC-TextureGen/issues/22#issuecomment-922438619	Appears standard across all Windows versions.No smoothing.
 	 	Windows 10 	
* 11.0.10
* 16.0.2	Minor differences in the x and u. No smoothing.
 	 	MacOS 10.3.9https://github.com/NeRdTheNed/MC-TextureGen/commit/efdaa6c6a637b1f8cf8d0160c4ac7c4f779f945e#commitcomment-56642974 	
* 4 	No smoothing - standard for non-Retina systems.
 	 	MacOS 10.5.8 	
* 1.5.0_30 	No smoothing - standard for non-Retina systems.
 	 	MacOS 10.6.8https://github.com/NeRdTheNed/MC-TextureGen/commit/efdaa6c6a637b1f8cf8d0160c4ac7c4f779f945e#commitcomment-56649619 	
* 6 	No smoothing - standard for non-Retina systems.
 	 	MacOS 10.14.6 	
* Apple legacy Java runtime 1.6.0_65-b14-468	No smoothing - standard for non-Retina systems.
 	 	MacOS 10.14.6 	
* Apple legacy Java runtime 1.6.0_65-b14-468	Monochromatic smoothing - standard for Retina systems.
 	 	MacOS 10.14.6 	
* Apple legacy Java runtime 1.6.0_65-b14-468https://github.com/NeRdTheNed/MC-TextureGen/issues/22#issuecomment-922492792	Uses polychromatic smoothing instead of monochromatic smoothing like above.
 	 	MacOS 10.3.9https://github.com/NeRdTheNed/MC-TextureGen/issues/22#issuecomment-922617901 (also refer to other specifications in source)	
* 4 	Monochromatic smoothing. Almost identical to the above version, with almost unnoticeable single-pixel differences.
 	 	MacOS 10.5.8 	Unknown 	Monochromatic smoothing. Almost identical to the above version, with almost unnoticeable single-pixel differences.
 	 	MacOS 10.4.11 	
* 1.5.0_19 	Polychromatic smoothing.
 	 	MacOS 10.14.6 	
* 1.7.0 80-b15
* 1.8.0_51	No smoothing.
 	 	MacOS 10.14.6 	
* 1.8.0_301, GraalVM EE 21.2.0
* 11.0.12, GraalVM EE 21.2.0
* 16.0.2, GraalVM EE 21.2.0	Monochromatic smoothing.
 	 	MacOS 12.3.0 	
* 1.8.0_74 (64-bit)	Appears to have been smoothed monochromatically with all non-white pixels subsequently set to black.
 	 	Debianhttps://discord.com/channels/361634042317111296/433407899403026434/1062142954837377105 	
* 1.8.0_351	No smoothing.
 	 	Debian 	
* Zulu OpenJDK 1.8.0_352	No smoothing.
 	 	Debian under WSL2https://github.com/NeRdTheNed/MC-TextureGen/commit/efdaa6c6a637b1f8cf8d0160c4ac7c4f779f945e#commitcomment-56731586 	
* 11.0.11 	No smoothing.
 	 	Ubuntu 	
* 16.0.1https://web.archive.org/web/20230508203053/https://imgur.com/gallery/i3FaUkW	No smoothing.
 	 	FreeBSD 	
* 16.0.2 	No smoothing.
 	 	OpenBSD 	
* 16.0.2 	
 	 	Archhttps://discord.com/channels/361634042317111296/433407899403026434/986983086845730856 	
* Temurin-17.0.3+7	No smoothing.
 	 	Arch 6.1.1https://discord.com/channels/361634042317111296/433407899403026434/1061086331247284295 	
* 1.8.0_352 (64-bit)	No smoothing.
==== General history ====
== Missing model ==
In an analogous fashion to the missing texture being used for instances where no texture is defined, the missing model is use in cases where no model is defined, or the model is invalid.
By default, the missing model is a full 16x16 cube which uses the missing texture on all six faces. These faces are culled accordingly where possible. Only two faces will have the same color at each vertex, rather than the three one may expect; Mojang have decided to not fix this.
The missing model is obviously also never intended to appear in standard gameplay, and uses the missing texture again to appear prominent and highlight errors to fix.
Contrary to popular belief, no central "missing texture block" has ever existed in the game; all cases of blocks which use this model are due to another block simply having no assigned texture or model.
=== History ===
==== History of the model itself ====
===== Block =====
===== Item =====
; Inventory
; Dropped
; Fixed
; Held, first person
; Held, third person/other entity
==== General history ====
== Notable bugs ==
=== Examples of cases where the missing model is not used ===
By definition, any block which does not use a model does not use the cubic missing model. If a model is still not defined for the block, however, this will likely still reflect in the block's particles.
The vast majority of entity models are also completely hardcoded. There are two notable exceptions in the item frame and glow item frame, which do in fact have customizable models. Therefore, the item frame and glow item frame are the only two entities which are capable of using the missing model; all other entities may lose their texture, but retain the same model shape.
Horses are a particularly interesting example of an entity which are discussed further in a later section. In multiple version ranges, certain invalid horses can either appear completely invisible or have a solid white texture, neither of which are the missing model.
=== Translucency ordering ===
From 14w25a up to 19w38b, there existed a remarkable visual bug where missing models associated with blocks that used translucent rendering (such as ice, stained glass, stained glass panes and slime blocks) would interact anomalously with the rendering of transparent blocks in the world, as well as of entities, including the holder. Unlike normal missing models, translucent blocks and other entities would render in front of such a model when held, even if they were physically farther away from the camera. However, this only applies if the distant entity or transparent block in question is not first occluded by the player model. As a result, the held translucent block can form a player-shaped silhouette around the player model in front of a background made of entities (such as paintings) or translucent blocks.
This effect can be seen without the use of resource packs up to 17w46a simply by holding ice, stained glass, stained glass panes or slime blocks of an invalid data value. For versions 17w47a up to 19w38b a resource pack is required to break the model of an existing translucent item, and from 19w39a the bug is no longer present at all.
This effect also happened to particles and certain other objects in-game from 13w41a onwards.
=== Unloading the default resources ===
If a sufficiently broken resource pack is loaded, the game will catch such resource packs and unload them automatically if errors were detected. From 17w43a up to the full release of 1.13, this also included the default resources, meaning that applying a flawed resource pack would result in all assets being unloaded, and as such the missing error assets appearing everywhere.
From 18w30a onwards, the game was made to unload all resource packs except the default resources in cases like these.
; Layered textures
Certain game objects do not use textures in the standard way, instead layering them on top of each other. Horses use these for their pattern variants, and banners for each banner pattern. When there is no texture to pick from, these instead appear completely white. If the textures in question have already been loaded into the game, it is not possible to unload them even if all other textures are unloaded.
As shields use an item model, even though said item model points to an entity model, it appears as a missing model even though it makes use of texture layering.
Tropical fish, despite also using composite textures to distinguish variants, do not turn white if a texture cannot be loaded, and instead use the usual checkerboard (which is tinted in certain cases).
The screenshots below also demonstrate that player skins, despite not being layer-based, are also not unloaded due to not being resource pack dependent.
; Main menu
It is interesting to note how this bug highlights different changes to parts of the game through 1.13's development. Focusing on the main menu, for example, reveals multiple details:
* From 17w43a up to 18w22c, the menu appears as in the first image. The panorama cube is clearly visible, with each square replaced with the missing texture.
* From 1.13-pre1 up to 1.13-pre5, the main menu background is now a large missing texture itself, obscuring the view of the panorama cube. This is likely due to the introduction of the panorama_overlay.png texture file in this version, which is responsible for the whitish gradient effect visible above the panorama; previously the gradient was hardcoded and unable to be changed with resource packs.
* In 1.13-pre6, font characters do not seem to load at all.
* In 1.13-pre7 and 1.13-pre8, font characters now use a rectangle shape which is commonly seen in many fonts as a placeholder for unsupported characters. Prior to 1.13-pre6, characters used the missing texture colors instead, of varying widths. This may imply that font character sizes were hardcoded prior to this version.
* From 1.13-pre9 up to the full release of 1.13, the rectangular placeholder font characters are now solid black on the inside, rather than being hollow as one would expect.
; Enchantment glint
Interestingly, the rendering of the enchantment glint on items to which it applies appears different when all assets are unloaded, compared to cases where the enchantment glint image file and its associated mcmeta are deleted instead. For the unloaded case, the texture is renderedmuch smaller and moved much slower. The exact underlying reason for this currently remains unknown.
== Trivia ==
* 14w04b is the last Java Edition version in which the missing texture cannot be encountered in the vanilla game without resource packs:
** From 14w05a through 14w21b inclusive, the end portal item uses the missing texture.
** In 14w25a, the version directly following 14w21b, the end portal item is removed, but all invalid data value items use the missing item model.
*** In addition, this is the first version that allows the use of the command to generate block particles, which includes particles for invalid blocks such as air. This functionality is temporarily removed in later snapshots and the full release of 1.8, but returns soon after, and the missing texture can still be seen via invalid data value items.
** In 17w47a, invalid data value items are effectively removed, however it is still possible to generate missing texture particles if the air item is specified. This continues to the latest version.
* The missing texture can be seen in the official version banners for 14w10a and 17w47a.
== Gallery ==
14w10a Banner.png|14w10a
17w47a.gif|17w47a
== References ==
== See also ==
* Unicode replacement character