RE:NODE

PlantEverything на сервере Valheim: установка и настройка

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


PlantEverything от Advize позволяет сажать то, что в ванильном Valheim можно только найти: кусты ягод, грибы, чертополох, одуванчик и другие собираемые растения, а также саженцы деревьев, семян которых игра не даёт. На выделенном сервере мод кладётся в BepInEx/plugins и на сервер, и на всех клиентов, его настройки передаются с сервера через ServerSync, а при включённом LockConfiguration менять их могут только администраторы. Решение, которое действительно важно, - не установка, занимающая две минуты, а то, сколько собирательства группа хочет сохранить: сервер, где у каждого игрока у двери растёт малиновая изгородь, играется совсем не так, как задумано игрой с её дефицитом.

Что PlantEverything позволяет сажать#

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

PlantEverything добавляет недостающее. Как указано на странице мода для текущей линии 1.21:

ГруппаЧто можно разместитьПримечания
Ягодные кустыМалина, черника, морошка, брусникаОтрастают по таймеру, как дикие кусты
ГрибыКрасный, жёлтый, синийЖёлтые и синие обычно находят в пещерах и склепах
Прочие собираемые растенияЧертополох, одуванчик, дымовые грибы, папоротник-орлякИнгредиенты для медовухи и еды
СаженцыAncient, Ygga, осенняя берёза, ashwoodДеревья без ванильных семян
Дополнительная флорамалый бук, ель, мёртвая ель, кусты, кустарники, лозы, ashvine, папоротник AshlandsТолько при EnableMiscFlora
МусорВетка, камень, кременьТолько при EnableMiscFlora
Любой префабВсё, что вы перечислите, например Pickable_TinТолько при EnableExtraResources

Мод также позволяет выращивать культуры в любом биоме и может применять свои настройки роста и размещения к культурам и саженцам, добавленным другими модами. Последнее легко упустить: если группа уже использует мод на фермерство или еду, PlantEverything может изменить поведение и его культур.

Список меняется от версии к версии: Iron Gate добавляет растения, а Advize следует за ней. Перед тем как обещать группе конкретное растение, посмотрите страницу мода для вашей версии - например, брусника и записи для Ashlands есть только в версиях, вышедших после биомов, где они растут.

Установка на сервер и на клиенты#

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

  1. Убедитесь, что BepInEx установлен на сервере и работает: в корне сервера есть папка BepInEx, а используется стартовый скрипт BepInEx. Этот шаг описан в материале моды Valheim с BepInEx на сервере.
  2. Скачайте пакет с Thunderstore (на его странице указана одна обязательная зависимость; поставьте и её).
  3. Остановите сервер, затем положите Advize_PlantEverything.dll в BepInEx/plugins.
  4. Запустите сервер один раз, чтобы он создал BepInEx/config/advize.PlantEverything.cfg и папку BepInEx/config/PlantEverything/, затем снова остановите его перед редактированием.
  5. Добавьте ту же версию в профиль менеджера модов каждого игрока. Проще всего использовать один общий профиль r2modman, как описано в материале Thunderstore и r2modman для групп.

Получившиеся файлы:

code
BepInEx/  plugins/Advize_PlantEverything.dll  config/advize.PlantEverything.cfg  config/PlantEverything/PlantEverything_ExtraResources.cfg  config/PlantEverything/  (localisation JSON files)

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

Игроки на Xbox не могут устанавливать моды, поэтому на сервере с кроссплеем и PlantEverything получается разделение: игроки на ПК могут сажать, а консольные - собирать посаженное, но не могут размещать ничего нового. Для смешанной группы это приемлемо, если все об этом знают.

Файл конфигурации и важные настройки#

Всё находится в advize.PlantEverything.cfg. Файл длинный и хорошо прокомментированный, и именно он - источник значений по умолчанию: страница мода отсылает к листингу на Nexus за полной конфигурацией по умолчанию, а не повторяет её, поэтому после первого запуска читайте комментарии в своём файле, а не списки, скопированные из старой версии. Настройки, которые владелец сервера действительно трогает:

НастройкаРазделЧто она задаёт
LockConfigurationGeneralПри true менять синхронизируемые настройки могут только администраторы сервера
EnableMiscFloraGeneralДобавляет дополнительную флору и элементы мусора
EnableExtraResourcesGeneralВключает файл дополнительных ресурсов для произвольных префабов
DisabledResourceNamesGeneralНазвания префабов через запятую, которые нужно убрать из меню
PlaceAnywhereDifficultyСнимает ограничения биома и поверхности при размещении
ShowPickableSpawnersсм. свой файлПоказывает спавнеры собираемых растений

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

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

BepInEx/config/advize.PlantEverything.cfg (excerpt)
## Illustrative values - copy names from your own file's comments[General]LockConfiguration = trueEnableMiscFlora = falseEnableExtraResources = falseDisabledResourceNames = Pickable_Mushroom_blue,Pickable_Mushroom_yellow[Difficulty]PlaceAnywhere = false

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

Как ServerSync обрабатывает настройки#

