RE:NODE

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

Сервер The Forest: перенос сохранений и моды

Как переносить сохранения The Forest между ПК и выделенным сервером, управлять пятью слотами, делать снимки и откаты миров и безопасно запускать моды ModAPI на сервере.

0 прочтений

Сохранение The Forest - это папка с именем от Slot1 до Slot5, и перенос мира между ПК и выделенным сервером сводится к копированию содержимого этой папки в слот с тем же номером на другой стороне, после чего конфиг направляется на него через slot и initType Continue. Переносятся и одиночные, и мультиплеерные сохранения. Сработает ли это, решают две вещи: у сервера должен быть токен игрового сервера Steam в serverSteamAccount, иначе он вообще никогда не запишет сохранение, а на время копирования сервер должен быть остановлен, иначе следующее автосохранение перезапишет то, что вы загрузили. Моды - отдельная и более хрупкая история: официальной поддержки модов у The Forest нет, а путь сообщества - ModAPI, который патчит файлы сервера и должен применяться заново после каждого обновления. В этом руководстве разобраны слоты, все направления переноса мира, снимки и откаты, а также как запускать моды, не потеряв мир.

Установка, полный Server.cfg, порты и админские команды описаны в руководстве по выделенному серверу The Forest. Эта статья - о самом мире.

Как The Forest хранит мир#

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

На ПК игрока сохранения лежат в папке профиля игры:

code
%USERPROFILE%\AppData\LocalLow\SKS\TheForest\<SteamID64>\  SinglePlayer\Slot1 ... Slot5  Multiplayer\Slot1 ... Slot5

В SinglePlayer - одиночные игры. В Multiplayer - игры, которые этот игрок хостил. Мир, в который вы только заходили гостем, не является полным миром, и в этом процессе ему не место.

На выделенном сервере сохранения лежат там, куда указывает saveFolderPath или аргумент -savefolderpath, с папкой Multiplayer и теми же папками Slot внутри. Если в Windows оставить значение по умолчанию, это будет внутри папки профиля самого сервера, в SKS\TheForestDedicatedServer. Большинство хостинговых конфигураций задают явный путь рядом с установкой. Если не уверены, куда пишет ваш сервер, посмотрите -savefolderpath в команде запуска и лог в момент сохранения - именно из-за догадок люди загружают мир в папку, которую сервер никогда не читает.

Ключ конфигаЧто определяет
slotКакой слот, от 1 до 5, сервер загружает и сохраняет
initTypeContinue загружает слот; New при каждом запуске генерирует в нём новый мир
saveFolderPathКорневая папка сохранений сервера
serverAutoSaveIntervalМинуты между автосохранениями, минимум 15
serverSteamAccountТокен игрового сервера. Без него ничего не сохраняется
resetHolesModeУбирает все прорезанные в постройках проёмы при загрузке сохранения

Перенос мира с ПК на сервер#

Переносятся и одиночные, и захощенные мультиплеерные сохранения. Порядок действий:

  1. Закройте игру на ПК, чтобы локальное сохранение было полным.
  2. Найдите слот. В папке SinglePlayer или Multiplayer нужный слот - тот, который вы загружаете в игре: номера совпадают.
  3. Остановите сервер. Это не по желанию. Работающий сервер запишет в слот свой мир при следующем автосохранении и при выключении.
  4. Сделайте бэкап целевого слота сервера, если в нём что-то есть, даже если вам кажется, что этот мир не нужен.
  5. Скопируйте содержимое локального SlotN в Multiplayer/SlotN на сервере. Именно содержимое, а не папку внутри папки: после копирования файлы сохранения должны лежать прямо в папке слота сервера.
  6. Поставьте `slot` на этот номер, а `initType` в `Continue` в Server.cfg и проверьте, что ни один аргумент командной строки не переопределяет эти значения.
  7. Запустите сервер и следите в логе за загрузкой мира. Зайдите и осмотритесь, прежде чем объявлять, что всё получилось.

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

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

