Vertically stacked hoppers fail to pull before the upper one pushes if hopper-check is equal to hopper-transfer
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 15/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- java
- Domain
- game-dev, performance
Research direction
The payload names only the hopper-check and hopper-transfer settings in spigot.yml and the hopper tick ordering within a chunk; it does not name source files. Start by reading the open linked pull request #14393 to see what it already changes, since the work is under way. A newcomer could reproduce the skip with a vertical hopper chain and hopper-check: 8, then confirm that the fix keeps pull checks running every tick.
Written by the indexing model from the issue text.
Description
Expected behavior
A warning for server owners if they misconfigure hopper-check for performance reasons, or a deterministic approach to executing hopper ticks such as by order of placement in the chunk.
Observed/Actual behavior
Server owners can be unaware that hopper-check = hopper-transfer is causing unpredictable item skips for hopper filters and other usages of vertically stacked hoppers.
If the top hoppers tick executes before the bottom hoppers, it may push before the bottom hopper pulls. This can happen when all hopper cooldowns become synced and processed in the same tick.
Web Examples of misconfigured servers:
https://www.minerealm.com/community/viewtopic.php?t=14973
https://www.spigotmc.org/threads/what-is-hopper-check-in-spigot-yml.380434/
Steps/models to reproduce
Set hopper-check: 8 in spigot.yml and attempt to run a large automated item sort filter from a mob farm.
If the hopper chain and filter hoppers cooldowns regularly expire on the same tick, and a hopper chain hopper executes before the filter hopper, the item will be moved before the filter hopper sees it.
In vanilla minecraft all hoppers check if they can pull items every tick, therefore more often than the transfer cooldown expires of a hopper above it. hopper-check >= hopper-transfer causes pull checks to be delayed and miss their pull opportunity.
Plugin and Datapack List
None
Paper version
26.2-DEV-e5fe717
Other
No response
- Dominant language
- Java
- Stars
- 12.7k
- Forks
- 3.5k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 46
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from PaperMC/Paper
-
type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
status: needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
PaperMC/Paper#14375 · 1 comment ·
Maintainers usually reply within 1 day
-
Add .getIgniter() to ExplosiveMinecartPossibly taken @WouterGritter claimed this 32 days ago. Openstatus: needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
PaperMC/Paper#14097 · 1 comment ·
Maintainers usually reply within 1 day
-
BlockType#isOccluding is incorrectly handledPossibly taken @ryoji-ikeda claimed this 176 days ago. Openstatus: accepted
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
PaperMC/Paper#13790 · 5 comments ·
Maintainers usually reply within 1 day
-
status: needs triage version: 26.3
Difficulty 3/5 1-2 days Newbie friendliness 72/100
PaperMC/Paper#14412 · 1 comment ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
federicoiosue/Omni-Notes#1032 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
unitycatalog/unitycatalog#2025 ·
Maintainers usually reply within 4 days
-
Difficulty 1/5 1-3 hours Newbie friendliness 78/100
krizaka/krizaka-notifications#22 ·
Maintainers usually reply within 1 day
-
CommandDispatcher.register returns a node that is not in the tree when the literal is already registeredPossibly taken @auraseb claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
-
ToolCallbackProvider AutoConfiguration does not preserve tool orderPossibly taken A pull request linked to this issue is open or already merged. Openstatus: waiting-for-triage
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
spring-projects/spring-ai#7206 ·
Maintainers usually reply within 2 days