RE:NODE

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

Моды Skyrim Together: что синхронизируется

Какие моды работают со Skyrim Together Reborn, а какие ломают кооператив: что мод реально синхронизирует, одинаковый порядок загрузки, bEnableModCheck и проверка списка модов.

0 прочтений

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

Серверная сторона - установка сервера, каждый ключ STServer.ini и админские команды - разобрана в руководстве по серверу Skyrim Together Reborn. Эта статья о том, что происходит на компьютерах игроков, - именно там начинается почти любая проблема с кооперативом.

Что на самом деле синхронизирует Skyrim Together#

Каждый игрок запускает полную однопользовательскую копию Skyrim. Skyrim Together подключается к каждой копии и обменивается через сервер определённым набором состояния: кто где находится, что делает, и часть событий мира. Всё, что вне этого набора, происходит на каждой машине отдельно, а две машины, независимо выполняющие одну и ту же игровую логику, со временем расходятся.

ОбластьСинхронизируется?Примечания
Позиция, анимация и экипировка игрокаДаОснова мода
Бой, урон и магия между игроками и NPCДаВыбор цели у NPC может сбиваться
NPC и существа рядом с игрокамиДаКаждым актёром владеет и управляет один клиент
Основные и побочные квестыДаЧерез лидера группы, см. ниже
Прочие заданияПо желаниюbEnableMiscQuestSync, экспериментально
Опыт боевых навыковДаbEnableXpSync, включено по умолчанию
Время сутокДаЧасами владеет сервер, uTimeScale
Календарная датаПо желаниюbSyncPlayerCalendar
Диалоги и сценыЧастичноУправляются лидером группы
Выброшенные в мире предметыПо желаниюbEnableItemDrops, выключено, потому что роняло серверы
Сундуки в домах игроковПо желаниюbSyncPlayerHomes, выключено по умолчанию
Персонажи, инвентарь и сохраненияНетУ каждого игрока свой файл сохранения

Модель квестов объясняет многие жалобы на «сломанные квесты». Лидер группы фактически хостит мир: прогресс синхронизируется у всех, когда лидер продвигает квест. Отсюда и правила официального руководства по игре: только лидер говорит с квестовыми NPC и подбирает квестовые предметы, лидер первым входит в локацию, на сервер одна группа, и один лидер на всё прохождение, а не на сессию. Остальные участники могут убивать квестовых врагов, зачищать подземелья и решать головоломки, пока лидер рядом.

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

Почему порядок загрузки в кооперативе важнее#

Skyrim обращается к каждому объекту - каждому мечу, NPC, двери и заклинанию - по form ID. Первая часть form ID берётся из позиции плагина, который этот объект определяет, в порядке загрузки. Меч из пятого плагина в вашем списке и тот же меч из шестого плагина в списке друга - для каждого движка это разные числа.

Вот почему «у нас одинаковые моды» недостаточно. Те же моды в другом порядке или те же моды с одним лишним патчем на одной машине дают группу, в которой экипировка, NPC и объекты могут не совпадать, - голые NPC или голые игроки, о которых пишут на страницах с решением проблем, самый заметный симптом, хотя у него бывают и другие причины. Лёгкие плагины (.esl) от этого не спасают: у них свой слот, но их порядок всё равно имеет значение.

Единственная схема, на которую можно положиться, - одинаковые плагины одинаковых версий в одинаковом порядке на каждой машине. И у Skyrim Together есть инструмент, чтобы этого добиваться.

bEnableModCheck и loadorder.txt#

С bEnableModCheck=true в STServer.ini сервер сравнивает loadorder.txt каждого подключающегося игрока с эталонной копией и не пускает тех, у кого список не совпадает. Двухчасовое расследование рассинхрона превращается в отказ на входе.

  1. На компьютере одного из игроков включите в Mod Organizer 2 или Vortex ровно те моды, которые будет использовать группа, и в нужном порядке.
  2. Найдите loadorder.txt этого профиля. В Mod Organizer 2 он лежит в папке профиля; в Vortex используйте Open, затем Open Game Application Data Folder.
  3. Остановите сервер и положите файл в папку Data - с заглавной D - рядом с сервером, чтобы сервер читал Data/loadorder.txt.
  4. Поставьте bEnableModCheck=true, запустите сервер и найдите в консоли строку ModPolicy is active.
config/STServer.ini
[ModPolicy]bAllowMO2=truebAllowSKSE=truebEnableModCheck=true
Data/loadorder.txt
Skyrim.esmUpdate.esmDawnguard.esmHearthFires.esmDragonborn.esmSkyUI_SE.espImmersiveWeapons.esp

