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
#000000 and magenta
#f800f8 checkerboard in Java Edition or a black
#000000 and magenta
#fc00ff checkerboard in Bedrock Edition, 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.[1]
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 21w42a, there are six ways in which the missing texture can appear without using a resource pack, all of which require commands:
- By creating
minecraft:block_marker
particles associated with either air, cave air or void air:[2]/particle minecraft:block_marker minecraft:air
/particle minecraft:block_marker minecraft:cave_air
/particle minecraft:block_marker minecraft:void_air
- By creating
minecraft:item
particles associated with either air or a spyglass:[3][4]/particle minecraft:item minecraft:air
/particle minecraft:item minecraft:spyglass
- By summoning a panda eating a spyglass.[4]
/summon minecraft:panda ~ ~ ~ {HandItems:[{id:"minecraft:spyglass", Count:1b},{}]}
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
Using missing texture, unable to load [NAMESPACE]:textures/[TEXTURE].png : java.io.FileNotFoundException: [NAMESPACE]:textures/[TEXTURE].png
- Absent texture references for model elements results in
Unable to resolve texture reference: #texture in [NAMESPACE]:block/[MODEL]
- Cases where no particle texture is specified does not output anything to the log at all.[5] 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[]
Java Edition Beta | |||||
---|---|---|---|---|---|
1.4 | The missing texture has been implemented. It differs depending on the system - see the subsection below. | ||||
Java Edition | |||||
1.5 | 13w02a | The missing texture has changed to display more descriptive text. | |||
1.6.1 | 13w18a | The missing texture generated has changed to a magenta and black checkerboard texture. | |||
1.7.2 | 13w38a | When anisotropic filtering is enabled, the missing texture has a 4x4 checker instead of a 2x2 checker.[6][7][8] This is due to the option replacing each texture with a 3x3 grid of the texture and selecting the middle 32x32 of it, which for the missing texture specifically gives the appearance of a 4x4 tiling. | |||
1.8 | 14w25a | Removed the anisotropic filtering option, meaning that the 2x2 checker is once again the only missing texture. | |||
1.13 | 17w43a | The missing texture generated has changed. | |||
Pocket Edition Alpha | |||||
v0.16.0 | build 5 | The missing texture has been implemented. |
- b1.4-13w17a platform differences
The missing texture used in these versions would be generated differently depending on the operating system and Java version.[9]
Texture | Operating system | Java version | Notes | |
---|---|---|---|---|
b1.4 - 13w01b | 13w02a - 13w17a | |||
Windows XP |
|
Appears standard across all Windows versions. No smoothing. | ||
Windows 7[11] | ||||
Windows 10 |
| |||
Windows 10 |
|
Minor differences in the x and u. No smoothing. | ||
MacOS 10.3.9[18] |
|
No smoothing - standard for non-Retina systems.[17] | ||
MacOS 10.5.8 |
| |||
MacOS 10.6.8[20] |
| |||
MacOS 10.14.6[17] |
| |||
MacOS 10.14.6[17] |
|
Monochromatic smoothing - standard for Retina systems.[17] | ||
MacOS 10.14.6 |
|
Uses polychromatic smoothing instead of monochromatic smoothing like above. | ||
MacOS 10.3.9[22] |
|
Monochromatic smoothing. Almost identical to the above version, with almost unnoticeable single-pixel differences. | ||
MacOS 10.5.8[23] | Unknown | |||
MacOS 10.4.11 |
|
Polychromatic smoothing. | ||
MacOS 10.14.6[17] | No smoothing. | |||
MacOS 10.14.6[17] |
|
Monochromatic smoothing. | ||
MacOS 12.3.0 |
|
Appears to have been smoothed monochromatically with all non-white pixels subsequently set to black. | ||
Debian[25] |
|
No smoothing. | ||
Debian[25] |
|
No smoothing. | ||
Debian under WSL2[26] |
| |||
Ubuntu |
| |||
FreeBSD |
| |||
OpenBSD |
| |||
Arch[28] |
|
No smoothing. | ||
Arch 6.1.1[29] |
|
No smoothing. |
General history[]
Java Edition Beta | |||||
---|---|---|---|---|---|
1.4 | The game now generates missing textures for absent assets. | ||||
Prior to this version, the game would outright crash if a texture could not be loaded. | |||||
The texture does not exist in the vanilla game files as an image, and must be induced through either modding (such as simply deleting existing texture files from the jar) or major glitches which cannot be reliably reproduced.[30][31][32][33] | |||||
Java Edition | |||||
1.5 | 13w02a | The missing texture is now added to procedurally-generated block and item texture atlases (stitched_terrain.png and stitched_items.png). | |||
1.8 | 14w25a | With the merging of blocks-atlas and items-atlas into textures-atlas, blocks and items now both reference the same missing texture. | |||
1.14 | 19w06a | Added particles.png-atlas with the deprecation of particles.png, containing a missing particle texture. | |||
19w07a | Added paintings.png-atlas with the deprecation of paintings_kristoffer_zetterstrand.png, containing a missing painting texture. | ||||
19w08a | Added mob_effects.png-atlas with the removal of effect icons from inventory.png, containing a missing effect texture. | ||||
1.15 | Pre-release 1 | Banner patterns, shield banner patterns, beds, chests, signs and shulker boxes have been split from textures-atlas into banner_patterns.png-atlas, shield_patterns.png-atlas, beds.png-atlas, chest.png-atlas, signs.png-atlas and shulker_boxes.png-atlas, each with their own copy of the missing texture inside, rather than using the same missing texture as blocks and items did. | |||
Pocket Edition Alpha | |||||
v0.16.0 | build 5 | Presumably the version that added the missing texture. It is predefined as an actual file, rather than generated by the game. |
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.[34]
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[]
Java Edition | |||||
---|---|---|---|---|---|
1.8 | 14w06b | ![]() ![]() | |||
It is worth noting that despite being 8x8x8, it maps the entire 16x16 texture on each side as opposed to only the central 8x8 section. This results in no visual oddities for the 2x2 missing texture due to it already only having four distinct square regions at each corner. | |||||
14w10a | ![]() ![]() | ||||
14w25a | Removed the anisotropic filtering option, meaning that the 2x2 checker is once again the only missing texture, and the missing model that uses it the only missing model. | ||||
1.13 | 17w43a | ![]() |
Item[]
- Inventory
Java Edition | |||||
---|---|---|---|---|---|
1.8 | 14w25a | ![]() | |||
1.9 | 15w31a | ![]() | |||
1.13 | 17w43a | ![]() | |||
1.15 | 19w39a | ![]() | |||
19w40a | ![]() | ||||
pre3 | ![]() | ||||
pre4 | ![]() | ||||
1.17 | 21w10a | ![]() |
- Dropped
Java Edition | |||||
---|---|---|---|---|---|
1.8 | 14w25a | ![]() ![]() | |||
1.9 | 15w31a | ![]() ![]() | |||
1.13 | 17w43a | ![]() ![]() |
- Fixed
Java Edition | |||||
---|---|---|---|---|---|
1.8 | 14w25a | ![]() | |||
14w31a | ![]() | ||||
1.9 | 15w31a | ![]() | |||
1.13 | 17w43a | ![]() |
- Held, first person
Java Edition | |||||
---|---|---|---|---|---|
1.8 | 14w25a | ![]() | |||
1.9 | 15w31a | ![]() | |||
![]() | |||||
1.13 | 17w43a | ![]() ![]() |
- Held, third person/other entity
Java Edition | |||||
---|---|---|---|---|---|
1.8 | 14w25a | ![]() | |||
![]() | |||||
14w29a | ![]() ![]() | ||||
14w30a | ![]() ![]() | ||||
1.9 | 15w31a | The remaining invalid data value items like chests now use the full-size missing model. | |||
![]() ![]() | |||||
1.13 | 17w43a | ![]() ![]() ![]() ![]() | |||
1.15 | 19w39a | Fixed the rendering bug that caused translucent items with broken models to render very strangely around entities and translucent objects, likely as part of the fix to MC-9553. |
General history[]
Java Edition | |||||
---|---|---|---|---|---|
1.8 | 14w06b | The missing model has been added as a model file under models/block/missingno.json. | |||
Prior to this version, the game would crash with a NullPointerException if it tried to render a block with no defined model.[35] | |||||
14w18a | The missing model is now hardcoded and cannot be modified by resource packs, as to prevent a crash if the model is replaced by something invalid.[36] | ||||
As a result, it is also absent from the jar file from this point onwards. | |||||
14w25a | The block breaking animation now applies properly to the model; previously, blocks that used it would appear to light up when broken (similarly to the tops and bottoms of beds before 14w10a) without displaying the cracking animation properly. |
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.
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. |
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.[37]
- 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.
Unenchanted | Normal | Deleted | Unloaded | |
---|---|---|---|---|
JE1 | ![]() |
![]() |
![]() |
? |
JE2 | ![]() |
![]() |
![]() |
? |
JE3 | ![]() |
![]() |
![]() |
![]() |
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
/particle
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 addition, this is the first version that allows the use of the
- 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[]
References[]
- ↑ https://developer.valvesoftware.com/wiki/Missing_content
- ↑ MC-239407
- ↑ MC-122177
- ↑ a b MC-206684
- ↑ MC-236295
- ↑ https://youtu.be/nJun57MSyYY
- ↑ Many screenshots from bug tracker tickets feature this version of the texture:
- ↑ https://web.archive.org/web/20140328101841/https://mojang.com/2014/03/minecraft-snapshot-14w10a/
- ↑ https://github.com/NeRdTheNed/MC-TextureGen/commit/efdaa6c6a637b1f8cf8d0160c4ac7c4f779f945e#commitcomment-56639065
- ↑ MC-8149
- ↑ MC-7861
- ↑ MC-6865
- ↑ MC-10625, MC-10682
- ↑ MC-17999
- ↑ MC-10328
- ↑ MC-12026
- ↑ a b c d e f g h i j k l https://github.com/NeRdTheNed/MC-TextureGen/issues/22#issuecomment-922438619
- ↑ a b https://github.com/NeRdTheNed/MC-TextureGen/commit/efdaa6c6a637b1f8cf8d0160c4ac7c4f779f945e#commitcomment-56642974
- ↑ MC-7319
- ↑ a b https://github.com/NeRdTheNed/MC-TextureGen/commit/efdaa6c6a637b1f8cf8d0160c4ac7c4f779f945e#commitcomment-56649619
- ↑ https://github.com/NeRdTheNed/MC-TextureGen/issues/22#issuecomment-922492792
- ↑ a b https://github.com/NeRdTheNed/MC-TextureGen/issues/22#issuecomment-922617901 (also refer to other specifications in source)
- ↑ MC-7208
- ↑ MC-7267
- ↑ a b https://discord.com/channels/361634042317111296/433407899403026434/1062142954837377105
- ↑ https://github.com/NeRdTheNed/MC-TextureGen/commit/efdaa6c6a637b1f8cf8d0160c4ac7c4f779f945e#commitcomment-56731586
- ↑ https://web.archive.org/web/20230508203053/https://imgur.com/gallery/i3FaUkW
- ↑ https://discord.com/channels/361634042317111296/433407899403026434/986983086845730856
- ↑ https://discord.com/channels/361634042317111296/433407899403026434/1061086331247284295
- ↑ https://www.minecraftforum.net/forums/archive/legacy-support/1805293-client-problems-game-isnt-even-playable
- ↑ https://www.minecraftforum.net/forums/discussion/175235-most-usless-item-block/previous
- ↑ https://www.minecraftforum.net/forums/archive/legacy-support/1841577-weird-rain-bug
- ↑ https://www.minecraftforum.net/forums/support/java-edition-support/1947231-missing-tex-inventory-screen-and-other-item-uis
- ↑ MC-239083
- ↑ MC-47560
- ↑ MC-50073
- ↑ MC-123756