Cascadia Merge
Рабочие процессы

Моды для сервера Vintage Story: сначала тест на копии

03
День обновления

Обновите моды и настройки, не потеряв мир

Вышла новая версия игры, и вы хотите обновить моды и мир, не потеряв прогресс. Изменение настроек сервера Vintage Story и добавление модов — это два изменения, которые могут помешать загрузке мира, поэтому этот рабочий процесс выполняет их в фиксированном порядке: скопируйте сохранения, измените одну вещь, запустите сервер и прочитайте лог, затем измените следующую вещь. Cascadia Merge выполняет работу с файлами и показывает каждый результат в виде карточки. Вы принимаете каждое решение, и сервер остаётся остановленным, пока меняются файлы. Потратьте время на чтение diff и лога, а не на ввод путей, и запишите версию каждого мода перед изменением, чтобы этот список служил записью дня обновления.

01

Откройте папку данных

Выберите папку данных сервера как рабочую папку для нового чата. Агент перечисляет папку с помощью list_dir, так что вы можете увидеть папки Saves, Backups и Mods до того, как что-либо будет затронуто. На ПК с Windows стандартное расположение — папка VintagestoryData в каталоге AppData\Roaming вашего пользователя, если вы не запускали сервер с другим путём данных.

02

Скопируйте сохранения

При остановленном сервере агент копирует папку Saves в Backups с помощью вашего собственного скрипта резервного копирования. Вы читаете код выхода в карточке, просите второй list_dir папки Backups и подтверждаете, что новая копия действительно существует, прежде чем продолжать.

03

Измените одну вещь

Отредактируйте serverconfig.json или замените один мод, но не оба сразу. Агент показывает diff для изменения настройки, и вы принимаете или отклоняете его в режиме Ask first. Мод, который вы заменяете вручную, помещается в папку Mods как .zip-файл, и за один раунд меняется только один такой файл.

04

Запустите и протестируйте

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

Пример serverconfig.json

serverconfig.json
{
  "ServerName": "Friends World",
  "Port": 42420,
  "MaxClients": 10,
  "Password": null,
  "AllowPvP": false,
  "AdvertiseServer": false
}

Это фрагмент serverconfig.json, а не полный файл, только со значениями-заполнителями. Порт игры — 42420 (TCP), а пустой пароль означает, что пароль не установлен, поэтому добавьте его перед открытием мира для интернета. Редактируйте реальный файл только при остановленном сервере и храните свою копию рядом с папкой Saves.

Управляйте модами сервера Vintage Story за четыре шага

Проверьте, что установлено

Начните с просмотра перед тем, как что-либо менять. Агент использует list_dir и glob для поиска папки Mods внутри папки данных, read_file для открытия modinfo.json каждого мода, находящегося в папке, и write_file для сохранения простого списка имён и версий в вашей рабочей папке. Если вам нужна помощь с модами на размещённом сервере, сначала убедитесь, что можете получить доступ к его папке данных, так как агент может работать только с файлами, которые вы можете открыть. Выведите список. Сравните его с модами ваших игроков, так как серверу и игрокам нужны одинаковые моды и версии, и решите, что обновить. Пока ничего не изменилось, и у вас есть запись о том, что было установлено до обновления, что поможет, если придётся отменить шаг позже.

Сначала скопируйте сохранения

Ваш мир — это один файл .vcdbs в папке Saves, поэтому копируйте эту папку перед каждым обновлением игры, изменением мода и настроек. Сначала остановите сервер. Агент использует copy_file для размещения файла мира в папке Backups, а Shell запускает ваш собственный скрипт резервного копирования и сообщает реальный код выхода в карточке. Копия, которую никогда не восстанавливали, — это лишь догадка, поэтому восстановите её один раз в пустую папку, откройте её и убедитесь, что мир там есть. Только тогда переходите к части работы, которая меняет файлы, имея безопасный путь назад, если изменение пойдёт не так. Вы ничего не удаляете, и сохранение никогда не удаляется без копии. Если в папке несколько миров, скопируйте всю папку Saves, чтобы ни один из них не был пропущен.

Измените одну настройку или мод

Теперь измените одну вещь. Для настройки параметров сервера Vintage Story агент использует edit_file для serverconfig.json и показывает diff в режиме Ask first; чтобы обновить мод, вы вручную помещаете новый .zip в папку Mods, только из официальной базы модов. Если мир не загружается после установки мода, последнее изменение — подозреваемое, и вы можете отменить его, переместив этот файл обратно. Остановитесь на этом. Не добавляйте второй мод, пока не протестирован первый, потому что два изменения одновременно скрывают причину. Plan only может сначала записать шаги, не запуская их, что полезно, когда вам нужен чек-лист для дня обновления, который сможет прочитать и второй администратор.

Запустите сервер и прочитайте лог

Запустите сервер своим скриптом запуска. Shell запускает его и показывает реальный код выхода, а затем grep ищет в логе сервера слова failed и error. Отладка выделенного сервера начинается с этого лога, и карточка перечисляет каждую совпадающую строку, чтобы вы могли прочитать их по порядку. glob находит файлы лога, если вы не уверены, какой из них самый новый. Далее вы подключаетесь из игры и прогуливаетесь по миру. Вы принимаете изменение как завершённое только после того, как лог чист и второй игрок подключился. Если он не чист, вернитесь на шаг назад, прочитайте первую ошибку, а не последнюю, и восстановите копию сохранений, если сам мир повредился.

Cascadia Merge для Windows

Начните с копии ваших сохранений

Скачать Cascadia Merge ↗