According to the spawn rules, Drowned should not spawn on light levels above 0. However, they still spawn at any light level. They do respect the depth limitation (at least 2 blocks of water), but that is it.
This means villages near water are at constant treat of Drowned because no measure of light will prevent them from spawning at night.
I have tried multiple light sources like Glowstone and torches at the surface (testing on a river biome were the river is at most ~6 blocks deep), but even before it is fully dark, Drowned start spawning even right beside Glowstone
The current solution is either blocking access to the water (not ideal) or leveling the river to be as deep as 2 blocks deep (even less)
I have another lake (artificial) that goes as deep as 4 blocks and no drowned is spawning there, I noticed that lake is at Y ~78, while the river at ~63, so this seems to affect only the spawn rate of drowned below sea level.
This was not the case with prior versions where all water around my towns had proper light and that successfully prevented drowned, so it seems to be new with 1.18
- Drowned can spawn at any light level under Y~63 as long there is 2 blocks of water depth
- Adding any source of light to prevent light level 0 at these places should prevent Drowned from spawning, regardless of Y height
How to reproduce:
- Create a water body at least 3 blocks in depth, as long as the water bed is under Y 63
- Add light sources so you can guarantee there is enough light at all water bed
- Observe Drowned spawning
Why is this a problem:
- Villages near any body of water are now permanently unsafe unless inconvenient barriers are placed or the body of water is padded to prevent any depth over 2 blocks