Warvior CC:Sable wired fix
Server-side fix that keeps CC:Tweaked cables and attached modems intact while Sable moves ship blocks into a sub-level (MC 1.21.1 / NeoForge). Open source, MIT.
介绍
🇬🇧 English · 🇷🇺 Русский
A server-side NeoForge 1.21.1 mod that keeps CC:Tweaked (ComputerCraft) cables, attached wired
modems and wireless modems intact while Sable moves a ship’s blocks into and out of a sub-level.
Open source (MIT): https://github.com/smirnovmihail1357-netizen/warvior-ccsable-wired-fix — full docs:
README.md
(English) ·
README.ru.md
(Русский).
Do I still need this mod?
Verified by decompiling the current upstream builds, not by reading changelogs:
- Sable 2.0.6 (latest 1.21.1 build, 2026-10-03) — nothing is fixed.
AssemblyTransform.apply(BlockState)is byte-for-byte identical to Sable 1.2.2 (state.rotate(this.rotation), which knows nothing about multipart blocks), andSubLevelAssemblyHelper.moveBlocksstill places blocks with rawchunk.setBlockState(...)and only marks/notifies them afterwards — 2.0.6 added more neighbour notifications rather than fixing the ordering. Sable’s only CC:Tweaked compatibility mixin isWirelessNetworkMixin(a distance redirect); it touches no cable, modem or support logic. - CC:Tweaked 1.120.2 (latest 1.21.1 build, 2026-08-08) —
CableBlock.updateShape,WirelessModemBlock.updateShape,blockTickandconnectionsChangedare all still present, so every injection point of this mod is still valid, and the problem is still there. - CC: Sable (the addon) does not fix it either: its changelogs from 1.2.1 to 1.3.4 are about Lua blocks and math, not about cables or modems.
What this mod does
- Wraps the Sable transfer window (
SubLevelAssemblyHelper.moveBlocks) so the mod knows when blocks are mid-flight. - Defers
CableBlock.updateShapeandWirelessModemBlock.updateShapeduring that window: CC:Tweaked would otherwise rewrite the cable and delete the attached modem because half its neighbours are temporarily air. - Rotates the
computercraft:cablemodemenum and its six connection flags inside Sable’sAssemblyTransform.apply, which vanilla rotation leaves untouched — otherwise the modem ends up pointing through the hull. - Re-settles and refreshes the network 1, 2, 10 and 40 ticks after the transfer:
updateFromNeighbourShapes,setChanged,sendBlockUpdated,updateNeighborsAt, a chunk scan and a deduplicated 5×5×5 area scan. - Re-registers wireless modems with
WirelessNetworkand rebuilds the wired graph onCableBlockEntity/WiredModemFullBlockEntity.
0.8.0 — what was broken in 0.7.3
neoforge.mods.tomlpinnedsable = [1.2.2,1.2.3), so 0.7.3 refused to load with any Sable 2.x — that is every Sable released since 2026-06-13. The range is now[1.2.2,2.1), which is safe: the two mixin targets are identical in 1.2.2 and 2.0.6.- The wired network refresh never actually ran: it looked for a field named
connectionsFormed, and that name exists in no CC:Tweaked 1.21.1 build (checked 1.113.1 through 1.120.2 — the field isrefreshConnections). The refresher now triesrefreshConnectionsfirst, keepsconnectionsFormedas a fallback, usesscheduleConnectionsChanged/queueRefreshwhen available, and logs one warning if it fails instead of staying silent. The wireless refresh always worked. - All four mixins used
require = 1and the mixin config was"required": true, so a future rename in Sable or CC:Tweaked would abort server startup. They are nowrequire = 0with"required": falseanddefaultRequire: 0: the mod degrades to “no help” with a warning instead of crashing the server. - The mod now prints at startup which Sable and CC:Tweaked versions it found and what the wired refresher resolved, so you can tell from
latest.logwhether it is actually working.
Requirements
NeoForge 21.1.x on Minecraft 1.21.1, Sable 1.2.2 … 2.0.x, CC:Tweaked 1.116+. Install it on the
server: the mod registers no client code, and Sable performs the transfer server-side. CC: Sable is not
a dependency.
Русский
Серверный мод для NeoForge 1.21.1, который сохраняет кабели, подключённые проводные модемы и
беспроводные модемы CC:Tweaked (ComputerCraft) целыми, пока Sable переносит блоки корабля в
суб-уровень и обратно. Открытый код (MIT):
https://github.com/smirnovmihail1357-netizen/warvior-ccsable-wired-fix — полная документация:
README.md
(English) ·
README.ru.md
(Русский).
Нужен ли этот мод сейчас
Проверено декомпиляцией актуальных сборок, а не по changelog:
- Sable 2.0.6 (последняя сборка для 1.21.1, 2026-10-03) — ничего не исправлено.
AssemblyTransform.apply(BlockState)байт-в-байт совпадает с Sable 1.2.2 (state.rotate(this.rotation), который ничего не знает о многочастных блоках), аSubLevelAssemblyHelper.moveBlocksпо-прежнему ставит блоки прямымchunk.setBlockState(...)и лишь потом их отмечает и уведомляет — в 2.0.6 уведомлений стало больше, порядок не починен. Единственный mixin Sable ради CC:Tweaked —WirelessNetworkMixin(подмена расстояния); кабели, модемы и проверку опоры он не касается. - CC:Tweaked 1.120.2 (последняя сборка для 1.21.1, 2026-08-08) —
CableBlock.updateShape,WirelessModemBlock.updateShape,blockTickиconnectionsChangedна месте, то есть все точки внедрения этого мода актуальны и проблема никуда не делась. - CC: Sable (надстройка) этого тоже не чинит: её changelog с 1.2.1 по 1.3.4 — про Lua-блоки и математику, не про кабели и модемы.
Что делает мод
- Оборачивает окно переноса Sable (
SubLevelAssemblyHelper.moveBlocks), чтобы мод знал, когда блоки в пути. - Откладывает
CableBlock.updateShapeиWirelessModemBlock.updateShapeв это окно: иначе CC:Tweaked пересобирает кабель и удаляет подключённый модем, потому что половина соседей временно — воздух. - Докручивает перечисление
modemи шесть флагов соединения уcomputercraft:cableвнутриAssemblyTransform.apply— ванильный поворот их не трогает, и модем смотрел бы сквозь обшивку. - Досаживает и обновляет сеть через 1, 2, 10 и 40 тиков после переноса:
updateFromNeighbourShapes,setChanged,sendBlockUpdated,updateNeighborsAt, обход чанка и дедуплицированный обход области 5×5×5. - Перерегистрирует беспроводные модемы в
WirelessNetworkи перестраивает проводной граф уCableBlockEntity/WiredModemFullBlockEntity.
0.8.0 — что было сломано в 0.7.3
neoforge.mods.tomlпинилsable = [1.2.2,1.2.3), поэтому 0.7.3 отказывался грузиться с любым Sable 2.x — а это весь Sable, вышедший после 2026-06-13. Диапазон теперь[1.2.2,2.1), и это безопасно: обе цели mixin идентичны в 1.2.2 и 2.0.6.- Перестройка проводной сети никогда не выполнялась: искалось поле
connectionsFormed, которого нет ни в одной сборке CC:Tweaked для 1.21.1 (проверено с 1.113.1 по 1.120.2 — поле называетсяrefreshConnections). Теперь сначала ищетсяrefreshConnections,connectionsFormedостаётся запасным, используютсяscheduleConnectionsChanged/queueRefresh, а при неудаче пишется одно предупреждение вместо молчания. Беспроводной refresh работал всегда. - Все четыре mixin’а имели
require = 1, а конфиг —"required": true, поэтому будущее переименование в Sable или CC:Tweaked прерывало бы запуск сервера. Теперьrequire = 0,"required": falseиdefaultRequire: 0: мод деградирует до «не помогает» с предупреждением, а не роняет сервер. - Мод теперь печатает при запуске, какие версии Sable и CC:Tweaked найдены и что реально разрешил проводной refresher, так что можно увидеть в
latest.log, работает ли он.
Требования
NeoForge 21.1.x на Minecraft 1.21.1, Sable 1.2.2 … 2.0.x, CC:Tweaked 1.116+. Ставить на сервер:
мод не регистрирует клиентского кода, и Sable делает перенос на сервере. CC: Sable зависимостью не
является.
常见问题
Warvior CC:Sable wired fix 支持哪些 Minecraft 版本?
Warvior CC:Sable wired fix 支持 Minecraft Java 版 1.21.1,可用的加载器:NeoForge。下载时注意选择和你游戏版本一致的文件。
Warvior CC:Sable wired fix 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 NeoForge,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。运行环境:仅服务端。
WarDreg 的其他作品
查看全部 →
Pondus inventory & TFMG Fix
Fixes the TFMG Blast Stove crash when Pondus Inventory queries a fluid handler without a side (MC 1.21.1 / NeoForge). Not needed on TFMG Community Edition 1.3.0+. Open source, MIT.
Create:SoftMotion
Client-side accessibility addon that slows the visual rotation of Create machinery and contraptions (MC 1.21.1 / NeoForge). Purely visual: RPM, stress and gameplay unchanged.
评论
登录后评论和评分