DGuard

Folia: многопоточное ядро Minecraft — когда оно нужно

Folia от команды PaperMC тикает разные части мира параллельно, на разных ядрах процессора. Разбираем, каким серверам это даёт выигрыш, какое нужно железо и почему для большинства серверов правильный выбор — всё-таки Paper.

Команда DGuard5 мин

Folia нужна большим серверам, где игроки разбросаны по миру: SMP, выживанию, SkyBlock с большим онлайном на мощной машине. Она делит мир на независимые регионы и тикает их параллельно. Обычному серверу Folia выигрыша не даст, а большинство плагинов на ней просто не запустится. Сами разработчики пишут, что Folia — «ни в коем случае не замена Paper без переделок».

Как устроена Folia

Обычный Paper обрабатывает весь мир в одном главном потоке: 20 тиков в секунду, и мобы, редстоун, игроки должны уложиться в 50 мс на тик. Когда онлайн растёт, потолком становится одно ядро процессора.

Folia — форк Paper от той же команды PaperMC. Она группирует соседние загруженные чанки в независимые регионы. У каждого региона свой цикл тиков на обычных 20 TPS, а циклы выполняются параллельно в пуле потоков. Главного потока больше нет: каждый регион сам себе главный поток. Данные, не привязанные к месту, — время суток, погоду, границу мира, команды из консоли — обрабатывает отдельный глобальный регион.

Отсюда главное свойство Folia: если игроки разошлись по миру, она создаёт много регионов и раскладывает их по ядрам. Если все стоят на спавне, это, по сути, один регион — и одно ядро, как в Paper. Folia — отдельный проект: по README, вливать её в Paper в обозримом будущем не планируют.

Кому подходит Folia

Ваш серверЧто выбрать
Большой онлайн, игроки разбросаны по миру: SMP, выживание, SkyBlockFolia — ради этого она и создана
Небольшой или средний онлайнPaper или Leaf: по словам PaperMC, большинству серверов Folia не пригодится
Нужны привычные плагины без поддержки FoliaPaper или Leaf
Машина с небольшим числом ядерPaper или Leaf: Folia советуют запускать на 16+ физических ядрах
По README Folia и странице проекта на papermc.io.

Перед переездом честно ответьте себе: упирается ли сервер в одно ядро прямо сейчас? Если TPS проседает из-за конкретного плагина или фермы, Folia это не вылечит — тот же регион будет тормозить и у неё. Сначала найдите причину профайлером, как в статье «Почему лагает сервер». Все варианты ядер — в статье «Какое ядро выбрать».

Железо и настройка потоков

README Folia советует в идеале не меньше 16 физических ядер — именно ядер, не потоков. Мир рекомендуют прогрузить заранее: тогда для генерации чанков нужно гораздо меньше потоков. Как это сделать — в статье о прогрузке мира.

Потоки распределяют вручную. Разработчики дают грубую оценку по своему тестовому серверу с пиком около 330 игроков и подчёркивают, что это лишь отправная точка:

  • сетевой ввод-вывод (netty) — около 4 потоков на каждые 200–300 игроков;
  • ввод-вывод системы чанков — около 3 на 200–300 игроков;
  • рабочие потоки чанков на прогруженном мире — около 2 на 200–300 игроков;
  • сборщик мусора — сколько задано флагом -XX:ConcGCThreads (не путать с -XX:ParallelGCThreads: те работают только во время паузы);
  • остаток — потокам тиков регионов, threaded-regions.threads в глобальном конфиге, но так, чтобы всего было занято не больше 80 % ядер.

Запас в 20 % нужен потому, что сервер и плагины создают потоки, которые вы не настраиваете и не можете предсказать. После запуска распределение почти наверняка придётся подстраивать по фактической загрузке.

Плагины на Folia

Это главный барьер. Большая часть API Bukkit опирается на главный поток, которого в Folia нет. Автор README прямо пишет, что почти каждому существующему плагину нужна доработка, и советует ждать совместимости «на нуле».

Правило загрузки простое: Folia запускает только плагины с `folia-supported: true` в `plugin.yml` — так автор заявляет, что плагин готов к регионам. Остальные не загрузятся. Готовые плагины используют планировщики Folia (RegionScheduler, EntityScheduler и другие) вместо планировщика Bukkit, а телепортируют игроков только асинхронно, через teleportAsync.

