Файл bukkit.yml появляется в корне сервера после первого запуска любого ядра на базе Bukkit — Spigot, Paper, Purpur. Настройка bukkit.yml — первое, куда стоит заглянуть, когда TPS проседает при живом онлайне: здесь лежат лимиты спавна мобов и частота их появления, а мобы почти всегда занимают верхнюю строчку в профилировании.
Разберу параметры по разделам: что делает, какие значения ставить, где легко испортить игру.
Где лежит и как редактировать
Путь: корень сервера, рядом с server.properties и spigot.yml.
Правила работы с файлом:
- Редактировать только на остановленном сервере — при выходе он перезаписывается из памяти
- Отступы строго пробелами, табуляция ломает YAML
- После правки — полный рестарт, не
/reload - Перед изменениями скопируйте файл: одна ошибка в отступе, и сервер не стартует
Открыть можно через файловый менеджер панели или по SFTP — порядок подключения в инструкции по SFTP.
Что даёт настройка bukkit.yml в цифрах
Основная нагрузка на сервере выживания распределяется примерно так: мобы 30–50% времени тика, редстоун и энтити игроков 10–20%, генерация чанков — всплесками. Настройка bukkit.yml бьёт ровно по первому пункту.
На тестовом сервере с 25 игроками снижение monsters с 70 до 35 обычно даёт +3–5 TPS в вечерний пик и почти не влияет на игровой процесс: мобов всё равно больше, чем нужно для фермы среднего размера.
Раздел spawn-limits
Ключевой блок. Числа — мобкап каждой категории. В ванильной механике он масштабируется по числу загруженных чанков вокруг игроков, а в Paper с включённым по умолчанию per-player-mob-spawns считается на каждого игрока. Paper также позволяет переопределить эти значения в своём конфиге мира — подробно в справочнике PaperMC по bukkit.yml.
spawn-limits:
monsters: 50
animals: 8
water-animals: 3
water-ambient: 10
water-underground-creature: 3
axolotls: 3
ambient: 1Значения по умолчанию: monsters 70, animals 10, water-animals 5, water-ambient 20, water-underground-creature 5, axolotls 5, ambient 15.
Рекомендации по типу сервера:
| Тип сервера | monsters | Остальное |
|---|---|---|
| Выживание, 20–40 онлайна | 40–50 | animals 8, water-animals 3, ambient 1 |
| Мини-игры и PvP | 15–20 | По минимуму — мобы там не нужны |
| Технический сервер с фермами | 60–70 | Иначе фермы просядут; про такой профиль — технический сервер |
| Небольшой сервер на 2 ГБ | 25–30 | animals 6–8, ambient 1 |
Опускать monsters ниже 20 на выживании не стоит: игроки начнут жаловаться, что ночью пусто и мобы не спавнятся в фермах.
Раздел ticks-per
Как часто сервер пытается заспавнить каждую категорию. Значение в тиках, 20 тиков = 1 секунда.
ticks-per:
animal-spawns: 400
monster-spawns: 2
water-spawns: 400
water-ambient-spawns: 400
water-underground-creature-spawns: 400
axolotl-spawns: 400
ambient-spawns: 400
autosave: 6000monster-spawns: 2 вместо 1 снижает частоту попыток спавна вдвое. Заметного влияния на геймплей нет, а нагрузка падает. Ставить выше 4 не советую — мобы начнут появляться рывками.
animal-spawns: 400 (20 секунд) — значение по умолчанию, менять его обычно не нужно. У остальных категорий по умолчанию 1, то есть попытка каждый тик. Если животные не нужны совсем, поднимайте до 1200.
autosave: главный неочевидный параметр
autosave в разделе ticks-per задаёт интервал автосохранения мира. По умолчанию 6000 тиков — раз в 5 минут.
На больших мирах и слабых дисках именно автосейв даёт периодические подвисания: раз в несколько минут TPS падает на секунду-другую, и игроки видят «лаг по расписанию».
Что делать:
- На Paper этот параметр лучше не трогать, а управлять сохранением через
paper-world-defaults.yml— там есть постепенное сохранение чанков; параметры описаны в разделе про настройку paper.yml - На чистом Spigot можно поднять до 12000 (10 минут), но тогда при внезапном падении теряется больше прогресса
- Отключать полностью (значение
-1) не стоит — при краше потеряете всё с последнего ручного сохранения
Регулярные бэкапы это не отменяет; схема настройки описана в статье про бэкапы игрового сервера.
Раздел settings
settings:
allow-end: true
warn-on-overload: true
permissions-file: permissions.yml
update-folder: update
plugin-profiling: false
connection-throttle: 4000
query-plugins: true
deprecated-verbose: default
shutdown-message: Сервер перезагружается, зайдите через минутуЧто стоит поменять:
connection-throttle — минимальный интервал между подключениями с одного IP в миллисекундах. По умолчанию 4000. Если у вас играют несколько человек с одного адреса (одна квартира, интернет-кафе), поставьте 1000. При атаке спамом соединений можно поднять до 10000.
warn-on-overload — сообщения «Can't keep up! Is the server overloaded?» в консоли. Выключать не надо: это ваш индикатор проблем. Разбор причин таких сообщений — в статье сервер Minecraft лагает.
shutdown-message — что видят игроки при остановке. Мелочь, но нормальный текст вместо «Server closed» выглядит аккуратнее.
update-folder — папка, из которой плагины подхватываются при рестарте. Кладёте новый .jar в plugins/update, сервер сам заменит старый при следующем старте. Удобно для обновления без остановки.
allow-end — отключение Края целиком. Ставьте false, только если действительно не хотите этого измерения: игроки будут спрашивать.
Раздел chunk-gc
chunk-gc:
period-in-ticks: 600
load-threshold: 0В Spigot этот блок задаёт, как часто сервер выгружает неиспользуемые чанки; 600 тиков (30 секунд) — рабочее значение. В Paper выгрузкой чанков управляет собственная система, а period-in-ticks влияет только на чанки, загруженные плагинами, и ограничен 20 тиками. На Paper блок можно не трогать. В актуальных версиях параметра load-threshold может не быть вовсе.
Раздел database
database:
username: bukkit
isolation: SERIALIZABLE
driver: org.sqlite.JDBC
password: walrus
url: jdbc:sqlite:{DIR}{NAME}.dbУстаревшая встроенная база Bukkit, в свежих версиях ядра этого блока может не быть. Современные плагины ей не пользуются — работают со своим SQLite или MySQL. Трогать этот блок не нужно.
Полный рабочий пример для выживания на 30 слотов
settings:
allow-end: true
warn-on-overload: true
permissions-file: permissions.yml
update-folder: update
plugin-profiling: false
connection-throttle: 2000
query-plugins: true
deprecated-verbose: default
shutdown-message: Рестарт сервера, заходите через минуту
spawn-limits:
monsters: 45
animals: 8
water-animals: 3
water-ambient: 5
water-underground-creature: 3
axolotls: 3
ambient: 1
chunk-gc:
period-in-ticks: 600
load-threshold: 0
ticks-per:
animal-spawns: 400
monster-spawns: 2
water-spawns: 400
water-ambient-spawns: 600
water-underground-creature-spawns: 400
axolotl-spawns: 400
ambient-spawns: 600
autosave: 6000Порядок правильной оптимизации
bukkit.yml — один из трёх файлов, и работать с ними нужно по очереди, а не менять всё сразу:
server.properties— дистанции прорисовки и симуляции; разбор в отдельном разделеbukkit.yml— лимиты и частота спавна (этот материал)spigot.ymlиpaper-world-defaults.yml— merge-radius, activation-range, тик энтити; описаны в статьях про spigot.yml и paper.yml
После каждого шага смотрите /tps и /spark tps в течение вечернего пика. Меняете всё сразу — не поймёте, что дало эффект и что сломало игру.
Общая последовательность действий по производительности собрана в разделе про оптимизацию сервера.
Если после всех правок TPS всё равно проседает в прайм-тайм, упирается уже железо — сравнить конфигурации можно на странице тарифов.