RE:NODE

Minecraft12 мин чтения

Сервер Skyblock в Minecraft: острова и плагины

Как поднять сервер Skyblock на Paper: пустой мир, BentoBox и другие плагины островов, расстояние между островами, экономика, генераторы руды и фермы, которые вызывают лаги.

0 прочтений

Сервер Skyblock - это сервер Paper с плагином островов. Плагин создаёт пустой мир (void), вставляет небольшой стартовый остров для каждого игрока или команды с фиксированным шагом, защищает его и даёт игрокам команды /island, чтобы создавать, сбрасывать, приглашать и телепортироваться. BentoBox с аддоном BSkyBlock - бесплатный и поддерживаемый вариант по умолчанию; основные альтернативы - SuperiorSkyblock2 и IridiumSkyblock. Плагин - это простая часть. Переживёт ли сервер Skyblock первый месяц, решают экономика, которую вы вокруг него выстроите, и лаги, которые копятся на островах, когда игроки начинают всё автоматизировать: каждый остров рано или поздно становится фермой, а именно фермы и ставят серверы Skyblock на колени.

Как Skyblock устроен на сервере#

Одиночный Skyblock - это карта: один остров, один игрок. Серверный Skyblock - это сетка, которой управляет плагин. Мир - пустая пустота, а плагин размещает острова через равные промежутки - в несколько сотен блоков друг от друга, - чтобы острова никогда не видели друг друга и каждый находился внутри собственного защищённого квадрата.

владеет миромследующий свободный слотИгрок/island createПлагин острововBentoBox и подобныеПустой миррельеф не создаётсяСетка острововфиксированный шагСтартовый островвставленная схема
Как плагин раскладывает пустой мир

Из такой раскладки вытекают три следствия:

  • Чанки дешёвые, пока не перестают быть дешёвыми. Пустой чанк почти ничего не стоит ни при генерации, ни при хранении. Остров, на котором строили годами, стоит не меньше любой базы на сервере выживания.
  • Острова тикают, только когда рядом кто-то есть. Остров игрока, который не в сети, выгружен, если его не держит загруженным чанклоадер или плагин. Для сервера это хорошо, а для игроков - источник жалоб («моя ферма не работала, пока меня не было»), отвечать на которые стоит правилами, а не чанклоадерами.
  • Каждый остров - защищённый регион. Плагин сам решает, кто может строить, открывать сундуки и пользоваться дверями, исходя из членства на острове и настроек каждого острова. Отдельный плагин приватов не нужен.

Выбор плагина островов#

ПлагинЛицензияПримечания
BentoBox + BSkyBlockБесплатный, открытый кодМодульный: аддоны для уровней, испытаний, варпов, улучшений
BentoBox + AOneBlockБесплатный, открытый кодВариант «один блок» на том же фреймворке
SuperiorSkyblock2Бесплатный, открытый кодОдин плагин, много встроенных функций, много настроек
IridiumSkyblockБесплатныйПроще, упор на GUI

BentoBox - это фреймворк, а не игровой режим. Он отвечает за острова, защиту и команды; сам режим даёт аддон - BSkyBlock для классического Skyblock, AOneBlock для варианта с одним блоком, AcidIsland и CaveBlock для других. Функции добавляются другими аддонами: Level (подсчёт уровня острова и топы), Challenges, Warps, Upgrades, Biomes, Limits. Вы ставите только то, что нужно, а значит, сервер остаётся лёгким и сразу понятно, где лежит конфиг каждой функции.

SuperiorSkyblock2 собирает всё в одном плагине: улучшения, миссии, ценность островов, генераторы, банк, топы. Он очень гибко настраивается и умеет работать с большим списком других плагинов (стакеры, экономика, магазины). Обратная сторона - огромный объём настроек и более тяжёлый плагин.

Старые плагины - ASkyBlock и uSkyBlock - для актуальных версий больше не поддерживаются. Если гайд советует поставить один из них, значит, гайд устарел.

Что бы вы ни выбрали, перед установкой проверьте, что плагин поддерживает именно вашу версию Minecraft, и рассчитывайте какое-то время держать сервер на этой версии: плагины островов затрагивают генерацию мира и защиту и отстают от новых релизов сильнее большинства.