PlantEverything использует ServerSync - библиотеку, которую включают многие моды Valheim, чтобы передавать конфигурацию с сервера клиентам. Правила на его странице конкретны, и они объясняют большинство жалоб вида "мои изменения ничего не дали":

  • Синхронизируемые настройки приходят с сервера. Когда игрок подключается, значения сервера заменяют его собственные на время сессии.
  • Файл клиента не меняется. Синхронизированные значения хранятся в памяти. Игрок, открывший свой .cfg, увидит старые числа, что похоже на баг, но им не является.
  • Раздел General не синхронизируется, кроме EnableMiscFlora. LockConfiguration, EnableExtraResources и DisabledResourceNames остаются у каждой машины свои. На практике это значит, что файл дополнительных ресурсов и список отключённых растений должны совпадать у всех клиентов и на сервере, поэтому поставляйте их в общем профиле.
  • При `LockConfiguration = true` менять синхронизируемые настройки в игре (например, через меню Configuration Manager) могут только администраторы. Без блокировки любой владелец мода смог бы менять значения для всех подключённых.

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

Редактируйте файл сервера при остановленном сервере либо пользуйтесь меню в игре от имени администратора. Если править файл на работающем сервере, одни моды подхватывают изменение через слежение за файлом, а другие - только при перезапуске; предсказуемее перезапустить сервер.

Баланс на общем мире#

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

  • Собирательство исчезает. Походы за малиной и черникой - часть темпа начала игры, а морошка - повод рано посетить Равнины. Когда кусты растут дома, никто больше не уходит из базы за едой.
  • Ингредиенты для медовухи становятся тривиальными. Чертополох, одуванчик и грибы из пещер и склепов ограничивают варку медовухи. Саженые версии превращают медовуху на сопротивление в вопрос грядки, а не экспедиции.
  • Редкие находки перестают быть редкими. Жёлтые грибы, обычно из склепов Болота, и синие, обычно из пещер, - те, что большинство групп отключает, чтобы сохранить повод спускаться под землю.
  • Деревья меняют ландшафт. Саженцы Ancient и Ygga позволяют выращивать деревья Болота и Туманных земель где угодно, что меняет ценность перетаскивания древесины домой.

Правильной настройки нет, есть только согласованная. Группы, которые играют спокойно или уже используют модификаторы мира, чтобы повысить добычу ресурсов, часто включают всё. Группы, которым нравится структура экспедиций, оставляют сажаемыми ягоды и одуванчики, а грибы и записи для Туманных земель и Ashlands отключают. Решайте до того, как первый игрок построит ферму, а не после: удалять то, что игроки уже посадили, воспринимается как наказание.

PlaceAnywhere требует особой осторожности. Он снимает ограничения биома и поверхности, действующие в остальных случаях, так что всё можно сажать в любом биоме. На спокойном сервере это нормально. В мире, где группа дорожит прогрессией, он отменяет одну из главных причин селиться рядом с Равнинами или Туманными землями.

Производительность и цена общего мира#

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

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

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

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

Обновление и удаление мода#

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

Удаление проходит мягче, чем у большинства контентных модов, потому что почти всё, что он размещает, - это собственные префабы игры: малиновый куст, посаженный через PlantEverything, остаётся малиновым кустом. Они, как правило, остаются в мире и после удаления мода. То, что мод определяет сам, например собственная ashvine, без него не существует и не загрузится. Перед удалением сделайте резервную копию мира, уберите мод с сервера и со всех клиентов одновременно и сначала проверьте основные фермы на копии мира. На RE:NODE резервная копия на вкладке Backups перед изменением - самая простая страховка, а для удаления .dll из BepInEx/plugins достаточно файлового менеджера - см. руководство по файловому менеджеру.

Устранение неполадок#

Новые растения не появляются в меню. Убедитесь, что мод загрузился: поищите в BepInEx/LogOutput.log PlantEverything и Could not load. Если он загрузился, проверьте, не указано ли растение в DisabledResourceNames и не равна ли его стоимость 0, а также требует ли запись EnableMiscFlora.

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

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

Игрок без мода не видит ничего странного, но не может сажать. Так и задумано. Собирать он может всё; мод нужен только для размещения.

База стала тормозить после посадочного разгула. Посчитайте, что посажено. Обычная причина - большое поле в оживлённой зоне; решение - перенести его или проредить.

FAQ#

Нужен ли PlantEverything на сервере?

Да, для выделенного сервера. Он должен быть и на сервере, и на каждом клиенте, чтобы настройки сервера синхронизировались игрокам. Клиенты с модом могут размещать ресурсы, даже если его нет на сервере, но тогда ничего не синхронизируется, и каждый игрок следует своему конфигу.

Могут ли игроки на Xbox использовать PlantEverything на сервере с кроссплеем?

Установить его они не могут, а значит, не могут размещать новые растения. Они по-прежнему могут собирать урожай с кустов и подбирать предметы, посаженные другими игроками, потому что это обычные объекты мира.

Как запретить игрокам менять настройки?

Задайте LockConfiguration = true в advize.PlantEverything.cfg на сервере. При включённой блокировке менять синхронизируемые настройки могут только администраторы сервера. Администраторы - это игроки, перечисленные в adminlist.txt.

Может ли PlantEverything сажать руду или другие ресурсы?

При включённом EnableExtraResources в PlantEverything_ExtraResources.cfg можно перечислить любой префаб, а страница мода приводит в качестве примеров собираемые оловянную руду и метеорит. Это мощный переключатель для сервера с прогрессией, поэтому большинство групп оставляют его выключенным.

Исчезнут ли наши фермы, если удалить мод?

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