Настройка файла spigot yml
Paper is a high-performance fork of Spigot that adds extra features while also increasing server performance. You can find more information about it here .
Paper also tends to fix bugs that come out after initial releases of Spigot for the latest versions of Minecraft. A good example would be the 0-tick farm bug that existed for a long time, and for the people who didn't want 0-tick farms in specific to be patched, they added it as an option in the paper.yml config!
Paper has better API support for plugin developers, which means it has more support for plugin creators and more features that can be utilized in their plugins.
Another reason to get Paper is thanks to their asynchronous chunk loading and generation. This means fast traveling methods won't lag your server as hard and chunk loading becomes much faster in general!
Now we will start with getting the server optimized manually. It's relatively easy to learn! We will start by configuring server.properties - Keep in mind that this guide only covers certain options, it's encouraged to take a look at everything and customize it to your liking!
There are a lot of settings here, but we will only focus on the ones that matter the most for what type of server you plan on running.
view-distance is how far chunks will be loaded by players in your server. You will want this between 4 and 16, in multiples of two (I.E. 4, 6, 8, 10, 12, 14, 16). Too little and you won't be to see very far, too much and the server will have performance issues. This generally depends on how many players you plan on having in your server, and how much RAM you have.
View distances 12 - 16 would be best for around one to five players. Like a small group of friends, or a very small server.
View distances 8 - 10 are generally best for average sized servers (around ten or more players), although view-distance is set to 8 by default. It's usually best to keep view-distance set to 8.
View distances 4 and 6 are best for very small worlds, like minigames. This way you can have a lot of players in the same general area, without taking up too many server resources.
level-seed is what you'll want to set when using a custom seed for your server's world, keep in mind that you'll need to generate a new world in order for this setting to work.
motd is the text that shows up for your server in the in-game server list. You can make a custom MOTD with colors and formatting here .
difficulty can be set to peaceful, easy, normal, or hard. Keep in mind that hard is best if you plan on having villager farms, as any other difficulty gives a chance for villagers to permanently die, rather than be converted into zombie villagers.
max-players can be set to anything, like 9001, or 1337, or simply 100. This option is up to you, although it's best to set it according to how many players you expect to have.
Most stuff in spigot.yml are things you won't want to touch, but a few things that are useful are what's listed below. Listed here is a page explaining most of everything in spigot.yml
merge-radius is the amount of space before dropped items (blocks, mob drops, etc.) will merge. Set these to 0.0 for a classic back-in-the-day Minecraft feel!
growth contains settings for growth modifiers for many different types of crops, you can change these individually to whatever values you like!
ticks-per and hopper-amount are great if your server contains mass autofarms with thousands of hoppers, boosting hopper speed and/or amount can help reduce the amount of lag your server gets. There is no need to change this if your server doesn't have these, but the effect is definitely noticeable.
There are a lot of useful settings in here, feel free to check them out for yourself! Also make sure to customize plugins to your liking, as having everything utilized makes a server shine!
If your server starts to lag, take a look at your plugins, make sure none of them are known to cause issues or have incompatibilities with your current version. Another very useful feature of Paper is timings. Doing /timings report in-game will generate a report that tells you what may be causing unneeded TPS (ticks-per-second) usage on your server. 20 TPS is perfect, 0 lag on your server. Anything less than that means something may be causing lag.
Also, contrary to popular belief, most "Clear Lag" plugins will not actually reduce lag by getting rid of dropped items. It's up to server owners to optimize and properly manage their server for lag not to happen. Dropped items generally do not cause TPS lag, but rather FPS (framerate) lag if there's too many of them.
Good examples of things that cause TPS lag are players loading new chunks, players traveling fast (elytra, boosted minecart, flying, etc.) mass autofarms, lag machines, noise machines, condensed mob farms, egg farms with too many chickens (too many mobs in one space, leading to TPS lag due to mob collisions and the chickens trying to pathfind), and things with many moving parts involving pistons, like large flying machines.
Bad examples of things that actually don't cause TPS lag but may be confused for it are things like many dropped items on the ground causing loss in framerate, minecarts, armor stands, and item frames causing framrate lag due to the amount of entities being rendered, fishing bobbers and boats, which some "lag clearing" plugins remove for some reason, arrows, and other things like that.
Что такое Spigot?
Spigot — это глобальная серверная модификация, созданная на основе ядра CraftBukkit. Она призвана заменить "старшего брата" стабильностью и производительностью. Сегодня мы будем рассматривать создание сервера с нуля, поскольку стабильность — не единственное отличие Spigot от CraftBukkit.
Как установить Spigot?
Первым делом нам потребуется скачать одну из сборок Spigot. Общий репозиторий находится здесь. В меню справа можно найти все ранее выпущенные сборки:
Нажимая на дату добавления сборки, Вы попадаете на страницу, где можно её скачать. Принадлежность сборки к определённой версии можно установить, посмотрев на версию, указанную после заголовка "Артефакты сборки". Для загрузки выбранной сборки нажмите на "spigot.jar".
После загрузки переместите файл "spigot.jar" в отдельную папку (Например: "Server") и создайте текстовый документ с расширением *.bat (Например: RUN.bat). Далее откройте созданный ранее файл в любом текстовом редакторе и напишите внутри него следующее:
После этого можно запускать только что созданный файл. Затем, когда процесс будет завершён, Вам потребуется открыть файл "eula.txt" и изменить строчку "eula=false" на "eula=true". Запустите *.bat файл ещё раз. После этого перед Вами появится консоль сервера и начнётся создание игрового мира.
Настройка конфигурационных файлов.
После создания сервера появится файл настроек игры, под названием "server.properties". О том, как его настроить, можно узнать, прочитав данную статью на WIKI.
Установка плагинов.
Для установки плагина, его требуется переместить в папку "plugins" в корне Вашего сервера. Все плагины, созданные для глобальной серверной модификации под названием "CraftBukkit", походят и для Spigot. В большинстве случаев после перезагрузки сервера в папке "plugins" создаётся папка с названием установленного плагина. В этой папке как правило есть конфигурационные файлы плагина, имеющие расширение *.yml.
Плагины можно русифицировать самостоятельно, редактируя конфигурационные файлы, либо найти готовый перевод на форуме проекта RUBukkit и в других источниках.
Имейте в виду, для оптимизации и стабилизации сервера стоит использовать инструмент Spigot Timings собирая статистику при максимальной нагрузке на сервер.
1. PaperSpigot & paper.yml
PaperSpigot представляет собой набор патчей для ядра Spigot которые существенно оптимизирует сервер и добавляет дополнительные настройки с помощью файла paper.yml.
Вы можете скачать PaperTools, который является эквивалентом BuildTools по данной ссылке:
Запустите paperspigot.jar, как вы это делаете с обычным ядром spigot.jar (собственно PaperSpigot и является ядром сервера) .
- spigot.yml
- paper.yml
- bukkit.yml
Используя эти файлы мы и будем вести настройку.
Для начала откройте paper.y ml:
Следует снизить параметр despawn-ranges, если у вас слишком много мобов (в противном случае оставьте это по умолчанию).
Измените значение на true следующих параметров:
use-async-lighting
optimize-draining
Это позволит оптимизировать параметры потока жидкости и обрабатывать освещение асинхронно.
Примечание: Некоторые из этих параметров были вырезаны в paperspigot, в более поздних версиях и больше не настраиваются в конфигурационном файле (как они всегда активированы).
Если у вас на сервере совершается много действий с redstone схемами, воронками, вагонетками. еtс , снижение параметра tick-next-tick-list-cap может помочь в повышении производительности.
2. Spigot.yml & Bukkit.yml
Spigot.yml & bukkit.yml являются файлами, которые генерирует сервер Bukkit/Spigot умолчанию. Они позволяют нам настроить такие параметры как: лимит сущностей( entity) , кол-во сущностей( entity) за тик, обработку мира и другое.
Откройте spigot.yml. Здесь мы сможем выжать максимум производительности из сервера. Найдите раздел "world-settings".
Во-первых, отключите анти-Xray, если вы действительно им не пользуетесь. Обычно данная функция аказывает до 5% нагрузки на сервер. Это не самый прожорливый функционал, но его отключение может дать серьезный прирост производительности.
Параметр: nerf-spawner-mobs может быть установлен на true, если ваш сервер не полагаться на агрессивных мобов, которые появляются с помощью спаунеров. Если у вас есть много спаунеров нейтральных мобов (фермы и тд) и вы редко используете спаунеры агрессивных, активация этой функции даст серьезное увеличение производительности.
Описание: Устанавливает радиус в блоках, в пределах которых сущности будут "активными" - объекты за пределами этого диапазона будет тикать по сниженному рейту, чтобы предотвратить сервера отставание.
Misc регулирует радиус элементов рам, картин, выброшенных предметов, шаров опыта и табличек. Я установил этому параметру значение "2", для предотвращения их движения по воде. Параметры animals: 8 monsters: 10 не означают что мобы будут выгружены, они будут активны(за один тик), но с более низким рейтом (читаем подробнее, что такое тик).
entity-tracking-range
Стандартные значения: (players: 48, animals: 48, monsters: 48, misc: 32, other: 64 )
Устанавливает радиус в блоках, в пределах которых сущности будут видимыми для клиента. Субъекты за пределами этого диапазона будут невидимы и не будут обработаны железом клиента чтобы сохранить загрузку процессора и пропускную способность. Это особенно полезно для ПВП серверов, а снижение параметров для игроков исключит wallhacks и радар в некоторой степени. Misc регулирует радиус элементов рам, картин, выброшенных предметов, шаров опыта и табличек. Other устанавливает максимальный предел для всех субъектов на вашем сервере.
entity-tracking-range: не влияет на производительность сервера, но влияет производительность на стороне клиента. Я хотел бы предложить оставить его нетронутым.
↳ hopper-transfer
Стандартное значение: 8
Описание: Период времени в 1 тик, между тем как воронка активируется и перетянет вещи в сундук. При стандартном значении воронка активируется и перетаскивает в сундук предметы раз в 8 тиков.
↳ hopper-check (Удалено в версии 1.8.3 March, 8th 2015)
Стандартное значение: 8
Описание: Период времени в 1 тик, - за который воронка анализирует кол-во предметов вокруг нее. К примеру при значении 8, воронка будет проверять инвентарь сундука и наличие предметов вокруг нее раз в восемь тиков.
Значение по умолчанию равно 8, поэтому установка его в 24 означает, что процесс активации будет происходить в три раза реже. Что сократит общее время активности воронок. (внимание изменение данной функции может привести к неправильной работе некоторых механизмов, которые строят ваши игроки)
Я советую установить вот такие значения:
max-entity-collisions
Стандартное значение: 8
Описание: Данный параметр устанавливает лимит сущностей в одной точке, я предлагаю установить значение 2 или даже 1.
item-despawn-rate
Стандартное значение: 6000
Описание: Данный параметр устанавливает время в тиках, по прошествии которого брошенные на землю предметы исчезнут.
При стандартном значении предметы будут исчезать через 6000:20=300 секунд. Данный параметр регулируется индивидуально для каждого сервера.
merge-radius:
↳ exp
Стандартное значение: 3.0
Описание: Устанавливает радиус в блоках, когда шарики опыта будут объединены в один стак.
↳ item
Стандартное значение: 2.5
Описание: Устанавливает радиус в блоках, когда предметы одной группы будут объединены в один стак.
Предлагаю вот такие параметры:
view-distance
Стандартное значение: 10
Описание: Контролирует количество блоков, которые будут загружены вокруг каждого игрока. Это значение не может быть выше , чем 15 или ниже , чем 1. Понижение это может снизить нагрузку на сервер , если у вас есть большое количество игроков онлайн.
Я советую установить данный параметр на "4", но в таком случае могут возникнуть проблемы при прогрузке блоков для креатив серверов. Все же лучше не выходить за значение "6". Данный параметр оказывает значительную нагрузку на сервер
chunks-per-tick
Стандартное значение: 650
Описание: Контролирует количество чанков, которые будут обновлены для роста культур(фермерам на заметку) за один тик . Снижение этого параметра уменьшает нагрузку на сервер и замедляет рост культур соответственно. Я предлагаю установить значение "80" что примерно в восемь раз ниже.
где x это = cactus, melon, pumpkin, sapling, cane, mushroom, wheat
При снижении параметра chunks-per-tick в восемь раз до 80, мы увеличим значения роста каждой культуры до "800" ( восемь раз соответственно) что даст нам стандартную скорость роста, при этом сократив кол-во обновленных чанков.
Устанавливаем параметры на:
Помните, что параметры chunks-per-tick и growth взаимосвязаны и если вы уменьшили кол-во обновленных чанков, при этом оставив без изменения параметр growth(100) то вы снизите скорость роста в восемь раз и наоборот.
Переходим к файлу bukkit.yml
Параметр spawn-limits . Отвечает за общее кол-во мобов, которые будут отспаунены для одного игрока. Я предлагаю такие значения:
Я снизил параметр ambient: 4, тк. Кол-во летучишь мышей никак не влияет на геймплей.
Чем больше игроков играют на сервере, тем ниже можно опускать данные значения повышая при этом производительность сервера.
Также рекомендую установить значения параметра ticks-per :
В частности, я изменил monster-spawns с 1 до 3. Это интервал между событием mobSpawn , который будет определять места и порождать монстров . Если mobSpawn собирает много циклов в ваших таймингах советую увеличить данные значения!
chunk-gc это небольшая функция spigot которая отключена по умолчанию. Для включения, установите параметры:
Spigot / Paper предлагает настройки, которые значительно улучшают производительность сервера Майнкрафт. В этом руководству представлены предлагаемые значения, позволяющие получить максимальную отдачу от вашего сервера без ущерба для игрового процесса.
Ping — задержка подключения
Пинг показывает, количество времени (в миллисекундах) требуемое для обработки данных игрока на сервере. Чем дальше игрок географически находится от сервера, тем дольше будет доходить данные и тем больше будет пинг. Как владелец сервера вы должны разместить свой сервер в регионе, где вы предпочитаете иметь свою базу игроков, или в регионе, который находится на близком расстоянии ко всей вашей аудитории.
Пример: Если взять хостинг с датацентром в США, а ваши игроки будут из России или других стран СНГ, тогда у всех игроков будет очень высокий пинг и у них будут задержки. Опять же если ваши игроки из России, необязательно покупать хостинг с датацентром в России, можно брать в Германии, Франции. Там достаточно играбельный пинг и многие проекты держат там сервера.
Показатели пинга
1 — 90 = Супер!
91 — 179 = Хорошо — Могут быть неудобства во время PvP.
180 — 299 = Плохо — Постоянные зависания во время взаимодействия с блоками/игроками/мобами.
300 — 499 = Ужасно — Почти нереально играть.
500+ = Пора искать сервер поближе к вам.
Перед тем как ставить плагины, нам необходимо уделить немного внимания основным настройкам сервера в таких файлах, как Bukkit.yml и Spigot.yml. Находятся они в основной папке с сервером.
Bukkit.yml
Перетаскиваем интересующие нас файлы на рабочий стол. Открываем bukkit.yml с помощью Notepad++ , и здесь нас интересует строчки -
allow-end: true – включает, отключает нижний мир (true – вкл, false – выкл);
Spigot.yml
restart-on-crash: true – Перезагружать ли сервер при его падении (true – да, false – нет);
whitelist: Вас нет в белом списке.
unknown-command: Неизвестная команда! Введите /help для помощи.
server-full: Сервер переполнен!
outdated-client: Пожалуйста, используйте версию игры
outdated-server: Сервер все еще на версии
restart: Сервер перезагружается.
Пока что это все, что необходимо знать на данном этапе. Сохраняем, перекидываем на сервер и жмем «перезагрузить».
В основной папке больше ничего настраивать мы не будем. Переходим плавно к плагинам.
Плагины.
Для сборки сервера которую я установил (Spigot), подходят как спиготовские так и плагины написанные для bukkit.
Для установки плагина, скаченный файл в формате .jar необходимо перенести в папку plugins которую можно найти в основной папке с сервером. После того как все сделали, следует перезапустить сервер. Если Вы все сделали правильно, то в папке плагинс появится новая папка с названием плагина, где будут находится файлы настройки. Но это условие касается только тех, у которых предусмотрена дополнительная настройка.
И так, давайте разберемся, какие же плагины необходимо поставить для комфортной игры? Вот небольшой список с кратким описанием:
ChatEx – Красивый чат;
ChestCommands – Необходим для создания меню на сервере;
Essentials – Добавляет множество полезных команд;
NoCheatPlus – Защита от читов и блокировка команд;
PermissionsEx – С его помощью Вы можете выдавать права определенным группам игроков (используется для создания доната);
PluginMetrics и ProtocolLib – требуются для работы некоторых плагинов;
RandomTeleport – Телепортация в случайную точку;
Vault – Создание экономики на сервере;
WorldEdit – Позволяет более эффективно редактировать мир;
Spigot.yml
save-user-cache-on-stop-only
По умолчанию: false
Оптимизировано: true
Влияние на производительность: Среднее
➫ Этот параметр отвечает за то, нужно ли серверу всегда хранить пользовательские данные (false) или отложить эту функцию до того момента, как сервер начнет перезапуск или выключится (true)? Это хорошая экономия TPS.
Примечание: регулярно делайте резервные копии, чтобы избежать потери данных в редких случаях фатального сбоя.
entity-activation-range
По умолчанию: animals:32, monsters:32, raiders: 48, misc:16
Оптимизировано: animals:16, monsters:24, raiders: 48, misc:8
Влияние на производительность: Среднее
➫ Существа за пределами этого диапазона будут отмечаться реже. Не устанавливайте слишком низкое значение, иначе вы можете нарушить поведение мобов (аггро, рейды и т.д.).
Примечание: Деревенских жителей следует оставлять в покое (если это возможно), чтобы защитить механику.
tick-inactive-villagers
По умолчанию: true
Оптимизировано: false
Влияние на производительность: Среднее
➫ Включение этого параметра предотвращает установку галочки для жителей за пределами диапазона активации.
Примечание: Ванильное поведение позволяет отмечать всех жителей в загруженных чанках. Включите опцию villagers-active-for-panic, чтобы спасти некоторые железные фермы от разрушения.
nerf-spawner-mobs
По умолчанию: false
Оптимизировано: true
Влияние на производительность: Среднее
➫ Когда включено, мобы из спавнеров не будут иметь ИИ (не будут плавать/атаковать/двигаться). Это большая экономия TPS для массивных ферм мобов, но также ухудшает поведение. Плагин ограничителя фермы может быть лучшим решением.
Примечание: в Paper есть опция, позволяющая заставить мобов, получивших повреждения, прыгать/плавать. Это исправляет фермы, толкающие воду.
TPS — отставания сервера
TPS в Майнкрафте это количество «тиков в секунду». Данный тип отставания сервера является единственным, которым может управлять владелец сервера. Все советы по оптимизации сервера, которые вы прочитали выше в статье предназначены как раз для повышения TPS.
Для сервера показатель TPS является очень важным и самое максимальное значение TPS равно 20, именно с этой скоростью он и выполняет все задачи. Например, поведение мобов, скорость роста урожая, добыча блоков и многое другое. Чем ниже будет падать TPS сервера, тем больше зависаний будет на сервере. Блоки будут выпадать с задержкой, мобы будут зависать и все в этом духе. Если TPS упадет слишком низко, это может привести даже к краху всего сервера.
Значения TPS
20.0 = Супер — Ваш сервер в идеальном состоянии.
19.95 — 19.99 = Хорошо — Небольшие потери TPS. Почти не влияют на работу сервера.
18.5 — 19.94 = Играбельно — Есть некоторые подвисания, но особо не напрягают.
16.0 — 18.4 = Плохо — Достаточно частые подвисания, нужно искать проблемы в сервере.
= Можете сразу создавать новый сервер…
Server.properties
view-distance
По умолчанию: 10
Оптимизировано: 4-8
Влияние на производительность: Сильное
➫ Это самый важный параметр во всех ваших файлах, поскольку он ограничивает расстояние рендеринга чанков. Серверы с открытым миром (например, Survival) должны стремиться использовать значение 6+, но другие серверы с общим хостом, низкими характеристиками или большим количеством игроков могут использовать значение 4-5, если рендеринг чанков вызывает лаги.
Paper.yml
max-auto-save-chunks-per-tick
По умолчанию: 24
Оптимизировано: 6
Влияние на производительность: Большое
➫ Сохранение мира будет происходить с замедлением сохранения чанков. Очень важная функция для современных серверов Майнкрафт.
Примечание: Ниже 6 ставить не рекомендуется, есть возможность несохранения чанков!
max-entity-collisions (в Spigot.yml в некоторых сборках)
По умолчанию: 8
Оптимизировано: 2
Влияние на производительность: Среднее
➫ Зажатые объекты (кофемолки, фермы и т.д.) будут меньше сталкиваться и потреблять меньше TPS в процессе.
grass-spread-tick-rate
По умолчанию: 1
Оптимизировано: 4
Влияние на производительность: Среднее
➫ Время (в тиках) до того, как сервер попытается разбросать траву по частям. Это не окажет влияния на геймплей большинства типов игр.
hopper.disable-move-event
По умолчанию: false
Оптимизировано: true
Влияние на производительность: Большое
➫ Это значительно уменьшит отставание хоппера, поскольку предотвратит вызов InventoryMoveItemEvent для КАЖДОГО слота в контейнере.
Предупреждение: Плагины, которые прослушивают InventoryMoveItemEvent, будут сломаны.
prevent-moving-into-unloaded-chunks
По умолчанию: false
Оптимизировано: true
Влияние на производительность: Среднее
➫ Предотвращает попадание игроков в неактивный чанк. Такое происходит из-за лагов и может вызвать еще большие лаги.
use-faster-eigencraft-redstone
По умолчанию: false
Оптимизировано: true
Влияние на производительность: Большое
➫ Эта настройка сокращает анимацию и обновления работы редстоуна на 95%, при этом не ломая механизмы. Тестирование данной функции установило ускорение в 10 раз!
Предварительная генерация карты
Предварительная генерация карты имеет большое влияние на устранение лагов на сервере Майнкрафт. Обязательно сделайте это на своем сервере.
- Установите плагин WorldBorder
- Поставьте разумное ограничение по размерам карты
- Пропишите команду: /wb fill
- Подождите… это может занять вплоть до нескольких часов в зависимости от размера карты. В идеале это нужно делать до того, как карта будет запущена, так как это вызовет задержку.
- Оставьте ограничение мира, чтобы чанки больше никогда не создавались (тогда вся карта будет сразу прогружена и не будет лагов из-за прогрузки чанков).
Bukkit.yml
spawn-limits
По умолчанию: monsters: 70, animals: 10, water-animals: 15, water-ambient: 20, ambient: 15
Оптимизировано: monsters: 50, animals: 8, water-animals: 7, water-ambient: 10, ambient: 1
Влияние на производительность: Большое
➫ Хотя это не просто «количество мобов на игрока», более низкие значения означают меньшее количество мобов. Избегайте слишком низких значений, иначе нехватка мобов будет заметна. Последующие значения в данной статье помогут скрыть это уменьшение.
chunk-gc.period-in-ticks
По умолчанию: 600
Оптимизировано: 400
Влияние на производительность: Среднее
➫ Позволяет быстрее выгружать свободные чанки. Чем меньше тиков, тем выше будет показатель TPS, про который вы можете прочитать в конце этой статьи.
ticks-per.(type)-spawns
По умолчанию: monsters:1, water:1, water-ambient:1, ambient:1
Оптимизировано: monsters:5, water:11, water-ambient:21, ambient:31
Влияние на производительность: Среднее
➫ Этот параметр устанавливает, как часто (в тиках) сервер пытается породить сущности. Увеличение времени между попытками спавна не должно повлиять на игровой процесс. Смещение частоты тиков больше распределяет их по времени.
Примечание: Увеличивайте значение только в том случае, если у вас значительные потери тиков при выполнении задачи mobSpawn.
Читайте также: