The bug
For some plants when the block supporting it is instantly (e.g. using 0-ticks) replaced with the same block type the plant will grow.
The expected behavior is that the the plant should break, or that nothing special should happen.
As it currently stands this behavior allows for mass duplication of these items on the order of tens of thousands of items per hour. Far, far faster than any conventional farming method.
This bug may relate to MC-165023 where crop growth is randomly updated via falling sand on boats.
Affected plants
Carrots, Potatoes, Wheat, and Beetroot
Chorus flower: https://www.youtube.com/watch?v=Ar0Zve-AzeU
Sugarcane: https://www.youtube.com/watch?v=qadaI38zRZc
Twisting vines: https://www.youtube.com/watch?v=ojiaUGdQmDk
Weeping vines: https://www.youtube.com/watch?v=VWbc8GNnkns
How to reproduce
Set the value for the gamerule
randomTickSpeed
to 0/gamerule randomTickSpeed 0
Build a contraption like the one shown in
and activate it
Code analysis
Based on 1.13.1 decompiled using MCPConfig
The affected blocks check in their Block.updatePostPlacement(IBlockState, EnumFacing, IBlockState, IWorld, BlockPos, BlockPos)
implementation (which is called when neighboring blocks change) whether they should break because the supporting block is missing. In this case a tick is scheduled. The problem is that when this tick is executed, the support block exists again and therefore instead of being broken, the plant grows (both actions are part of the update method Block#tick
).
Linked issues
is duplicated by 5
relates to 2
Attachments
Comments 24
This issue was fixed in 18w06a. It may have been fixed unintentionally though as some items (doors, item frames etc.) now do not break when moved by pushed slime blocks. If a mod could close this as resolved for now that would be great.
Resolving as fixed as requested. But keep an eye on it as things can change drastically until the 1.13 release.
Upon further testing, this bug has not been fixed as of 1.13.2 or the 1.14 snapshots and should be reopened. It can work Chrous and Cactus as well. This can be seen in this video by ilmango which exploits this bug here: https://www.youtube.com/watch?v=NkV9iXii9_4
Thank you for pointing that out. It looks like the given setup for the reproduction only works for chorus flowers. Do you have an easy one which works for cactus (as well) and could you add it to the description then please.
It does not affect Carrots, Potatoes, Wheat and Beetroots.
Also it does not affect Bamboo Saplings.
It seems to affect those "stackable" blocks only. By saying "stackable" I mean blocks which can grow another one on top of itself.
Maybe it's an intentional behavior: when the supporting block is removed, the plants break one after another, having 1 gametick delay, rather than break all at once. Perhaps it's a kind of optimization.
This shouldn't be patched, because the community loves it, and it would be like 17w49a, where pistons stopped leaving their blocks behind when given a one tick pulse, this would fix a bug, but devastate the community, and many people would wish for you to bring this feature back, because it costs more to set it up, and only gives you faster rates with certain plants, removing the need for massive, laggy farms just for getting quick rates with crops, the point is, this would upset the players, and shouldn't be patched. Anyways, what I'm saying is please don't remove this.
As I already said above, this is not a discussion forum, please do not use the comment section for larger discussions. Feel free to create a post on our subreddit /r/Mojira or discuss this on our Discord server, though.
Edit: Someone created a reddit post, please use it for further discussion: Zero-Ticking should not be patched, and here's why
Can confirm for MC 1.12.1.