Перенос мира с сервера на ПК#

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

  1. Выполните /save в игре как админ или чисто остановите сервер, чтобы слот был актуальным.
  2. Скачайте содержимое Multiplayer/SlotN с сервера.
  3. На ПК положите его в Multiplayer\SlotN в папке со своим SteamID64, предварительно сохранив то, что там было.
  4. Запустите мультиплеерную игру в качестве хоста и загрузите этот слот.

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

Слоты как снимки#

Пять слотов на сервере полезнее, чем пять миров. При осознанном использовании это точки сохранения.

Админская команда /save с номером слота записывает текущий мир в этот слот, не переключаясь на него. Перед рискованным моментом - вылазкой в пещеры, большой перестройкой базы, проверкой мода - админ вводит:

code
/save 5

Живой мир продолжается в своём слоте, а в слоте 5 теперь копия этого момента. Если вылазка пойдёт плохо, остановите сервер, поставьте slot 5, запустите - и группа вернулась туда, где была. Потом скопируйте этот слот обратно в папку основного слота, если хотите и дальше пользоваться прежним номером.

перед рискомкопия для модовкаждую ночьскачатьоткатСлот 5снимок /save 5Слот 4тестовая копия с модамиБэкап вне серверапо расписаниюВаш ПКлокальный MultiplayerСлот 1живой мир
Слоты The Forest как точки сохранения

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

Автосохранения, чистые остановки и откат#

Сервер сохраняет мир по таймеру - каждые serverAutoSaveInterval минут, но не чаще чем раз в пятнадцать, - при чистом выключении и когда админ вводит /save. Когда процесс убивают, он не сохраняет. В худшем случае на настройках по умолчанию теряется полчаса игры; на минимуме - пятнадцать минут.

  • Выполняйте `/save` перед всем, о чём можете пожалеть, включая перезапуск на стороне хостинга.
  • Останавливайте чисто. /shutdown или остановка в панели. Избегайте команды чата /restart: официальная вики описывает её как сброс сохранения, и сообщений о потерянных мирах достаточно, чтобы воспринимать это буквально.
  • Автосохранение - не бэкап. Оно перезаписывает тот же слот. Мир, сохранённый после того, как что-то пошло не так, заменяет хороший.

Откат - это замена содержимого слота более ранней копией при остановленном сервере. Работает это только если более ранняя копия есть где-то кроме самого слота. Порядок, который это гарантирует: копия папки сохранений по расписанию, хранящаяся вне сервера, ручная копия перед обновлениями и модами и одно пробное восстановление, чтобы знать, что процедура работает. Почему смысл именно в пробном восстановлении, объясняет статья бэкапы, которые действительно восстанавливаются, а статья файлы сохранений игровых серверов ставит устройство The Forest рядом с другими играми.

На RE:NODE бэкапы делаются вручную или по расписанию, хранятся вне машины, которую защищают, скачиваются и восстанавливаются одной кнопкой. Запись в Schedules может в тихий час делать ночной бэкап, а затем перезапуск как задачи по порядку. Кнопка Restart отправляет чистую остановку, а не убивает процесс, так что мир сохраняется по пути.

Как сохранить старый мир в форме#

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

  • `treeRegrowMode on` восстанавливает часть срубленных деревьев, пока игроки спят, чтобы окрестности базы не превратились в пустошь.
  • `resetHolesMode on` на один перезапуск убирает все проёмы, прорезанные в постройках, - включая каждую дверь и каждое окно, которые игроки прорезали намеренно. Это грубый инструмент для сохранения, которое стало медленно загружаться. Сначала сделайте снимок в другой слот, включите, запустите, проверьте, выключите.
  • `allowBuildingDestruction` решает, могут ли каннибалы ломать постройки. Уже разрушенное он не чинит.

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

Моды на сервере The Forest#

Официальной поддержки модов нет, мастерской тоже нет. Инструмент сообщества - ModAPI, где выделенный сервер The Forest значится отдельной целью. Работает он как патчер: вы указываете ему копию файлов игры или сервера, выбираете моды из его каталога, и он собирает изменённые сборки игры с этими модами. Пропатченные файлы заменяют оригинальные.

