Чтобы пустить игроков с Xbox и Game Pass на выделенный сервер Valheim, запустите его с аргументом -crossplay. Тогда сервер регистрирует сессию в сервисе PlayFab от Microsoft, выводит в лог шестизначный код подключения, и по этому коду может зайти любой игрок в Steam, Microsoft Store или на Xbox Series X|S. Цена невелика, но она есть: сессии кроссплея идут через relay, в списках админов и банов нужны ID с префиксом платформы, код подключения меняется при каждом перезапуске, а любой мод, который игрокам пришлось бы ставить, отрезает консольных игроков. В этой статье - как это работает, как настроить и когда лучше оставить кроссплей выключенным.
Общая настройка сервера - параметры запуска, порты, папка сохранений - описана в руководстве по выделенному серверу Valheim. Здесь речь только о кроссплее.
Что на самом деле меняет кроссплей#
Без кроссплея выделенный сервер Valheim - это игровой сервер Steam. Он регистрируется на мастер-сервере Steam, появляется в списке community-серверов на базе Steam и принимает подключения клиентов Steam напрямую на игровой порт. Игроки определяются по 17-значному SteamID64.
С -crossplay сервер переключается на другой сетевой бэкенд, построенный на PlayFab - сервисе Microsoft, который версии для Xbox и Microsoft Store используют для мультиплеера. Из этого следуют три вещи:
- Зайти могут игроки с любой платформы. Steam, Microsoft Store и Game Pass на ПК, а также Xbox Series X|S - все играют на одном сервере.
- Главным способом входа становится код подключения. На консоли нельзя ввести в игре IP-адрес и порт, поэтому сервер публикует короткий код.
- Идентификаторы получают префикс платформы. Сервер видит
Steam_76561198012345678или Xbox ID пользователя со своим префиксом, а не голый SteamID, и во всех файлах списков должна быть именно такая форма.
Что не меняется: файл мира, модификаторы мира, лимит в десять игроков, обязательный пароль и поведение сохранений. Мир, созданный на сервере только для Steam, загружается на сервере с кроссплеем и обратно без всякой конвертации.
Как его включить#
На своей машине кроссплей - это один аргумент, добавленный к обычной строке запуска:
$ ./valheim_server.x86_64 -nographics -batchmode \ -name "Longship Crew" -port 2456 -world "Midgard" \ -password "herring-barrel-42" -public 1 -crossplayЗначения у него нет - аргумент либо есть, либо его нет. Уберите его и перезапустите сервер, чтобы вернуться к режиму только для Steam. В файле мира никак не записывается, в каком режиме он запускался последним.
У хостинга с панелью то же самое - это поле на вкладке Startup. На серверах Valheim в RE:NODE кроссплей включён сразу, потому что в большинстве компаний, которые спрашивают, есть хотя бы один человек на Game Pass; если у вас таких нет, выключение - это изменение на вкладке Startup и перезапуск.
Когда сервер поднимется, ищите в логе строку сессии. В ней есть код подключения:
Session "Longship Crew" with join code 483920 and IP 203.0.113.10:2456 is active with 0 player(s)Точная формулировка может меняться от версии к версии игры, но код в ней есть всегда. Если кода подключения нет вовсе, сервер не зарегистрировался в PlayFab; почему так бывает, разобрано ниже в разделе про неполадки.
Как зайти с каждой платформы#
У каждой платформы свой путь на один и тот же сервер.
| Платформа | Как зайти | Примечания |
|---|---|---|
| Steam | По IP, через список серверов или по коду подключения | IP - самый надёжный вариант |
| Microsoft Store / Game Pass PC | По коду подключения или через список серверов | Идёт через PlayFab |
| Xbox Series X/S | По коду подключения | На консоли нельзя ввести IP |
На всех платформах код подключения вводится в разделе Join Game главного меню, в поле для добавления сервера или кода. После ввода игрока спрашивают пароль сервера - точно так же, как в Steam.
Игроки Steam на сервере с кроссплеем по-прежнему могут нажать Add Server, ввести 203.0.113.10:2456 и подключиться напрямую. Это выручает, когда PlayFab тормозит, и это одна из причин держать игровые порты открытыми, хотя консольные игроки к ним напрямую не обращаются. В статье порты игровых серверов объясняется, зачем серверу и игровой порт, и порт для запросов, и для чего каждый из них.
Список серверов действительно показывает серверы с кроссплеем, но при тысячах записей и слабом фильтре это наименее надёжный путь для кого угодно. Дайте компании код.
Настройки аккаунта Xbox, которые мешают подключению#
Самая частая жалоба на кроссплей - «у игрока с Xbox ошибка, а у всех остальных всё нормально». Причина почти всегда в аккаунте Xbox, а не в сервере.
- Сетевая игра между платформами. В настройках приватности Xbox есть параметр, разрешающий аккаунту участвовать в cross-network play. Если он заблокирован, игрок не может зайти в сессию, где есть игроки с ПК. Он находится в настройках приватности и безопасности в сети, а точный путь в меню меняется с обновлениями интерфейса.
- Детские аккаунты. Детскому аккаунту в семейной группе Microsoft нужно, чтобы родитель разрешил мультиплеер и cross-network play. Родитель меняет это в семейных настройках, а не на консоли, которой пользуется ребёнок.
- Состояние сети Xbox. Если сервисы Xbox работают с перебоями, сторона кроссплея на PlayFab может отказать, а игроки Steam, заходящие по IP, этого не заметят. Такая картина - в Steam всё хорошо, у всех остальных ошибка - указывает на сервис, а не на ваш сервер.
- Game Pass на ПК. Версии Microsoft Store и Game Pass на ПК идут тем же путём через PlayFab, что и Xbox, и используют приложение Xbox для входа. Если в приложении Xbox выполнен вход не в тот аккаунт, который ожидает игрок, игра использует именно его.
Ничего из этого не видно в логе сервера, кроме отсутствия попытки подключения. Если попытка игрока с Xbox вообще не появляется в логе, проверьте его аккаунт, прежде чем разбираться с сервером.
Админы, баны и белые списки с ID платформ#
На сервере только для Steam файлы adminlist.txt, bannedlist.txt и permittedlist.txt содержат голые SteamID64. На сервере с кроссплеем сервер определяет игроков по ID с префиксом платформы, и файлы списков должны им соответствовать.
// Steam player on a crossplay serverSteam_76561198012345678// Xbox or Game Pass player, as it appears in the server logXbox_2535412345678901Надёжнее всего не вводить ID по памяти. Пусть каждый игрок один раз зайдёт, а затем возьмите его ID из лога сервера, где каждое подключение записано с тем идентификатором, с которым сервер будет сверяться. Скопируйте его точно, вместе с префиксом. Если сервер переключается между режимом кроссплея и режимом только для Steam, держите в файле обе формы ID админа из Steam, чтобы права сохранялись в любом случае.
Файлы перечитываются во время работы сервера, так что для добавления админа перезапуск не нужен. Непустой permittedlist.txt превращает сервер в белый список для всех, на всех платформах; для закрытой компании это разумный выбор, но если забыть добавить ID игроков с Xbox, их легко запереть снаружи, даже не заметив.
Сами права админа - это короткий ванильный список: kick, ban, unban, banned, save и ещё несколько, которые вводятся во внутриигровой консоли, открываемой по F5. Эта консоль рассчитана на клавиатуру ПК - в Steam её нужно включить параметром запуска -console, - так что на практике админскую работу делает игрок с ПК даже на сервере, где почти все на Xbox. Полная таблица команд - в руководстве по выделенному серверу.
Моды и кроссплей#
Именно этот компромисс решает дело для большинства компаний.
Игроки с Xbox не могут ставить моды, а версии Microsoft Store и Game Pass на ПК в лучшем случае неудобно модифицировать. Экосистема модов Valheim построена на BepInEx, и большинство модов, меняющих геймплей, нужно ставить и на сервер, и на клиент одной и той же версии. Поэтому:
| Тип мода | Работает с игроками Xbox? |
|---|---|
| Только на сервере (бэкапы, мосты в Discord, серверные утилиты) | Да - консольные игроки их не видят |
| Только на клиенте (интерфейс, доработки карты) | Да - каждый игрок с ПК решает сам |
| На обеих сторонах (контент, правила, новые предметы) | Нет - консольные игроки не могут повторить список |
| Проверка версий (сверка модов при подключении) | Нет - она отклонит клиент без модов |
Библиотеки модов, которые проверяют совпадение версий при подключении, сразу кикнут игрока с Xbox без модов. Если компания с консольными игроками хочет моды, единственный рабочий вариант - ограничиться колонкой «только на сервере». В статье моды Valheim с BepInEx на сервере разобрано, какие моды к какой колонке относятся и как их устанавливать.
Если вся ваша компания на ПК, этот компромисс исчезает, а вместе с ним и большая часть смысла включать кроссплей.
Производительность и цена relay#
Сессии кроссплея идут через relay, а не напрямую от игрока к вашему серверу. Для игроков из того же региона, что и сервер, это добавляет немного задержки - обычно несколько миллисекунд, иногда больше, если выбранный relay не близок ни к одной из сторон. Для большинства компаний в обычной игре это незаметно.
Значение это имеет из-за модели владения зонами в Valheim: игрок, первым вошедший в область, симулирует её для всех. Игрок с Xbox на соединении через relay, первым зашедший на арену босса, становится источником движения каждого монстра для всех остальных. Если бой ощущается «ватным» только тогда, когда рядом конкретный игрок, дело именно в этом, и практическое решение - пусть в людные места первым заходит игрок с лучшим соединением. Подробно владение зонами объясняется в статье лаги на сервере Valheim.
Компания только из Steam-игроков ничего не получает от кроссплея и немного теряет: лишний бэкенд, ID с префиксами и код подключения, зависящий от перезапусков. Если никто в компании не играет на Xbox или через Game Pass, оставьте его выключенным.
Несовпадение версий между платформами#
Сервер Valheim и его клиенты должны работать на одной и той же версии игры. На сервере с кроссплеем это значит, что клиенты Steam, Microsoft Store и Xbox должны быть на той версии, на которой работает сервер.
Iron Gate обычно выпускает патчи на всех платформах одновременно, но сборки для Xbox и Microsoft Store могут выйти позже, чем в Steam, если сертификация затянулась. В этом промежутке не могут подключиться либо игроки Steam, либо игроки Xbox - в зависимости от того, на какой версии работает сервер. Практическое правило: в день патча убедитесь, что обновление вышло на всех платформах, прежде чем перезапускать сервер на него.
Вторая ловушка с версиями - публичная тестовая ветка. Сервер, обновлённый до публичной тестовой сборки, принимает только игроков на той же тестовой сборке, а консольным игрокам она недоступна. Держите сервер с кроссплеем на ветке по умолчанию.
Перед любым обновлением сделайте backup. На RE:NODE слоты для бэкапов входят в каждый тариф Valheim, а восстановление - одна кнопка, так что обновление, разделившее компанию, можно откатить без тикета. Полный порядок действий - в статье бэкапы сервера Valheim и повреждение мира.
Устранение неполадок#
В логе нет кода подключения. Сервер не зарегистрировался в PlayFab. Проверьте, что -crossplay действительно есть в строке запуска (в панели - что переменная сохранилась), и перезапустите. Если не помогло, возможно, у сервиса PlayFab перебои; игроки Steam тем временем могут заходить по IP.
У игрока с Xbox общая ошибка подключения. Проверьте его настройку приватности для cross-network play, затем - не детский ли у него аккаунт, затем - состояние сети Xbox. Если его попытка вообще не доходит до лога сервера, блокировка на его стороне.
Админ потерял права после включения кроссплея. В списке админов записан голый SteamID. Добавьте форму с префиксом Steam_ из лога сервера.
Код подключения работал вчера, а сегодня нет. Сервер перезапустился, и код сменился. Возьмите новый из лога или консоли панели.
Игроки Steam подключаются, остальные - нет. Такая картина указывает на путь через PlayFab: на сервис или на аккаунты Xbox. С портами у вас всё в порядке, иначе игроки Steam тоже не смогли бы зайти по IP.
Игрока с Xbox кикает сразу после подключения. Мод на сервере проверяет список модов клиента. Уберите моды, проверяющие версии, или смиритесь с тем, что сервер только для ПК.
FAQ#
Нужно ли игрокам Xbox что-то особенное, чтобы зайти на сервер с кроссплеем?
Им нужны актуальная версия игры, шестизначный код подключения, пароль сервера и аккаунт Xbox, в котором разрешена cross-network play. Ничего устанавливать не нужно, а моды на консоли невозможны.
Можно ли задать серверу постоянный код подключения?
Нет. Код генерируется каждый раз, когда сервер регистрирует сессию, и меняется при перезапуске. Игроки Steam всегда могут использовать адрес; консольным игрокам нужен текущий код.
Становится ли сервер медленнее с кроссплеем?
Сам сервер - нет, заметной разницы нет. У игроков через relay задержка может быть немного выше, и это важнее всего, когда они владеют загруженной зоной. Компании только из Steam-игроков лучше оставить кроссплей выключенным, потому что он ничего не даёт.
Может ли игрок с Xbox быть админом?
Его ID можно внести в adminlist.txt, и сервер выдаст права, но админская консоль открывается клавишей на клавиатуре и по сути является функцией ПК. На практике кики и баны выполняет игрок с ПК.
Можно ли перенести наш мир с Xbox на выделенный сервер?
Не так просто, как мир из Steam. Сохранения Xbox и Game Pass хранятся в контейнерном формате, а не в виде обычных файлов .db и .fwl. В статье как загрузить сохранение Valheim на сервер описано, что возможно и где искать актуальный способ.




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