mojira.dev
MC-190124

Grass decays too quickly when covered in water

Problem

Since 20w12a (MC-130137), grass decays underwater - which is a great change! However, it is decaying too quickly! Grass starts to decay into dirt instantly, which doesn't make much sense, because:

  • The time for grass to begin decay (nearly instant) vs grass spread (multiple minutes) is way out of proportion

  • This makes farms with automatic water-flush systems (like flower farms) difficult to build without killing everything

  • Two seconds of flood watering shouldn't instantly kill grass! (But it does.)

To build a flower farm around this feature, I'd need to use shifting floors, or flying machines, or have an innate understanding of grass spread mechanics, or make really long delays to allow grass regrowth – all of which take my mind out of the game world and make me think about low-level game mechanics instead.

Proposed Solution

Grass shouldn't start to decay until it has been underwater for a certain amount of time.

One way to do this might be to use a "decay counter" similar to crop growth (but with no visual changes), which could reset once the water is removed. This would keep the current behavior of random per-tick chance to decay, but make it much less likely for dirt blocks to appear instantly.

If that's not possible (or practical), can we at least reduce the chance per tick for underwater grass to decay?

Additional Information

As an example, I've attached screenshots from my flower farm, which uses an automatic bonemeal dispenser & water flush cycle. The first shot was taken shortly after activating the farm (after one water flush), the next two seconds later, and the last three seconds after that. Within 10 seconds of the farm starting (2 water flush cycles), there is already noticeable grass decay. It doesn't take long (usually within 1-2 minutes) for enough grass to decay that the farm no longer functions at all, despite what should have been plenty of exposure to air.

Linked issues

Attachments

Comments 13

I totally agree with you but this isn't necessarily a bug. This is better suited for mojang's feedback website

Daniel Matthies

I wasn't sure if this belonged in the issue tracker or on the feedback website - I looked but couldn't find any good guidance on where this sort of thing should go.  I'm more than happy to make a post over on the feedback site and allow this issue to be closed, if that's the "more correct" way to do things.  (Though I do feel like Jira gives more ability to provide detail about the bug/feature request.)

gaspoweredpick

Since grass decaying underwater is based on random ticks, this is intentional. Random ticks also happens with many other things such as crop growth.

I'm leaving this ticket open for Mojang to decide. Yes, this is caused by random ticks and how random ticks work, but it still is an issue in that it can break farms.

I understand that this is a game and not real life, but it just seems odd to have grass killed off by water, since water usually makes things grow not die, but anyway, if it could be made so it takes a reasonable amount of time before it decays the grass, that would be great, as shifting floor flower farms are a major FPS killer and lag creator

3 more comments

Fixed in Java Edition 1.16 Pre-release 8

Alessio Saturno

This "fix" was kind of a bummer though because now cleaning a Mushoorm Fields biome of mycelium is a pain, while making it before this fix wasn't as hard. Couldn't water flow decay grass/mycelium two or three times the time slower than full water blocks? That was really disappointing and i can't even post an issue about this because it's more like a suggestion.

I agree with Alessio - this complicates teraforming.  Just because it causes problems with one type of flower farm shouldn't be enough reason to change the behavior.  Effectively, flooding an area causes a "reverse spread" of grass and mycelium using random tick behavior.  If the water was removed, the area would fill in again.  This is a realistic and predictable expectation.  Without this function, removing mycelium would require digging and replacing, covering and then removing every block.

Daniel Matthies

it causes problems with one type of flower farm

This issue would also affect passive mob farms and some wool farms – there are some very popular farm designs that this would have broken.

flooding an area causes a "reverse spread"

This is sort of true ... but not quite because of the drastic difference in time it takes. In my tests, before the fix was implemented,

Average time for all grass to decay: 1-2 minutes

Average time for all grass to regrow: >10 minutes

Decay was tested with grass covered in water 50% of the time.  Regrowth was tested with no water coverage, just waiting after making sure there's at least some grass blocks left.  If decay was just a "reverse spread" of growth, I'd think being covered in water 50% of the time would result in equilibrium – decay rate would match growth rate – but that wasn't the case.

 

That said, clearing mycelium is also a very valid use of flowing water (and is a huge pain regardless). I personally am also a fan of the slower decay solution (per Alessio's comment), which might not completely resolve my issues, but at least would make it manageable.

The issue still occurs in 1.16.4, every quick flush destroys a grass block right at the source (it does not destroy the grass under flowing water). It should take a bit more time, it could have the same random mechanic with a short delay before it starts randomizing (like 3-4 seconds). That way the mechanic would stay, but we could use the flush based farms with full efficiency.

Daniel Matthies

slicedlime

Community Consensus

Important

Block states

1.16 Pre-release 7

1.16 Pre-release 8

Retrieved