Purpur и Pufferfish - оба форки Paper, которые запускают те же плагины и загружают те же миры. Purpur добавляет сотни игровых переключателей в файле purpur.yml - ездовых мобов, эндер-сундуки на шесть рядов, спавнеры, которые добываются шёлковым касанием, поведение жителей - и в остальном ведёт себя как Paper. Pufferfish добавляет патчи производительности, самый известный из которых - Dynamic Activation of Brain: он реже обрабатывает ИИ далёких мобов. Ни один из них не волшебное ускорение: Purpur существует ради настроек, Pufferfish жертвует частью ванильной точности ради времени тика, и оба уводят вас на шаг дальше от проекта, который первым исправляет ошибки безопасности и стабильности Minecraft. Если вам не нужна конкретная возможность одного из них, правильным выбором по умолчанию остаётся обычный Paper.
Место форков в родословной#
Серверное ПО Minecraft - это цепочка форков, и понимание этой цепочки объясняет каждый риск, о котором пойдёт речь дальше.
Каждый проект берёт предыдущий и накладывает свои патчи. Когда Mojang выпускает новую версию, обновляется Spigot, затем Paper, затем форки переносят свои патчи на новый Paper. Форк может быть не свежее того, на чём он построен, и часто отстаёт.
Purpur большую часть своей истории строился поверх патчей Pufferfish, а не прямо на Paper, поэтому в нём есть часть оптимизаций Pufferfish вдобавок к собственным опциям. Эти отношения менялись от версии к версии Minecraft, так что смотрите сгенерированные конфиги той сборки, которую реально скачали, а не предполагайте, какие возможности в ней есть.
Из этой родословной следуют два практических факта. Первый: каждый плагин, который работает на Paper, работает на обоих форках, потому что оба сохраняют API Paper. Второй: плагин, использующий расширенный API самого Purpur, работает только на Purpur, но не на Paper - такое бывает редко, но проверить стоит, прежде чем на него полагаться.
Purpur: Paper с выведенными наружу переключателями#
Главный довод Purpur - настраиваемость. Он добавляет большой purpur.yml рядом с файлами Paper, и почти каждая опция в нём по умолчанию повторяет ванильное поведение, так что Purpur без изменений играется как Paper. Каждое изменение вы включаете сами.
Небольшая подборка опций, которыми действительно пользуются:
settings: use-alternate-keepalive: false blocks: barrel: rows: 3 ender_chest: six-rows: falseworld-settings: default: mobs: villager: lobotomize: enabled: false check-interval: 100 phantom: ridable: false| Опция | По умолчанию | Что меняет |
|---|---|---|
settings.blocks.barrel.rows | 3 | Размер инвентаря бочки, от 1 до 6 рядов |
settings.blocks.ender_chest.six-rows | false | Удваивает эндер-сундук |
settings.use-alternate-keepalive | false | Отправляет keepalive чаще, может помочь при нестабильном соединении |
mobs.<mob>.ridable | false | Позволяет ездить на этом мобе с седлом |
mobs.villager.lobotomize.enabled | false | Отключает ИИ жителям, которые не могут двигаться |
Переключатели езды задаются для каждого моба отдельно, поэтому purpur.yml такой длинный: почти у каждого моба свой блок настроек езды, здоровья, спавна и поведения. Собственная документация Purpur перечисляет их все с точными именами ключей для вашей версии. Ищите на этой странице, а не угадывайте ключ: Purpur молча игнорирует опцию с опечаткой, и сервер запускается так, будто вы ничего не меняли.
Две опции заслуживают отдельного внимания, потому что меняют не только игру, но и производительность сервера.
Лоботомия жителей. Торговый зал, полный жителей в клетках размером в один блок, - одна из самых дорогих вещей на сервере выживания, потому что каждый житель всё равно каждый тик выполняет поиск пути и логику рабочего места. При lobotomize.enabled: true у жителя, который не может двигаться, отключается ИИ, а check-interval задаёт, как часто Purpur перепроверяет, заперт ли он ещё. Торговля продолжает работать, но что именно продолжает делать лоботомированный житель - в частности, пополнение товаров - менялось от версии к версии, поэтому проверьте на одном жителе, прежде чем переделывать весь зал. На сервере с несколькими большими торговыми залами это одна из самых дешёвых реальных побед.
Альтернативный keepalive. Ванильный сервер отправляет пакет keepalive с фиксированным интервалом и отключает игрока, чей единственный ответ пришёл слишком поздно. Альтернатива Purpur отправляет их чаще и отключает игрока, только если в пределах таймаута не пришёл ответ ни на один, - это уменьшает число киков «Timed out» у игроков с нестабильным соединением. На задержку это не влияет.
Purpur также добавляет команды, которых нет в vanilla и Paper, например /tpsbar, /rambar, /ping и /uptime. Они полезны - и это ещё одна вещь, по которой будет скучать ваша команда, если вы когда-нибудь вернётесь на Paper.
Pufferfish: патчи производительности с компромиссами#
Pufferfish - преемник Airplane, более раннего форка для производительности; его поддерживает одноимённая хостинговая компания. Он сохраняет API Paper и сосредоточен на времени тика. Его настройки лежат в pufferfish.yml:
dab: enabled: false start-distance: 12 max-tick-freq: 20 activation-dist-mod: 8 blacklisted-entities: []enable-async-mob-spawning: trueenable-suffocation-optimization: trueinactive-goal-selector-throttle: trueDynamic Activation of Brain (DAB) - главная возможность. Новые мобы Minecraft - жители, пиглины, аксолотли, козы, лягушки и другие - используют систему «мозга», которую дорого обрабатывать. DAB тем реже тикает мозг моба, чем дальше тот от ближайшего игрока. В пределах start-distance (в блоках) мобы ведут себя как обычно. Дальше интервал между тиками мозга растёт с расстоянием, делённым на activation-dist-mod, вплоть до потолка в max-tick-freq тиков. Мобы из blacklisted-entities никогда не замедляются.
Компромисс заложен в самом названии. Житель в 40 блоках от ближайшего игрока думает реже. В обычной игре на выживание этого никто не замечает. Но у технических игроков с железной фермой, разведением жителей или рейд-фермой, которая рассчитывает на то, что мобы принимают решения на расстоянии, DAB может замедлить или сломать конструкцию. Решение - поднять start-distance, внести в чёрный список тип сущности, от которого зависит ферма, или отключить DAB.
Асинхронный спавн мобов выносит часть работы естественного спавна из главного потока. Правила спавна он не меняет, но меняет тайминги, и очень точные тесты защиты от спавна иногда расходятся с vanilla.
Замедление неактивного селектора целей заставляет сущности вне радиуса активации реже выполнять свои цели ИИ старого типа. Это пересекается с собственными настройками радиуса активации сущностей в spigot.yml - их стоит настроить в первую очередь, потому что они работают и на Paper.
Будьте честны насчёт размера выигрыша. На сервере, где узкое место - ИИ сущностей (много жителей, фермы пиглинов, мобобойки), патчи Pufferfish могут вернуть заметную долю каждого тика. На сервере, где узкое место - генерация чанков, плагины, редстоун или дальность прорисовки, они почти ничего не меняют. Профиль spark покажет, какой у вас случай: если преобладают фреймы Villager и Brain, Pufferfish стоит попробовать; если нет - не стоит.
Риски работы на форке#
Ни один из этих пунктов не повод никогда не запускать Purpur или Pufferfish. Это цена, которую нужно сопоставить с нужной вам возможностью.
- Отставание по версиям. Новый релиз Minecraft сначала приходит в Paper, потом в форки. Игроки с обновлёнными клиентами не смогут зайти, пока сервер не догонит, если только вы не поставите ViaVersion, чтобы закрыть разрыв. Бесплатные сборки Pufferfish в особенности временами сильно отставали от Paper.
- Исправления безопасности и крашей приходят позже. Когда Paper закрывает краш-эксплойт или дюп, форку нужно перенести патчи, прежде чем исправление получите вы. Обычно это часы или дни. Иногда дольше.
- Поддержка идёт к форку, а не к Paper. Разработчики Paper не будут разбираться с проблемой на Purpur или Pufferfish, и это разумно: они не могут сказать, не вызвали ли её патчи форка. Воспроизведите баг на чистом Paper, прежде чем сообщать о нём выше по цепочке.
- Расхождение поведения. Каждая включённая опция - отличие от vanilla, которого не ожидают игроки, гайды и схемы ферм. Ездовые фантомы и эндер-сундуки на шесть рядов - это весело; схема фермы, которая молча не работает из-за DAB, стоит вашим техническим игрокам полдня.
- Заброшенность. Форки держатся на небольшом числе мейнтейнеров. Если кто-то из них уходит, вам достаётся миграция по его расписанию, а не по вашему.
- Более глубокие форки умножают всё перечисленное. Существуют форки Purpur - Leaf, Gale, DivineMC и другие, - которые накладывают сверху ещё патчи, часто включая экспериментальную многопоточность. Каждый шаг вниз по цепочке добавляет отставание и убирает поддержку. Они бывают быстрыми, но именно там живут малопонятные баги.
Выбор: Paper, Purpur или Pufferfish#
| Вам нужно | Запускайте | Почему |
|---|---|---|
| Надёжный вариант по умолчанию для любого сервера | Paper | Обновляется первым, эталон для плагинов и поддержки |
| Игровые опции без плагинов | Purpur | Ездовые мобы, размеры инвентарей, поведение мобов - всё в конфиге |
| Меньше времени тика на сервере с кучей мобов | Pufferfish или Purpur | DAB и связанные патчи |
| Точная ванильная механика для технической игры | Fabric с Lithium | Paper и его форки меняют пограничные случаи |
| Больше игроков, чем тянет один поток | Velocity и несколько серверов или Folia | Форк не убирает главный поток |
Важны две последние строки. Техническим игрокам, которым нужно точное поведение редстоуна и ферм, лучше подходит Fabric с серверными модами для производительности, который сохраняет ванильное поведение. А если вы переросли один поток, ответ - прокси-сеть или Folia, а не другой форк той же однопоточной конструкции. Более широкое сравнение серверного ПО - в статье Paper, Fabric или vanilla.
Переход с Paper и обратно#
Поскольку оба форка сохраняют структуру мира и API плагинов Paper, переход - это замена jar-файла.
- Чисто остановите сервер и дождитесь окончания сохранения.
- Снимите бэкап вне машины. Формат мира тот же, но вы собираетесь изменить поведение, которое не всегда можно отменить: лоботомированный торговый зал или моб, на котором кто-то уехал, останутся там, где оказались.
- Скачайте сборку форка точно под вашу версию Minecraft. Purpur публикует сборки на своём сайте и через API загрузок; Pufferfish - на своём сайте. Не смешивайте версии.
- Замените jar-файл сервера и запустите. Форк создаст свой конфиг (
purpur.ymlилиpufferfish.yml) рядом с существующимиserver.properties,bukkit.yml,spigot.ymlи папкойconfig/, которые он продолжает читать. - Прочитайте лог запуска на предмет плагинов, которые не загрузились, и предупреждений конфига, а затем меняйте по одной опции за раз.
На своей машине загрузку сборки Purpur можно автоматизировать через его API:
$ curl -o server.jar https://api.purpurmc.org/v2/purpur/1.21.1/latest/download$ java -Xms4G -Xmx4G -jar server.jar --noguiВозврат на Paper - то же самое в обратном порядке. Paper игнорирует purpur.yml и pufferfish.yml, так что оставьте их на месте на случай, если вернётесь. Не вернётся только состояние, созданное форком: сущности, на которых уехали куда-то необычно, инвентари больше, чем позволяет vanilla (классический случай - предметы в рядах с четвёртого по шестой у эндер-сундука на шесть рядов; освободите их перед возвратом), и всё, что зависело от команд, которые есть только в Purpur.
В RE:NODE тарифы Minecraft выдаются с Paper и подходящей версией Java - ровно то, что рекомендует эта статья. Если вам нужен Purpur или Pufferfish, загрузите jar-файл через файловый менеджер или по SFTP и укажите на него во вкладке Startup: белого списка разрешённого серверного ПО нет, но нет и переключения в один клик. Сначала снимите бэкап; у игровых тарифов есть слоты для бэкапов, которые можно заблокировать от ротации, пока вы решаете, остаётся ли форк.
Как работать на форке правильно#
Если вы всё-таки на форке, несколько привычек сделают жизнь скучной в хорошем смысле:
- Закрепите сборку. Не позволяйте скрипту запуска скачивать «latest» при каждом старте. В сборках форков бывают регрессии, и вы хотите сами решать, когда брать новую. Держите предыдущий jar-файл рядом с текущим.
- Ведите журнал всех опций, отличных от стандартных. Через полгода никто не вспомнит, почему на фантомах можно ездить и почему жители в 30 блоках перестали размножаться. Блок комментариев в начале
purpur.ymlничего не стоит. - Следите за заметками к релизам форка на предмет исправлений безопасности и переносов патчей, а также за объявлениями Paper, потому что ждёте вы именно исправлений Paper.
- Перед обновлением версии тестируйте на копии. Работающий порядок действий описан в статье обновление версии Minecraft, и он применим без изменений.
- Профилируйте после каждого изменения. Опция форка, которая должна помочь и не помогает, - признак того, что узкое место в другом месте.
FAQ#
Purpur быстрее Paper?
Сам по себе нет. Собственные опции Purpur по большей части по умолчанию повторяют vanilla, и его производительность близка к Paper. Сборки с патчами Pufferfish могут быть быстрее на серверах с большим числом мобов, когда включены опции вроде DAB или лоботомии жителей, но выигрыш даёт именно эта настройка, а не название.
Работают ли плагины Paper на Purpur и Pufferfish?
Да. Оба сохраняют API Paper, так что любой плагин для Paper работает и на них. Исключение - плагин, написанный под расширенный API Purpur: он работает только на Purpur. Авторы плагинов обычно прямо об этом пишут.
Можно ли вернуться на Paper после Purpur?
Да. Формат мира и структура папок те же, а Paper просто игнорирует purpur.yml. Сначала освободите эндер-сундуки на шесть рядов и дополнительные ряды бочек, потому что Paper некуда положить эти предметы.
Ломает ли DAB из Pufferfish фермы?
Может. DAB замедляет ИИ мобов с «мозгом», которые находятся далеко от игроков, а это затрагивает разведение жителей, некоторые железные фермы и рейд-фермы, работающие на расстоянии. Поднимите dab.start-distance, добавьте затронутого моба в dab.blacklisted-entities или отключите DAB на серверах с серьёзными техническими игроками.
Стоит ли новому серверу начинать на форке?
Обычно нет. Начните на Paper, настройте его и переходите только тогда, когда понадобится конкретная возможность форка. Форк, выбранный потому, что звучит быстрее, обычно добавляет отставание по версиям и проблемы с поддержкой, не решая ничего, что на самом деле мешает серверу.




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