mojira.dev
MC-268689

Using bone meal in forest biomes doesn't generate lilies of the valley

Forests, birch forests, old growth birch forests, and dark forests generate lilies of the valley as part of the forest_flowers feature. Despite this, using bone meal on grass blocks in these biomes only generates dandelions and poppies, and no lilies of the valley.

This makes lily of the valley very difficult to farm, despite it being a relatively common flower, as currently it can only be regrown in specific areas in flower forests, depending on the flower gradient.

How to reproduce

  • Generate a world with the seed 5946705697671253412

  • Run the command /tp 45 64 0

  • It's a forest biome with a naturally generated patch of lilies of the valley

  • Use bone meal on the ground within the forest biome

  • Dandelions and poppies appear, but lilies of the valley never generate

Possible fix
If I had to guess, bone meal only generates the default dandelions and poppies because forest_flowers also includes tall flowers. One possible fix would be removing the flower_default feature from the forest biomes, and instead using two separate features for small forest flowers (dandelion, poppy, lily of the valley), and tall forest flowers (rose bush, peony, lilac). Bone meal would be changed so that - in forest biomes - it generates flowers using the new "small forest flowers" feature. This would allow bone meal to generate all three small forest flowers.

Note
Flower forests also generate lilies of the valley, as part of the forest_flowers feature and the flower_flower_forest gradient. Using bone meal in flower forests applies the gradient, meaning lily of the valley can only be regrown in areas where the gradient allows it. I'm pointing this out because I imagine this behavior - in flower forests specifically - is intended, although it looks really inconsistent on a surface level.
Splitting forest flowers into two separate features for small flowers and tall flowers would allow flower forests to generate lilies only as part of the gradient - while keeping the tall forest flower feature - resolving the inconsistency described above.
Anyway, changes to the noise used to generate the gradient also made lilies of the valley considerably rarer than before. Issues with lily of the valley in flower forests are covered in MC-241620.

Linked issues

Comments 3

I haven't done (and don't know how to do) any code analysis myself, but I've heard from someone more knowledgeable that the bonemeal pattern follows the first configured feature of type flower defined in a biome. forest_flowers is defined before flower_default in these biomes' json files, but forest_flowers is a simple_random_selector feature rather than a flower feature — seemingly because then it can then choose between patches of flowers and have a consistent type between them on world generation (as opposed to default flowers, where each flower is randomly a poppy or dandelion).

I think grouping the tall flowers (already renewable in themselves) in one feature and the short flowers in another would be beneficial, though I believe the short flower feature would either need to be a gradient in its own right, or lilies of the valley would be able to generate in bonemeal applied in forests regardless of whether they were there initially.

Lilies of the valley being able to generate regardless of whether they were there initially wouldn't be an issue in non-flower forest biomes. I'd argue that would be the ideal behavior, the same happens for poppies and dandelions, as well as plain flowers (daisy, azure bluet, cornflower, as well as different tulip types inside tulip patches)

I should be able to create a Lily of the Valley flower farm in the same way I can create a tulip flower farm. The flower map should be the same as the rest of the flowers and Lily of the valley should not be replaced with some other random flower.

bodakugga

(Unassigned)

Confirmed

(Unassigned)

bone-meal, flower, forest, lily-of-the-valley

1.20.4, 24w07a, 24w12a, 1.21, 1.21.4, 25w02a, 25w03a

Retrieved