RE:NODE

r2modman для групп Valheim: один общий профиль модов

Автор Команда RE:NODE
10 мин чтения


Чтобы группа с модами в Valheim оставалась на одних и тех же модах, соберите один профиль r2modman, экспортируйте его и пусть все импортируют одно и то же, а затем скопируйте плагины и конфигурации этого профиля на сервер. Код профиля быстр и хорош для первой установки; сохранять стоит экспортированный файл .r2z, потому что он постоянный и содержит точные версии. Проблемы возникают не при экспорте, а после него: один нажимает "update all", другой добавляет понравившийся мод, и через три недели половину группы кикает при подключении. В этой статье разбираем, как собрать профиль, как им поделиться, как закрепить версии, чтобы он оставался общим, и как поставить тот же набор на выделенный сервер, чего r2modman за вас не делает.

Если вы ещё не установили BepInEx на сервер, начните со статьи моды для сервера Valheim через BepInEx. Здесь речь о распространении списка модов, а не о самом загрузчике.

Что на самом деле делают r2modman и Thunderstore#

Thunderstore - репозиторий модов, которым пользуется сообщество Valheim. У каждого пакета в нём есть имя в формате Author-ModName, номер версии и manifest.json, где зависимости перечислены с точными версиями - например, ValheimModding-Jotunn-2.20.0 или denikson-BepInExPack_Valheim-5.4.2202. Именно эти строки обрабатывает менеджер модов.

r2modman - десктопный менеджер модов с открытым исходным кодом для игр на Thunderstore. Для Valheim он делает четыре полезные вещи:

  • Ведёт профили: каждый - отдельная папка со своей установкой BepInEx, так что профиль с модами и ванильная игра никогда не мешают друг другу.
  • Устанавливает моды вместе с зависимостями в BepInEx/plugins/<Author>-<ModName>/, так что у каждого мода своя папка и свой manifest.json.
  • Запускает игру с загруженным профилем ("Start modded"), не трогая установку Steam.
  • Экспортирует и импортирует профили - именно этой возможности посвящена статья.

Thunderstore Mod Manager - та же кодовая база, упакованная с Overwolf, а Gale - более новый независимый менеджер, который читает те же пакеты и умеет импортировать коды профилей r2modman. Описанный ниже порядок действий написан для r2modman, но идеи переносятся на оба.

В Windows r2modman хранит данные в %APPDATA%\r2modmanPlus-local\, а профиль Valheim лежит так:

code
%APPDATA%\r2modmanPlus-local\Valheim\profiles\<profile name>\    BepInEx\        config\        mod settings        core\          BepInEx itself        patchers\      e.g. HookGenPatcher        plugins\       one folder per mod

Вводить этот путь вручную нужно редко. Settings, затем "Browse profile folder" - и папка откроется.

Сборка профиля для группы#

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

  1. В r2modman выберите Valheim, создайте новый профиль и дайте ему имя с датой или номером - Longship-2026-10, а не Modded. Имя путешествует вместе с экспортом и позволяет сразу увидеть, что кто-то сидит на старом профиле.
  2. Установите моды на вкладке online. Зависимости подтягиваются автоматически: поставив один контентный мод, вы обычно увидите рядом BepInExPack Valheim, Jotunn и HookGenPatcher.
  3. Один раз запустите игру через "Start modded" и дойдите до главного меню. Так создаются конфигурационные файлы всех модов в BepInEx/config. Без этого шага в экспорте не будет конфигов, и все начнут со значений по умолчанию.
  4. Отредактируйте нужные конфигурации редактором конфигов r2modman или прямо в папке. Если собираетесь менять значения, синхронизируемые с сервера, делайте это позже на сервере - см. ниже.
  5. Зайдите в тестовый мир, проверьте, что каждый мод делает то, что ожидается, и только потом экспортируйте.

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

Как поделиться: код профиля или файл#

r2modman предлагает два формата экспорта в Settings: "Export profile as a code" и "Export profile as a file". Формулировки немного различаются между версиями; оба пункта находятся в разделе профилей в Settings.

Код профиляФайл профиля (.r2z)
Что этоКороткий код, указывающий на загрузкуZip-архив на вашем диске
Как передаётсяВставкой в чатОтправкой файла
Срок жизниВременный; коды истекаютПостоянный
Содержит конфигиДаДа
Точные версииДаДа

.r2z - обычный zip. Внутри лежит export.r2x, небольшой YAML-файл со списком всех модов по имени, с версией и признаком, включён ли мод, плюс копия папки BepInEx/config. Поэтому файл полезен не только как способ распространения, но и как запись: его можно открыть и прочитать список.

Чтобы импортировать, остальные выбирают Valheim в r2modman, переходят на экран выбора профиля, нажимают "Import / Update", затем "Import new profile" и "From code" или "From file". r2modman скачивает перечисленные моды в указанных версиях и копирует конфигурации. Импорт создаёт новый профиль и не затрагивает существующие.

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

Закрепление версий, чтобы у всех было одно и то же#

