mojira.dev
MC-6162

Unexpected behavior with stacked hoppers and chests

Perhaps not a bug. I'll let you be the judge. (Sorry for the wall of text.)

The attached screenshots tell a bit of a story. The first shows the front of a simple sorting system built with chests and hoppers (in the back). Items are put into the top hopper (perhaps by water stream). Shot #2 shows that inside each chest is at least one of each item (as labeled) so only that items gets put into that chest. Shot #3 shows the back, including a fourth hopper at the bottom to catch anything that doesn't fit into the chests.

Now, the behavior I would expect goes like this: Seeds, wheat, and eggs would get into the top hopper. After a time all of the seeds would be in the top chest, all of the wheat would be in the middle chest, etc. Anything not seeds, wheat, or eggs would end up in the bottom-most hopper.

What actually happens is the top hopper tries to put seeds into the top chest, and sometimes succeeds. But, the second hopper starts pulling items out of the top hopper, so they start competing to grab items. Some seeds get into the chest as intended, but some get passed down the system with nowhere to fit and end up at the bottom hopper. The same is true for the wheat and the eggs. Shot #4 shows the contents of the bottom hopper, containing items that should be in chests higher up.

Linked issues

MC-6038 Hopper doesnt always put items into the container it is "Connected" to Resolved MC-7009 Behavior of hoppers is inconsistent Resolved MC-7071 Hopper block crash sucking blocks out of other hoppers Resolved MC-7081 Hopper underneath a hopper pointing to the left/right doesn't always pull item out when using as filter. Resolved MC-7136 I found a coupled bug whit hopper Resolved

Attachments

Comments 46

... sorry, wrong ticket.
Nothing happened here 😉

I just tested this, and I can confirm this behavior.

I think the hopper's top side's pull (topside) operation takes precedence over it's push (bottom and side) operation, which would cause this behavior.

Tanisha Angelia

Duplicate of MC-6038. It isn't a bug, the hopper retrieve items from the object above it automatically which is how they are supposed to work.

The best solution for achieving what you are trying to achieve would be to have a pipe system so you can avoid stacking the hoppers under each other; maybe Mojang will add this together with filter objects such as a filter hopper and a filter pipe (can hope), if not, then compact and complex hopper designs won't be possible, and sadly neither automatic item sorting.

This may not be a bug per se, but it is moderately inconsistent behavior — for example, I built a system like this but without intending to sort, merely three stacked chests — and the top and bottom chests got 50% split whereas the middle chest got nothing.

I think it would be worth improving the behavior so that it is less obviously "the effects of the precedence of a set of imperative rules".

For example, what if, when a hopper grabs an item from a hopper above, it doesn't grab the item if it is possible for the hopper above to place an item? Thus hoppers below hoppers never starve the hoppers above, and this sorting system would work as intended.

Hoppers need consistency - NEED it - if they will ever achieve their maximum usefulness. They should either always store the items before being able to be pulled form, or always have their items pulled to another hopper before being stored. Hell, even a switch between "store" and "pass along" mode. It just needs consistant

36 more comments
Steve Blanding

@Kumasasa: I can confirm Rocket Turtle's observations. Horizontal hopper behavior now appears to work correctly. Vertical behavior still seems to be a little less correct.

This is a great improvement and I could live with this just it is now but it doesn't appear to be 100% correct just yet.

Jesper the End

horizontal works as expected now, hoppers got waaayy slower though, but I can live with that.

Michael Turner

May be related to MC-8457.

This seems to be broken again. I if I make a vertical stack of chests and point hoppers into them, items which go into the top hopper will either all end up in the bottom chest, or half in the top and half in the bottom. Any middle chests will be skipped for some reason.

It should be desired that if a hopper is pointing in to a chest or another hopper, that should take priority. Items should be fed from the hopper into the desired destination with a higher priority than another hopper trying to pull from that hopper by being below it.

A player shows intention with a hopper by directing it at a destination. This should be higher priority than placing a hopper below another, with the upper hopper /not/ pointing directly at the lower hopper.

@Phil71994 Please don't make duplicate reports.

Having done more thinking on this issue, here is what I propose:
If a hopper points into anything other than a hopper, then if the object it points in to can accept items, that should take priority over a hopper below that hopper. If a hopper points into another hopper, than the hopper below the original hopper should take priority over the direction the original hopper is pointing. This allows all old contraptions to still work while making new contraptions allow for storage item sorting.

rocketturtle

(Unassigned)

Community Consensus

chest, hopper

Snapshot 13w01b, Snapshot 13w02a, Snapshot 13w02b, Snapshot 13w03a, Snapshot 13w04a, ..., Snapshot 13w09a, Snapshot 13w09b, Snapshot 13w09c, Snapshot 13w10a, Minecraft 1.5

Retrieved