JoaCarpet - небольшое расширение для Carpet Mod, которое заточено под техническую игру. Редстоун, складские механизмы, отладка хрупких схем - вот его вотчина. Если вы из тех, кто часами гоняет дропперы в поисках нужного разброса предметов или ловит поведение поршней на грани бага, этот мод для вас.
Обычный Carpet даёт кучу правил, но некоторые вещи в нём просто не реализованы. JoaCarpet закрывает именно эти пробелы. Тут нет косметики, нет новых мобов и биомов - только инструменты для людей, которые копают механику Minecraft до винтиков.
Что это и зачем нужно
Технический Minecraft держится на случайности. Дроппер выкидывает предмет с рандомной скоростью, снаряд летит с рандомным отклонением, поршень ломает блок и тот получает случайную позицию и вектор. Всё это мешает воспроизводимым тестам: схема работает, а завтра нет.
JoaCarpet решает эту боль через правило insaneBehaviors. Оно заставляет случайные величины перебираться не хаотично, а систематически - по всем крайним значениям, затем по всем промежуточным точкам. По сути мод проходит по сетке возможных состояний с постепенно растущим разрешением. Вы получаете полный контроль над тем, что раньше было чистым рандомом.
Мод относится к категории creative/utility, а не к геймплейным или визуальным. Это чистый инструмент.
Правило insaneBehaviors
Тут стоит разобраться внимательнее, потому что именно ради этого правила многие и ставят JoaCarpet.
Механика работает так: случайные скорости дропперов и снарядов, а также позиция и скорость блоков, выбитых поршнями, начинают итеративно перебирать самые крайние значения. Потом мод идёт по всем серединным точкам между ними. По сути перебирается каждая точка в 3D/5D-сетке, разрешение которой медленно растёт.
Для дропперов и снарядов правило решает, чему соответствует максимум: старым гауссовым границам рандома (extreme) или границам треугольного распределения, которое ввели в Minecraft 1.19 (sensible). Для блоков, ломаемых поршнями, оба режима работают одинаково.
- Тип:
String - Категории:
CREATIVE,JOA - Значения:
extreme,sensible,off - По умолчанию:
off
Важный нюанс. insaneBehaviors работает через глобальный итератор. Любое событие, которое его триггерит, шагает по итерации заодно со всеми остальными событиями insaneBehaviors. То есть изолировать одно правило от другого не получится - они идут в одной связке.
commandInsaneBehaviors
Команда для управления правилом insaneBehaviors.
-
resetвозвращаетresolutionиcounterк дефолтным значениям -
getstateиsetstateчитают и пишут текущее состояние итерации вручную -
Тип:
String -
Категории:
COMMAND,CREATIVE,JOA -
Значения:
true,ops,false,0,1,2,3,4 -
По умолчанию:
ops
insaneBehaviorsIncrement
Определяет, как именно инкрементится счётчик правила insaneBehaviors.
-
normal- счётчик растёт как обычно, пока не закончатся все точки текущего разрешения, потом шаг к следующему разрешению -
loopCurrentResolution- вместо перехода перезапускает текущее разрешение с начала -
freeze- останавливает и счётчик, и разрешение -
Тип:
String -
Категории:
CREATIVE,JOA -
Значения:
normal,loopCurrentResolution,freeze -
По умолчанию:
normal
insaneBehaviorsSkipVisitedPoints
Заставляет правило пропускать точки, которые совпадают с предыдущими разрешениями. Это уменьшает общее пространство поиска на долю, стремящуюся к 1/(2^resolution). На практике экономит время на длинных прогонах.
- Тип:
Boolean - Категории:
CREATIVE,JOA - Значения:
true,false - По умолчанию:
false
insaneBehaviorsCartYeetingException
Включает тестирование карт-йетинга, отключая один из двух типов дропа предметов (предмет вагонетки или содержимое контейнера). Нужно, чтобы разные итераторы не мешали друг другу.
- Тип:
String - Категории:
CREATIVE,JOA - Значения:
none,disableVehicleItem,disableContainerContents - По умолчанию:
none
blockTickling
Второе ключевое правило. Оно позволяет вручную отправлять block- и/или shape-обновления блокам с помощью пера. Shape-обновления идут от блока перед той гранью, по которой вы кликаете.
Зачем это надо? Если вы работаете с отключёнными update-взаимодействиями или возитесь с budded-блоками, обычными методами их не расшевелить. blockTickling даёт точечный инструмент: тыкаете пером и точно знаешь, куда прилетело обновление.
- Тип:
String - Категории:
CREATIVE,JOA - Значения:
off,blockupdates,shapeupdates,both - По умолчанию:
off
Survival-правила
Помимо технического ядра тут есть несколько мелких твиков под выживание. Они не обязательны, но иногда пригождаются.
disableEndermanGriefing
Отключает гриферство эндерменов - те больше не воруют и не ставят блоки. Классика для тех, кто устал от разобранных стен.
- Тип:
Boolean - Категории:
SURVIVAL,JOA - По умолчанию:
false
disableElytraRockets
Запрещает использовать ракеты вместе с элитрами. Полезно для мини-игр и режимов, где полёт на ракетах ломает баланс.
- Тип:
Boolean - Категории:
SURVIVAL,JOA - По умолчанию:
false
verticalRocketsFromStandstill
Ракетный полёт активируется только когда вы стоите на земле, и толкает строго вверх. Использовать ракеты в полёте нельзя.
Работает только в одиночной игре либо при установке JoaCarpet и на сервере, и на клиенте. На чистом сервере без клиентской части правило не заработает - это важный момент, многие на нём спотыкаются.
- Тип:
Boolean - Категории:
SURVIVAL,JOA,EXPERIMENTAL - По умолчанию:
false
verticalRocketPower
Вертикальная сила ускорения для правила verticalRocketsFromStandstill.
- Тип:
Double - Категории:
SURVIVAL,JOA,EXPERIMENTAL - По умолчанию:
0.75
Установка и совместимость
JoaCarpet - это расширение, а не самостоятельный проект. Ему нужен Carpet Mod подходящей версии и Fabric Loader. Отдельный Fabric API в зависимостях не прописан, так что тянуть его ради одного JoaCarpet смысла нет.
Мод можно ставить как server-side (тогда он работает на сервере), так и на клиент вместе с сервером. Для большинства технических правил серверной установки хватает, но правила вроде verticalRocketsFromStandstill требуют синхронной установки на обе стороны.
По версиям заявлены Minecraft 1.17.x, 1.18.x, 1.19.x, 1.20-1.20.4 и 1.21. Актуальный стабильный релиз - v2.4.0 под Minecraft 1.21, вышел 7 февраля 2025 года. В нём поправили нижнюю границу горизонтальной скорости предметов из дропперов и раздатчиков в режиме insaneBehaviors, чтобы она точнее билась с ванильной механикой. Если вы сидите на 1.21 и гоняете тесты на дропперах - обновление стоит взять.
Совет по сборке. JoaCarpet обычно живёт в технических Fabric-сборках рядом с Carpet, Litematica, MiniHUD, Tweakeroo и Sodium. Это не значит, что каждая версия гарантированно дружит со всем перечисленным - версии правил иногда расходятся между собой, так что после обновления одного мода из набора проверяйте, что остальные не отвалились. Классическая ошибка новичка: поставить свежий JoaCarpet и забыть обновить Carpet, а потом удивляться, почему правило не появилось в списке.
Кому это надо
Если вы собираете редстоун-схемы и вам нужна воспроизводимость - must-have. Если вы просто играете в выживание и хотите отключить эндерменов или убрать ракеты с элитр - тоже зайдёт, но ради этого одного мод ставить смысла мало, там хватит и базового Carpet.
А вот для тестирования механик дропперов, поршней и обновлений блоков JoaCarpet реально экономит часы. Ручной перебор рандома через insaneBehaviors и точечные обновления через перо - это то, чего в ваниле и в обычном Carpet просто нет.
Скачать JoaCarpet стоит тем, кто копает технический Minecraft и хочет контролировать случайность, а не полагаться на неё.
Как поиграть с друзьями с модом JoaCarpet?
Мод JoaCarpet куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода JoaCarpet будет готов за пару минут - BungeeHost сделает всё за вас.

