Direct answer
Profile while the storage system is loaded and active. If hopper or inventory-move work is a major branch, reduce unnecessary hopper checks and fix any plugin that performs expensive work for every item movement.
Paper behavior
Paper includes hopper-specific optimizations. Current Paper defaults include a cooldown when a hopper is full. Paper also exposes options such as hopper.disable-move-event, but disabling the Bukkit inventory-move event can break protection or other plugins that rely on it.
Do not change event behavior casually
disable-move-event: true can dramatically improve hopper performance, but Paper explicitly warns that it breaks plugins that depend on InventoryMoveItemEvent. Treat it as a compatibility trade-off, not a universal recommendation.Practical fixes
- Use fewer constantly-active hopper lines where the same storage design can be achieved with batching/buffering.
- Stop abandoned farms and storage systems from staying chunk-loaded.
- Check plugins that listen to inventory movement, logging, protection, shops, or custom items.
- Keep Paper's current defaults unless profiling proves a reason to change them.
Re-test the exact storage load
Performance changes should be tested with the same farms loaded and similar item throughput. A profile while no items are moving can hide the real cost.
References
These sources were checked while preparing this article. Performance behavior and configuration can change between Minecraft/server-software versions, so verify version-specific settings before applying them.
Related articles
Help us improve this article
Tell us what is missing, unclear, outdated, or incorrect. You can also suggest something we should add.