CM's ALL
Добывайте руды, деревья и рельеф цепочкой — MineAll, CutAll и DigAll в одном моде — и при этом никогда не ломайте свои постройки. Блоки, поставленные игроком, пропускаются автоматически, а всё настраивается через внутриигровой GUI.
- Загрузчики
- FabricNeoForgeForge
- Скачиваний на Modrinth
- 1,4 тыс.
- Подписчиков на Modrinth
- 1
- версий
- 18
- Обновлён
- 6 сентября 20266 сент.
- Опубликован
- в 2026
Коротко о моде
Нужен и в игре, и на сервере
CM'sALL
Настраиваемый мод для цепной добычи со встроенной защитой блоков, чтобы обезопасить ваши постройки.
CM'sALL объединяет три основные функции цепной добычи в одном моде и решает распространённую проблему: случайное разрушение построек игроков. Отслеживая блоки, поставленные игроками, он гарантирует, что ваши деревянные домики, каменные стены и дорожки останутся нетронутыми при массовой добыче.
Поддерживаемые версии
| Minecraft | Загрузчики | Architectury API |
|---|---|---|
| 1.21.1 | NeoForge, Fabric | 13.0.8 |
| 1.21 | NeoForge, Fabric | 13.0.8 |
| 1.20.1 | Forge, Fabric | 9.2.14 |
| 1.16.5 | Forge, Fabric | 1.32.68 |
| 1.12.2 | Forge | — (отдельный, не требуется) |
Каждая версия Minecraft и загрузчик поставляются как свой собственный jar (например, cmsall-forge-1.0.0+1.20.1.jar, cmsall-fabric-1.0.0+1.20.1.jar). Устанавливайте только тот единственный jar, который соответствует вашей версии Minecraft и загрузчику.
Зависимости
- Architectury API — требуется на всех версиях кроме 1.12.2, в версии, указанной для каждой версии Minecraft в таблице выше (9.2.14 для 1.20.1; 13.0.8 для 1.21 / 1.21.1; 1.32.68 для 1.16.5). Любая совместимая более новая сборка для этой версии Minecraft тоже подойдёт.
- Fabric API — требуется для jar-файлов Fabric.
- ModMenu — опционально, только для Fabric. Добавляет кнопку конфигурации в игре в список модов (см. Конфигурация). Без него мод всё равно работает; просто настраивайте его из меню паузы или через команды.
Возможности
Три функции в одном моде
- MineAll: добывает жилой подключённые руды строго одного типа (например, добыча угля не заденет соседнюю железную руду).
- CutAll: валит целые деревья и огромные грибы Нижнего мира. Гигантские грибы Верхнего мира можно добавить в список при желании. Разрушение листьев по цепочке можно опционально включить.
- DigAll: расчищает связанные мягкие блоки ландшафта (земля, песок, гравий, глина и т. д.) в радиусе — смешанный ландшафт объединяется в цепочку.
- Защита построек (отслеживание блоков, поставленных игроками) Отслеживает координаты блоков, поставленных игроками, и автоматически пропускает их при цепной добыче. (Включено по умолчанию для
CutAll; настраивается для каждой функции.) - Чёрный список Некоторые блоки никогда не ломаются по цепочке независимо от списков — по умолчанию спавнеры и рамки портала Края, а также вы можете добавить свои.
- Настройка через GUI в игре Все функции и серверные правила можно настроить через меню в игре — без ручного редактирования JSON или TOML. См. Конфигурация.
- Режимы активации для каждого игрока Игроки могут индивидуально выбирать, как активировать мод: Удержание (Крадучись), Переключатель, Всегда включён или Инверсия крадучись.
- Авто-пересадка Опционально автоматически пересаживает саженцы из выпавших предметов сразу после того, как дерево срублено (настраивается для каждого игрока).
- Гибкое управление дропом Опции отправлять дроп прямо в инвентарь игрока, собирать его в точке разрушения или автоматически удалять настроенные блоки массового мусора (вроде булыжника или земли).
- Прочность инструментов и безопасность Включает настраиваемый множитель расхода прочности. Цепочка автоматически останавливается до того, как прочность инструмента дойдёт до нуля, чтобы предотвратить поломку.
- Серверный авторитет и совместимость с модами на приваты Серверные конфигурации синхронизируются с клиентами и не могут быть переопределены отдельными пользователями. Мод вызывает стандартные события разрушения, чтобы уважать моды на приваты и защиту территорий.
Конфигурация
CM'sALL можно настроить полностью в игре — никакие файлы конфигурации не нужно редактировать вручную.
Из меню паузы (где угодно):
- Нажмите Esc, чтобы открыть меню паузы.
- Нажмите на иконку железной кирки рядом с кнопкой Достижения.
- Настройте режим активации, переключатели или серверные лимиты (только для OP) мгновенно.
Из списка модов (экран заголовка):
- Открой Mods → CM'sALL → Config, чтобы получить доступ к настройкам клиента (режим активации, авто-пересадка, защита). Настройки сервера здесь не отображаются, так как они привязаны к миру.
- На Forge / NeoForge эта кнопка встроена. На Fabric для неё требуется установленный ModMenu.
Привязки клавиш и утилиты
- Клавиша переключения: По умолчанию не назначена во избежание конфликтов. Ты можешь назначить
CM'sALL: Toggleв Options → Controls, чтобы быстро включать и выключать мод без открытия меню. - Личные настройки игрока (режим активации, авто-пересадка, защита) сохраняются на сервере для каждого UUID игрока.
Технические характеристики и производительность
- Лимиты цепочек: Каждый сбор ограничен параметром
globalMaxBlocks(по умолчанию: 256, максимум: 8192), чтобы цепочки оставались в разумных пределах. - Защита TPS (
perTickBudget): По умолчанию (0) вся цепочка обрабатывается за один тик. Для серверов с большим онлайном установка значения выше0распределяет нагрузку на несколько тиков (например, разрушение N блоков за тик), предотвращая лаги сервера и просадки TPS. - Лимиты отслеживания: Глобальные лимиты отслеживания для каждой функции (
trackCutMaxпо умолчанию 16384;trackMineMax/trackDigMaxпо умолчанию 4096). При достижении лимита старые записи удаляются по принципу FIFO (First-In, First-Out).
Команды
Всеми функциями также можно управлять через структуру команд /cmsall.
Для всех игроков
/cmsall status— Показывает твои текущие настройки./cmsall mode <hold|toggle|always|sneak_invert>— Изменяет режим активации./cmsall toggle— Переключает возможность цепного сбора./cmsall replant <true|false>— Переключает авто-пересадку для тебя./cmsall protect <true|false>— Переключает пропуск блоков, поставленных тобой.
Для операторов (требуется уровень прав ≥ editPermissionLevel, по умолчанию 3)
/cmsall enable <true|false>— Главный переключатель мода./cmsall reload— Перезагружает файл конфигурации сервера (config/cmsall-server.json).- `/cmsall <mine|cut|dig> <block|tool> <add|remove> ` — Добавляет или удаляет определения блоков/инструментов (поддерживает ID из модов).
/cmsall track <enable|max|overflow|reset|status>— Управляет отслеживанием поставленных блоков.
Примечание: ID ресурсов, введённые без пространства имён, по умолчанию используют minecraft:.
Известные ограничения (Forge / NeoForge)
Для обеспечения строгой совместимости с модами защиты, приватов и логирования CM'sALL вызывает стандартное событие BlockEvent.BreakEvent для каждого отдельного блока, разрушенного в цепочке, в среде Forge/NeoForge. Как следствие, другие моды, отслеживающие события разрушения (например, квестовые линии, анти-читы или моды на опыт за инструменты), будут обрабатывать отдельные события для каждого блока. Fabric обрабатывает это через свой harvest query API и не создаёт дублирующихся событий.
Для разработчиков (API)
CM'sALL предоставляет небольшой API, не зависящий от загрузчика, чтобы другие моды, которые перемещают блоки (кастомные поршни, конвейеры и подобные моды для перемещения блоков), могли сохранять защиту поставленных игроком блоков при их перемещении. Ванильные поршни обрабатываются автоматически — это только для кастомных перемещателей, не являющихся поршнями. Вызывай это в серверном потоке.
Класс: cmsall.api.CmsAllTracking
Рекомендуемый шаблон — оберни перемещение, затем вызови relocate только для блоков, которые действительно переместились, после перемещения. Если перемещение частично не удалось, неперемещённые исходные блоки сохраняют свою защиту:
import cmsall.api.CmsAllTracking;
CmsAllTracking.beginMove();
try {
// ... твой мод выполняет свои фактические перемещения setBlock здесь ...
CmsAllTracking.relocate(level, landedFromTo); // только блоки, которые переместились; Map<BlockPos, BlockPos>: источник -> назначение
} finally {
CmsAllTracking.endMove();
}
Скобка **реентерабельна** — вложенные вызовы `beginMove()/endMove()` (например, хелперы, каждый из которых оборачивает перемещение) безопасны. Можно пропустить скобку и вызвать `relocate` *до* очистки источника **только если** перемещение — это один шаг, который **не может провалиться**.
- `relocate(ServerLevel, BlockPos from, BlockPos to)` — перемещает одну запись; возвращает, сколько записей там отслеживалось (0 или 1).
- `relocate(ServerLevel, Map<BlockPos, BlockPos>)` — массовое перемещение (двухфазное; безопасно для сдвигающихся/перекрывающихся наборов); возвращает, сколько записей было перенесено.
- `beginMove()` / `endMove()` — подавляют удаление записей во время перемещения; всегда объединяйте их через try/finally.
Доступно на всех версиях и загрузчиках. (На 1.12.2 API работает для кастомных перемещателей, но ванильные поршни не подключаются автоматически.)
**Частичные сбои.** Если переместить *сначала*, а потом провалиться, всё ещё существующий исходный блок остаётся ничем не защищённым: зачистка сирот CM'sALL удаляет теперь уже фиктивную запись назначения (её сохранённый id блока больше не совпадает с блоком там), но она **не может** воссоздать запись для незаписанного исходного блока. Так что перемещение после приземления — это отказоустойчивый порядок; перемещение сначала безопасно только когда перемещение не может провалиться.
**Мягкая зависимость.** Обращение к этим методам, когда CM'sALL не установлен, рискует вызвать `NoClassDefFoundError`. Надёжный идиом — **изолировать каждое обращение к CM'sALL в одном выделенном классе интеграции** и трогать его только когда CM'sALL присутствует — связывание/верификация классов может загрузить упоминаемые типы *до* того, как выполнится ваша строка-проверка (например, когда тип появляется в сигнатуре метода или поле), так что «этот путь кода не выполняется» не всегда достаточно. Проверка наличия вокруг изолированного обращения или зависимость `compileOnly` — оба варианта работают.
---
## Поддерживаемые языки
Внутриигровой GUI CM'sALL, меню конфигурации и сообщения команд автоматически следуют языковой настройке вашего клиента Minecraft — дополнительная настройка не требуется.
Учтите, что возможны ошибки перевода.
**Поддерживается 39 языков:**
- 🇺🇸 English
- 🇯🇵 Japanese
- 🇰🇷 Korean
- 🇨🇳 Chinese (Simplified)
- 🇹🇼 Chinese (Traditional)
- 🇩🇪 German
- 🇫🇷 French
- 🇪🇸 Spanish (Spain)
- 🇲🇽 Spanish (Mexico)
- 🇧🇷 Portuguese (Brazil)
- 🇵🇹 Portuguese (Portugal)
- 🇮🇹 Italian
- 🇳🇱 Dutch
- 🇵🇱 Polish
- 🇷🇺 Russian
- 🇺🇦 Ukrainian
- 🇹🇷 Turkish
- 🇸🇪 Swedish
- 🇳🇴 Norwegian
- 🇩🇰 Danish
- 🇫🇮 Finnish
- 🇮🇸 Icelandic
- 🇭🇺 Hungarian
- 🇨🇿 Czech
- 🇸🇰 Slovak
- 🇷🇴 Romanian
- 🇧🇬 Bulgarian
- 🇭🇷 Croatian
- 🇸🇮 Slovenian
- 🇷🇸 Serbian
- 🇬🇷 Greek
- 🇮🇩 Indonesian
- 🇲🇾 Malay
- 🇻🇳 Vietnamese
- 🇹🇭 Thai
- 🇮🇳 Hindi
- 🇮🇱 Hebrew
- 🇸🇦 Arabic
- 🇪🇸 Catalan
- 🇱🇹 Lithuanian
---
## Лицензия
Этот проект распространяется под **лицензией MIT** — © 2026 G.Vael.Частые вопросы
Как установить CM's ALL?
Установите Fabric под свою версию Minecraft, скачайте CM's ALL под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть CM's ALL?
У CM's ALL есть сборки для Minecraft 1.12.2, 1.16.5, 1.20.1, 1.21–1.21.1.
Нужен ли CM's ALL на сервере?
Нужен и в игре, и на сервере