RE:NODE

Эксплуатация11 мин чтения

Сервер с модами для друзей без головной боли

Как держать небольшой сервер с модами для друзей: выбрать сборку или список, дать всем одинаковые моды, рассчитать память, установить и обновлять без потери мира.

0 прочтений

Сервер с модами для нескольких друзей работает, когда выполняются три условия: у всех установлены ровно одни и те же моды ровно тех же версий, у сервера хватает памяти на моды, а не на число игроков, и никто ничего не обновляет, пока группа не договорилась и пока не сделан backup. На практике это значит: выбрать одну сборку или один общий список модов, распространять его как профиль лаунчера или файл сборки, а не как список ссылок, давать серверу примерно вдвое больше, чем нужно ванильной игре, и относиться к каждому обновлению как к маленькой миграции. Большая часть проблем, которые люди связывают с серверами на модах, - вылеты при входе, кики из-за «несовпадения модов», миры, которые не загружаются после обновления, - появляется, когда пропускают один из этих пунктов.

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

Как устроены моды в играх, которые обычно выбирают друзья#

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

ИграСистема модовКак друзья получают одинаковые модыПамять сервера с модами
Minecraft JavaСборки на Forge, NeoForge или FabricСборка в лаунчере или общий файл сборки6-10 ГБ
ValheimBepInEx, ThunderstoreПрофиль мод-менеджера, переданный кодом4-8 ГБ
TerrariatModLoaderМоды синхронизируются с сервера или из Workshop2-6 ГБ
Project ZomboidSteam WorkshopСкачиваются автоматически при входе6-10 ГБ
FactorioMod portalПредлагаются к загрузке при входе2-4 ГБ
Don't Starve TogetherSteam WorkshopСкачиваются автоматически при входе2-4 ГБ
RimWorldМод мультиплеера плюс список модовСписок модов передаётся и сверяется вручную2-4 ГБ
Garry's ModКоллекции WorkshopСкачиваются при входе2-4 ГБ

Цифры по памяти - отправная точка для небольшой группы с умеренным списком модов, а не гарантия: один тяжёлый мод может их удвоить, и честный ответ для конкретной сборки - запустить её и смотреть на график памяти.

Игры делятся на две группы. В Project Zomboid, DST, Factorio и Garry's Mod сама игра скачивает моды сервера для подключающегося игрока, так что источник истины - сервер, и друзьям почти не о чем думать. В Minecraft, Valheim и RimWorld каждый игрок ставит моды сам, поэтому группе нужен способ сделать все установки одинаковыми. Почти все проблемы вида «у меня работает, а у него нет» случаются во второй группе.

Готовая сборка или свой список#

Опубликованную сборку - сборку Minecraft с CurseForge или Modrinth, профиль Valheim, которым кто-то поделился, - её автор уже протестировал целиком. Версии зафиксированы, конфликты найдены, и часто есть серверная версия сборки. Для группы, которая хочет играть, а не возиться, это правильный выбор. Цена в том, что сборку вы берёте как есть, а удаление модов из неё потом может сломать то, что автор никогда не проверял.

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

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

Как дать всем одинаковые моды#

Для игр, где моды ставят сами игроки, правило такое: никогда не раздавайте список модов в виде набора ссылок. Раздавайте то, что устанавливает точные версии за один шаг.

  • Minecraft. Передайте название и версию сборки в приложении CurseForge, приложении Modrinth или Prism Launcher либо экспортируйте свою сборку в файл (.mrpack для Modrinth, zip для CurseForge) и отправьте его. Все импортируют один и тот же файл, и версии совпадают по определению.
  • Valheim. В r2modman или Thunderstore Mod Manager нажмите «Export profile as code» и вставьте код в чат группы. Каждый друг использует «Import profile from code». На сервере в папке BepInEx/plugins должны лежать те же моды, которые важны для сервера; какие моды нужны с обеих сторон, описано в статье Моды Valheim с BepInEx.
  • RimWorld. Передайте список модов в порядке загрузки, в идеале экспортированный из мод-менеджера, и попросите всех подписаться на одни и те же предметы в Workshop. Мод мультиплеера проверяет моды при входе и откажет при несовпадении; рассинхронизация разобрана в статье Мультиплеерный сервер RimWorld.