Стоит понимать два ограничения. Проверка сравнивает список плагинов, а не файлы внутри них, поэтому два игрока с разными версиями одного .esp её пройдут. А моды вообще без плагина - пакеты текстур, DLL для SKSE, файлы анимаций - в loadorder.txt не попадают и не проверяются. Проверка модов обеспечивает одинаковый порядок загрузки, но не одинаковый набор модов. Версии по-прежнему вопрос дисциплины - для этого и нужны следующие разделы.

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

Категории модов по уровню риска#

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

КатегорияОбычный рискПочему
Текстуры, модели, визуал погоды, ENB или ReShadeНизкийМеняет только то, что рисует один клиент, обмена нет
Моды интерфейса вроде SkyUIНизкийЛокальное отображение, хотя меню, ставящие игру на паузу, ведут себя иначе
Новое оружие, броня, предметыОт низкого до среднегоРаботает при одинаковом порядке загрузки, плагин нужен на каждой машине
Новые NPC и компаньоныСреднийВладение NPC обрабатывается, ИИ компаньонов ненадёжен
Переработки боя, перков и ИИВысокийКаждый клиент считает по-своему; урон и поведение расходятся
Квестовые и сюжетные модыВысокийЛокальные скрипты реагируют на события, которые видел только один клиент
Моды с тяжёлыми скриптами (потребности, выживание, экономика)ВысокийПостоянное локальное состояние скриптов, которое ни с кем не делится
Плагины SKSE, перехватывающие движок, рендер или систему сохраненийВысокийМогут конфликтовать с перехватами самого Skyrim Together
Анимационные фреймворки и патчи поведенияВысокийУ каждого клиента должен быть идентичный сгенерированный результат
Встроенные файлы Creation ClubУдалитьОфициальное руководство настоятельно советует их удалить

Некоторые из них стоит разобрать подробнее.

Визуальные моды

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

Контентные моды: новые предметы, броня и NPC

Они добавляют записи через плагин. При одинаковом порядке загрузки они обычно ведут себя нормально: игрока в модовой броне другие видят в ней, если у них тот же плагин. Без плагина предмет на другой машине вообще не может существовать. Новые NPC работают в том смысле, что Skyrim Together отражает их, как и любого другого актёра, но всё, что они делают через собственные скрипты, остаётся локальным.

Компаньоны - слабое место даже без модов. ИИ компаньона работает на том клиенте, который им владеет, и разработчики советуют распускать компаньонов перед подключением. Группе игроков мод на компаньонов не нужен.

Переработки и моды с тяжёлыми скриптами

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

Плагины SKSE и перехваты движка

Сам SKSE в порядке, и сервер может разрешить или запретить его через bAllowSKSE. Риск - DLL-плагины, которые перехватывают те же функции движка, что и Skyrim Together: рендер, камеру, систему сохранений, ввод. Официальная вики называет несколько плохо загружающихся, в том числе KiLoader, Smoothcam, варианты Alternate Conversation Camera, S.L.A.C.K., Wheeler и Master Occlusion Field, тогда как другие, например Engine Fixes 7 и Skyrim Souls RE Updated, по сообщениям, загружаются с 1.8, хотя ранние версии не загружались. Address Library for SKSE - обязательное требование мода, а не необязательное дополнение.

Моды анимаций

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

Как собрать кооперативный список модов, который не развалится#

Работает скучный подход: начните с чистого Skyrim Together, добавляйте понемногу и проверяйте каждое добавление вдвоём.

  1. Начните с чистого листа. Подключите всю группу к Skyrim Together без модов, с Address Library, удалёнными файлами Creation Club и одинаковой сборкой игры. Сыграйте одну сессию. Теперь каждую следующую проблему можно связать с тем, что вы добавили.
  2. Сначала добавьте визуал. Это безопасно, и игра без риска начинает ощущаться модифицированной.
  3. Добавляйте контент небольшими партиями. По пять плагинов, затем проверка. После каждой партии заново создавайте и раздавайте loadorder.txt.
  4. Избегайте переработок, если группа не готова к риску. Если добавляете одну, добавляйте её отдельно и сыграйте полную сессию, прежде чем добавлять что-то ещё.
  5. Записывайте всё. Название мода, версия, имя файла и ссылка на скачивание - в общем документе. Когда что-то сломается на третьей неделе, по этому списку вы найдёте, что изменилось.

Раздавайте список как пакет, а не как инструкцию. Профиль Mod Organizer 2, скопированный между машинами, или готовая коллекция, которая ставит идентичные файлы, убирают целый класс проблем «а я поставил версию поновее». Менеджеры модов и коллекции не исправят мод, который не синхронизируется, но гарантируют, что у всех хотя бы запущено одно и то же - а правила сортировки, если вам никогда не приходилось о них думать, разобраны в статье порядок загрузки модов.

