Valheim: моды через BepInEx на своём сервере

Что такое BepInEx, как устроены его папки, где лежат моды, конфиги и лог, как поставить загрузчик в панели EGN и разобраться, почему мод не загрузился.

Команда EGN 8 мин чтения
Valheim: моды через BepInEx на своём сервере
Содержание 17
  1. Коротко
  2. Как работает загрузчик
  3. Установка в панели EGN
  4. Из чего состоит папка BepInEx
  5. Ручная установка мода
  6. Как читать LogOutput.log
  7. Моды у игроков
  8. Сервер не запускается после мода
  9. Симптом, причина и решение
  10. Частые ошибки
  11. Что дальше
  12. Итог
  13. Вопросы и ответы
  14. Что такое BepInEx и зачем он на сервере Valheim?
  15. Где на сервере лежат конфиги модов?
  16. Где смотреть ошибки загрузки модов?
  17. Нужно ли ставить моды игрокам?

Моды в Valheim держатся на загрузчике BepInEx: игра запускается через него, а он подгружает файлы .dll из своей папки. Если понимать, как загрузчик устроен, любая проблема с модами разбирается за несколько минут. В этой статье разберём устройство BepInEx на сервере, установку в панели EGN, конфиги, лог и работу с игроками. Установку и обновление конкретных пакетов из каталога мы вынесли в отдельный материал: моды Valheim из каталога Thunderstore в панели.

Коротко

BepInEx — загрузчик модов для игр на Unity, и для Valheim он нужен почти всем модам. На сервере EGN его ставит кнопка «Установить BepInEx» в разделе «Моды». Пакеты кладутся в BepInEx/plugins, настройки появляются в BepInEx/config после первого запуска, а причины ошибок видны в BepInEx/LogOutput.log. Большинство модов должны стоять и на сервере, и у игроков в одинаковых версиях.

Как работает загрузчик

Valheim сам по себе не умеет подключать чужой код. BepInEx (для Valheim обычно используется сборка BepInExPack_Valheim из каталога Thunderstore, это серия 5.x) встаёт между запуском и игрой: при старте сервера он находит плагины, загружает их и пишет журнал. Если загрузчик не подключён к запуску, моды лежат на диске мёртвым грузом, и сервер работает как обычный.

На сервере EGN подключением занимается файл egn-launch.sh в корне сервера: он собирает команду запуска и добавляет в неё загрузчик. Именно поэтому его нельзя удалять и переименовывать. Если файл потерян, достаточно нажать «Установить BepInEx» ещё раз.

Не удаляйте egn-launch.sh

Через egn-launch.sh в корне сервера подключается загрузчик. Если вы удалили файл, нажмите «Установить BepInEx» в разделе «Моды» ещё раз: панель создаст его заново.

Установка в панели EGN

  1. Откройте страницу сервера Valheim и перейдите в раздел «Моды».
  2. Если загрузчика нет, вверху появится красная плашка «Загрузчик BepInEx не установлен — моды не загрузятся». Нажмите «Установить BepInEx».
  3. Дождитесь завершения. После установки в шапке раздела будет написано «BepInEx установлен · папка /BepInEx/plugins/».
  4. Перезапустите сервер, чтобы загрузчик подключился при старте.
Раздел «Моды» без загрузчика: плашка с кнопкой «Установить BepInEx»
Раздел «Моды» без загрузчика: плашка с кнопкой «Установить BepInEx»

После установки шапка раздела меняется, а во вкладке «Установлено» появляется список пакетов из папки плагинов:

Раздел «Моды» после установки BepInEx: папка /BepInEx/plugins/ и список пакетов
Раздел «Моды» после установки BepInEx: папка /BepInEx/plugins/ и список пакетов

Установка не требует ручной распаковки архивов. Панель сама убирает за собой временные файлы установки, поэтому лишних папок в корне не остаётся.

Из чего состоит папка BepInEx

После первого запуска с загрузчиком в корне сервера появляется папка BepInEx. Основное, что вам понадобится:

Путь Что там лежит Зачем открывать
BepInEx/plugins пакеты модов, чаще по одной папке на мод добавить или убрать мод
BepInEx/config файлы настроек модов (.cfg) и BepInEx.cfg поменять параметры мода
BepInEx/LogOutput.log журнал загрузки плагинов понять, почему мод не работает
BepInEx/patchers патчеры загрузчика обычно трогать не нужно

Конфиги модов создаются только после первого запуска с этим модом. Поэтому порядок такой: поставили мод, запустили сервер, остановили, открыли файл в BepInEx/config и поправили значения. Файлы настроек называются по идентификатору мода, например author.modname.cfg, и это обычные текстовые файлы с комментариями, где описан каждый параметр.

Пример структуры после установки двух пакетов (имена папок в панели EGN формируются как Автор-Пакет):

Текст
BepInEx/
├── plugins/
│   ├── ValheimModding-Jotunn/
│   └── RandyKnapp-EpicLoot/
├── config/
│   ├── BepInEx.cfg
│   └── randyknapp.mods.epicloot.cfg   <- появится после первого запуска
└── LogOutput.log
Один мод — одна папка

Держите каждый мод в своей папке внутри plugins. Так его проще отключить и удалить, а в журнале проще понять, чей код загрузился. Панель EGN при установке из каталога делает именно так.

Отключённые через панель пакеты уходят в BepInEx/egn-disabled. Из этой папки они не загружаются, но возвращаются одним нажатием, поэтому для проверки гипотез удобнее отключать мод, а не удалять.

