RE:NODE

Мод Upgrade World для Valheim: новый контент в старых мирах

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


Upgrade World от JereKuusela - это мод, который добавляет контент новых обновлений в те части мира Valheim, которые вы уже исследовали. Он добавляет консольные команды администратора: сбрасывать зоны, чтобы они перегенерировались, помещать новые подземелья и лагеря в уже сгенерированную землю и переключать старый мир на новую раскладку биомов. На выделенном сервере мод ставится на сервер и в игру самого администратора: вы вводите upgrade <operation>, читаете предпросмотр, вводите start, а затем удаляете мод. Перед каждым запуском делайте backup: сброшенная зона теряет всё, что в ней было, а защита баз у мода хорошая, но не идеальная.

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

Что делает Upgrade World и почему этого не умеет ваниль#

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

В ванильном Valheim нет команды, отменяющей генерацию. Upgrade World закрывает этот пробел операциями трёх видов:

  • Сброс зон. Сброшенная зона очищается и при следующем посещении заново генерируется из сида текущим генератором. Так исследованная северная заглушка превращается в Deep North.
  • Добавление локаций. Новые локации - лагерь торговца, подземелье, пещера - размещаются в уже существующих зонах без их сброса.
  • Версия генерации мира. Раскладку биомов мира, созданного до Mistlands, можно переключить на новую либо вернуть старую.

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

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

Когда его использовать, а когда нет#

Upgrade World - подходящий инструмент, когда у группы есть мир, который стоит сохранить, и нужен конкретный новый контент рядом с ним. Типичные случаи:

СитуацияПодходящая операция
Исследовали пустой север до 1.0upgrade deepnorth
Заплывали в Ashlands-заглушку до 2024 годаupgrade ashlands
Нет лагеря и подземелий Hildir в нанесённой на карту землеupgrade hildir
Нет хижины Bog Witch ни в одном исследованном болотеupgrade bogwitch
Горы нанесены на карту до Frost Cavesupgrade mountain_caves
Равнины без смоляных ямupgrade tarpits
Старые горные сундуки без семян лукаupgrade onions

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

К двум операциям нужно относиться особенно осторожно. mistlands_worldgen переключает старый мир на распределение биомов эпохи Mistlands: внешние области меняются, области дальше 5900 метров от центра сбрасываются, а реки могут сместиться и разрушить базы. legacy_worldgen и hh_worldgen работают в обратную сторону. Любое изменение генерации мира - серьёзное решение для всей группы, а не тихое дело администратора на один вечер.

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

Upgrade World - плагин BepInEx, опубликованный на Thunderstore. Страница мода требует его и на сервере, и на клиенте администратора - в игре того, кто будет вводить команды. Остальным игрокам он не нужен.

  1. Проверьте версию. На странице Thunderstore указаны версия мода и обязательные зависимости. Убедитесь, что скачиваемый релиз поддерживает версию игры, запущенную на вашем сервере; после крупного патча дождитесь обновления, а не ставьте старую версию принудительно.
  2. Установите BepInEx на сервер, если его там ещё нет. BepInExPack для Valheim распаковывается в корень сервера и меняет команду запуска. Полная установка описана в статье моды Valheim с BepInEx на сервере.
  3. Положите `.dll` мода в `BepInEx/plugins` на сервере вместе с зависимостями, перечисленными на его странице. Загружайте по SFTP или через файловый менеджер при остановленном сервере.
  4. Установите ту же версию в свою игру, обычно через r2modman или Thunderstore Mod Manager, чтобы клиент администратора совпадал с сервером.
  5. Запустите сервер один раз. Файл конфигурации появится в BepInEx/config/upgrade_world.cfg.
  6. Включите консоль. В Steam добавьте -console в параметры запуска Valheim. В игре консоль открывается на F5.
  7. Убедитесь, что вы администратор. Ваш ID должен быть в adminlist.txt на сервере. Форматы ID, которые с 1.0 снова изменились, показаны в статье списки администраторов, банов и разрешённых игроков.

