BepInEx ConfigurationManager - это клиентский мод, который рисует настройки каждого установленного плагина в окне, открываемом в игре, по умолчанию клавишей F1. Изменение значения там сразу записывается в .cfg этого плагина на вашем собственном ПК. На выделенном сервере именно это люди понимают неправильно: меню правит клиент, а не сервер. Исключение - настройки, которые мод синхронизирует с сервера через ServerSync или Jotunn: пока вы подключены, они показывают значения сервера, доступны только для чтения, если вас нет в списке администраторов сервера, а правка администратора отправляется на сервер и сохраняется там. Всё остальное на сервере, включая любой мод, работающий только на сервере, меняется правкой файла в папке BepInEx/config сервера. Самому серверу ConfigurationManager не нужен никогда.
Что такое ConfigurationManager#
BepInEx хранит настройки каждого плагина в INI-файле в BepInEx/config, который создаётся при первой загрузке плагина. Эти файлы читаемы, но утомительны: у крупного мода может быть сотня настроек в десятке секций, и чтобы увидеть большинство изменений, нужно выходить из игры. ConfigurationManager читает те же настройки из памяти и показывает их формой: переключатели как флажки, числа как ползунки или поля, списки как выпадающие меню, привязки клавиш как кнопку, после нажатия на которую нужно нажать новую клавишу.
Оригинал написал ManlyMarco в рамках проекта BepInEx для BepInEx вообще. Игроки Valheim в основном ставят его сборку для Valheim с Thunderstore; на момент написания та, на которую чаще всего ссылаются страницы модов, - "Official BepInEx ConfigurationManager" от Azumatt, и есть форки с дополнительными возможностями для Valheim. Все они читают одну и ту же систему конфигурации, поэтому инструкции ниже подходят к каждому из них; точный вид окна различается.
Устанавливайте его как любой клиентский мод, через менеджер модов или поместив в BepInEx/plugins. Зависимостей, кроме BepInExPack, у него нет.
Как открыть и найти настройку#
Нажмите F1 в главном меню или в игре. В окне перечислены плагины, у которых есть настройки, в свёрнутом виде по именам; щёлкните по имени, чтобы развернуть, или введите текст в поле поиска сверху, чтобы отфильтровать сразу все плагины.
Элементы управления, которые стоит знать:
| Элемент | Что делает |
|---|---|
| Поле поиска | Фильтрует настройки по имени во всех плагинах |
| Show settings | Включает или отключает обычные настройки |
| Show keyboard shortcuts | Включает или отключает привязки клавиш |
| Show advanced | Показывает настройки, помеченные автором как расширенные и скрытые по умолчанию |
| Кнопка сброса / значения по умолчанию | Возвращает отдельную настройку к значению по умолчанию, объявленному модом |
Наведите курсор на настройку, чтобы увидеть описание, написанное автором, - тот же текст, что стоит над ключом в .cfg. Прочитайте его, прежде чем что-либо менять: часто там сказано, нужен ли для изменения перезапуск и синхронизируется ли настройка с сервером.
Если F1 конфликтует с другим модом или с чем-то, что вы назначили, поменяйте клавишу. У ConfigurationManager есть свой файл конфигурации, обычно BepInEx/config/com.bepis.bepinex.configurationmanager.cfg, а горячая клавиша лежит в секции [General]:
[General]## The shortcut used to toggle the config manager window on and off.# Setting type: KeyboardShortcut# Default value: F1Show config manager = F1Имя ключа и секции давно стабильны, но форки могут их переименовывать. Если ваш файл выглядит иначе, горячая клавиша всё равно находится в собственных настройках ConfigurationManager, так что её можно поменять и из самого окна.
Что на самом деле меняет правка в игре#
Каждое изменение в окне сразу записывается на диск, в .cfg плагина на машине, где запущена игра. BepInEx сохраняет файл конфигурации всякий раз, когда в нём устанавливается значение, поэтому отдельного шага сохранения нет.
Делает ли новое значение что-нибудь немедленно, решает мод:
- Применяется сразу. Многие настройки читаются при каждом использовании: положение HUD, проверка размера стопки, цвет. Они меняются в ту же секунду, как вы их правите.
- Применяется при следующей загрузке. Настройки, которые читаются при запуске мода (рецепты предметов, регистрируемые постройки, описания существ), сохраняются, но действуют только после перезапуска игры. Обычно об этом сказано в описании.
- Применяется при следующем входе в мир. Некоторые настройки читаются при загрузке в мир, так что достаточно выйти в главное меню и зайти заново.
Если изменение, похоже, ничего не делает, определите, какой из трёх случаев ваш, прежде чем решать, что мод вас проигнорировал.
Подключение к серверу: синхронизируемые, заблокированные и локальные настройки#
Когда вы заходите на выделенный сервер с модами, смысл окна меняется. Настройки делятся на три группы, и окно не всегда подписывает их чётко.
| Вид настройки | Виден ли в вашем F1 | Кто решает значение | Правка игроком |
|---|---|---|---|
| Локальная (не синхронизируется) | Да | Вы | Меняет только вашу игру |
| Синхронизируемая, заблокированная | Да, со значением сервера | Сервер | Только чтение, если вы не администратор |
| Синхронизируемая, без блокировки | Да | Зависит от мода | По-разному; не полагайтесь на это |
| Мод только для сервера | Нет, у вас нет этого мода | Файл сервера | С клиента невозможно |
Локальные настройки ведут себя точно так же, как в одиночной игре. Ваш HUD, привязки клавиш и параметры модов, связанные с графикой, принадлежат вам, и сервер их никогда не видит.
Синхронизируемые настройки - те, которые мод передаёт с сервера через ServerSync или через синхронизацию Jotunn только для администратора. Пока вы подключены, окно показывает значение сервера. Если у мода включён Lock Configuration (для модов с ServerSync это обычное значение по умолчанию), не-администратор не может их менять; большинство модов показывают их как недоступные. Когда вы отключаетесь, ваши собственные значения обычно возвращаются. Механизм и блокировку подробно объясняет статья ServerSync и принудительная синхронизация конфигов.
Моды только для сервера не появляются совсем. Мост с Discord, мод для backup или серверный инструмент администратора работают только на сервере, поэтому на вашем клиенте нет плагина, который можно было бы показать. ConfigurationManager не может дотянуться через сеть и настроить мод, которого у вас нет.
Администраторы правят сервер из F1#
Игроки из adminlist.txt сервера получают одну дополнительную возможность: для синхронизируемых настроек их правки отправляются на сервер. Порядок такой:
- Администратор меняет синхронизируемое значение в окне, пока подключён.
- Мод отправляет новое значение на сервер, который сверяет отправителя со своим списком администраторов.
- Сервер применяет его, записывает в собственный
.cfgи рассылает каждому подключённому клиенту.
Это самый быстрый способ балансировать работающий сервер: подкрутите урон врагов или шанс выпадения предметов прямо во время сессии, и все увидят изменение. У этого есть цена. Нет ни подтверждения, ни отмены, поэтому случайное движение ползунка действует сразу для всех. Изменение попадает в файл сервера, так что переживает перезапуски, и записывать его никому не нужно. И нет никакой истории, кроме того, что пишет лог сервера, а для большинства модов это ничего.
Безопасными это делают два правила:
- Держите список администраторов коротким. Любой ID в
adminlist.txtможет со своего ПК переписывать синхронизируемые настройки баланса, а также кикать и банить. Форматы, включая ID с префиксом платформы, нужные серверам с кроссплеем, описаны в статье три списка: adminlist, bannedlist и permittedlist. - Скопируйте папку конфигурации сервера после сессии настройки. Скачайте
BepInEx/config, когда группа довольна результатом, и храните её рядом с backup. Это ваша запись о том, что изменилось.
Если правки администратора ничего не делают, обычные причины таковы: его ID отсутствует или записан в неверном формате, мод не поддерживает правку администратором (некоторые синхронизируют значения только из файла) либо настройка вообще не синхронизируется - тогда правка изменила только игру самого администратора и ничью больше.
Вместо этого - правка файла#
Для всего на сервере, что не является синхронизируемой настройкой, и для любых изменений, которые вы хотите внести обдуманно, а не на лету, правьте файл. Для модов только для сервера это и единственный вариант.
- Корректно остановите сервер и дайте миру сохраниться.
- Откройте
BepInEx/config/<plugin GUID>.cfgна сервере. - Измените значение после
=. Имя ключа, секцию и формат сохраняйте точно как написано. - Запустите сервер и найдите в его консоли строку
Loadingэтого мода.
Сначала остановить сервер важнее, чем кажется. BepInEx держит каждую конфигурацию в памяти и перезаписывает файл целиком, когда значение устанавливается или мод сохраняется. Если вы отредактируете файл работающего сервера, а затем что-то на сервере установит значение (правка администратора через F1, мод, сохраняющий своё состояние), копия в памяти перезапишет вашу правку. Некоторые моды следят за своим файлом и перечитывают его при сохранении, так что для такого мода правка на ходу безопасна; если мод не говорит об этом прямо, считайте, что не следит.
То же относится к вашему собственному ПК. Если править .cfg в текстовом редакторе при запущенной игре, а затем зайти в этот мод через F1, ваша текстовая правка может незаметно пропасть. За одну сессию пользуйтесь чем-то одним.
Есть и третий способ, через менеджеры модов. r2modman и Gale включают редактор конфигов, который открывает файлы профиля без поиска папки; это удобно для клиентских настроек и бесполезно для сервера, чьи файлы лежат на сервере. На RE:NODE папка BepInEx/config сервера открыта в файловом менеджере панели, который правит файлы .cfg в браузере с подсветкой синтаксиса, так что цикл "остановить - править - запустить" не требует скачивания.
Пример: настройка сервера для группы#
Группа из шести человек хочет более щедрый переносимый вес и более медленный таймер роста культур, используя один мод с ServerSync и один контентный мод на Jotunn. Аккуратный порядок:
- Задайте базовые значения в файлах. При остановленном сервере отредактируйте
.cfgобоих модов на сервере до согласованных значений. Убедитесь, что в моде с ServerSync стоитLock Configuration = On. - Запустите и проверьте. Зайдите обычным игроком, откройте F1 и убедитесь, что синхронизируемые настройки показывают значения сервера и недоступны для правки. Если их можно править, вы администратор или блокировка выключена.
- При необходимости подстройте на лету. Один администратор правит значения в F1 во время первой сессии, пока группа играет. Все сразу видят изменение.
- Зафиксируйте результат. После сессии скачайте
BepInEx/configсервера и сохраните вместе с backup мира. Запишите изменившиеся значения в список модов группы. - При необходимости поставьте клиентские значения по умолчанию. Локальные настройки, которые должны совпадать (например, общая раскладка меток на карте), попадают на клиентскую сторону через экспортированный профиль или сборку с папкой config.
Типичная ошибка - обратная: каждый игрок правит свой F1, на сервере ничего не задано, и через несколько недель группа обнаруживает, что синхронизировалась лишь половина настроек.
Устранение неполадок#
F1 ничего не делает. Мод не загружен, или клавишу занял другой мод. Найдите в BepInEx/LogOutput.log клиента строку Loading с названием ConfigurationManager; если она есть, измените горячую клавишу в его собственном конфиге.
Настроек мода нет в списке. У мода нет настроек, он использует отдельный файл вроде YAML или не установлен на вашем клиенте. Моды, хранящие конфигурацию в YAML, часто показывают в F1 лишь несколько переключателей.
Настройки неактивны. Они синхронизируются и заблокированы сервером, а вы не администратор. Попросите администратора или отредактируйте файл сервера.
Моё изменение сбросилось, когда я зашёл на сервер. Настройка синхронизируется, и значение сервера заменило ваше на время сессии.
Изменение администратора в F1 откатилось после перезапуска. Мод применил его в памяти, но не сохраняет правки администратора, либо файл сервера заменили из backup или при деплое. Задайте значение в файле сервера.
Окно закрывает экран, или текст мелкий. Форки различаются; у большинства есть настройки размера окна или масштаба шрифта в собственной секции конфигурации. Ищите под ConfigurationManager в самом окне.
Если похоже, что мод не загружается, а не что настройка не применяется, начинайте с лога - его разбирает статья чтение логов BepInEx.
FAQ#
Нужен ли ConfigurationManager на сервере?
Нет. У выделенного сервера нет ни экрана, ни ввода, поэтому нечем рисовать окно. Устанавливайте его только на клиентах. Администраторы правят синхронизируемые настройки со своего клиента, а всё остальное на сервере правится в файлах сервера.
Является ли ConfigurationManager читом, если у других игроков его нет?
Нет. Он лишь правит настройки, которые уже есть на вашем клиенте. Синхронизируемые заблокированные настройки он не может переопределить поверх сервера, а локальные настройки любой может изменить так же в текстовом редакторе.
Почему я не нахожу настройку, о которой говорил владелец сервера?
Либо она принадлежит моду, работающему только на сервере, и поэтому никогда не появляется в вашем окне, либо скрыта за Show advanced. Попробуйте поле поиска при включённых расширенных настройках.
Применяются ли изменения в игре для всех на сервере?
Только если настройка синхронизируется, а тот, кто её меняет, есть в списке администраторов сервера. Любая другая правка в F1 влияет лишь на игру этого игрока.
Можно ли править конфиги из главного меню?
Да. Окно открывается и в главном меню, и в игре. Настройки, которые читаются при запуске, вступают в силу только после перезапуска игры, где бы вы их ни изменили.