В играх с автоматической загрузкой работа ложится на сервер. Project Zomboid требует, чтобы каждый мод был указан и в строке WorkshopItems=, и в строке Mods= в ini сервера, а формат этих строк изменился с build 42; подробности - в статье Моды Project Zomboid и Workshop. Don't Starve Together перечисляет ID из Workshop в dedicated_server_mods_setup.lua и включает их для каждого шарда в modoverrides.lua. Garry's Mod использует коллекцию Workshop - об этом статья Garry's Mod: Workshop и FastDL.

Только клиент, только сервер и обе стороны

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

  • Только клиент - шейдеры, миникарты, изменения интерфейса, звуковые моды. На выделенном сервере их быть не должно. Особенно в Minecraft клиентский мод на сервере часто роняет его при старте, потому что ссылается на код отрисовки, которого на сервере нет.
  • Только сервер - инструменты backup, утилиты администрирования, моды производительности, которые затрагивают только симуляцию. Друзьям они не нужны.
  • Обе стороны - всё, что добавляет предметы, блоки, существ, рецепты или правила. Тот же мод, та же версия, у всех.

На страницах модов обычно указано, к какому типу они относятся. Если не указано, считайте, что нужен с обеих сторон, и проверяйте.

Установка модов на сервер#

Порядок одинаков для любой игры:

  1. Один раз запустите сервер без модов, чтобы он создал свои папки, и остановите его.
  2. Загрузите серверные моды. Для сборки Minecraft используйте серверные файлы от автора сборки, если они есть, а не копируйте папку своего клиента, в которой есть клиентские моды. Zip, загруженный через файловый менеджер панели, обычно можно распаковать на месте - это быстрее, чем загружать сотни мелких файлов.
  3. Установите или выберите загрузчик модов, который ожидает сборка, той версии, которую она ожидает. Сборка, сделанная под одну версию загрузчика, может отказаться запускаться на другой.
  4. Запустите сервер и читайте лог, пока он либо не закончит загрузку, либо не остановится. Первый запуск большой сборки может занять несколько минут.
  5. Пусть сначала зайдёт один друг, а уже потом все остальные.
A typical Minecraft modded server folder
server/  mods/              mod .jar files, server-relevant only  config/            mod settings, generated on first start  world/    serverconfig/    per-world settings on Forge and NeoForge  user_jvm_args.txt  memory flags on Forge and NeoForge  server.properties

Моды записывают свои настройки при первом запуске. Меняйте настройки при остановленном сервере и храните копию config/ вместе с backup-копиями, потому что мир, восстановленный без соответствующих конфигов модов, может вести себя иначе.

На RE:NODE моды загружаются через файловый менеджер или SFTP, архивы можно распаковать на месте, и нет списка одобренных модов, с которым нужно сверяться. Линейка Minecraft настроена под Paper; сборка на Forge, NeoForge или Fabric - это другой тип сервера, поэтому прежде чем покупать под неё тариф, спросите в тикете. Для остальных игр путь установки модов - собственный путь игры, а данные для подключения есть в статье SFTP и файловый менеджер.

Память считают по модам, а не по игрокам#

На ванильном сервере память зависит от игроков и исследованного мира. На сервере с модами память зависит от модов. Сборка Minecraft на 250 модов может занимать 5 ГБ при одном игроке онлайн, и четвёртый друг почти ничего к этому не добавит. Factorio, Valheim и DST гораздо легче, но контентные моды всё равно увеличивают расход памяти с каждой новой вещью, которую добавляют в мир.

Группа и модыMinecraftValheimProject Zomboid
2-4 друга, лёгкий список (до 30 модов)4-6 ГБ3-4 ГБ4-6 ГБ
4-8 друзей, средний список6-8 ГБ4-6 ГБ6-8 ГБ
Большая сборка (150+ модов)8-12 ГБ6-8 ГБ8-10 ГБ