По умолчанию команды мода может выполнять любой администратор. Если список администраторов длинный, используйте в конфигурации параметр root users, чтобы ограничить их конкретными ID; -1 обозначает сам выделенный сервер.

Мод также добавляет на миникарту клиента администратора координаты и индексы зон, что удобно, когда нужно понять, куда попадёт операция.

Важные команды#

Каждая команда печатает предпросмотр того, что собирается сделать, и ждёт. Ничего не меняется, пока вы не введёте start. Tab дополняет названия команд и операций.

code
upgrade deepnorth        # preview: which zones would be resetstart                    # run ituw_check                 # list queued operationsstop                     # cancel what is queued or running

Сокращения upgrade покрывают типичные случаи:

ОперацияЧто делает
deepnorth, ashlands, mistlandsПерегенерирует этот биом и ближайшую воду
hildirДобавляет новые локации Hildir
bogwitchДобавляет возможные места лагеря Bog Witch
mountain_cavesДобавляет Frost Caves в горы
tarpitsДобавляет смоляные ямы на равнины
bearcaveДобавляет пещеру медведей и другие локации Call to Arms
onionsПеребрасывает добычу в нетронутых горных сундуках

Под капотом эти сокращения собраны из общих команд, которыми можно пользоваться напрямую:

  • zones_reset очищает зоны, чтобы они перегенерировались при следующем посещении. Заодно он уменьшает файл мира, поскольку сброшенная зона не содержит данных, пока не сгенерирована снова.
  • locations_add [ids] помещает локации в исследованные области, ничего больше не сбрасывая.
  • locations_reset [ids] удаляет и заново размещает локации, давая подземельям со случайной планировкой новую планировку.
  • locations_list [ids] и biomes_count сообщают, что существует, ничего не меняя.
  • chests_reset заменяет содержимое сундуков, с настройками для уже обчищенных сундуков и конкретных предметов.
  • objects_count [ids] и objects_remove [ids] находят и удаляют объекты. Перед удалением сначала посчитайте.
  • world_clean запускает все процедуры clean_*, исправляющие повреждённые данные.

Большинство команд принимает фильтры. Вот те, что пригодятся:

code
zones_reset biomes=Mountain min=4000zones_reset pos=1200,-3400 max=500locations_add biomes=Swamp

Первая строка сбрасывает все горные зоны дальше 4 км от центра; вторая сбрасывает всё в пределах 500 метров от точки; третья добавляет недостающие локации в исследованные болота. Что означает каждый фильтр:

  • biomes= ограничивает операцию перечисленными биомами: Meadows, BlackForest, Swamp, Mountain, Plains, Mistlands, AshLands, DeepNorth, Ocean.
  • min= и max= задают границы расстояния от центра или от pos=, если он указан.
  • pos=x,z центрирует операцию на позиции; zone=x,z - на индексе зоны.
  • safeZones= задаёт размер защиты баз; 0 или force отключает её.
  • noEdges включает только зоны, все углы которых находятся в перечисленных биомах, чтобы не задеть соседний биом.

Защита баз и как она подводит#

Upgrade World определяет базы и пропускает зоны вокруг них. По умолчанию он считает базой построенные игроками сооружения с эффектом базы - детали, не дающие монстрам появляться рядом, например верстаки и костры, - а также защищает зоны, где лежит надгробие. Каждое найденное сооружение защищает свою зону и одно кольцо соседних, то есть блок зон 3 на 3, примерно 192 метра в стороне.

Эта настройка по умолчанию осторожная: один костёр или верстак защищает большую площадь. И именно здесь всё идёт не так:

  • Постройки без элемента базы не защищены. Мост, дорога, стена вокруг поля, причал или портальный сарай без верстака и костра поблизости могут быть стёрты.
  • Крупные базы могут выходить за защищённый блок. У базы шириной 300 метров с одним верстаком посередине края оказываются за пределами блока 3 на 3.
  • Работа с ландшафтом тоже в зоне. Выровненная площадка или канал в незащищённой зоне перегенерируются как естественная земля.
  • Порталы в сбрасываемой области исчезают, а порталам в других местах может понадобиться перезаход, чтобы восстановить связь.

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

