Очистка чанков на Minecraft-сервере нужна ровно в тот момент, когда папка world перевалила за 20–30 ГБ, а бэкап стал занимать полчаса. Причина почти всегда одна: пара исследователей на элитрах улетела на десять тысяч блоков, оставив за собой полосу сгенерированных регионов, куда больше никто никогда не вернётся. Эти данные лежат мёртвым грузом, замедляют бэкапы, миграции и апгрейды версии.
Ниже — рабочая процедура: чем мерить, что удалять и как не убить чужую базу.
Из чего состоит мир на диске
После 1.17 мир разложен по трём папкам:
world/
region/ — блоки и рельеф, файлы r.X.Z.mca
entities/ — сущности, отдельно с 1.17
poi/ — points of interest (кровати, рабочие блоки жителей)
data/ — карты, рейды, случайные seed-данные
playerdata/ — инвентари игроковОдин файл .mca — это регион 32×32 чанка, то есть 512×512 блоков. Весит он от пары сотен килобайт до 8–12 МБ в зависимости от того, насколько глубоко там копали. Нижний мир и Край лежат отдельно: world_nether/DIM-1 и world_the_end/DIM1.
Важное следствие: удалять чанк нужно синхронно во всех трёх папках. Если снести регион только в region/, а сущности оставить, вы получите ошибки в логах и, в худшем случае, зависшие мобы в пустоте.
Чем измерить, сколько занято
Перед чисткой посмотрите реальные цифры. По SSH:
du -sh world world_nether world_the_end
du -sh world/region world/entities world/poi
ls -1 world/region | wc -lТысяча файлов в region/ — это примерно карта 16 000×16 000 блоков. Если у вас выживалка на 30 человек и три месяца аптайма, а файлов пять тысяч, значит кто-то очень любит путешествия.
Если доступ только через панель, качайте по SFTP — как подключиться, описано отдельно.
MCA Selector: основной инструмент
Стандарт де-факто — MCA Selector, бесплатная Java-утилита с графическим интерфейсом. Скачивайте её только из официального репозитория на GitHub — так советует сам автор. Работает с миром офлайн, поэтому сервер обязан быть выключен.
Порядок такой:
- Остановите сервер командой
stopв консоли, дождитесь полной записи мира. - Сделайте бэкап. Не «потом», а прямо сейчас — операция необратима. Если автобэкапов ещё нет, настройте их.
- Скачайте папку мира к себе на машину.
- Откройте её в MCA Selector: File → Open World.
- Постройте фильтр и удалите лишнее.
- Залейте обратно, запустите сервер.
Ключевая фишка утилиты — фильтр по InhabitedTime. Это счётчик тиков, которые игроки провели внутри чанка. Чанк, сгенерированный пролетающим мимо игроком, накопит секунды; чанк с базой — часы.
Фильтр для «удалить всё, где никто толком не был»:
InhabitedTime < 5 minutesВ интерфейсе: Selection → Filter Chunks, тип InhabitedTime, оператор <, значение 5m, действие Delete selected chunks. Порог 5 минут — консервативный. На старых серверах я иногда ставлю 10m, но тогда риск задеть чей-то дальний аванпост, куда заглядывали дважды.
Всё, что удаляется, регенерируется при следующем визите. Игрок не потеряет ничего, кроме построек — а построек в чанке, где провели меньше пяти минут, обычно нет.
Обрезка по границе мира
Второй сценарий: вы решили ограничить мир и поставили ворлдбордер, а всё, что снаружи, надо срезать. Сначала выставьте границу на живом сервере:
/worldborder center 0 0
/worldborder set 6000Значение 6000 — это сторона квадрата (диаметр), то есть мир 6000×6000 блоков: от -3000 до +3000 по каждой оси. Для сервера на 50 человек этого хватает с запасом.
Потом в MCA Selector выделите прямоугольник внутри границы, инвертируйте выделение (Selection → Invert) и удалите. На карте это выглядит нагляднее любых фильтров: видно, где именно тянутся «щупальца» чужих экспедиций.
Не забудьте, что бордер надо ставить и в Нижнем мире — там координаты делятся на восемь, поэтому граница 6000 в овермире соответствует 750 в аду.
Очистка чанков плагинами прямо на работающем Minecraft-сервере
Если совсем не хочется трогать файлы руками, есть варианты попроще, хотя и слабее:
- Chunky — умеет не только прегенерировать, но и в свежих версиях удалять чанки за пределами заданной формы командой
/chunky trim. Работает медленнее MCA Selector, зато без выгрузки мира на свой компьютер. - Multiverse-Core с командой
/mv regen имя_мира— полная регенерация мира. Годится только для ресурс-миров, которые вы и так сбрасываете каждый вайп. - Ручное удаление отдельных измерений: если Край на сервере никому не нужен,
world_the_endиногда весит 5–8 ГБ впустую. Проще отключить его совсем, чем чистить.
Ресурс-мир как профилактика
Самое долгосрочное решение — вообще не давать игрокам растягивать основной мир. Схема стандартная: основной мир с бордером в пару тысяч блоков под застройку, отдельный ресурс-мир на 4000–6000 блоков, который регенерируется раз в две-три недели.
Настраивается через Multiverse-Core, а телепорт вешается на команду /rtp или портал на спавне. При таком раскладе основная карта почти не растёт, а всё, что распухает, стирается по расписанию одной командой.
Чего делать нельзя
- Удалять
.mcaвручную «на глазок», не понимая координат. Файлr.-3.5.mca— это чанки от -96 до -65 по X и от 160 до 191 по Z, легко ошибиться и снести спавн. - Чистить мир без выключенного сервера. Paper держит регионы в памяти и перезапишет их поверх ваших правок.
- Забывать про
poi/. Рассинхрон между блоками и POI приводит к тому, что жители перестают привязываться к рабочим местам. - Полагаться на один бэкап. Перед крупной обрезкой делайте копию локально, а не только в панели.
Итог
Порядок действий короткий: замерить du -sh, остановить сервер, снять бэкап, прогнать MCA Selector с фильтром InhabitedTime < 5m, при необходимости срезать всё за ворлдбордером, залить обратно. На запущенной выживалке это обычно даёт минус 60–80% размера мира и заметно более быстрые бэкапы.
Если после чистки сервер всё равно тормозит, дело не в диске — смотрите гайд по оптимизации и профайлер. А когда места на тарифе стабильно не хватает под мир и бэкапы, проще перейти на конфигурацию с большим диском — варианты тут.