Opacity

Opacity (and its inverse, transparency) are properties of blocks with a wide range of effects on the game world.

Properties
The primary purpose of opacity is to tell the game engine if it needs to draw behind the block; an opaque block completely obscures the view behind it, while a transparent block does not. Thus, transparency applies not only to solid blocks like ice and glass, but also to blocks like cacti, stairs, chests, and single slabs, which are not considered full blocks. Opacity also affects how light propagates through the world. Opaque blocks completely prevent light from traveling through them, while transparent blocks generally diminish the light by one light level per block (these value can be overridden however, and there are several exceptions). By this definition, transparency does not imply that a block is actually see-through, which is a quality of the item texture specified by the game or resource pack.

Effects
A lot of the effects of opacity are non-obvious. Minecraft does not have a "solid" property on blocks, so opacity is tested when a test for "solidity" would normally occur.


 * Full placement rules can be found at Opacity/Placement
 * Mobs cannot spawn on transparent blocks, nor spawn inside opaque blocks. However, they can spawn inside a non-solid transparent block, such as flowers.
 * Chests cannot be opened if there is an opaque block on top of them. They are not affected by transparent blocks.
 * Water that is completely surrounded by water or opaque blocks does not have a current. However, if one of the surrounding blocks is transparent, the water shows a downward current on its side, like a waterfall, although swim speed through that water remains unchanged.
 * Redstone behavior (see Redstone circuit and its subpages for details):
 * Opaque blocks overhead can prevent redstone wires from connecting to each other.
 * Only opaque blocks can be powered by power components or transmission components (see list of redstone components).
 * If a transparent block can carry redstone wire, it acts as a diode, carrying power upward but not downward.
 * Tree leaves can overwrite transparent blocks when they grow, but they do not overwrite opaque blocks.
 * Opacity affects door orientation when placed. The door's hinge, by default, is on the half of the block where the player was pointing, but if there is an opaque wall on one side and not the other, the hinge appears on the side with the opaque wall, regardless of where the player was pointing.
 * Ghast fireball explosions start fires only on opaque blocks.
 * Particles that are affected by gravity (e.g. slime particles) fall through non-solid blocks, but stop on opaque blocks.
 * Bats cannot hang on transparent blocks.

Lighting

 * Some transparent blocks can reduce or block light, according to type:
 * and do not reduce the light passing through them, i.e. there is no additional modifier. In other words, light passes through them as if it were air.
 * is set to completely block light propagation. This is usually unnoticeable since lava has the maximum light level of 15.
 * ,, , and s do not have any extra effect on block light, but they do diffuse sky light.
 * $$, water and ice have a -1 modifier to light propagation, on top of the normal decrease of 1 per block.
 * The light level from sunlight or moonlight is the same in each block of air in the column of air above the highest obstruction in the column. When placed, water, ice, leaves and cobwebs obstruct that light column so that the lowest air block above the leaves acts as other light sources do.
 * Sunlight is attenuated by leaves and each vertical layer of leaf blocks attenuates the light further.
 * The growth of grass blocks is linked to the amount of light in the blocks directly above them. A grass block can be killed by placing an opaque, partially transparent, or enough transparent blocks above it, preventing grass from spreading to nearby dirt blocks.

Trivia

 * In the Nether, the spawn point is always on top of an opaque block. This can be seen if the player used a respawn anchor to set their spawn in the Nether.
 * If an opaque block is given transparent pixels in an edited texture, then instead of showing the block behind it through the transparent part, it simply fills in the area with white. However, currently X-ray texture packs could be created using the blocks custom models feature.