Установка BentoBox и BSkyBlock#

  1. Запустите обычный сервер Paper один раз, затем остановите его.
  2. Положите BentoBox.jar в plugins/, запустите сервер и снова остановите. BentoBox создаст plugins/BentoBox/ с папкой addons/.
  3. Положите jar аддона BSkyBlock (и любых других аддонов) в plugins/BentoBox/addons/.
  4. Запустите сервер. BSkyBlock создаст свои миры - по умолчанию обычный мир и, по желанию, миры незера и энда - и запишет конфиг в plugins/BentoBox/addons/BSkyBlock/config.yml.
  5. Остановите сервер, отредактируйте этот конфиг (см. ниже), удалите сгенерированные миры островов, если меняли настройки мира, и запустите снова.

Шаг 5 важен. Некоторые настройки, включая расстояние между островами и имена миров, нельзя безопасно менять, когда острова уже существуют. Определитесь с ними до того, как кто-нибудь создаст остров.

Основные настройки в конфиге BSkyBlock, которые стоит просмотреть, - по тому, за что они отвечают, а не по точным именам ключей (они переезжают от версии к версии, а файл снабжён комментариями):

  • Имя мира - название папки мира островов.
  • Расстояние между островами - шаг сетки. Чем он больше, тем больше пустоты между соседями и тем больше места под крупные острова.
  • Радиус защиты - насколько далеко от центра распространяется защита острова. Улучшения островов обычно увеличивают его до максимума, который должен быть меньше половины шага.
  • Высота острова - уровень Y, на котором вставляются острова.
  • Незер и энд - получают ли игроки острова и там или делят обычные миры незера и энда.
  • Лимит сбросов - сколько раз игрок может сбросить остров и очищает ли сброс его инвентарь и деньги. Неограниченные бесплатные сбросы - это эксплойт: игроки фармят стартовый сундук.

Дальше игроки пользуются /island (сокращение /is), чтобы создать остров, вернуться домой, пригласить кого-то и управлять им. Администраторы используют админскую команду BSkyBlock /bsbadmin, чтобы телепортироваться на острова, менять владельцев, сбрасывать и удалять их. У обеих есть автодополнение по Tab; /bsbadmin без аргументов выводит список подкоманд для вашей версии.

Мир: пустая генерация и настройки Paper#

Плагин островов приносит собственный генератор пустого мира, поэтому для мира островов не нужны ни Multiverse, ни отдельный плагин пустого мира. Зато нужен обычный мир для спавна или лобби, если только мир плагина не служит заодно спавном; многие серверы держат небольшой спавн, построенный вручную, в основном world и отправляют игроков на острова оттуда.

Некоторые настройки Paper и ванильной игры в пустом мире ведут себя иначе, и их стоит подправить:

server.properties
view-distance=8simulation-distance=6spawn-protection=0allow-nether=true
config/paper-world-defaults.yml (excerpt)
hopper:  cooldown-when-full: true  disable-move-event: falseentities:  spawning:    per-player-mob-spawns: truechunks:  max-auto-save-chunks-per-tick: 24

Почему именно эти и почему именно на Skyblock:

  • Дальность прорисовки можно сделать ниже, чем на сервере выживания: за краем острова смотреть не на что. Дальность симуляции определяет, на каком расстоянии от игрока работают фермы, и на Skyblock это самый важный рычаг, который у вас есть.
  • Спавн мобов на игрока (по умолчанию в Paper) честно делит лимит мобов между игроками. Без него моб-ферма одного игрока может лишить спавна острова всех остальных.
  • Спавн мобов в пустом мире сосредоточен на тех немногих поверхностях, где он вообще возможен, - то есть на островах игроков и их моб-фермах. Рассчитывайте на то, что фермы будут очень эффективными, а это уже проблема следующего раздела.

Полный набор настроек производительности Paper - в руководстве по оптимизации Paper. На Skyblock важнее всего разделы о воронках и сущностях.

Генераторы, фермы и откуда берутся лаги#

