Stops item, coin, and container duplication when blocks are assembled into physics contraptions — ships, vehicles, and anything built with Sable, Create Aeronautics, or simulated (simulated:physics_assembler).
When a physics mod assembles blocks into a contraption, a block that stores contents (Item Drain, Mechanical Arm, Weighted Ejector, Copycats+ blocks, Table Cloth shop, Placard, Mechanical Crafter, Numismatics vendors/depositors, and many more) gets copied into the contraption and drops its contents into the world — one item becomes two.
Every one of these assemblers funnels through a single Sable method (moveBlocks). While that runs, NoDupeFix suppresses any item drop into the world. The contraption already carries the copy, so nothing is lost and nothing is duplicated.
Because it works at the point where every dropped item becomes an entity, it covers any block from any mod, regardless of how it stores its contents — plain items, Numismatics coins, custom currency, anything.
Effectively zero. It's a single boolean check on entity spawns — no stack-trace scanning, no per-tick work, no background tasks. It only does anything during the brief moment a contraption is assembled.
Put the jar in mods/ on your server (or single-player instance). NeoForge 1.21.1. A Sable-based physics mod is optional — without one the mod loads harmlessly and does nothing. Vanilla clients don't need it.
- NeoForge 1.21.1
- Works with Sable, Create Aeronautics, simulated, and anything built on Sable's sub-level assembly.
- No hard dependency on Create — safe on any server.
--------------
# NoDupeFix
Убирает дюп предметов, монет и содержимого блоков при сборке в контрапшены физ-модов — корабли, машины и всё, что строится через **Sable**, **Create Aeronautics** или **simulated** (`simulated:physics_assembler`).
## Проблема
Когда физ-мод собирает блоки в контрапшен, блок с содержимым (Item Drain, Механическая рука, Весовой эжектор, блоки Copycats+, прилавок Table Cloth, Плакард, Механический крафтер, **вендоры/депозиторы Numismatics** и другие) копируется в контрапшен **и** роняет своё содержимое в мир — один предмет превращается в два.
## Как работает
Все эти ассемблеры идут через один метод Sable (`moveBlocks`). Пока он выполняется, NoDupeFix гасит любой выброс предмета в мир. Копия уже уехала в контрапшен — ничего не теряется и не дублируется.
Перехват стоит там, где **любой** выпавший предмет становится сущностью, поэтому покрывает любой блок любого мода независимо от типа хранилища — обычные предметы, монеты Numismatics, кастомную валюту, что угодно.
## Нагрузка
Практически нулевая — одна проверка булевой переменной при спавне сущностей. Без сканирования стека, без работы каждый тик, без фоновых задач.
## Установка
Кинуть jar в `mods/` на **сервере** (или в одиночной игре). NeoForge 1.21.1. Sable-мод опционален. Ванильным клиентам не нужен.
---
*Полностью исследовано, написано, собрано и опубликовано через [Claude Code](https://claude.com/claude-code) (Anthropic).*