Проверка любого нового мода вдвоём

ПроверкаЧто выявляет
Оба надевают модовый предмет и смотрят друг на другаОтсутствующие записи, несовпадение порядка загрузки
Один выбрасывает предмет, другой пытается подобратьСинхронизацию предметов, которая не зря выключена по умолчанию
Вместе сражаетесь с группой NPCРасхождения ИИ и боевых переработок
Лидер продвигает стадию квеста, участник проверяет журналСинхронизацию квестов при наличии скриптов мода
Вместе входите в интерьер и выходите из негоПереходы между ячейками - самое частое место вылетов
Оба сохраняются, выходят, загружаются и переподключаютсяСовместимость сохранений с модом

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

Обновления: Skyrim, мод и всё между ними#

Skyrim Together Reborn привязан к конкретной сборке Skyrim Special Edition, сейчас это последняя 1.6.x в Steam или GOG. Когда Bethesda патчит игру, Skyrim Together, SKSE, Address Library и все плагины SKSE должны получить соответствующие обновления, и выходят они не в один день. Обычный итог - группа, где часть игроков обновила Skyrim, и ничего не работает.

  • Попросите группу не запускать Skyrim через Steam в день патча, пока авторы модов не догонят.
  • Обновляйте клиентский мод и сервер вместе. Клиент на одной версии и сервер на другой не общаются.
  • Закрепите версию сервера, а не следите за последним образом, чтобы она не сдвинулась под группой, которая ещё на старом клиенте.
  • Перед любым обновлением сохраните копию рабочего сохранения каждого игрока. Удаление или замена модов может сделать сохранение незагружаемым - официальное руководство предупреждает, что это касается даже удаления встроенного контента Creation Club.

Общий порядок восстановления описан в статье что делать, когда обновление мода всё сломало; для этой игры коротко так: группа откатывается вместе или не откатывается вовсе.

Роль сервера#

Сервер не хранит мир и не запускает моды. Его вклад в стабильность модов - раздел политики и несколько переключателей синхронизации:

КлючРекомендация для группы с модами
bEnableModChecktrue, с Data/loadorder.txt, который контролируете вы
bAllowSKSEtrue, если какому-то моду из списка нужен SKSE, иначе false
bAllowMO2true, если не все пользуются Vortex
bEnableItemDropsОставьте false. Именно выброшенные модовые предметы вызывают большинство вылетов
bSyncPlayerHomesОставьте false, если группе не нужны общие сундуки ценой риска
bEnableMiscQuestSyncОставьте false, пока обычные квесты не работают у вашей группы надёжно

На RE:NODE серверу Skyrim Together выделен его единственный порт, STServer.ini редактируется в браузере, а папку Data можно создать в файловом менеджере, так что замена loadorder.txt - это остановить, загрузить и запустить. Храните текущий loadorder.txt в слоте бэкапа вместе с конфигом: когда новая партия модов пойдёт не так, восстановить прежний файл политики быстрее, чем собирать его заново. Почему такое восстановление стоит один раз отрепетировать, объясняется в статье бэкапы, которые действительно восстанавливаются, а более широкая привычка - в статье как держать модифицированный сервер в чистоте.

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

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

Игрока не пускает с ошибкой политики модов. Его loadorder.txt отличается от серверного. Сравните два файла построчно; обычно виноват один лишний патч-плагин.

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

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

Враги атакуют только одного игрока. Выбор цели в бою сбился. Уйдите из зоны и вернитесь. Боевые переработки делают это чаще.

Игра вылетает при подключении к любому серверу. Прежде чем винить моды: клиенту и серверу нужен процессор с поддержкой AES-NI, потому что от неё зависит сетевая библиотека. Затем проверьте плагины SKSE, перехватывающие движок.

Вылеты начались после обновления в Steam. Skyrim обновился, а мод, SKSE или плагин - нет. Дождитесь обновлений или верните прежнюю сборку игры.

FAQ#

Какие моды официально поддерживает Skyrim Together Reborn?

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

Работают ли моды на текстуры и графику в кооперативе?

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

Гарантирует ли bEnableModCheck, что у всех одинаковые моды?

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

Можно ли вместе использовать мод на выживание или потребности?

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

Почему в Skyrim Together ломаются компаньоны?

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

Нужно ли ставить моды на сервер?

Нет. Сервер не запускает моды. Ему нужен только loadorder.txt в папке Data, если вы хотите, чтобы он требовал одинаковый порядок загрузки через bEnableModCheck.


Комментарии

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

0/2000