Valheim — продвинутая настройка через аргументы запуска
Базовый набор -name -port -world -password -public поднимает рабочий сервер, но не отвечает на вопросы, которые встают чуть позже: как пустить друга с Xbox через Game Pass, почему сервер на полминуты подвисает каждые полчаса, и можно ли включить хардкорный режим одной строкой в юните systemd, не трогая сейв. Все эти вещи регулируются флагами запуска, про которые в стандартных гайдах почти не пишут. Разбираем их по одному, с реальными примерами команд.
Содержание
- Все флаги запуска одной таблицей
- -crossplay: играть с друзьями на Xbox и Game Pass
- -saveinterval: как часто сервер пишет мир на диск
- -backups, -backups-short и -backups-long: встроенная ротация бэкапов
- -preset и -modifier: сложность и правила мира без правки сейва
- -instanceid, -logfile и другие служебные флаги
Все флаги запуска одной таблицей
Полный список того, что можно передать бинарнику valheim_server.x86_64 (или .exe на Windows), с акцентом на менее очевидные:
| Флаг | Назначение |
|---|---|
-name, -port, -world, -password, -public, -savedir | базовый набор — разобран в отдельной статье про подъём сервера Valheim |
-crossplay | включает кроссплатформенный netcode (PlayFab) вместо классического Steam-netcode |
-saveinterval [сек] | интервал автосохранения мира на диск |
-backups [N] | сколько встроенных долгосрочных бэкапов хранить |
-backups-short [сек] | интервал коротких снапшотов между долгосрочными бэкапами |
-backups-long [N] | через сколько коротких снапшотов делается один долгосрочный |
-preset [имя] | пресет сложности и правил мира (применяется только при создании нового мира) |
-modifier [ключ] [значение] | точечная настройка одного правила мира (combat, deathpenalty, resources, raids, portals и т.д.) |
-setkey [globalkey] | предустановка глобального ключа мира (например, отметка о побеждённом боссе) при создании |
-instanceid [N] | разделяет несколько инстансов сервера на одной машине (логи, crash dump) |
-logfile [путь] | пишет консольный вывод в файл вместо стандартного потока |
-nographics -batchmode | принудительный headless-режим — на Linux уже включён по умолчанию в дедике, на Windows .bat их стоит прописать явно |
Ниже — по существу о тех, что реально меняют поведение сервера, а не просто дублируют очевидное.
-crossplay: играть с друзьями на Xbox и Game Pass
Флаг -crossplay переключает сервер с классического Steam-networking на PlayFab-бэкенд, через который ходит трафик между Steam, Xbox и Microsoft Store/Game Pass версиями игры. Без него игроки с консоли или Game Pass ваш сервер просто не увидят и не смогут подключиться, даже зная IP и порт.
./valheim_server.x86_64 -name "Vikings" -port 2456 -world "Dedicated" \
-password "odinwins" -public 1 -crossplay \
-savedir "/home/valheim/valheim-server/saves"
Нюансы, о которых стоит знать заранее:
- Кроссплей-серверы отображаются в отдельной вкладке списка серверов в игре, а не только в классическом Steam-браузере — Steam-игроки без включённого кроссплея тоже их видят, если сами не отключили этот фильтр.
- У игрока на своей стороне тоже должен быть включён кроссплей в настройках учётной записи — это не только серверная настройка.
- Порты остаются теми же тремя UDP (2456-2458 при стандартном
-port), но часть трафика на кроссплей-сессиях может идти через релей PlayFab, а не напрямую — на практике это иногда добавляет пару лишних миллисекунд пинга, для большинства групп некритично. - Комбинация с
-public 0работает: сервер скрыт из общих списков, но друзья по прямому приглашению или коду присоединения кроссплей всё равно получат. Подробнее про настройку кроссплея для разных игр — в статье про кроссплей между платформами.
Если играете только на PC/Steam всей группой — флаг не нужен, он не даёт заметных плюсов и слегка усложняет сетевой стек без причины.
Поднять сервер Valheim за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать сервер-saveinterval: как часто сервер пишет мир на диск
По умолчанию Valheim автосохраняет мир примерно раз в 30 минут (1800 секунд) — это значение можно уточнить флагом --help на конкретной сборке сервера, так как разработчик время от времени его пересматривает между патчами. Меняется так:
-saveinterval 900 # каждые 15 минут
-saveinterval 3600 # раз в час
Компромисс тут прямой. Автосохранение на большом, давно отстроенном мире занимает заметное время и на пару секунд подвешивает симуляцию — игроки в этот момент видят характерный микрофриз. Если сократить интервал слишком сильно (например, до 5 минут на мире с сотнями построек), эти подвисания начинают раздражать сильнее, чем экономят прогресс. Если растянуть слишком сильно — при падении сервера по питанию или kill -9 можно потерять час активного строительства.
Практический ориентир: для свежих небольших миров с активной стройкой — 900-1200 секунд, для устоявшихся крупных карт с полным составом группы — можно спокойно держать дефолтные 1800 или даже поднять до 3600, если фризы на автосейве стали заметны игрокам.
-backups, -backups-short и -backups-long: встроенная ротация бэкапов
У Valheim есть собственный механизм ротации бэкапов, независимый от того, что вы, возможно, уже настроили через cron (см. статью про автобэкапы по расписанию). Три флага работают вместе:
-backups 4 # сколько долгосрочных копий хранить
-backups-short 7200 # интервал между короткими снапшотами, в секундах
-backups-long 12 # через сколько коротких снапшотов один становится долгосрочным
Логика: сервер регулярно делает "короткие" снапшоты с интервалом -backups-short, и каждый N-й из них (где N — значение -backups-long) повышается до "долгосрочного" и остаётся в ротации дольше. Итоговое число хранимых долгосрочных копий ограничено -backups. Точные значения по умолчанию у каждой версии сервера могут отличаться — стоит свериться через --help на вашей сборке, но описанная выше механика стабильна уже не первый год.
Файлы лежат в подпапке backups внутри -savedir, с меткой времени в имени файла рядом с основными <world>.db и <world>.fwl. Важная оговорка: это всё ещё локальные копии на том же диске, что и рабочий мир. Если сломается диск VPS целиком — встроенные бэкапы пропадут вместе с основным сейвом. Для реальной надёжности их стоит дополнять внешним rsync или cron-архивацией на другой диск/хранилище, как описано в статье про автобэкапы — встроенный механизм Valheim закрывает только сценарий "откатиться на час назад после кривого крафта или грифа", а не "сервер физически недоступен".
-preset и -modifier: сложность и правила мира без правки сейва
Начиная с обновлений, добавивших настраиваемые модификаторы мира, Valheim позволяет задавать боевую сложность, штраф за смерть, доступность ресурсов, частоту рейдов и работу порталов через флаги запуска — без похода в игровое меню создания мира.
-preset hard
или точечно, отдельными модификаторами:
-modifier combat veryhard \
-modifier deathpenalty hardcore \
-modifier portals casual
Доступные пресеты в духе normal, casual, easy, hard, hardcore, immersive, hammer — но точный набор и его поведение стоит перепроверять под текущую версию игры, разработчик их периодически донастраивает. Ключевая оговорка, которая ловит почти всех: -preset и -modifier применяются только в момент создания нового мира. На уже существующем сейве, поднятом с этими флагами, ничего не изменится — правила зафиксированы в самом файле мира на старте. Если нужно поменять сложность на живом мире — придётся либо начинать заново с новым именем -world, либо использовать игровые консольные команды по модификаторам мира, которые работают "на лету", но требуют включённого чит-режима у администратора.
Флаг -setkey [globalkey] работает по той же логике — предустанавливает глобальный ключ (например, отметку о побеждённом боссе) при создании нового мира. Полезно для сценариев вроде тестового сервера с сразу разлоченным поздним прогрессом, но так же бесполезен на уже существующем сейве.
-instanceid, -logfile и другие служебные флаги
-instanceid [N] пригождается, если на одной VPS крутится несколько инстансов Valheim (например, для разных дружеских групп на одном железе) — он разводит внутренние идентификаторы процессов, чтобы crash dump и служебные файлы одного инстанса не путались со вторым.
-logfile [путь] перенаправляет консольный вывод сервера в файл вместо стандартного потока:
-logfile "/home/valheim/valheim-server/logs/server.log"
Если сервер уже управляется через systemd (см. базовую статью), вывод и так уходит в journald и читается через journalctl -u valheim -f — отдельный -logfile тогда избыточен, разве что нужен параллельный файл для внешнего парсера логов или мониторинга. Про то, как вообще читать логи и крэш-репорты Valheim и отличать штатный шум от реальной проблемы — отдельная статья про чтение логов и краш-репортов.
На Windows-сборке дедика стоит явно добавить -nographics -batchmode в .bat-файл запуска — без них сервер иногда пытается инициализировать графический контекст, чего headless-VPS без GPU не переживёт. На Linux-бинарнике дедика этот режим уже встроен по умолчанию, добавлять руками не нужно.
Поднять сервер Valheim за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Можно ли добавлять флаги без пересоздания мира?
Большинство флагов (crossplay, saveinterval, backups, instanceid, logfile) применяются на каждом запуске и не зависят от сейва — их можно менять свободно. Исключение — -preset, -modifier и -setkey: они фиксируются только при создании нового мира.
После смены флагов в systemd-юните нужно что-то ещё?
Да — sudo systemctl daemon-reload, затем sudo systemctl restart valheim. Без daemon-reload systemd продолжит использовать старую версию unit-файла.
-crossplay ломает обычное подключение через Steam?
Нет, Steam-игроки продолжают видеть и подключаться к серверу как обычно — флаг добавляет ещё один канал связи, а не заменяет существующий.
Что если поставить -saveinterval совсем маленьким, например 60 секунд?
Технически сервер запустится, но на мире с активной стройкой фризы от частых автосохранений станут заметны почти постоянно — на практике так почти никто не делает, разве что на тестовом одиночном сервере без игроков.
Где посмотреть все флаги, которые поддерживает конкретная версия сервера?
Запустите бинарник с --help (или -help в зависимости от сборки) — так проще всего сверить дефолтные значения и точный список пресетов под текущий патч, они периодически меняются.