Ручная установка мода

Если нужного пакета нет в каталоге панели или вы получили файл от автора, мод можно поставить вручную через «Файлы» или SFTP:

  1. Скачайте архив мода со страницы пакета на Thunderstore (кнопка Manual Download).
  2. Распакуйте архив на своём компьютере и посмотрите содержимое. Внутри обычно лежит файл .dll и вспомогательные файлы.
  3. Создайте в BepInEx/plugins папку с понятным именем и загрузите в неё содержимое.
  4. Поставьте зависимости, которые указаны на странице пакета, до перезапуска.
  5. Перезапустите сервер и откройте BepInEx/LogOutput.log.

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

Как читать LogOutput.log

Журнал загрузчика пишется при каждом старте. Для диагностики достаточно трёх вещей.

  • Строки вида «Loading [Название версия]» показывают, какие плагины загрузчик нашёл. Если вашего мода среди них нет, он лежит не в той папке или загрузчик не подключён.
  • Строки с уровнем Error или Warning перед сообщением об остановке сервера указывают на виновника.
  • Сообщение о недостающей зависимости называет пакет, который нужно поставить.

Откройте файл в «Файлах» панели и ищите по названию мода. Если журнал не обновился после перезапуска, значит BepInEx не запускался: проверьте egn-launch.sh и кнопку установки.

Моды у игроков

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

Чтобы у всех был одинаковый набор:

  1. Игроки ставят r2modman или Thunderstore Mod Manager. Это бесплатные менеджеры для работы с профилями модов.
  2. Вы создаёте профиль с нужными модами и экспортируете его кодом (в r2modman это раздел «Settings», пункт экспорта профиля в виде кода).
  3. Друзья импортируют профиль по коду, и у всех оказывается один и тот же набор.

Если вы ставите моды из каталога панели, список пакетов для друзей можно взять там же: в разделе «Моды» есть «Список для игроков». Его удобно переслать в личные сообщения.

Сервер не запускается после мода

Над консолью сервера может появиться подсказка Доктора сервера. Самые частые причины:

  • Не хватает зависимости. Чаще всего это библиотека Jotunn. Её название есть в строке ошибки в журнале.
  • Мод не обновлён под текущую версию Valheim. После патча игры часть модов перестаёт работать, пока автор не выпустит обновление. Отключите мод или подождите.
  • Клиентский мод на сервере. Моды интерфейса на сервер ставить не нужно.
  • Конфликт двух модов. Они меняют одно и то же. В журнале видно, где именно произошла ошибка.
Поиск виновника делением пополам

Перенесите половину модов из plugins во временную папку и запустите сервер. Если он работает, виновник в перенесённой половине. Повторяйте, пока не останется один мод.

Симптом, причина и решение

Симптом Вероятная причина Что сделать
Мод стоит, эффекта нет Загрузчик не подключён или нет перезапуска Проверьте кнопку «Установить BepInEx», перезапустите
В config нет файла мода Мод ещё не запускался Запустите сервер один раз
Ошибка про отсутствующую зависимость Не поставлена библиотека Поставьте указанный пакет
Игрок не заходит, пишет о несовпадении Разные версии мода Синхронизируйте версии
Сервер падает сразу после патча игры Мод устарел Отключите мод, дождитесь обновления
LogOutput.log не меняется BepInEx не стартует Проверьте egn-launch.sh

Частые ошибки

  • Кладут мод в корень plugins без папки. Потом непонятно, какие файлы чьи.
  • Копируют моды в чужую структуру. Папка должна лежать именно в BepInEx/plugins.
  • Правят конфиг при работающем сервере. Сервер может перезаписать его при остановке. Редактируйте файлы на остановленном сервере.
  • Обновляют мод у себя, а на сервере нет. Версии расходятся, вход блокируется.
  • Нет снимка перед экспериментами. Перед установкой нового набора сделайте копию в «Бэкапах».

Что дальше

Если вам нужен готовый набор, а не ручная сборка, посмотрите популярные модпаки Valheim и каталог «Сборки» в панели. Работа с каталогом пакетов подробно описана в статье про Thunderstore в панели EGN. Мир с модами переносите по порядку из статьи про перенос мира.

Итог

BepInEx — основа всех модов Valheim. На сервере EGN он ставится кнопкой, моды живут в BepInEx/plugins, настройки в BepInEx/config, а ответ на вопрос «почему не работает» лежит в BepInEx/LogOutput.log. Держите моды по одной папке, синхронизируйте версии с игроками и делайте снимок перед изменениями.

Вопросы и ответы

Что такое BepInEx и зачем он на сервере Valheim?

Это загрузчик модов для игр на Unity. Без него файлы из BepInEx/plugins не подключаются, и сервер работает как обычный.

Где на сервере лежат конфиги модов?

В BepInEx/config. Файлы появляются после первого запуска с модом, поэтому один раз запустите сервер, остановите его и только потом правьте настройки.

Где смотреть ошибки загрузки модов?

В файле BepInEx/LogOutput.log. В нём видно, какие плагины загрузились и какого пакета не хватает.

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

Да, почти все моды нужны и серверу, и игрокам в одинаковых версиях. Чисто клиентские моды интерфейса ставит только игрок.

Сервер Valheim с модами за пару минут — egnetwork.ru

Читать далее

Вся рубрика →