Сервер может отлично запуститься после установки плагина, а потом упасть в тот момент, когда игрок откроет меню, зайдёт в новый чанк или введёт команду. Поэтому проверка совместимости плагинов Minecraft — это гораздо больше, чем убедиться, что jar-файл появился в папке plugins. Настоящая совместимость означает, что версия Minecraft, ядро, зависимости, конфигурация и всё, с чем сталкиваются игроки, работают вместе и не съедают TPS.

Начинайте с ядра сервера, а не с плагина

Плагины пишутся для экосистемы Bukkit. Сюда входят Spigot, Paper и Purpur, причём Paper и Purpur обычно и есть практичный выбор для серверов, которым нужны производительность и больше контроля над настройками, — сравнение в статье Paper, Purpur и Vanilla. Плагин с пометкой «Spigot» может работать на Paper, но это ещё не значит, что все его функции поддерживаются и оптимизированы.

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

Paper и Purpur не взаимозаменяемы с Forge или Fabric. Forge и Fabric используют моды, а не плагины Bukkit, — про эту сторону рассказывает статья Forge или Fabric. Если положить плагин Paper на сервер Fabric, рабочим дополнением он не станет. Гибридные ядра существуют, но добавляют ещё один слой совместимости и сильно усложняют разбор крашей. Для публичного SMP или проекта с мини-играми сначала выберите стек плагинов или стек модов и стройте всё вокруг него.

Пять проверок перед каждой установкой

Прежде чем добавить любой плагин на живой сервер, проверьте пять вещей:

  • Версия Minecraft: убедитесь, что плагин явно поддерживает точную версию вашего сервера.
  • Платформа: уточните, поддерживает ли он Paper, Purpur, Spigot или только какой-то конкретный форк.
  • Зависимости: поищите обязательные плагины, библиотеки, драйверы баз данных, ресурспаки или системы прав.
  • Актуальность: проверьте, поддерживает ли разработчик свежие версии Minecraft и отвечает ли на баг-репорты.
  • Пересечение функций: убедитесь, что те же команды, защиту, меню, формат чата или логику экономики не обслуживает уже другой плагин.

Это займёт несколько минут и может сэкономить целый вечер откатов. Дата последней загрузки плагина важна, но это не единственный сигнал. Некоторые небольшие плагины годами остаются стабильными, потому что используют стандартные API Bukkit. Другие быстро ломаются, потому что завязаны на внутренности конкретной версии. Саму установку по шагам разбирает наш гайд о том, как ставить плагины на Paper.

Внимательно читайте пометки о версиях

Пометки о версиях бывают обманчивы. «Поддержка 1.21» может означать, что плагин загружается на 1.21, а не что каждая функция проверена на 1.21.4 или 1.21.5. Если плагин использует NMS — внутренности net.minecraft.server, — поддержка конкретной патч-версии важна вдвойне.

Следите и за требованиями к Java. Современным версиям сервера Minecraft нужна свежая Java — для 1.20.5 и новее это Java 21, — а плагин, собранный под более новую Java, на старой упадёт с ошибкой UnsupportedClassVersionError. Панель может упрощать развёртывание сервера, но версия Java всё равно должна подходить и под сборку ядра, и под плагин.

Зависимости — часть плагина

Отсутствующая зависимость — одна из самых понятных ошибок совместимости: консоль обычно прямо говорит, чего не хватает. Например, сообщение о том, что нужны Vault, PlaceholderAPI, ProtocolLib, LuckPerms или коннектор базы данных. Установите поддерживаемую версию этой зависимости и полностью перезапустите сервер.

Не считайте зависимость необязательной только потому, что плагин без неё загружается. Плагин магазина может работать без Vault, но без рабочей интеграции с экономикой. Плагин скорборда может выглядеть активным, а плейсхолдеры будут пустыми, потому что не хватает расширений PlaceholderAPI. Функции для разных версий может понадобиться ProtocolLib, чтобы правильно обрабатывать пакеты.

Порядок загрузки тоже бывает важен. Paper загружает плагины по объявленным зависимостям, но плохо настроенные плагины или вручную установленные библиотеки всё равно могут создавать проблемы. Если два плагина предоставляют одно и то же API или тащат в себе одну и ту же библиотеку, обновляйте их в паре, если так рекомендует разработчик.