Skyblock - игра про автоматизацию. На каждом острове в итоге появляются генератор булыжника, фермы урожая, моб-фермы и система сортировки, и на сервере с сотней островов именно эти системы и составляют нагрузку сервера. Примерно в порядке того, как часто они создают проблемы:

  1. Воронки. Каждая система сортировки и каждая линия сбора на ферме - это воронки. Каждая проверяет наличие предметов на каждом тике, когда может. Сто островов по сто воронок - это десять тысяч тикающих блочных сущностей. cooldown-when-full в Paper помогает; лимит воронок на остров помогает сильнее.
  2. Предметы на земле. Фермы, которые роняют предметы быстрее, чем воронки их собирают, оставляют на земле сущности предметов. Радиус слияния в spigot.yml (merge-radius.item) объединяет лежащие рядом предметы, но настоящее решение - фермы, которые собирают всё, что производят.
  3. Моб-фермы и спавнеры. На Skyblock спавнеры часто продают в магазинах. Каждый активный спавнер порождает мобов, у каждого из которых работает ИИ. Плагины-стакеры (WildStacker, RoseStacker) объединяют мобов и спавнеры в стопки, так что сотня зомби становится одной сущностью со счётчиком, - на загруженном сервере Skyblock это почти обязательно.
  4. Рост урожая и деревьев. Случайные тики на больших фермах. Снижение random-tick-speed замедляет все фермы на сервере и является изменением баланса, а не исправлением производительности; ограничивайте размер ферм.
  5. Редстоун-часы. Быстрые тактовые генераторы на множестве островов. Paper и плагины могут их ограничивать; правила могут их запрещать.
  6. Подсчёт уровня острова. Плагины уровней проверяют каждый блок острова, чтобы вычислить его ценность. Если делать это по запросу на большом острове, получается скачок лагов; хорошие плагины уровней делают это асинхронно и с ограничением частоты.

Лечение - лимиты, установленные до того, как игроки начнут строить, а не после. Аддон Limits для BentoBox (или его аналог в других плагинах) ограничивает сущности и типы блоков на остров: столько-то воронок, столько-то спавнеров, столько-то жителей. Лимиты, которые были с первого дня, игроки принимают; лимиты, введённые после того, как кто-то построил сортировщик на тысячу воронок, вызывают бунт.

Если лаги всё-таки появились, измеряйте, а не гадайте. spark покажет, куда уходят тики - на воронки, сущности или плагин, - а его данные по чанкам укажут на конкретный остров.

Генераторы руды и прогресс#

Большинство серверов Skyblock заменяют обычный генератор булыжника генератором руды: когда лава встречается с водой, вместо булыжника иногда появляется угольная, железная, золотая или алмазная руда, и шансы растут по мере роста уровня острова. В SuperiorSkyblock2 это встроено; для BentoBox есть аддон MagicCobblestoneGenerator; существуют и отдельные плагины.

Генераторы руды - главный источник ресурсов на сервере, поэтому настраивайте их как экономист, а не как игрок:

  • Начинайте с низких шансов. Алмазы из генератора с шансом 1% превращаются в поток, когда пятьдесят игроков запускают по десять генераторов.
  • Привязывайте лучшие уровни генератора к уровню острова или платным улучшениям, чтобы они были целью.
  • Следите за тем, что продают игроки. Если одна руда преобладает в продажах магазину, шанс её генератора слишком высок.

Сами генераторы для сервера дёшевы - это обновления блоков. Дорого обходится то, что игроки строят, чтобы автоматизировать их добычу, и это возвращает нас к воронкам.

Экономика, магазины и испытания#

Экономике Skyblock нужны Vault и провайдер экономики (обычно EssentialsX), магазин для продажи продукции ферм и покупки того, что острова произвести не могут, и вещи, на которые можно тратить деньги. Общий подход - источники денег, стоки и почему на каждом сервере в итоге появляется триллионер - описан в руководстве по экономике. Что касается именно Skyblock:

  • Магазин скупки - это источник денег. Всё, что игроки фармят, они продают. Цены, выставленные на старте, определяют инфляцию на всю жизнь сервера. Ставьте низкие цены на всё, что можно фармить, и пересматривайте их каждую неделю в первый месяц.
  • Улучшения - это сток. Размер острова, слоты участников, уровни генераторов, лимиты. Это лучшие стоки, потому что они выводят деньги и дают игрокам что-то настоящее.
  • Испытания дают структуру. Challenges в BentoBox или миссии в SuperiorSkyblock2 превращают «стройте что-нибудь» в список целей с наградами. Награды - ещё один источник денег, так что держите их скромными.
  • Топы островов подогревают соревнование. Топы по уровню острова дают повод продолжать играть; они же дают повод искать эксплойты, поэтому следите за ценностью, полученной из дюпнутых или дёшево сгенерированных блоков.

Сезон Skyblock обычно заканчивается вайпом: новые миры, новая экономика, награды для лучших островов. Планируйте сезоны с самого начала и сохраняйте мир и экономику завершённого сезона в резервной копии, а не удаляйте их.

