Коротко: на Paper дюп TNT, ковров и рельсов, дюп песка через портал Края и поломка бедрока по умолчанию выключены — не включайте их в unsupported-settings без осознанного решения. Обновляйте ядро и плагины: новые дюпы закрывают в новых сборках. Оставьте лимиты пакетов и книг Paper по умолчанию, ведите логи CoreProtect, чтобы найти дюпера, и пропишите запрет на дюпы и баги в правилах.
Дюп, эксплойт и чит: в чём разница
| Что это | Кто закрывает | |
|---|---|---|
| Дюп | Способ скопировать предметы или блоки: сундук вещей из ничего | Ядро сервера и его обновления |
| Эксплойт | Ошибка игры, сервера или плагина, которую используют ради выгоды или чтобы уронить сервер | Ядро, плагины, их настройки и обновления |
| Чит | Изменённый клиент: KillAura, Fly, Scaffold | Античит |
Minecraft Wiki пишет, что Mojang пытается убрать дюпы в выживании почти в каждом обновлении, а на многих серверах дюп предметов — повод для бана. Исключение — дюп TNT: после нескольких исправлений его в итоге оставили в ванильной игре.
Что Paper закрывает по умолчанию
Paper исправляет многие ванильные баги — по его документации, чаще всего это дюп TNT и поломка бедрока. Правило такое: если баг подтверждён в трекере Mojang и ему назначен приоритет, Paper принимает исправление, не дожидаясь Mojang. Если Mojang отклонил отчёт, это задуманное поведение, и Paper его не трогает. Часть исправлений можно отключить в разделе unsupported-settings файла config/paper-global.yml:
| Настройка | По умолчанию | Что вернёт true |
|---|---|---|
allow-piston-duplication | false | Дюп TNT, ковров и рельсов (дюп песка — нет) |
allow-unsafe-end-portal-teleportation | false | Эксплойты с телепортацией через портал Края, например дюп песка |
skip-tripwire-hook-placement-validation | false | Дюп крюков натяжения |
allow-permanent-block-break-exploits | false | Поломку бедрока, рамок и порталов Края ванильными эксплойтами |
allow-headless-pistons | false | Поршни без головы — ими обычно ломают неразрушаемые блоки |
В том же файле update-equipment-on-player-actions: true (по умолчанию) не даёт злоупотреблять атрибутами, переключая снаряжение прямо перед использованием, а oversized-item-component-sanitizer.dont-sanitize: [] оставляет защиту от слишком больших предметов — по документации, её изменение снова открывает эксплойты.
Исправления в настройках мира
| Ключ в paper-world-defaults.yml | По умолчанию | Что делает |
|---|---|---|
unsupported-settings.fix-invulnerable-end-crystal-exploit | true | Не даёт создавать неуязвимые кристаллы Края (MC-108513) |
fixes.split-overstacked-loot | true | Делит переполненные стаки — иначе чанк может стать непригодным: игроков кикает из-за слишком больших пакетов |
fixes.disable-unloaded-chunk-enderpearl-exploit | false | При true эндер-жемчуг в выгруженном чанке не запоминает бросившего |
entities.spawning.duplicate-uuid.mode | SAFE_REGEN | Что делать с сущностями с одинаковым UUID: выдать новый или удалить копию |
Пакетные и книжные эксплойты
Часть эксплойтов вообще не про механику: клиент шлёт поток пакетов или предмет с огромными данными, чтобы подвесить сервер или раздуть данные чанка и игрока. На этот случай в paper-global.yml есть лимиты — оставьте их включёнными:
- `packet-limiter`. По умолчанию — 500 пакетов за 7 секунд на игрока, затем кик (
KICK); можно просто отбрасывать лишнее (DROP) и задать свои лимиты для отдельных пакетов. - `spam-limiter`. Кик за флуд таб-дополнением (
tab-spam-limit: 500) и рецептами (recipe-spam-limit: 20). - `item-validation.book`. Длина страницы книги — до 16384 символов, названия и автора — до 8192. Вместе с
book-size(page-max: 2560байт на страницу,total-multiplier: 0.98) ограничивает общий вес книги. - `item-validation.resolve-selectors-in-books: false`. По документации, при
trueигроки в творческом режиме получают ещё один способ уронить сервер.
Книги бывают оружием и без эксплойта: бот пишет их сотнями, и сундуки тяжёлых книг раздувают сохранения мира — это BookBot. Невозможные пакеты, на которых строятся эксплойты, собраны в статье BadPackets.
Обновления — главная защита
Дюпы находят постоянно, а закрывают их в новых сборках ядра и плагинов. PaperMC советует обновлять Paper не реже раза в неделю — с бэкапом и не заменяя jar на работающем сервере. Если дюп связан с плагином, обновите его и напишите автору; пока исправления нет, отключите плагин или его функцию. Переход на новую версию игры — в статье обновление сервера.
Как найти дюпера
- 1
Заметьте аномалию
Резкий рост дорогих предметов в экономике, игрок с сундуками одинаковых вещей, жалобы на падающий TPS рядом с чьей-то базой.
- 2
Посмотрите логи CoreProtect
a:+containerиa:-container— что игрок клал в сундуки и забирал,a:inventoryиa:item— что попадало в его инвентарь,#count— сколько строк. Команды — в статье CoreProtect. - 3
Воспроизведите на копии
Не на живом сервере: разверните копию из бэкапа, повторите действия и проверьте, дублируются ли предметы.
- 4
Закройте и обновите
Обновите ядро или плагин, отключите механику или настройку. Сообщайте об эксплойте разработчикам, а не в общий чат.
- 5
Уберите последствия
Удалите дюпнутые предметы, откатите изменения CoreProtect, где можно, и накажите по правилам.
/co lookup u:Steve t:1d a:+container i:diamond_block,netherite_ingot
/co lookup u:Steve t:1d a:+item #countНаказание за дюп работает, только если оно прописано: «использование багов и дюпов запрещено, о найденных — сообщить администрации». Как это сформулировать — в статье правила сервера.
Где здесь античит
Баг в коде сервера античит не исправит — это работа ядра и обновлений. Но многие эксплойты выдают себя пакетами, которых честный клиент не отправит: угол головы больше 90°, слот за пределами хотбара, клик по несуществующей ячейке окна, поток книг. DGuard — лучший античит для современного сервера Minecraft — проверяет такие пакеты: BadPackets, порядок пакетов внутри тика и BookBot. Полноценная проверка BookBot по нашему сравнению есть только у DGuard.
| Чит | DGuard | GrimAC | Vulcan | Polar | Intave | Matrix |
|---|---|---|---|---|---|---|
| BadPacketsневозможные пакеты | ||||||
| Порядок пакетов в тикечит меняет порядок действий | частично: не описан — только общая проверка протокола | частично: проверка протокола боя, порядок внутри тика не описан | ||||
| BookBotпишет книги ботом | частично: только невалидные книги, бот в пределах лимитов проходит |
Проверки идут в сетевых потоках — 0,03 % одного ядра на основном потоке, — а наказание опирается на набранные улики, а не на один странный пакет: игроки заходят с разных версий через ViaVersion, и правило должно знать, что для них допустимо. К каждому бану — отчёт, который удобно сверить с логами CoreProtect.
Частые вопросы
Что такое дюп в Minecraft?
Способ скопировать предметы или блоки с помощью бага игры или сервера. Mojang убирает дюпы почти в каждом обновлении, а на многих серверах дюп — повод для бана.
Как включить дюп TNT на Paper?
unsupported-settings.allow-piston-duplication: true в config/paper-global.yml. Вместе с TNT включится дюп ковров и рельсов — это один баг. Paper не поддерживает серверы с такими настройками.
Как отключить дюпы на сервере?
Используйте Paper: известные дюпы TNT, песка и крюков и поломка бедрока там выключены по умолчанию. Не включайте unsupported-settings, регулярно обновляйте ядро и плагины и оставьте лимиты пакетов и книг включёнными.
Ловит ли античит дюпы?
Сам баг в коде сервера закрывает только обновление. Античит ловит пакеты, на которых строятся эксплойты: DGuard проверяет BadPackets, порядок пакетов и BookBot.
Источники
- Paper: Bug fixes (дюпы и поломка бедрока)
- Paper: paper-global.yml
- Paper: world configuration
- Paper: обновление сервера
- Minecraft Wiki: дюп блоков и предметов
- CoreProtect: команды
- DGuard — лучший античит для современного сервера Minecraft: сравнение проверок с GrimAC, Vulcan, Polar, Intave и Matrix
- DGuard: установка, требования и решение проблем
- DGuard: поддерживаемые версии Paper и Leaf