Безопасная процедура на работающем сервере#

Именно в таком порядке мир остаётся восстановимым.

  1. Договоритесь о времени с группой и попросите всех остальных выйти. Зоны принадлежат тому, кто ближе всех, и чем меньше движущихся частей, тем меньше сюрпризов.
  2. Сделайте backup и скопируйте его за пределы сервера. На RE:NODE запустите backup на вкладке Backups и заблокируйте его, чтобы плановая ротация не могла его удалить. Скачайте его тоже. Почему копии рядом с миром недостаточно, объясняет статья резервные копии Valheim и повреждение мира.
  3. Если операция крупная, сначала проверьте на копии. Скопируйте мир в папку worlds_local своей игры, откройте его в одиночной игре с теми же модами и выполните те же команды. С версии 1.0 мир хранится в новом блочном формате; копируйте всё, что относится к миру, а не один файл.
  4. Установите мод на сервер и на клиент, перезапустите сервер и зайдите.
  5. Запустите предпросмотр, прочитайте количество зон, затем start. Дождитесь завершения.
  6. Проверьте каждую базу. Облетите или обойдите края. Если чего-то не хватает, остановите сервер и восстановите backup, затем повторите с большим safeZones или более узкими фильтрами.
  7. Сохраните и перезапустите корректно, чтобы результат оказался на диске.
  8. Удалите мод с сервера и со своего клиента. Это рекомендует README, и так никто не выполнит команду по случайности позже.

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

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

Команда не распознаётся. Мод не загружен на вашем клиенте, либо версии клиента и сервера различаются. Проверьте BepInEx/LogOutput.log с обеих сторон: там должна быть строка о загрузке плагина.

"Not allowed" или ничего не происходит. Вы не администратор, либо задан параметр root users, где нет вашего ID. Сравните ID, который сервер печатает при вашем входе, с обоими списками.

Предпросмотр показывает ноль зон. Фильтры исключают всё, либо защита баз покрывает всю область. Выполните biomes_count, чтобы увидеть, что, по мнению мода, там есть, затем ослабляйте фильтры по одному.

База пострадала. Восстановите backup. Не пытайтесь достраивать поверх наполовину сброшенной области: данные ландшафта и объектов старой и новой генерации могут плохо накладываться.

Порталы перестали соединяться. Перезайдите. Если портал стоял в сброшенной зоне, его больше нет и его нужно построить заново.

Новый контент не появился. Сброшенные зоны перегенерируются только при посещении. Доплывите и посмотрите. Если его по-прежнему нет, возможно, сид просто не планирует его поблизости; locations_list показывает, где игра разместила локации.

FAQ#

Нужно ли игрокам устанавливать Upgrade World, чтобы зайти?

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

Удалит ли Upgrade World мою базу?

Нет, если определение баз её распознаёт и она помещается в защищённые зоны. По умолчанию мод защищает блок зон 3 на 3 вокруг каждого сооружения базы. Всё за его пределами или без верстака и костра поблизости может быть сброшено. Сначала сделайте backup.

Можно ли с его помощью добавить Deep North в старый мир?

Да. upgrade deepnorth перегенерирует северный биом и ближайшую воду генератором 1.0. Любая постройка в этой области, которую не заметит определение баз, будет потеряна, так что проверьте до запуска.

Работает ли он на сервере с crossplay?

Команды выполняются на сервере и на ПК администратора, так что crossplay на работу не влияет. Консольные игроки не могут ставить моды, поэтому администратор должен играть на ПК. Игроки Xbox заходят как обычно, когда работа мода закончена.

Безопасно ли оставлять его установленным?

Пока администратор не выполнит команду, он ничего не делает, но редактор мира на рабочем сервере провоцирует ошибки. Удалите его, когда закончите, и установите снова при следующей необходимости.