Sable Assembly Fix
No reviews yet
Fixes item duplication during Sable assembly/disassembly by preventing non-Clearable block entities from dropping their contents. Works with any mod - Keg, cabinets, baskets, Item Drains, Sophisticated Storage, etc. No configuration needed.
Neoforge is a fork of the Minecraft Forge available for versions 1.20.1+ of Minecraft. Many Forge mods are compatible with Neoforge and vice versa.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
Compatibility
Supported Environments
About
Project Details
For authors
Embed Badge
If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
Resources
External Links
About
Description
Overview
Sable Assembly Fix fixes an item duplication bug that occurs during Sable assembly/disassembly for block entities that do not implement the Clearable interface.
The Problem
Sable's SubLevelAssemblyHelper.moveBlocks() calls Clearable.tryClear() on every block entity during the assembly process. The issue is:
- For block entities that implement Clearable (e.g. chests, hoppers) — works fine, contents are properly cleared
- For block entities that do NOT implement Clearable (e.g. TableCloth, Mechanical Arm, Ejector, etc.) — tryClear() is a no-op, nothing happens
- The block is destroyed and its items drop into the world, but the NBT data containing the item inventory is still there
- When the block is recreated in the sub-level, the NBT items are read back
- Result: the same items exist both on the ground and inside the block — item duplication
Triggering this bug is trivially cheap:
simply toggle the ship between physics mode and block mode (or vice versa) — each transition triggers assembly/disassembly, which duplicates the contents of any non-Clearable block entity on the ship. No expensive resources or complex setup required.
How It Works
A single @Redirect mixin intercepts the Clearable.tryClear() call inside SubLevelAssemblyHelper.moveBlocks() :
- If the block entity implements Clearable → passes through normally, no intervention
- If the block entity does not implement Clearable → calls level.removeBlockEntity(pos) to remove the block entity entirely, preventing it from dropping any contents
Affected Block Entities (Create + Addons)
| Block Entity | Items per dupe |
|---|---|
| TableCloth | up to 4 |
| Mechanical Arm | entire held stack (e.g. 64 items at once) |
Plus any modded BE with inventory that doesn't implement Clearable.
Note: The Mechanical Arm is especially severe — it duplicates the entire held stack in one operation. If the arm is holding a full stack of 64 items, you get 64 duplicated items per assembly/disassembly cycle. Any modded block entity with an inventory that doesn't implement Clearable is also affected.
Configuration
A whitelist system is included. The config file config/sableassemblyfix/whitelist.json is automatically created on first launch.
Add block entity IDs to the whitelist to skip the fix (e.g. if a mod handles Clearable on its own). Requires a game restart to reload.
Dependencies
- NeoForge >=21.1.228
- Sable >=2.0
- Create: Aeronautics >=1.0.2
License
MIT
Overview
Sable Assembly Fix fixes an item duplication bug that occurs during Sable assembly/disassembly for block entities that do not implement the Clearable interface.
The Problem
Sable's SubLevelAssemblyHelper.moveBlocks() calls Clearable.tryClear() on every block entity during the assembly process. The issue is:
- For block entities that implement Clearable (e.g. chests, hoppers) — works fine, contents are properly cleared
- For block entities that do NOT implement Clearable (e.g. TableCloth, Mechanical Arm, Ejector, etc.) — tryClear() is a no-op, nothing happens
- The block is destroyed and its items drop into the world, but the NBT data containing the item inventory is still there
- When the block is recreated in the sub-level, the NBT items are read back
- Result: the same items exist both on the ground and inside the block — item duplication
Triggering this bug is trivially cheap:
simply toggle the ship between physics mode and block mode (or vice versa) — each transition triggers assembly/disassembly, which duplicates the contents of any non-Clearable block entity on the ship. No expensive resources or complex setup required.
How It Works
A single @Redirect mixin intercepts the Clearable.tryClear() call inside SubLevelAssemblyHelper.moveBlocks() :
- If the block entity implements Clearable → passes through normally, no intervention
- If the block entity does not implement Clearable → calls level.removeBlockEntity(pos) to remove the block entity entirely, preventing it from dropping any contents
Affected Block Entities (Create + Addons)
| Block Entity | Items per dupe |
|---|---|
| TableCloth | up to 4 |
| Mechanical Arm | entire held stack (e.g. 64 items at once) |
Plus any modded BE with inventory that doesn't implement Clearable.
Note: The Mechanical Arm is especially severe — it duplicates the entire held stack in one operation. If the arm is holding a full stack of 64 items, you get 64 duplicated items per assembly/disassembly cycle. Any modded block entity with an inventory that doesn't implement Clearable is also affected.
Configuration
A whitelist system is included. The config file config/sableassemblyfix/whitelist.json is automatically created on first launch.
Add block entity IDs to the whitelist to skip the fix (e.g. if a mod handles Clearable on its own). Requires a game restart to reload.
Dependencies
- NeoForge >=21.1.228
- Sable >=2.0
- Create: Aeronautics >=1.0.2
License
MIT
Versions
Files
Relations
Project Relations
More like this
Similar Mods
Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.
On ModDex
Community snapshot
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers
Statistics
Resources