Мягкие зависимости тоже создают проблемы

Мягкая зависимость (softdepend) позволяет плагину работать с другим плагином, если тот установлен, но не требует его. Это удобно, пока оба плагина не начинают по-разному цепляться за одно и то же событие или функцию. Например, плагин чата, мост с Discord и плагин модерации могут одновременно пытаться форматировать сообщения. В итоге — двойные префиксы, сломанные цветовые коды или сообщения, отправленные дважды.

Относитесь к интеграциям как к функциям, которые нужно тестировать, а не как к галочкам. Добавили новый форматтер чата — проверьте общий чат, личные сообщения, чат персонала, пересылку в Discord и префиксы рангов, прежде чем объявлять об обновлении.

Найдите настоящую ошибку в логе

Откройте logs/latest.log и поищите Could not load и Error occurred while enabling. Первая такая строка называет плагин, который не запустился, и обычно причину — отсутствующую зависимость, не ту версию Minecraft или неподдерживаемую Java. Всё, что ниже, часто лишь цепная реакция.

Большинство конфликтов — из-за пересечения функций

Конфликты плагинов поначалу редко выглядят драматично. Чаще это странное поведение: приваты перестают защищать сундуки, игроки сохраняют инвентарь вопреки хардкорной настройке, команда открывает не то меню или кастомный предмет исчезает после перезапуска.

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

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

Командам нужно такое же внимание. Если /spawn или /home делает что-то неожиданное, возможно, другой плагин зарегистрировал эту команду раньше. При тестировании используйте команды с префиксом, например /pluginname:command, чтобы понять, какой плагин ею владеет. Затем поправьте алиасы или уберите пересечение, а не надейтесь, что игроки привыкнут.

Берегите TPS, пока проверяете совместимость

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

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

Смотрите на TPS и MSPT, а не только на то, что консоль чистая. Сервер может держать 20 TPS при пяти игроках и развалиться в пиковые часы. Профайлер вроде spark покажет, съедает ли плагин время тика, — как его читать, объясняет наш гайд по TPS, — но и здравый смысл ловит немало проблем. Плагин, который каждую секунду сканирует все загруженные чанки, обойдётся дороже, чем тот, что раз в несколько минут выполняет точечную задачу. Если нужны лёгкие помощники, начните с нашей подборки плагинов против лагов.

Быстрое железо помогает — особенно сильная производительность одного ядра и NVMe для работы с миром, — но оно не исправит плагин, который вешает слишком много работы на главный поток. Начните с чистого набора плагинов, а затем наращивайте ресурсы под реальный онлайн. Это путь к предсказуемой производительности.

Обновляйтесь безопасно, а не всё разом

Когда выходит новая версия Minecraft, не поддавайтесь желанию одним махом обновить ядро и все плагины. Сначала обновите тестовый сервер. Убедитесь, что работает главное: вход, права, приваты, экономика, данные игроков, ранги, магазины, доступ к мирам и бэкапы.

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

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

Прокси и игроки с разных версий — ещё один слой

Серверам за Velocity или BungeeCord нужны совместимые плагины и на прокси, и на бэкендах. Общий чат, сообщения персонала, переходы игроков между серверами и общие данные о наказаниях могут требовать отдельных компонентов на прокси и на каждом сервере Paper. Ставьте только те части, которые указаны в документации, и держите их версии согласованными.

Если вы используете ViaVersion, чтобы на сервер заходили игроки с разных версий Minecraft, проверьте кастомные предметы, контент ресурспаков, меню инвентаря и изменения боя на всех разрешённых версиях. ViaVersion улучшает совместимость подключения, но не гарантирует, что каждый игровой плагин будет вести себя одинаково для каждого клиента.

Командам, которые предпочитают строить, а не разбирать стектрейсы, управляемый хостинг Minecraft от Elysium даёт быстрое развёртывание Paper или Purpur, бэкапы и запас производительности, чтобы проверять изменения, не превращая каждое обновление в кризис TPS.

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

Сервер с плагинами за пару минут

Elysium разворачивает Paper или Purpur на Ryzen и EPYC с NVMe Gen4, защитой от DDoS и автоматическими бэкапами, а файлы, логи и консоль доступны в панели Pterodactyl. Выберите тариф на странице заказа или закажите перенос сервера вместе с плагинами, конфигами и базами данных.