Два момента справедливы везде. Во-первых, если отдать Java-серверу всю память тарифа под heap, на остальной процесс ничего не останется; оставьте запас примерно в 1 ГБ или больше. Почему - объясняет статья Сколько RAM нужно серверу Minecraft. Во-вторых, для миров с модами CPU важен не меньше памяти: моды на автоматизацию, машины и большие фермы нагружают главный поток, а это одно ядро, сколько бы их ни было в тарифе. Понять, чего именно вам не хватает, поможет статья CPU или RAM для игровых серверов.

На RE:NODE сервер, упёршийся в лимит памяти, останавливается и чисто перезапускается, а не уходит в swap, поэтому слишком маленький сервер с модами проявляется перезапусками, а не постепенной деградацией, - и всё, что не успело сохраниться, в этот момент теряется. Переход на тариф выше меняет лимиты у уже существующего сервера, так что мир остаётся на месте.

Обновления без поломки мира#

Именно здесь серверы с модами и умирают. Патч игры ломает моды; обновление мода меняет формат мира; кто-то обновил свой клиент и больше не может зайти.

  • Отключите автоматические обновления игры и модов. Обновляйтесь осознанно, всей группой.
  • Делайте backup перед каждым обновлением - мир и папку с модами вместе. Мир, восстановленный без тех версий модов, с которыми он был сохранён, может не загрузиться.
  • Обновляйте всех одновременно. Выберите вечер, обновите сервер, обновите общий профиль или сборку и попросите всех заново импортировать её перед входом.
  • Никогда не удаляйте контентный мод из живого мира, не проверив, что он добавляет. Блоки, предметы и существа из удалённого мода обычно стираются из мира при загрузке - вместе со всем, что хранилось в сундуках или машинах из этого мода.
  • Выждите неделю после крупного патча игры. Авторам модов нужно время; первый день крупного патча - это день, когда сломано всё.

Если обновление всё-таки сломало сервер, откатитесь на backup и подождите, пока моды догонят игру. Шаги диагностики - в статье Что делать, если обновление мода всё сломало.

Как сохранить приватность#

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

  • Включите whitelist или пароль, если игра его использует. В Minecraft это white-list=true и enforce-whitelist=true плюс whitelist add для каждого друга; в Valheim - пароль и, при желании, permittedlist.txt.
  • Оставьте публичное размещение выключенным: -public 0 в Valheim, никаких записей в браузерах сообщества.
  • Делитесь адресом в закрытом групповом чате, а не в публичных каналах или на скриншотах.
  • Дайте одному-двум друзьям, которые помогают вести сервер, собственный доступ к панели только с нужными им правами, а не свой аккаунт. Как это сделать, описано в статье Субпользователи и минимальные права.

Скачивайте моды только с официальных платформ - CurseForge, Modrinth, Thunderstore, Nexus, Steam Workshop, собственного портала игры. Перезаливы на случайных сайтах - обычный источник вредоносного кода в моддинге, а сервер с модами выполняет каждый мод с правами сервера.

Когда что-то сломалось#

Сервер падает при запуске. Прочитайте конец лога. Обычные причины, по порядку: клиентский мод на сервере, отсутствующая зависимость (мод-библиотека, нужная другому моду), не та версия загрузчика или недостаток памяти для сборки.

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

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

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

Всё было нормально, а теперь никто не может зайти. У кого-то автоматически обновилась игра или лаунчер. Зафиксируйте версии в лаунчере и договаривайтесь об обновлениях всей группой.

FAQ#

Сколько RAM нужно серверу с модами на четырёх друзей?

Для средней сборки Minecraft - около 6-8 ГБ. Для Valheim или Project Zomboid с умеренным списком модов - примерно 4-6 ГБ. Память зависит от списка модов больше, чем от числа игроков, поэтому запустите сервер, понаблюдайте за графиком памяти во время обычной сессии и рассчитайте по нему.

Нужно ли друзьям тоже ставить моды?

Для модов, которые добавляют контент или меняют правила, - да, той же версии. В Project Zomboid, Don't Starve Together, Factorio и Garry's Mod игра скачивает их при входе; в Minecraft, Valheim и RimWorld каждый игрок ставит их сам, в идеале из общего профиля или файла сборки.

Можно ли добавлять моды в уже начатый мир?

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

Должен ли сервер с модами обновляться автоматически?

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

Дешевле ли держать сервер с модами дома?

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


Комментарии

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

0/2000