Для владельцев, которые хотят, чтобы сервер окупался, но без проблем с правилами Mojang и без оттока игроков. Это не юридическая консультация: правила меняются, первоисточник перечитывайте сами.
Что говорят правила Mojang
Коммерческое использование Minecraft описано в Minecraft Usage Guidelines, там есть отдельная часть про серверы. Если пересказать суть своими словами:
брать деньги за доступ к серверу можно;
продавать косметику можно: внешний вид, эффекты, префиксы, всё, что не влияет на геймплей;
продавать то, что даёт игровое преимущество перед другими игроками, нельзя. Это и есть тот самый pay-to-win;
бонусы, которые действуют сразу на всех игроков сервера, правила допускают;
нельзя выдавать сервер за официальный проект Mojang или Microsoft.
Главное, что стоит запомнить: по правилам Mojang продавать преимущество в игре запрещено, безопаснее продавать косметику. Mojang может принимать меры против серверов-нарушителей, и для проекта это может закончиться плохо.
Что можно продавать спокойно
префиксы, цвет ника и цвет сообщений в чате;
частицы, следы за игроком, эффекты при входе;
шляпы, питомцы-компаньоны и прочий внешний вид без боевых свойств;
эмоции, анимации, звуки, косметические титулы;
общий для всего сервера буст, от которого выигрывают все, кто онлайн.
Косметика хорошо продаётся, когда её видно. Префикс в чате и в TAB, частицы на спавне, питомец рядом с игроком работают как реклама: другие видят и спрашивают, где взять.
Серая зона
Есть вещи, которые вроде бы «просто удобство», но в выживании превращаются в преимущество:
больше точек дома;
портативный верстак и эндер-сундук по команде;
больший размер привата;
телепорт без задержки;
приоритет в очереди на заполненном сервере.
По каждой такой позиции задайте себе вопрос: получает ли купивший преимущество перед тем, кто не платил? Если да, не продавайте, а сделайте так, чтобы это можно было заработать в игре. Если сомневаетесь, тоже лучше не продавать.
Чего не продавать точно
вещи, ресурсы, броню, оружие, зачарования;
игровую валюту, если на неё покупаются ресурсы и снаряжение;
наборы с ресурсами, даже «раз в неделю»;
/fly в выживании, /heal, /feed, /god и всё подобное;
усиленный урон или здоровье, личные бусты опыта и добычи;
кейсы со случайными игровыми предметами за реальные деньги. Тут и преимущество, и элемент азартной игры, риск двойной.
Как принимать платежи
Схема у большинства серверов одна: донат-магазин на сайте или в игре, платёжный агрегатор и автоматическая выдача покупки через плагин или RCON. Ручная выдача по скриншоту перевода не масштабируется и рождает споры.
Что проверить до запуска:
Статус. Агрегаторы работают с самозанятыми, ИП или юрлицами, условия у каждого свои. Читайте требования конкретного сервиса до подключения, а не после первой выплаты.
Оферта. Публичный документ: что продаётся, на какой срок, что будет при вайпе, как работает возврат. Он защищает и вас, и игрока.
Комиссии и выплаты. Смотрите в тарифах самого агрегатора. Цифры меняются, ориентироваться на чужие пересказы не стоит.
Никаких переводов «в личку». Переводы на карту без чеков и без автовыдачи - это и юридические риски, и вечные споры «я заплатил, а мне не выдали».
Как не отпугнуть игроков
Прозрачность. Одна понятная таблица, что даёт каждая привилегия. На сайте и в игре, например в меню по команде /donate.
Ничего не менять задним числом. Урезали купленное без компенсации - потеряли доверие всех донатеров разом.
Честные сроки. «Навсегда» должно значить навсегда. Если привилегия действует до вайпа, так и пишите.
Без давления. Объявление о скидке раз в полчаса нормально, каждые две минуты раздражает всех.
Одинаковые правила для всех. Донатер, нарушивший правила, получает то же наказание, что и остальные.
Полноценная игра бесплатно. Если без доната играть неинтересно, бесплатные игроки уйдут, а донатерам станет не перед кем красоваться.
Сами донат-группы удобно собрать в LuckPerms с наследованием и временной выдачей: настройка LuckPerms.
Для тех, кто немного знает Java и хочет написать свой первый плагин под Paper. Соберём проект на Gradle, сделаем сообщение при входе и команду /hello, запустим всё на тестовом сервере.
Что понадобится
JDK 21: Paper под 1.21.x работает на Java 21.
IntelliJ IDEA, Community хватает. Есть плагин Minecraft Development, который создаёт каркас проекта, но здесь всё руками, чтобы было видно, что где.
Gradle отдельно ставить не нужно, IDEA создаст проект с Gradle Wrapper.
Создайте проект Gradle с Kotlin DSL и языком Java. Структура будет такой:
paper-api подключается как compileOnly: API уже есть на сервере, класть его в ваш jar не нужно. Версию API и minecraftVersion ставьте под версию своего сервера. run-paper - Gradle-плагин, который скачивает Paper и запускает тестовый сервер с вашим плагином, свежую версию run-paper смотрите в Gradle Plugin Portal.
main - полный путь к главному классу. api-version говорит серверу, под какую версию API написан плагин. Без него Paper считает плагин старым и включает режим совместимости.
Главный класс
Код
package ru.example.hellocloud;
import org.bukkit.plugin.java.JavaPlugin;
public final class HelloCloud extends JavaPlugin {
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(new JoinListener(), this);
getCommand("hello").setExecutor(new HelloCommand());
getLogger().info("HelloCloud включён");
}
}
onEnable вызывается при запуске плагина, здесь регистрируются слушатель событий и обработчик команды. Имя в getCommand должно совпадать с командой из plugin.yml, иначе получите NullPointerException.
Слушатель входа
Код
package ru.example.hellocloud;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
public final class JoinListener implements Listener {
@EventHandler
public void onJoin(PlayerJoinEvent event) {
Player player = event.getPlayer();
event.joinMessage(Component.text("+ " + player.getName(), NamedTextColor.GREEN));
if (!player.hasPlayedBefore()) {
player.sendMessage(Component.text("Добро пожаловать! Напиши /hello", NamedTextColor.GOLD));
}
}
}
В Paper текст - это компоненты Adventure, а не строки с цветовыми кодами. joinMessage заменяет стандартное сообщение о входе, hasPlayedBefore отличает новичка.
Команда
Код
package ru.example.hellocloud;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public final class HelloCommand implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (!(sender instanceof Player player)) {
sender.sendMessage(Component.text("Команда только для игроков"));
return true;
}
player.sendMessage(Component.text("Привет, " + player.getName() + "!", NamedTextColor.AQUA));
return true;
}
}
return true значит «команда обработана». Если вернуть false, игрок увидит строку usage из plugin.yml.
Сборка и запуск
Код
./gradlew build
./gradlew runServer
build кладёт готовый jar в build/libs, его можно копировать в plugins любого сервера. runServer запускает Paper в папке run уже с вашим плагином. Если при первом запуске сервер остановится и попросит принять EULA, поставьте eula=true в run/eula.txt и запустите снова. На Windows вместо ./gradlew пишется gradlew.bat.
Что дальше
Не тестируйте через /reload, перезапускайте сервер: reload оставляет в памяти старые классы и слушатели.
Настройки в config.yml: saveDefaultConfig() в onEnable и getConfig() для чтения.
В новых версиях Paper есть регистрация команд через Brigadier с подсказками аргументов, к ней стоит перейти, когда освоитесь.
Прежде чем писать плагин под задачу, проверьте, не решена ли она готовым: каталог плагинов.
open_command - команда открытия, одна строкой или несколько списком;
size - размер, кратен 9, максимум 54;
slot - номер ячейки, счёт с нуля слева направо и сверху вниз: верхний ряд 0-8, второй 9-17 и так далее;
slots - сразу несколько ячеек, можно диапазоном;
material - предмет как в игре, заглавными буквами: DIAMOND_SWORD, OAK_LOG. Голова игрока задаётся как head-ник;
left_click_requirement - условие клика. Если денег меньше 100, выполнятся deny_commands, а покупка не пройдёт.
Действия по клику
Каждая строка в списке команд начинается с действия в квадратных скобках:
Код
[player] spawn команда от имени игрока, без слеша
[console] give %player_name% bread 16 команда от консоли
[close] закрыть меню
[message] &aГотово сообщение игроку
[openguimenu] shop_menu открыть другое меню из gui_menus
[takemoney] 100 списать деньги через Vault
Кроме left_click_commands есть right_click_commands, shift_left_click_commands и click_commands, последний срабатывает на любой клик.
Кнопка только для своих
view_requirement прячет предмет, если условие не выполнено. Например, кнопка, которую видят только игроки группы vip из LuckPerms:
group.vip - право, которое LuckPerms автоматически даёт всем участникам группы vip. Если добавляете кнопку в меню выше, уберите слот 22 из заполнителя: вместо 16-26 укажите 16-21 и 23-26, иначе два предмета займут одну ячейку.
PlaceholderAPI
Плейсхолдеры вроде %player_name% подставляются, только когда установлены нужные расширения:
Код
/papi ecloud download Player
/papi ecloud download Server
/papi ecloud download Vault
/papi reload
Проверить конкретный плейсхолдер: /papi parse me %player_name%. Если команда вернула сам текст с процентами, расширения нет. Подробнее: PlaceholderAPI в справочнике.
Применить и проверить
После правок выполните /dm reload. Открыть меню себе: /menu, другому игроку: /dm open main_menu Nick. Если меню не открывается, смотрите консоль сразу после reload: DeluxeMenus пишет, в каком файле ошибка.
Частые причины:
табы вместо пробелов в YAML;
строки, начинающиеся с &, без кавычек. Для YAML это спецсимвол, файл не прочитается;
старые названия материалов из 1.12, вроде STAINED_GLASS_PANE:7;
файл меню не зарегистрирован в gui_menus в config.yml;
Если на сервер заходят, но почти никто не возвращается, дело почти всегда в первых минутах. Гайд для владельцев: что видит новичок и что поправить в первую очередь.
Как понять, что проблема на старте
Посмотрите, сколько времени новые игроки проводят на сервере в первую сессию. Плагин Plan показывает длину сессий и удержание, но хватит и логов: время входа и выхода видно в logs/latest.log. Если заметная часть новичков выходит через три-пять минут, реклама и мониторинги тут ни при чём. Человек зашёл, не понял, что делать, и ушёл.
Спавн
Компактность. От точки появления до всего важного должно быть несколько секунд ходьбы. Огромный красивый спавн, по которому новичок блуждает две минуты, теряет людей.
Направление взгляда. Игрок должен появляться лицом к тому, что нужно сделать первым: порталу, NPC, табличке «Начать игру». Команда /setspawn в EssentialsX запоминает и направление, в котором вы смотрите.
Лёгкость. Десятки голограмм, стоек для брони, рамок и мобов на спавне роняют FPS на слабых ПК. Первое впечатление «у меня тут лагает» потом почти не исправить.
Защита. PvP, мобы и поломка блоков на спавне выключаются регионом WorldGuard, например /rg flag spawn pvp deny. Про флаги подробнее: WorldGuard в справочнике.
Понятная цель на первые минуты
Через десять секунд после входа игрок должен знать, что делать дальше. Не «изучай сервер», а короткая цепочка:
забери стартовый набор;
телепортируйся в дикий мир;
поставь первую точку дома командой /sethome.
Для дикого мира подойдёт случайный телепорт: отдельный плагин или команда /tpr в свежих версиях EssentialsX. Дальше хорошо работают первые задания с маленькой наградой: срубить дерево, построить укрытие, заработать первые монеты. Человек получает ощущение прогресса уже в первые минуты.
Стартовый набор
Набор решает две задачи: не дать умереть в первую ночь и показать, что о новичке позаботились. Каменные инструменты, еда, факелы и кровать, этого достаточно. Не выдавайте алмазы и броню: это ломает экономику и обесценивает прогресс. В EssentialsX набор можно выдавать автоматически при первом входе, в config.yml для этого есть блок newbies, где указывается kit.
Туториал без стены текста
Пятнадцать строк в чате при входе никто не читает: чат уезжает за секунды, особенно когда сервер живой. Что работает лучше:
заголовок на экране в одну строку: где ты и что делать;
подсказка в actionbar над хотбаром;
боссбар с текущей задачей;
NPC с двумя-тремя фразами вместо длинной лекции;
таблички или голограммы на спавне, по одной мысли на каждой.
Правила держите отдельно, по команде /rules или в меню. Ссылка на них в первом сообщении нужна, полный текст нет.
Меню вместо команд
Новичок не знает ваших /warp, /kit и /ah. Одна команда /menu или предмет в хотбаре, который открывает меню, решает это: варпы, наборы, магазин, правила, помощь в одном окне с понятными иконками. Собрать такое меню можно на DeluxeMenus: настройка DeluxeMenus. Подписывайте кнопки словами, а не только иконками: «Магазин», «Телепорт в дикий мир», «Мой дом».
Чат и люди
Объявление о новом игроке. EssentialsX умеет сообщать в чат о первом входе. Многие здороваются в ответ, и новичок сразу видит, что сервер живой.
Кто-то из команды онлайн в часы пик. Вопрос в чате, оставшийся без ответа, - повод выйти.
Модерация. Если новичка оскорбили или убили на выходе со спавна в первую минуту, он не вернётся. Безопасная зона вокруг спавна и защита новичков на первое время заметно снижают отток.
Лаги, пинг и загрузка
Просадку TPS игрок чувствует сразу: блоки возвращаются, мобы дёргаются. Проверяйте командой /spark tps.
Пинг зависит от того, где стоит сервер. Если аудитория из России, хостинг на другом конце мира даст задержку, которую не исправить никакими настройками.
Тяжёлый ресурспак - это долгая загрузка на слабом интернете, а если пак обязательный, отказ от него кикает игрока. Если пак нужен, держите его лёгким. В server.properties за это отвечают resource-pack, require-resource-pack и resource-pack-prompt, в последнем можно коротко объяснить, зачем пак нужен.
На серверах с авторизацией подсказка, как зарегистрироваться, должна быть видна сразу и крупно, а не теряться в общем потоке чата.
Тест глазами новичка
Зайдите аккаунтом, который ни разу не был на сервере. Для чистоты можно поднять копию сервера и удалить там свои данные игрока в world/playerdata и в userdata EssentialsX, чтобы снова получить «первый вход».
Не пользуйтесь командами, которые знаете как админ. Только то, что подсказывает сам сервер.
Засеките, через сколько секунд стало понятно, что делать, и сколько действий прошло до первого полезного.
Позовите человека, который ни разу не видел сервер, и молча смотрите, где он застрянет. Не подсказывайте.
Исправьте это место и повторите тест с другим человеком.
После двух-трёх таких прогонов обычно становится ясно, где сервер теряет людей.
Для владельцев, которые не хотят однажды утром найти разрушенный спавн, чужого админа или сервер, лежащий под ботами. Здесь база, которую стоит закрыть до открытия.
Прокси и закрытые бекенды
Частая дыра в сетях серверов: бекенд (лобби, выживание) доступен напрямую по своему порту. На бекенде стоит online-mode=false, потому что проверку игроков делает прокси. Если до бекенда можно достучаться в обход прокси и он не защищён, любой зайдёт под ником администратора.
Правильная схема на Velocity:
В velocity.toml включить modern forwarding.
На каждом Paper-бекенде включить поддержку Velocity и указать тот же секрет.
# config/paper-global.yml на каждом бекенде
proxies:
velocity:
enabled: true
online-mode: true
secret: 'строка из forwarding.secret'
В server.properties бекендов ставится online-mode=false, а параметр bungeecord в spigot.yml должен быть false: он нужен только для старого BungeeCord.
С modern forwarding бекенд сам не пустит подключение без правильной подписи, но закрытые порты - второй слой, и он нужен. Если прокси и бекенды на одной машине, пусть бекенды слушают только локальный адрес (server-ip=127.0.0.1 в server.properties). Если на разных, фаервол должен пропускать к ним только IP прокси. Проверьте с другого компьютера, что напрямую к бекенду подключиться нельзя.
online-mode и авторизация
online-mode=true на прокси или на одиночном сервере значит, что каждого игрока проверяют серверы Mojang, и зайти под чужим ником нельзя. Это самый надёжный вариант.
В offline-mode ник никак не проверяется, и под ником администратора может зайти кто угодно. Offline-сервер без плагина авторизации - открытая дверь. Нужен плагин регистрации и входа по паролю, например AuthMe Reloaded или nLogin, и стоять он должен до открытия, а не после первого взлома. Настройка: AuthMe в справочнике. Аккаунты администрации в таком режиме защищайте особо: длинные уникальные пароли, которые нигде больше не используются.
Боты и флуд
Бот-атака на Minecraft-сервер - это сотни фейковых подключений: занимают слоты, спамят в чат, нагружают сервер. Фильтровать их нужно как можно раньше, на уровне прокси. Для Velocity есть антибот-плагины, например Sonar или LimboFilter: они проверяют подключение до того, как игрок попадёт на бекенд.
Граница у таких плагинов простая. Они отсекают ботов, которые подключаются по протоколу Minecraft. От DDoS-атаки, которая просто забивает канал трафиком, плагин не спасёт, тут нужна защита на стороне хостинга. Спрашивайте о ней при выборе.
OP по минимуму, права через LuckPerms
OP даёт всё и сразу, включая команды плагинов, о которых вы давно забыли. Чем меньше людей в ops.json, тем лучше. В идеале там только владелец.
Модераторам и хелперам права выдаются группами в LuckPerms: ровно то, что нужно для работы, например кик, мут, бан, проверка блоков через CoreProtect. Если модератора взломают, ущерб ограничится его правами. Как собрать группы: LuckPerms в справочнике.
Ещё пара мест, которые часто забывают:
RCON (enable-rcon в server.properties) выключен, если он не нужен. Если нужен, то длинный пароль в rcon.password и порт, закрытый фаерволом для всех, кроме ваших адресов.
Панель хостинга, SSH и почта владельца - с надёжными паролями и двухфакторной защитой, где она есть. Взлом панели обходит всю защиту внутри игры.
Плагины только из проверенных источников
«Слитые» платные плагины - главный источник бекдоров. Внутрь встраивают код, который по секретной команде в чате выдаёт OP, качает чужие файлы или превращает сервер в часть ботнета. Узнаёте вы об этом, когда уже поздно.
Качайте с официальных площадок: Modrinth, Hangar, SpigotMC, GitHub-релизы автора.
Платный плагин покупайте у автора. Это защита, а не только честность.
Не ставьте jar «от знакомого с форума» без проверки.
Если на сервере появился OP, которого никто не выдавал, считайте сервер скомпрометированным и проверяйте все плагины, а не только последний установленный.
Бэкапы
Бэкап понадобится не «если», а «когда». Сохраняйте миры, папку plugins с конфигами и данными, базы данных. Храните копии не только на той же машине: если умрёт диск или сервер взломают, локальный бэкап пропадёт вместе с ним. И хотя бы раз проверьте восстановление. Бэкап, который не разворачивается, бэкапом не считается.
CoreProtect: откат гриферов
CoreProtect записывает, кто что сломал, поставил и забрал из сундуков. Если грифер прошёлся по спавну, весь мир откатывать не нужно:
/co inspect включает режим проверки: кликаете по блоку и видите его историю. rollback откатывает действия игрока за указанное время, restore возвращает откат, если ошиблись с параметрами.
Гайд для тех, кто собирает сервер впервые или думает о переезде на другое ядро. Коротко про каждое: кому подходит, что с плагинами и где подвох.
Сначала про Java
Minecraft начиная с 1.20.5 требует Java 21, все актуальные ядра под 1.21.x тоже. Если сервер не стартует с ошибкой UnsupportedClassVersionError, почти наверняка он запущен на старой Java. Проверить версию: java -version.
Spigot
Классика, на которой выросла экосистема Bukkit-плагинов. Готовый jar Spigot не распространяется, его собирают у себя утилитой BuildTools. Сегодня ставить Spigot основным ядром смысла почти нет: Paper запускает практически все Spigot-плагины и работает быстрее. Spigot нужен в одном случае: конкретный плагин заявлен только под него и на Paper ведёт себя некорректно. Такое бывает редко.
Paper: выбор по умолчанию
Paper вырос как форк Spigot, а в конце 2024 года команда PaperMC объявила о полном отделении от Spigot (хардфорк). Bukkit- и Spigot-плагины на нём по-прежнему работают, но со временем расхождений будет больше, и новые плагины всё чаще пишут сразу под Paper API.
Что даёт Paper:
заметно лучшую производительность и асинхронную загрузку чанков;
исправления багов и дюпов ванильной игры;
расширенное API для разработчиков: Adventure для текста, дополнительные события;
встроенный профайлер spark в свежих версиях;
гибкие конфиги: config/paper-global.yml, config/paper-world-defaults.yml и paper-world.yml в папке мира для настроек отдельного мира.
Подвох для технических игроков: Paper по умолчанию закрывает часть ванильных механик, на которых строят дюп-машины и ломатели бедрока. Часть из них возвращается в paper-global.yml в блоке unsupported-settings, но включайте это осознанно.
Качайте Paper только с papermc.io и берите стабильные сборки, не экспериментальные.
Purpur: Paper с сотнями настроек
Purpur - форк Paper. Всё, что умеет Paper, плюс файл purpur.yml с огромным количеством игровых опций: ездовые мобы, поведение жителей, урон, тонкие правки механик. Многое из того, ради чего раньше ставили отдельный плагин, здесь включается строчкой в конфиге.
Плагины под Paper работают на Purpur.
Обновления выходят чуть позже Paper, потому что Purpur основан на нём.
Хорошо подходит для выживания и полуванильных серверов, где хочется подкрутить механику без зоопарка плагинов.
Folia: только для больших серверов
Folia - форк Paper с региональной многопоточностью. Мир делится на регионы, и они обрабатываются параллельно на разных потоках процессора. Звучит как «Paper, только быстрее», но это не так.
Выигрыш есть, только когда много игроков разбросано по карте. Двадцать человек на одном спавне - это один регион и один поток, разницы с Paper не будет.
Большинство обычных плагинов на Folia не работают. Плагин должен явно её поддерживать (folia-supported: true в plugin.yml) и использовать планировщики регионов вместо обычного Bukkit-планировщика. Часть популярных плагинов поддержку уже добавила, но далеко не все, проверяйте каждый.
Нужно многоядерное железо, иначе параллелить нечего.
Если вы не уверены, нужна ли вам Folia, она вам не нужна.
Плагины и моды: что где запускается
Bukkit/Spigot-плагин: Paper и Purpur, почти всегда без проблем.
Плагин на Paper API: Paper и Purpur, на Spigot нет.
Folia: только плагины с заявленной поддержкой Folia.
Моды Fabric и NeoForge - это не плагины, им нужно своё серверное ядро. Гибриды «моды + плагины» существуют, но это постоянный источник странных багов, для первого сервера не советуем.
Прокси: Velocity вместо BungeeCord
Если серверов несколько (лобби, выживание, мини-игры) и нужен один IP, ставится прокси. Сегодня стандарт - Velocity от той же команды PaperMC:
modern forwarding: прокси передаёт бекенду данные игрока, подписанные секретным ключом, подделать их нельзя;
хорошая производительность и активная разработка;
Waterfall, форк BungeeCord от PaperMC, больше не развивается, сама команда рекомендует переходить на Velocity.
Плагины для BungeeCord на Velocity не работают, нужны версии под Velocity. У крупных плагинов вроде LuckPerms, TAB и LiteBans они есть. Как связать прокси с бекендами и закрыть бекенды от прямого подключения, расписано в гайде про защиту сервера в этом же разделе.
Как выбрать за минуту
Обычный сервер с плагинами, любой режим → Paper.
Хочется подкрутить ванильные механики без лишних плагинов → Purpur.
Сотни игроков на одной карте, многоядерный сервер, готовность проверять каждый плагин → Folia.
Несколько серверов под одним IP → Velocity и Paper или Purpur на бекендах.
Spigot → только если конкретный плагин требует именно его.
Если не хочется собирать всё с нуля, готовые сборки на Paper и Purpur лежат в каталоге сборок, а настройка популярных плагинов разобрана в справочнике.
Для игроков со слабым ПК или ноутбуком, у которых Minecraft выдаёт мало кадров. Заодно про то, как понять, что тормозит: ваш компьютер или сервер, на котором вы играете.
Сначала: это FPS или сервер?
Нажмите F3. В левом верхнем углу будет число кадров в секунду, fps.
Низкий FPS: картинка дёргается, камера поворачивается рывками, даже если вы стоите на месте. Виноват компьютер.
Лаги сервера или сети: камера движется плавно, но сломанный блок появляется снова, мобы телепортируются, при беге откидывает назад, сундук открывается с задержкой. Это пинг или TPS сервера, настройки графики тут не помогут.
Пинг видно в списке игроков на Tab, полоски рядом с ником. Простой тест: зайдите в одиночный мир. Если там тоже тормозит, дело в ПК. Если в одиночке всё плавно, а на сервере нет, проблема в сервере или соединении. TPS можно спросить у администрации или проверить командой /tps, если она вам доступна.
Sodium: самый большой прирост
Sodium - мод, который переписывает отрисовку Minecraft. На слабом железе это обычно самое заметное улучшение из всего, что можно сделать. Ставится на Fabric, свежие версии есть и под NeoForge.
Скачайте установщик с fabricmc.net и установите Fabric для своей версии игры.
Скачайте Sodium с Modrinth под ту же версию Minecraft.
Положите файл в папку mods внутри .minecraft и запустите игру через профиль Fabric.
Хорошая компания для Sodium: Lithium ускоряет игровую логику и полезен в одиночной игре, FerriteCore уменьшает расход памяти, EntityCulling не рисует сущности, которых не видно. Если мод просит Fabric API, скачайте его там же. Проще всего взять готовую сборку оптимизации, например Fabulously Optimized, через лаунчер Modrinth или Prism Launcher.
С OptiFine Sodium не совместим, выбирайте что-то одно. И качайте моды только с Modrinth или CurseForge: «оптимизаторы» со случайных сайтов - частый способ подхватить вирус.
Настройки графики
Дальность прорисовки: 6-8 чанков. Самая тяжёлая настройка, начинайте с неё.
Дальность симуляции: 5-6 в одиночной игре.
Графика: быстрая.
Плавное освещение: выключить.
Частицы: минимум.
Облака: выключить.
Тени сущностей: выключить.
Смешивание биомов: выключить или минимум.
Максимальная частота кадров: чуть выше частоты монитора. Без ограничения видеокарта работает на износ даже в меню, а ноутбук от нагрева сбрасывает частоты.
С Sodium в настройках появятся дополнительные пункты, но начинать стоит с этих.
Память: не больше, чем нужно
Ванильной игре и лёгкой сборке модов обычно хватает 2-4 ГБ. Выделить «побольше» - частая ошибка: если на ПК 8 ГБ, а игре отдать 6, системе и браузеру почти ничего не останется, начнётся подкачка с диска и фризы. В официальном лаунчере память меняется в настройках установки, поле «Аргументы JVM», параметр -Xmx, например -Xmx3G. В других лаунчерах это обычно ползунок.
Драйверы и видеокарта на ноутбуке
Обновите драйвер видеокарты с сайта производителя: NVIDIA, AMD или Intel. Драйвер, который поставила сама Windows, часто старый, а Minecraft к нему чувствителен.
На ноутбуке с двумя видеокартами игра нередко запускается на встроенной. Проверьте в F3: справа вверху написано, какая видеокарта используется.
Чтобы включить дискретную, откройте Параметры Windows → Система → Дисплей → Графика, добавьте javaw.exe и выберите высокую производительность. Нужен именно тот javaw.exe, которым запускается игра: во время игры откройте диспетчер задач, нажмите правой кнопкой по процессу Java и выберите «Открыть расположение файла».
Ноутбук держите на зарядке, режим питания ставьте на максимальную производительность. На батарее многие ноутбуки режут частоты.
Фон и прочее
Закройте браузер с видео и лишние программы, Minecraft любит и процессор, и память.
Оверлеи Discord, программ записи и видеодрайвера иногда отнимают кадры, попробуйте без них.
Ресурспаки высокого разрешения и шейдеры на слабом ПК не тянутся. Шейдеры ставятся через Iris, но это уже для тех, у кого есть запас.
Если FPS нормальный, а лагает сервер
На стороне игрока тут можно немногое: выбрать сервер ближе к себе по пингу, проверить, не качает ли кто-то в вашей сети, перейти с Wi-Fi на кабель. Если лагает только один сервер, а остальные нормально, проблема у него. Серверы удобно сравнивать в мониторинге.
Соберём структуру прав для типичного сервера: игроки, донат-ранги, команда модерации. Команды можно копировать по очереди, права в примерах взяты из EssentialsX, LiteBans и CoreProtect.
Как устроен LuckPerms
Группа - набор прав, например vip или moder.
Наследование - группа получает все права родителя, поэтому права не нужно дублировать.
Вес - приоритет группы, когда у игрока их несколько.
Каждый игрок автоматически состоит в группе default. От неё и строим.
Базовые права игроков
Код
/lp group default permission set essentials.spawn true
/lp group default permission set essentials.home true
/lp group default permission set essentials.sethome true
/lp group default permission set essentials.tpa true
/lp group default permission set essentials.tpaccept true
/lp group default permission set essentials.msg true
Названия прав зависят от плагина, точный список смотрите в его документации.
Донат-ранги с наследованием
Код
/lp creategroup vip
/lp group vip parent add default
/lp group vip setweight 10
/lp group vip permission set essentials.hat true
/lp group vip permission set essentials.chat.color true
/lp creategroup premium
/lp group premium parent add vip
/lp group premium setweight 20
/lp group premium permission set essentials.nick true
/lp group premium permission set essentials.nick.color true
premium наследует vip, vip наследует default. У premium есть всё, что у vip и обычных игроков, плюс своё.
Что класть в донат-группы: по правилам Mojang продавать преимущество в игре нельзя, поэтому безопаснее косметика и удобства без влияния на геймплей. Подробнее в гайде про донат в разделе о продвижении.
Префиксы
Код
/lp group vip meta setprefix 10 "&a[VIP] &f"
/lp group premium meta setprefix 20 "&6[Premium] &f"
Число - приоритет префикса: если игрок в нескольких группах, показывается префикс с наибольшим приоритетом. Сам LuckPerms префикс в чат не выводит. Это делает плагин чата, например EssentialsX Chat через Vault, или любой плагин с поддержкой PlaceholderAPI через плейсхолдер %luckperms_prefix%.
Выдача рангов
Код
/lp user Steve parent set vip
/lp user Steve parent add premium
/lp user Steve parent addtemp vip 30d
/lp user Steve parent remove vip
parent set заменяет все группы игрока одной, parent add добавляет к имеющимся. addtemp выдаёт группу на время: 30d, 12h, 1d12h. Когда срок выйдет, LuckPerms снимет группу сам, это удобно для привилегий на месяц.
Команда модерации
Код
/lp creategroup helper
/lp group helper parent add default
/lp group helper setweight 50
/lp group helper permission set litebans.mute true
/lp group helper permission set coreprotect.inspect true
/lp creategroup moder
/lp group moder parent add helper
/lp group moder setweight 60
/lp group moder permission set litebans.tempban true
/lp group moder permission set coreprotect.lookup true
Модерация наследует default, а не донат-группы: модератор не должен бесплатно получать донатную косметику. Если модератор ещё и донатер, у него будут обе группы, а префикс покажется тот, у которого приоритет выше.
Контексты: право на одном сервере или в одном мире
Код
/lp group vip permission set essentials.fly true server=lobby
/lp group default permission set essentials.home false world=arena
Имя сервера для контекста server задаётся в config.yml LuckPerms, параметр server. Полёт в лобби - нормальная косметика, а полёт в выживании уже преимущество, поэтому такие права и ограничивают контекстом.
Веб-редактор и проверка
Набирать всё в чате не обязательно. Команда /lp editor даёт ссылку на веб-редактор, где видны все группы и права и их можно править мышкой. После сохранения редактор покажет команду /lp applyedits с кодом, её нужно выполнить на сервере.
Если право «не работает»:
Код
/lp user Steve permission check essentials.hat
/lp verbose on
/lp verbose off
permission check покажет, есть ли право у игрока и откуда оно пришло. verbose выводит проверки прав в реальном времени: включили, выполнили команду, увидели, какое именно право проверяет плагин.
Частые ошибки
Право * кому попало. Звёздочка даёт абсолютно всё, включая управление самим LuckPerms.
Одинаковый вес у разных групп. Порядок становится непредсказуемым.
Сеть серверов с локальным хранилищем. Для нескольких серверов нужна общая база (storage-method в config.yml, например MySQL или MariaDB) и синхронизация через messaging-service, иначе изменения не дойдут до остальных серверов.
Для тех, у кого сервер «лагает», а что именно тормозит, непонятно. Порядок простой: сначала измерить, потом крутить. Без замера можно неделю менять конфиги и так и не попасть в причину.
TPS и MSPT
Сервер обсчитывает мир 20 раз в секунду, это 20 TPS. На один тик отведено 50 миллисекунд. Сколько тик занимает на самом деле, показывает MSPT. Пока MSPT ниже 50, TPS держится на 20 и всё в порядке. Когда тик перестаёт укладываться в 50 мс, TPS падает, и игроки видят лаги: блоки возвращаются, мобы телепортируются, двери открываются с задержкой.
Лаги сервера и низкий FPS у игрока - разные вещи. Если тормозит картинка у одного человека, а у остальных всё плавно, проблема на его стороне.
Шаг 1: spark
spark - профайлер, который показывает, на что уходит время тика. В свежих версиях Paper он встроен, на других ядрах ставится как плагин.
Код
/spark tps
/spark health
/spark profiler start
/spark profiler stop
/spark tps показывает TPS и MSPT, /spark health - нагрузку на процессор и память. Профайлер запускайте, когда лагает, и держите несколько минут. После stop spark даст ссылку на отчёт в браузере. Разворачивайте Server thread и смотрите, что съедает больше всего: конкретный плагин, тики сущностей, загрузка чанков, хопперы.
Если лаги не постоянные, а пиками, запустите профайлер с флагом --only-ticks-over 100: в отчёт попадут только тики длиннее 100 мс.
Шаг 2: дальность прорисовки и симуляции
В server.properties есть два ключа, которые сильнее всего влияют на нагрузку:
view-distance - сколько чанков вокруг игрока отправляется ему для отображения;
simulation-distance - в каком радиусе мир живёт: растут растения, двигаются мобы, работают механизмы.
По умолчанию оба равны 10. Для большинства выживаний хватает view-distance 6-8 и simulation-distance 4-6. Число обрабатываемых чанков растёт с квадратом радиуса, так что разница между 10 и 6 большая. Минус маленькой симуляции: фермы работают, только когда игрок рядом.
Шаг 3: предгенерация мира
Генерация новых чанков - одна из самых тяжёлых операций. Когда игроки бегут по нетронутой карте или летают на элитрах, сервер генерирует мир на лету, и TPS проседает. Решение: сгенерировать мир заранее плагином Chunky и ограничить его границей.
Код
/chunky world world
/chunky center 0 0
/chunky radius 5000
/chunky start
/worldborder center 0 0
/worldborder set 10000
У /worldborder set указывается диаметр, поэтому радиусу 5000 соответствует 10000. Генерация идёт долго, запускайте её до открытия или ночью на пустом сервере. Ад и Энд тоже стоит прогнать. Процесс можно приостановить командой /chunky pause и продолжить /chunky continue.
Шаг 4: сущности и фермы
В отчёте spark часто на первом месте сущности: стада животных, фермы жителей, тысячи предметов на земле, хопперы.
Лимиты спавна мобов задаются в bukkit.yml, блок spawn-limits.
В spigot.yml есть entity-activation-range: мобы дальше этого радиуса обрабатываются реже.
В paper-world-defaults.yml много настроек для сущностей, предметов и хопперов, например лимит определённых сущностей, которые сохраняются в чанке.
Жители - отдельная боль. В Purpur есть опция, которая упрощает поведение жителей, запертых в торговых ячейках.
Ограничение животных на чанк ставьте плагином и пишите о нём в правилах заранее, а не после того, как у игрока исчезло стадо.
Плагины, которые раз в несколько минут чистят все предметы с земли, - костыль. Лучше найти, что именно плодит сущности.
Шаг 5: запуск и память
Больше памяти не значит быстрее. Ставьте -Xms и -Xmx одинаковыми и оставляйте запас системе: ОС, база данных и прокси тоже хотят память. В панелях хостинга лимит контейнера должен быть выше -Xmx: Java тратит память и сверх хипа, и при лимите впритык процесс могут убить без понятной ошибки в логе.
Для запуска используйте флаги Aikar, это проверенный набор настроек сборщика мусора G1 под Paper.Флаги Aikar, пример для 10 ГБ
Если выделяете больше 12 ГБ, меняются пять значений: G1NewSizePercent=40, G1MaxNewSizePercent=50, G1HeapRegionSize=16M, G1ReservePercent=15, InitiatingHeapOccupancyPercent=20.
Шаг 6: железо
Основной тик Paper считается в одном потоке, поэтому важна скорость одного ядра, а не количество ядер. Дешёвый VPS с восемью слабыми ядрами нередко проигрывает машине с четырьмя быстрыми. При выборе хостинга смотрите на модель и частоту процессора, NVMe-диски и расположение дата-центра поближе к игрокам. Если хостинг не называет модель процессора, это повод насторожиться.
Чего не делать
Не используйте /reload, перезапускайте сервер целиком. После reload плагины текут памятью и ведут себя непредсказуемо.
Не ставьте «оптимизирующие» плагины вслепую, не посмотрев в spark, что тормозит.
Не меняйте десять настроек сразу. Одна правка, замер, следующая правка.
Гайд для тех, кто поднял сервер, а онлайн стоит на нуле. Здесь то, что реально приводит и удерживает игроков, и то, на что жалко тратить время и деньги.
Сначала проверьте, есть ли что раскручивать
Самая частая ошибка: реклама запускается раньше, чем сервер готов. Игрок заходит, видит пустой спавн, ошибку в чате или лаги и уходит. Второго шанса не будет, человек запомнит IP как «тот кривой сервер».
Минимум перед любым продвижением:
стабильные 20 TPS, когда онлайн хотя бы несколько человек;
спавн, на котором понятно, куда идти и что делать;
выданы права, работают основные команды, при входе в консоли нет красных ошибок;
есть правила и хотя бы один человек из администрации, который отвечает в чате.
И ещё: сервер должен описываться одной фразой. «Анархия 1.21 без доната на победу», «выживание с экономикой и кланами», «мини-игры для компании друзей». Если вы сами не можете сформулировать, чем проект отличается от сотни похожих, игрок тем более не поймёт.
Мониторинги и голосование
Мониторинги - это каталоги, где игроки ищут сервер под себя. Добавляйтесь в несколько сразу и заполняйте карточку полностью: версия, режим, честное описание, баннер, ссылки на сообщество. В описании пишите конкретику, что есть на сервере и чем он живёт, а не «лучший сервер с дружной администрацией». Добавить сервер в наш мониторинг: cloud-delight.ru/servers/new.
Место в топе мониторинга обычно зависит от голосов. Чтобы игроки голосовали, за голос нужна награда: мониторинг отправляет голос через NuVotifier, а плагин наград выдаёт бонус в игре. Настройка по шагам: инструкция по наградам за голосование.
Пара правил по наградам:
Награда должна быть приятной, но не ломать экономику: немного игровой валюты, ключ от кейса, временный косметический эффект.
Напоминайте о голосовании: сообщение при входе, кнопка в меню, команда /vote со ссылками.
Бонус за серию голосов подряд хорошо приучает голосовать каждый день.
Первые двадцать игроков
Пустой сервер отталкивает сам по себе, никто не хочет играть один. Поэтому первых людей приходится собирать вручную.
Друзья и знакомые. Не «зайдите посмотреть», а договоритесь играть в одно время, например вечером в пятницу. Пять человек онлайн одновременно лучше, чем двадцать по одному в разное время.
Тематические паблики и чаты. Группы ВК и Telegram-чаты по Minecraft. Не кидайте ссылку без спроса: договоритесь с админом, сделайте пост со скриншотами и конкретикой. Часто это платно, но небольшие сообщества договариваются гибко.
Небольшие ютуберы и стримеры. Авторы с маленькой аудиторией охотнее соглашаются, а их зрители активнее. Предложите не только деньги: свой ивент, постройку на спавне, роль в сообществе.
Форумы и каталоги. Тема о сервере в профильном разделе, в том числе на этом форуме.
Хорошо работает объявленный запуск: открытие в конкретный день и час. Игроки приходят одновременно, сервер выглядит живым, и это само по себе удерживает.
Удержание важнее притока
Если из ста пришедших на следующий день вернулись трое, реклама просто сжигает деньги. Следите не за общим онлайном, а за тем, сколько новичков возвращается. Плагин Plan показывает удержание и длину сессий, но начать можно и с логов: если большинство новых игроков выходит в первые минуты, проблема на старте, а не в рекламе.
Главные причины ухода: непонятный спавн, нет цели, лаги, токсичный чат, никого из администрации онлайн. Подробно про это есть отдельный гайд в этом разделе, о первых десяти минутах игрока.
Ивенты и жизнь на сервере
Ивент даёт повод зайти именно сегодня. Конкурс построек, PvP-турнир, поиск сокровищ, босс в определённое время. Маленький ивент каждую субботу в 19:00 работает лучше, чем большой раз в месяц без предупреждения. Анонсируйте заранее в сообществе и в игре, награждайте косметикой, титулами, игровой валютой. И приходите на ивент сами: живой админ в игре ценится больше любого приза.
Сообщество вне игры
Игроку нужно место, где он узнает про вайп, ивент или обновление, даже когда не в игре. Discord в России с 2024 года заблокирован, и часть аудитории туда не дойдёт, поэтому основную площадку разумно держать в Telegram или ВК, а Discord вести как дополнительный.
Что публиковать: скриншоты построек игроков, короткие ролики с ивентов, списки изменений, итоги турниров. Короткие вертикальные видео с яркими моментами (Клипы ВК, Shorts) приводят новых людей лучше, чем текстовые посты.
Что не работает
Накрутка голосов и онлайна. Мониторинги это отслеживают, обнуляют голоса или снимают сервер. А накрученный онлайн раскрывается в первую же минуту: игрок заходит и видит пустоту.
Спам. Ссылки в чужих чатах, в личке, на чужих серверах. Итог: баны и репутация «тех самых спамеров».
Большой рекламный бюджет до готовности сервера. Смотрите первый раздел.
Обещания, которых нет в игре. В описании «уникальные боссы и кланы», а в игре голое выживание. Игрок видит это сразу и больше не верит.
Частые вайпы без причины. Люди не вкладываются в мир, который снесут через две недели.
Делаете сборки, плагины, постройки, модели или конфиги? Выкладывайте их в каталог Cloud Delight.
Бесплатно и без комиссии. Площадка деньги за ваши товары не принимает.
Файлы платных товаров мы не берём и не видим. На странице товара кнопка «Купить» ведёт в ваш Telegram, ВК или магазин студии. Оплату и выдачу проводите сами.
От вас один бесплатный ресурс (плагин, конфиг, мини-сборка, карта) — он лежит у нас, каждый файл проверяется на загрузчики. Всё остальное — платное, ссылками.
Страницы товаров в поиске Яндекса. Новые адреса уходят в Яндекс сразу (IndexNow), не ждут обхода неделями.
Каталог видят владельцы серверов из нашего мониторинга — те, кто покупает сборки и плагины.
Студии, которая написала нам, ставим отметку «Проверенный автор» и разрешаем ссылку на свой магазин. Первые студии — на витрину главной.
Как начать
Регистрация — в один клик через VK ID.
Ресурсы → Выложить ресурс: сначала бесплатный с файлом, по шагам — как выложить ресурс.
Платные — цена и ссылка «Купить», файл не прикрепляется.
Хотите кнопку на свой магазин и отметку студии — напишите нам: ЛС Cloud Delight в ВК.
Рисование скинов на заказ выкладывайте объявлением в разделе «Куплю / продам / закажу» (п. 5.2 правил). Цену, сроки и примеры работ пишите прямо в теме. Сделку по услугам проводите сами: площадка за них деньги не принимает и комиссию не берёт.
Готовые скины и одежду можно выставить на аукцион: это ваша работа (п. 10.1). Лот проходит проверку, потом начинаются торги. Победитель платит через гаранта Cloud Delight, деньги приходят вам после того, как передача подтверждена в чате сделки. Комиссия гаранта 5 %, и только если сделка состоялась.
Главное условие одно: продавать только своё. Будут вопросы, пишите сюда
Сайт использует cookies, Яндекс.Метрику и пиксель VK Рекламы для аналитики. Подробнее в политике конфиденциальности.