mojira.dev
MC-113809

Chorus Flower plant, Bamboo, Sugarcane, Cactus and other plants grow instantly when supporting block is replaced with same block type

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

How to reproduce

  1. Set the value for the gamerule randomTickSpeed to 0

    /gamerule randomTickSpeed 0
  2. Build a contraption like the one shown in

[media]
  1. 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

Attachments

Comments 24

Can confirm for MC 1.12.1.

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.

14 more comments

As of Snapshot 20w06a, this bug now also affects Weeping Vines and Kelp.

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

Hi. I'm going to trash all comments on this issue from now on. We've already referred you to the subreddit for discussions. This is not a discussion forum.

Jeremy

boq

Confirmed

Redstone

bamboo, beetroot, block-update, cactus, carrots, chorus_flower, duping, exploit, potato, sugarcane, tick, twisting_vines, update, weeping_vines, wheat

Minecraft 1.11.2, Minecraft 17w06a, Minecraft 17w13a, Minecraft 1.12 Pre-Release 6, Minecraft 1.12, ..., 1.15.2, 20w06a, 20w07a, 20w10a, 20w11a

Minecraft 18w06a, 20w12a

Retrieved