[MCPE-13417] Item travel very slow when using hoppers. Created: 12/Feb/16  Updated: 10/May/17  Resolved: 28/Apr/16

Status: Resolved
Project: Minecraft (Bedrock codebase)
Component/s: None
Affects Version/s: 0.14.0, 0.14.0 Beta 6
Fix Version/s: 0.14.2

Type: Bug
Reporter: Sam Hernandez
Resolution: Fixed Votes: 4
Labels: hopper

Attachments: JPEG File hopper-pipe-glitch.jpg    
Issue Links:
Duplicate
is duplicated by MCPE-13559 Hopper issue for "from hopper to hopp... Resolved
is duplicated by MCPE-13591 Hoppers get cloged up Resolved
is duplicated by MCPE-13946 Hopper much slower than Java version Resolved
Relates
relates to MCPE-14075 Strange nondeterminism in horizontal ... Resolved
Confirmation Status: Unconfirmed
Platform: Phone - Android - Motorola Moto X

 Description   

Hoppers don't spit out items instantly. Instead they wait until they are completely filled up and then spit out items. For example, if I put a stack of diamonds in the hopper the other hopper that the diamonds will travel to won't spit out the diamonds instantly. It takes a very long time for the items to travel long distances and I hope you guys can fix it in 0.14.1 or something. Thank you for your time!



 Comments   
Comment by PHO [ 28/Apr/16 ]

This particular issue has been fixed in 0.14.1 but fixing it incurred a different problem, namely MCPE-14075.

Comment by PHO [ 07/Apr/16 ]

Fixed in 0.14.1. Thanks!

Comment by Julian [ 17/Mar/16 ]

Same here. i made a lot with hoppers the last days. (timers,sorting machines etc.) i can confirm it is fast downways and slow sideways.

Comment by PHO [ 19/Feb/16 ]

I investigated this further. The glitch doesn't occur when the hoppers are cascaded vertically. And for horizontal hopper pipes, the glitch sometimes occurs and sometimes not. More specifically, a perfectly working horizontal pipe may stop working after reloading the world, and if you reload it again the pipe may start working correctly. So,

  • The bug is in the "push" action of hoppers. Not in the "pull".
  • The bug depends on the order of hoppers being processed in the same tick.

Steps to reproduce:

  1. Build a structure shown in my screenshot hopper-pipe-glitch.jpg.
  2. Put a stack of items into the chest α.

What actually happens:

There should be a moment where all of the three comparators are activated, but sometimes that doesn't happen.

My hypothesis is as follows (TL;DR):

Suppose we had 2 items X and Y in the chest α, and hopper A were to be processed first, then B, then C.
At the game tick t = 0,

  1. Hopper A checks its cooldown counter and finds it's 0.
  2. Hopper A attempts to push an item inside it to hopper B, but fails since it has no items.
  3. Hopper A attempts to pull an item from chest α, namely the item X. This succeeds so the cooldown counter of hopper A becomes 8.

At t = 1,

  1. Hopper A subtracts 1 from its counter. The counter becomes 7.

At t = 8,

  1. Hopper A subtracts 1 from its counter. The counter becomes 0.
  2. Hopper A pushes the item X to hopper B, and resets the counter of both A and B to 8.
  3. Hopper A pulls the item Y from chest α, and resets its own counter to 8. (This is actually a no-op though.)
  4. At this time, hopper B is supposed to check its counter and subtract 1 from it. But in reality it doesn't, which is the cause of glitch.

At t = 9,

  1. The counter of hopper A becomes 7.
  2. The counter of hopper B also becomes 7 while it's supposed to be 6 now.

At t = 15,

  1. The counter of hopper A becomes 1.
  2. The counter of hopper B becomes 1, while it's supposed to be 0 now. So it should push the item X to hopper C but actually it doesn't.

At t = 16,

  1. The counter of hopper A becomes 0.
  2. Hopper A pushes the item Y to hopper B, and resets the counter of both A and B to 8. Yes, hopper B is suspended again before getting a chance to push the item X. Now hopper B has two items X and Y, which shouldn't happen.
  3. Hopper A attempts to pull an item from chest α, but fails since the chest is now empty.
  4. At this time hopper B is supposed to decrease its counter but it doesn't. The counter remains to be 8.

At t = 24,

  1. The counter of hopper A becomes 0, but it has nothing to do now.
  2. The counter of hopper B becomes 0.
  3. Hopper B pushes the item X to hopper C, and resets the counter of both B and C to 8.
  4. Hopper C should decrease its counter but again, it doesn't.

At t = 32,

  1. Hopper B pushes the item Y to hopper C, and resets the counter of both B and C to 8. Now hopper C has two items X and Y.

At t = 40,

  1. Hopper C pushes the item X to chest β.

At t = 48,

  1. Hopper C pushes the item Y to chest β.
Comment by PHO [ 18/Feb/16 ]

Confirmed in 0.14.0 alpha.

Generated at Sat Jan 11 14:59:47 UTC 2025 using Jira 9.12.2#9120002-sha1:301bf498dd45d800842af0b84230f1bb58606c13.