Импорт даёт всем одинаковые версии в первый день. Сохранить их одинаковыми - отдельная задача, а r2modman создан для того, чтобы моды были свежими, что здесь работает против вас.

  • Не пользуйтесь "Update all". r2modman отмечает установленные моды, для которых есть новые версии, и предлагает обновить их одним щелчком. В общем профиле этот щелчок выводит одного игрока вперёд относительно сервера и всех остальных. Сделайте правилом группы: обновляет только владелец профиля, и только через экспорт нового профиля.
  • Устанавливайте конкретную версию, когда она нужна. На странице мода в r2modman диалог загрузки позволяет выбрать версию, а не последнюю. Так можно откатить один мод, если обновление что-то сломало.
  • Считайте Jotunn и BepInExPack частью списка. Это зависимости, а не фоновый шум. Более новый Jotunn у одного клиента, чем на сервере, может вызвать такое же несовпадение, как и контентный мод, - почему, объясняет статья Jotunn: что это и как работает.
  • Обновляйтесь одной пачкой. Когда выходит патч Valheim, владелец ждёт, пока моды догонят, собирает новую версию профиля, тестирует её, обновляет сервер и только потом публикует новый файл. Все импортируют новый профиль; никто не обновляется на месте.

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

Установка того же набора на сервер#

r2modman управляет игровым клиентом. На выделенный сервер он не устанавливает, поэтому серверная копия делается вручную, но поскольку папка профиля - это обычная папка BepInEx, всё довольно просто.

Сначала установите BepInExPack Valheim на сам сервер, как описано в руководстве по BepInEx для сервера. Не копируйте BepInEx/core или файлы инжектора для Windows из профиля Windows на сервер Linux: у пакета есть собственный стартовый скрипт и библиотеки для Linux, и они нужны серверу. Из профиля копируются моды и их настройки:

Папка в профилеКопировать на сервер?Примечания
BepInEx/pluginsДа, кроме клиентских модовОдна папка на мод
BepInEx/patchersДаЗдесь лежат HookGenPatcher и подобные
BepInEx/configДаЗатем отредактируйте серверные значения
BepInEx/coreНетБерётся из собственного пакета сервера

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

Сама загрузка - это передача файлов: упакуйте в zip plugins, patchers и config из папки профиля, загрузите архив в каталог BepInEx сервера через файловый менеджер или SFTP и распакуйте на месте. Параметры подключения описаны в статье SFTP и файловый менеджер. На RE:NODE файловый менеджер распаковывает архивы на месте, поэтому хватит одной загрузки zip; на хостинге без такой возможности загружайте папки по SFTP.

Затем запустите сервер и прочитайте журнал запуска. Нужна одна строка Loading [ModName version] на каждый мод, причём версии должны совпадать с профилем. Быстро сравнить можно, получив список с обеих сторон:

bash
# On the server, from the server root$ grep -o 'Loading \[[^]]*\]' BepInEx/LogOutput.log | sort

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

Конфиги: чья сторона главная#

Копирование BepInEx/config на сервер ставит всех в одну исходную точку. Дальше конфигурации модов делятся на два вида, и важно понимать, какой есть какой.

  • Синхронизируемые настройки. Моды на основе синхронизации конфигов Jotunn или ServerSync передают свои настройки с сервера каждому клиенту при подключении. Для таких настроек файл сервера - истина, а правки клиента перезаписываются или игнорируются. Во многих таких модах есть настройка Lock Configuration, которая это обеспечивает; когда она включена, значимы только значения сервера.
  • Локальные настройки. Всё остальное читается из собственного файла каждой машины. Если один игрок изменит значение грузоподъёмности в моде, который не синхронизируется, он будет играть по другим правилам, чем остальные, и ничто его об этом не предупредит.

Практическое правило: синхронизируемые настройки меняйте на сервере и перезапускайте; локальные - в профиле, экспортируйте новую версию и пусть все импортируют заново. Не просите людей править конфиги вручную, чтобы они совпадали: кто-нибудь обязательно что-то пропустит.

A pinned Discord message that does the job
Profile: Longship-2026-10b  (file attached, code expires)Valheim (server patch noted here), BepInExPack 5.4.2202, Jotunn 2.x.xServer updated: 2026-10-12Do not press Update all. Ask in #mods first.

Диагностика общих профилей#

Код ничего не импортирует или считается недействительным. Он истёк. Используйте файл .r2z.

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

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

Игра запускается ванильной. Игрок нажал Play в Steam вместо "Start modded" в r2modman. В установке Steam нет BepInEx; он есть в профиле.

На сервере моды есть, но ничего не делают. Сервер запущен без инжектора, поэтому папка plugins не читается. Проверьте наличие баннера BepInEx в начале журнала; если его нет, команда запуска не использует BepInEx.

Конфиги на сервере сбрасываются после перезапуска. Мод переписывает свой файл при запуске и отбрасывает незнакомые ключи. Обычно ключ скопирован из другой версии мода. Сгенерируйте файл версией, которая стоит на сервере, и затем редактируйте его.

FAQ#

Устанавливает ли r2modman моды на выделенный сервер?

Нет. Он управляет профилем игрового клиента. Установите BepInExPack Valheim на сервер, затем скопируйте папки plugins, patchers и config из профиля.

Как долго живёт код профиля r2modman?

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

Может ли Thunderstore Mod Manager или Gale импортировать профиль r2modman?

Thunderstore Mod Manager построен на r2modman и использует тот же формат. Gale умеет импортировать коды и файлы профилей r2modman. Смешивать менеджеры в одной группе можно, но владельцу профиля стоит тестировать в том, которым пользуется большинство.

Нужно ли включать клиентские моды в общий профиль?

Нет. Это удобство. Если их не включать, профиль меньше, и всем понятно, какие моды действительно должны совпадать.

Что будет, если кто-то обновит один мод самостоятельно?

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