Updated description by @unknown
The bug: hoppers do not search the entire block space above themselves for items to collect, as they do on Java. Instead, they search only + 0.625 Y (5/8 block or 10 pixels) above themselves.
Steps to reproduce
Put a pointed dripstone, enchanting table, or horizontal grindstone on top of a hopper.
Drop an item on top.
[media]
Expected result
The hopper collects the item.
Observed result
The hopper does not collect the item.
Note: The original report here focused on hoppers not collecting items from above soul sand, dirt path, and farmland blocks, as they do on Java. However, those blocks (along with honey blocks) have full-height collision in Bedrock (MCPE-12109, MCPE-87458) so they cannot be used to show the bug in the hopper collection range.
Hoppers will not pick up items through soul sand, path, and farmland blocks.
Linked issues
is duplicated by 10
Attachments
Comments 16
Could we potentially see this as a feature? It would match Java, and also be super useful, as well as make sense. When a player stands on soul sand, they are lower than a full block.
There's a difference between an item entity, which floats above the surface, and other kinds of entities that rest on the surface, and that might be the issue here. I don't have Java so I can't compare the behavior, but if Java hoppers suck item entities floating on these blocks, I believe the developers will treat this as a parity bug and fix it.
I find it suspicious that item entities have the same Y coordinate for all three of these blocks as they do for a full-size solid block. I know the hit boxes of these blocks are < 1 block tall, and if the item entity sinks to the hit box of a bottom slab or pressure plate (which it does) then why wouldn't it do the same for these? Maybe they did something weird like hard code the item entity Y calculation instead of doing collision detection, who knows?
Confirmed on 1.14.0. The following non-cubic solid blocks let hoppers suck in item entities on them:
Bottom-half slabs
Lower trapdoors
Carpets
But these don't:
Farmland
Soul Sand
Grass Path
Farmland and grass path blocks actually have full-block collision boxes, so it's no mystery why hoppers underneath don't suck items floating on top of them. See MCPE-12109.
Soulsand was given a full collision box in 1.16. See MCPE-87458. This was probably done in 1.16.0.63 beta, based on the changelog statement:
Mobs can now pathfind on Soul Sand blocks
In MCPE-155479, it had describe the difference between java and bedrock edition with a detail analysis, which the difference feature is more or less causing players unable to manipulate most hopper-related contraption that collect item entities.
Comment updated 8/24/22 with new analysis based more precise test results from teleporting items to fractional coordinate positions on every tick.
From the hopper's exact Y coordinate (its bottom edge) , it collects items whose positions are +0.375 Y < POS < +1.625 Y, or in other words within 5/8 of a block (10 pixels) above or below its top. Presumably, the search range of the hopper starts below the top of the hopper instead of at the top (at +1 Y) so that it can collect items that sit inside the funnel. I have also checked Java for comparison, and in Java hoppers can also pick up items at +0.375 Y from the bottom of the hopper (-0.625 Y or 5/8 block below the top) of the hopper.
It may be that the search range actually starts at +0.625 and it grabs items that sit at > +0.375 because their collision box extends upward by 0.25 and, therefore, into the search range. If that is the case then the full search range in Bedrock is actually 1 block. That sure looks like a simple mistake of thinking only of the space above the hopper and forgetting that collection starts deep inside its funnel. The range ought to be 1.375 blocks if it does start at +0.625, or if I am wrong about the impact of items' collision box height and the search starts at +0.375, then the range ought to be 1.625 blocks.
Affects 1.19.40.21.
Since the collision height of mud and soul sand has been lowered from 1.19.40.21, this has become a very urgent issue for technology users(even for users who just make sugar cane or bamboo farms!).
Confirmed in 1.13.1 on Windows 10.
I have attached a demo world MCPE-55824.mcworld. I suspect that the reason it works this way is that when an item entity is floating above one of these blocks, its Y coordinate is 1.1 blocks above the hopper, which would put it out of range. For an item entity floating above a bottom slab, on the other hand, its Y coordinate is 0.6 blocks above the hopper, which is in range so the hopper sucks it in.