Hoppers cannot pick up an item stack into more than 2 slots at at a time.
How to replicate:
See attached video (sorry about the quality and audio it was recorded with a laptop camera)
Place down two hoppers with a one block gap between them.
Place a block with an inventory (e.g., dispenser, chest, hopper) underneath one of the hoppers such that items can flow from the hopper into the other block.
place a lever between the two hoppers and flip it in order to lock both hoppers simultaneously.
drop 5 stacks of items (maximum amount a hopper can hold) on top of both hoppers.
flip the lever to unlock both hoppers simultaneously.
Expected result
The hoppers collect the items at the same speed.
Observed result
The hopper transporting items picks them up more slowly.
Attachments
Comments 4
Jaidan: It seems like you are trying to report that item filters are unreliable, but, as I explain in my first comment, your reproduction steps do not apply to item filters.
There are several well-known issues that can make item filtering systems unreliable.
With respect to filters under hopper pipes, the random block update order in Bedrock Edition entails that a hopper pipe transferring a continuous stream of items can rearrange the order of those items. This can cause some items to skip past filter hoppers. However, it is working as intended per MCPE-28890. Workarounds include multiple filters for each item type (as you suggest), slowing down the hopper line by using clocked redstone pulses to pause the hoppers, or cascading the hopper line so that each each filter is under a hopper that pulls its own items in rather than having them pushed in from the side.
With water streams, filter hoppers may fail to "see" a matching item when a non-matching item is its its collection range at the same time. The underlying reason is described in MCPE-38963, which has already been fixed in Preview.
Also with water streams, hoppers have the 8 game tick collection cooldown I mentioned in my first comment. Items in water streams take only 4 or 5 ticks to move across a hopper, so if you have a dense load of items moving past filters it may be necessary to set up multiple filters for each item, loop the items so that they can pass the filters multiple times, or make a contraption or water layout that groups items into fewer, larger stacks. The collection cooldown has never been reported as a bug and my guess is that it is probably intended for performance reasons or to synchronize with the cooldowns on pushing and pulling items to/from containers.
(Sorry for slow reply/update)
I was unaware of the cooldown or unusual behaviour regarding multiple stacks sitting on top of a hopper. The cooldown would explain the issues I was having with water streams as I was using a observer clock to dispense the items into the stream. I do not believe they explain the issues I am having with unreliable item sorters however.
I have a piglin trading farm with 11 piglin. The drops fall into a hopper line (yes I know they produce too many items for that it was an oversight on my end). The hopper line then passes over the standard style of sorting system. On occasion, items are able to completely ignore the sorting system and pass right through to my final chest for non-stackable items.
In the portal powered gold farm I made, I used three separate sorters per item (ingot, nugget, flesh) to get around the issue and have since seen items make it to the third sorter before being stored. This is despite none of the storage on any of the sorters being filled and using a hoper line that only moves one item across at a time. In both situations it has occured whilst standing within the same/adjacent chunk to the sorter so it will not be a problem with unloading a chunk while an item is being sorted. Just waiting for an item to make it through all three sorters and clog up my auto smelter for the gold swords.
I will admit though, it is occasional (one in every couple stacks) so I wouldn't be surprised if it is due to some of the performance issues you can get on bedrock (especially since I'm on Xbox one which I've found to struggle with 150+MB worlds and multiplayer)
What you describe with your bartering and gold farm storage is what I was talking about in my first bullet point. To explain a little more fully, it's caused by two things.
Hoppers update in random order, and
hopper's don't keep track of which item they were planning to send out next.
As a result of (1), a hoppers in a horizontal pipe can often get a 2nd item in before they send their first item out. Then, if the items don't match, the 2nd item will go to the 2nd slot. On the next update, if that hopper again receives an item before it pushes out its 2nd-slot item, then as a result of (2) the item it receives will go in and then out of its 1st slot in one tick while the 2nd-slot item stays where it is (MCPE-166990). When that happens, not only do the items in the hopper pipe get reordered (as described in MCPE-28890), the item that comes in and goes out of the hopper in one tick will skip past any filter hopper underneath .
Aside from the workarounds I already mentioned, I would recommend filtering out the unstackable items from your hopper pipes first with an unstackable filter. It will introduce gaps in the item flow, which makes the filtering more reliable, and for the gold farm it will prevent smelters from getting clogged with unsmeltable items.
I have updated the report summary based on what is actually happening in the steps and video provided, which you can see in more clearly in
[media]The hopper pointing into the container picks up item stacks more slowly because of this unexpected limitation in its logic:
[media]A hopper collects only enough items from a stack to fill at most two of its slots during each collection.
The following rules are also part of hopper logic, but they are the same between the two examples shown in the steps and video, and are probably intended as a reasonable way to constrain the performance impact of hoppers:
Hoppers have a collection cooldown of 8 game ticks. Meaning, after collecting an item or item(s) they will not attempt to collect items again for 8 game ticks.
A hopper attempts to take items from only 1 item stack during each collection.
The rules given above entail that if you start with an empty hopper with multiple stacks of the same item sitting on it (as in the given steps and video), and either the hopper is able to push items into a container (as in the given steps and video) or the hopper has another hopper underneath pulling items out, then the following sequence ensues:
Collect a full stack of 64 items.
Lose 1 item from the stack (whether pushed out or pulled out).
Collect a full stack of 64 items. Hopper holds 64 / 63 / 0 / 0 / 0
Lose 1 item. Hopper holds 63 / 63 / 0 / 0 / 0
Collect 2 items. Hopper holds 64 / 64 / 0 / 0 / 0
Lose 1 item. Hopper holds 63 / 64 / 0 / 0 / 0
Collect 62 items (all that remained in the next floating stack after step (5)). Hopper holds 64 / 64 / 61 / 0 / 0
Lose 1 item. Hopper holds 63 / 64 / 61 / 0 / 0
Collect 4 items. Hopper holds 64 / 64 / 64 / 0 / 0
Lose 1 item. Hopper holds 63 / 64 / 64 / 0 / 0
Collect 60 items (all that remained in the next floating stack after step (9)). Hopper holds 64 / 64 / 64 / 59 / 0
Lose 1 item. Hopper holds 63 / 64 / 64 / 59 / 0
Collect 6 items. Hopper holds 64 / 64 / 64 / 64 / 0
Lose 1 item. Hopper holds 63 / 64 / 64 / 64 / 0
Collect 58 items (all that remained in the next floating stack after step (13)). Hopper holds 64 / 64 / 64 / 64 / 57
In this sequence, it is clear that the limitation on placing items into only 2 slots during each collection causes the hopper that is being drained to collect much more slowly when trying to collect multiple stacks of the same item into > 2 slots.
All this being said, I do not see how this could affect item filters as asserted in the description outside the reproduction steps, because item filters only contain one stack of the item that is being collected.