Create Belt Funnel Fix
Keeps items on a Create belt when a blocking funnel is waiting for space in its destination. A focused server bugfix for setups where items slip past a full receiver.
The problem
A belt funnel facing against belt movement should stop incoming items when its destination cannot accept them. After a failed insertion has been cached, items can instead continue past the funnel and leave the end of the belt.
Why it happens
Create's unchanged-inventory cache skips the funnel check after a failed insertion. That skip also bypasses the decision to stop the item. The cache describes the destination inventory, so simply holding every later item would also block a different item that could still fit.
Scope of the fix
The live-vault optimization below is included starting with 1.1.0-beta.1. The original blocking-funnel correction remains available in 1.0.0-beta.1.
- Retries Create's normal insertion path for a blocking funnel while that cache is waiting.
- Uses a live fullness check for ordinary native Create item vaults, avoiding redundant insertion calls only while every slot is full.
- Reads live slots on every attempt, so a newly freed slot can be used immediately even when an inventory version counter is stale.
- Lets the normal insertion result decide whether the item is transferred or held in other cases.
- Applies the same correction to the supported Create: LazyTick handler when installed.
Side funnels keep their existing wait cache. Filters, exact transfer amounts, recipes, belt speeds and inventory capacities retain their normal rules. Existing dropped items are not removed. The fullness shortcut has no timer or tick delay. It keeps weak references and adds no saved inventory data. Other receivers retain the native retry path. Fewer slot insertion calls were verified in a local fixture; a general server performance gain has not been measured.
Compatibility
- Minecraft 1.21.1 and Java 21
- NeoForge 21.1.235 or later in the 21.1 series; locally checked with 21.1.235
- Create 6.0.10, installed separately
- Optional: Create: LazyTick 2.4.9-6.0.x or 2.7.31-6.0.10 for NeoForge 1.21.1
Install on the dedicated server only. Clients do not need this addon. Singleplayer and other Create/LazyTick versions are not supported by this release.
The addon checks the original target classes and patch structure before changing them. An unknown version or conflicting transformation can leave the original behaviour active. Check for CREATE_BACKPRESSURE_HOOK_ACTIVE after the handler is used; the mod-loaded message alone does not confirm the hook. Avoid installing two copies, including the earlier private backpressure addon. Other belt optimizers need separate compatibility checks.
From Steam & Steel
The addon originated in Steam & Steel SMP, our custom Minecraft 1.21.1 NeoForge server modpack. It is available independently of the full modpack and does not require SteamSteelCore, our server configuration or any balance changes.
Acknowledgements
Create is by simibubi and the Create team. Create: LazyTick is by duckgun13476 and its contributors. The related Create issue #9334 and open proposal #9891 document the same blocking-funnel symptom. This addon uses its own guarded correction and native retry approach.
This is an independent community addon.
Beta / Feedback
This is a beta release developed from a specific Steam & Steel server setup. Local checks reproduce the original cached-insertion failure and exercise the corrected native insertion path, item conservation, exact amounts, stale version counters, per-tick output parity, save/reload and actual Mixin application with both listed LazyTick versions. The world/filter lookup prefix is outside that fixture. Player confirmation and broader modpack compatibility remain unverified.
If you encounter a crash, an error or unexpected behaviour, please leave a comment with your Minecraft, NeoForge, Create, LazyTick and addon versions, the hook log message, and steps to reproduce the problem. We will investigate reported bugs and work on fixes.
License
Addon code and original project artwork are licensed under BSD 3-Clause. Copyright (c) 2026, DanielBasov (Steam & Steel). Forks, fixes and redistribution are permitted; retain the author attribution, license conditions and disclaimer in source distributions and in the materials accompanying binary distributions. A fork may not imply endorsement by the original author.
Create and Create: LazyTick retain their own licenses. This package includes no upstream classes or artwork. The original pixel icon uses the saved V3 rendering style.