Сколько ресурсов нужно серверу Skyblock#

В начале Skyblock легче сервера выживания в пересчёте на игрока онлайн - нет рельефа, который нужно генерировать, - а позже тяжелее, когда острова заполняются автоматизацией. Рассчитывайте на конец сезона.

Игроков онлайнRAMПримечания
До 154 ГБНормально при наличии лимитов
15-406 ГБНужны плагин-стакер и лимиты воронок
40-808-10 ГБОграничением становится скорость одного потока
80+Разделение на несколько серверовПрокси и несколько экземпляров Skyblock или выделенная машина

Как и на любом сервере Paper, память редко оказывается первым ограничением. Первое ограничение - основной поток: одно ядро тикает каждый загруженный остров. Вот почему лимиты важнее размера тарифа и почему руководство по выбору RAM предостерегает от огромного heap для сервера, чья проблема во времени тика.

Медленнее всего растёт диск. Пустой мир поначалу крошечный, но каждый остров добавляет файлы регионов, а сбросы оставляют старые острова на месте, если плагин их не удаляет. BentoBox умеет удалять чанки острова при сбросе; убедитесь, что эта опция включена, иначе мир будет расти с каждым сбросом бесконечно.

В RE:NODE тарифы Minecraft работают на Paper с подходящей версией Java и уже принятой EULA, так что установка BentoBox сводится к загрузке jar-файлов через файловый менеджер или SFTP; ничего не внесено в белые списки и ничего не заблокировано. Резервные копии входят в каждый тариф и могут запускаться по расписанию - на Skyblock их стоит делать каждую ночь: остров, потерянный из-за бага или загриференный соигроком, - это потерянный игрок.

Устранение проблем#

`/island` ничего не создаёт, или игроков отправляет в пустоту. Мир островов был сгенерирован до настройки аддона, или мир создан другим генератором. Остановите сервер, удалите папки миров островов (только пока настоящих островов ещё нет) и запустите снова.

Острова накладываются друг на друга или защита словно протекает. Радиус защиты вырос больше половины шага между островами, обычно через улучшения. Ограничьте максимальный радиус значением меньше половины расстояния.

Игроки падают в пустоту при телепорте. Точка дома острова находится над блоком, который убрали. Плагины островов ищут безопасное место, но /is sethome на надёжном блоке решает проблему окончательно.

TPS падает, когда в сети конкретный игрок. Нагрузку даёт его остров. Телепортируйтесь туда админской командой, посмотрите количество воронок и сущностей и проверьте вид по чанкам в spark. Обычно это одна слишком большая ферма.

Подсчёт уровня вызывает скачки лагов. Пересчёт уровня на огромных островах. Ограничьте частоту команды уровня и запускайте полный пересчёт в тихие часы.

Папка мира растёт после сбросов. Старые чанки островов не удаляются. Включите в плагине удаление острова при сбросе, а затем подрежьте мир инструментом вроде MCA Selector, пока сервер остановлен.

FAQ#

Нужен ли Multiverse для сервера Skyblock?

Нет. Плагины островов сами создают свои пустые миры и управляют ими. Multiverse понадобится, только если рядом со Skyblock вам нужны другие миры, например ресурсный мир или карта для ивента.

Можно ли добавить Skyblock на существующий сервер выживания?

Да. Плагин островов создаёт отдельные миры, так что выживание остаётся на месте. Дайте двум режимам раздельные экономики или по крайней мере хорошо подумайте, прежде чем их связывать: продукция ферм Skyblock завалит рынок выживания.

На каком расстоянии друг от друга должны быть острова?

На таком, чтобы острова никогда не прогружали друг друга, а защита могла расти через улучшения. Типичное значение - несколько сотен блоков. Решите до запуска, потому что менять шаг, когда острова уже существуют, небезопасно.

Почему мой сервер лагает только вечером?

Потому что острова тикают, только когда их владельцы в сети. Вечером одновременно загружено больше всего островов. Измеряйте в пиковое время, а не во время тихого теста.

Стоит ли разрешать чанклоадеры на Skyblock?

Обычно нет. Игроки захотят фермы, работающие без них; но каждый загруженный остров тикает независимо от того, есть там кто-то или нет, и ваш сервер платит за это весь день. Если разрешаете, ограничьте их количество на остров и сделайте дорогими.


Комментарии

Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.

0/2000