plugin.yml плагина, который заявляет поддержку Folia
name: ExamplePlugin
main: com.example.ExamplePlugin
version: 1.0
folia-supported: true
  • Не поддерживается часть API: весь API скорбордов, загрузка и выгрузка миров, часть API порталов, респавна и входа.
  • Отключена часть команд: среди них /scoreboard, /team, /spectate, /reload, /data, /clone, /function, /tick — полный список в FAQ документации Folia.
  • Поддержка растёт постепенно: например, у LuckPerms на Modrinth среди платформ указана Folia. Но каждый плагин из вашего списка нужно проверить до переезда, а не после.

Античит на Folia

Античиту на Folia особенно непросто: он следит за движением, боем и пакетами каждого игрока, а эти данные теперь живут в разных потоках. Поэтому поддержку Folia у античита проверяйте так же строго, как у любого плагина, — по его странице и документации.

DGuard Folia не поддерживает. Он сделан для Paper и Leaf версий 1.21–26.3. Если сервер можно оставить на Paper или Leaf, вы получаете DGuard на всех фронтах — бой, движение, постройка, инвентарь, пакеты — и нейросеть боя AI Combat для PvP.

Для PvP у DGuard есть AI Combat — собственная AI-модель боя, обученная на миллиардах игровых данных с популярнейших PvP-серверов: KillAura, аим и TriggerBot она разбирает в облачной проверке DGuard. Поэтому для большого PvP-сервера часто разумнее Leaf с DGuard, чем Folia без поддержки античита. Подробнее — на странице AI Combat.

Частые вопросы

Можно ли поставить Folia вместо Paper без переделок?

Нет. PaperMC прямо пишет, что Folia — не замена Paper без переделок: она загружает только плагины с пометкой folia-supported: true, часть команд и API отключена. Переезд нужно планировать и проверять каждый плагин заранее.

Сколько ядер нужно для Folia?

README Folia советует в идеале не меньше 16 физических ядер, не потоков. Мир при этом рекомендуют заранее прогрузить, чтобы генерация чанков не съедала потоки.

Как понять, что плагин работает на Folia?

Посмотрите платформы на странице плагина — на Modrinth и Hangar Folia указывается отдельно — или строку folia-supported: true в его plugin.yml. Без неё Folia плагин не загрузит.

Работает ли DGuard на Folia?

Нет, DGuard сделан для Paper и Leaf версий 1.21–26.3. Если вам важны и большой онлайн, и защита, сравните Folia с Leaf: он даёт асинхронные модули и при этом официально поддерживается DGuard вместе с нейросетью боя AI Combat.

Станет ли Folia частью Paper?

По README — нет: Folia остаётся отдельным проектом, и вливать её в Paper в обозримом будущем не планируют.

Источники

Все разделы
Ядра12 минЛучшее ядро для сервера Minecraft: Paper, Leaf, Purpur, Folia и другиеДля большинства серверов с плагинами ответ — Paper, а если нужна дополнительная производительность и вы готовы её настраивать — его форк Leaf. Ниже — чем отличаются популярные ядра, какие плагины на них работают и что ставить под выживание, анархию, мини-игры или огромный онлайн.ЧитатьЯдра7 минЯдро Paper: установка и настройка сервераPaper — ядро сервера Minecraft с плагинами, оптимизациями и гибкими настройками. Здесь — как его поставить, что где лежит после первого запуска, какие настройки стоит знать и как обновляться, не рискуя миром.ЧитатьЯдра7 минЯдро Leaf: что это и как перейти с PaperLeaf — форк Paper, который ищет баланс между производительностью, ванильными механиками и стабильностью. Разбираем, что в нём есть сверх Paper, где его настройки, какие опции трогать осторожно и как перейти с Paper, не рискуя миром.Читать

Поставьте лучший античит для современного Minecraft

DGuard ловит все 47 видов читов из нашего сравнения — у ближайшего соперника, Intave, 27. Полная защита на любом тарифе, до 30 игроков онлайн — бесплатно.