Правила, вытекающие из такого устройства:

  • У сервера и у каждого клиента должны быть одни и те же моды одних и тех же версий. Геймплейные моды, стоящие только на одной стороне, не дают подключиться или вызывают рассинхрон.
  • Не у каждого мода есть серверная сборка. Проверяйте поддержку выделенного сервера у каждого мода, а не рассчитывайте, что набор заработает.
  • Обновления отменяют патч. app_update восстанавливает оригинальные файлы. После любого обновления сервера применяйте моды заново до того, как зайдут игроки.
  • `allowCheats off` моды не останавливает. Он ограничивает только встроенную отладочную консоль.

На хостинге, где интерфейс ModAPI не запустить, на практике ModAPI запускают на ПК с Windows против локальной копии файлов выделенного сервера - установленной через SteamCMD из app id 556450, как в статье SteamCMD простыми словами, - а затем загружают пропатченные файлы на сервер поверх оригинальных. Сохраните и непропатченные оригиналы, чтобы вернуться к ванилле одним копированием. Если ваш сервер работает на Linux, стоит прочитать статью Wine и Proton для серверов только под Windows: сервер и там остаётся сборкой для Windows, и пропатченные файлы - те же файлы Windows.

Порядок смены модов, при котором мир не теряется

  1. Сделайте снимок живого мира через /save в запасной слот и бэкап вне сервера.
  2. Остановите сервер.
  3. Сделайте бэкап текущих файлов игры на сервере - папок, которые трогает ModAPI.
  4. Загрузите пропатченные файлы.
  5. Направьте сервер на тестовый слот, запустите и зайдите с соответствующими клиентскими модами.
  6. Играйте достаточно долго, чтобы задействовать то, что меняет мод: строительство, бой, сохранение и перезагрузку.
  7. Если всё хорошо, верните slot на живой мир. Если нет, восстановите оригинальные файлы игры - с миром ничего не случилось.

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

Решение проблем#

Сервер загрузил новый мир вместо моего. initType стоит в New, slot указывает на другой номер, или конфиг переопределяет аргумент командной строки. Загруженные файлы по-прежнему в своей папке; исправьте настройку и перезапустите.

Загрузка ничего не дала, загрузился старый мир. Файлы попали в папку, которую сервер не читает: не тот saveFolderPath, не тот слот или на одну папку глубже. Посмотрите в логе путь, куда он сохраняет.

Мир загружается, но прогресс пропадает после перезапуска. serverSteamAccount пуст, и сервер ни разу не сохранился. Задайте токен.

В перенесённом мире игроки появляются с пустым инвентарём. Данные игроков перенеслись не полностью. После некоторых переносов это ожидаемо; сундук с припасами выручает в первую сессию.

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

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

FAQ#

Можно ли перенести одиночный мир The Forest на выделенный сервер?

Да. Скопируйте содержимое слота из папки SinglePlayer в папку слота Multiplayer на сервере, пока сервер остановлен, затем задайте slot и initType Continue. Захощенные мультиплеерные сохранения переносятся так же.

Почему мой сервер никогда не сохраняется?

Строка serverSteamAccount пуста. Сервер The Forest без токена входа игрового сервера работает как обычно и ничего не пишет. Задайте токен и убедитесь, что сохранение появилось.

Как сделать бэкап мира, не останавливая сервер?

Пусть админ выполнит /save с номером запасного слота, чтобы сделать снимок мира в этот слот, а затем скопируйте этот слот. Для бэкапа вне сервера согласованность копии обеспечивают чистая остановка или свежий /save перед копированием.

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

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

Теряются ли моды при обновлении сервера?

Да. ModAPI патчит файлы игры, а обновление заменяет их оригиналами. Применяйте моды заново после каждого обновления, предварительно сделав бэкап.

Сколько миров может хранить один сервер The Forest?

Пять, по одному на слот. Одновременно работает только слот, указанный в slot; остальные остаются нетронутыми, пока вы не переключитесь.


Комментарии

Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.

0/2000