In 1.21.5, the place_on_ground decorator type was introduced for tree features, to place leaf_litter blocks under the leaves. In this version, this worked even if the tree generated partially or entirely under a roof, which makes sense--even if the leaves are under an overhang or partly in a cave, they would still fall on the ground. This was especially useful for custom world generation, so trees in cave biomes or Nether-like dimensions could have leaf_litter as well, or other unique applications that would otherwise require more hacky methods like feature stacking.
As of Snapshot 25w15a and now in 1.21.6, the place_on_ground decorator appears to only place the blocks if the surface they’re trying to place on is at the top of a heightmap, presumably motion_blocking_no_leaves. This means that if a tree generates near an overhang or cave, the blocks in the cave no longer get leaf_litter, which also completely removes this decorator as an option for custom trees in cave biomes or Nether-like dimensions.
Steps to recreate:
In 1.21.5, use
/place feature minecraft:birch_leaf_litter
on the surface, and note that it places leaf_litter around it.Go to a cave with enough room for the tree to generate, and use the same command. Note that there is still leaf_litter (expected behavior)
In 1.21.6, repeat the same steps. Note that in the cave, the birch tree does not generate leaf_litter, because it is under a roof, despite the fact that leaves would reasonably still fall to the ground under these conditions.
According to MC-295681, this was done to prevent leaf_litter from generating on the floor of Woodland Mansions, however a seemingly unintended side effect of the change removes this decorator as a valid option from many custom tree applications. Some alternate solutions might include allowing placements or a block_predicate_filter to be applied to the decorator in tree configured_features, though there may be other solutions that make more sense.
Comments 0
No comments.