MAATRIX GAMES / Блог / V Rising: сервер не запускается — диагностика

V Rising: сервер не запускается — диагностика

MAATRIX GAMES

Запускаешь VRisingServer.exe, консоль либо мгновенно закрывается, либо зависает на «Loading» и умирает без единого внятного сообщения. Знакомая ситуация почти для всех, кто поднимал сервер V Rising не через готовую панель, а руками. Ниже — порядок диагностики: сначала смотрим в лог (там почти всегда есть ответ), потом проверяем стандартный набор виновников — от кривой установки через SteamCMD до занятого порта и прав на файл.

Сначала — лог, а не гадание

Прежде чем что-то переустанавливать, найди и открой лог запуска. V Rising сделан на Unity, поэтому логика стандартная для движка: основной лог называется Player.log.

На Windows он обычно лежит в двух местах:

%USERPROFILE%\AppData\LocalLow\Stunlock Studios\VRising\Player.log
<путь_к_серверу>\VRisingServer_Data\Player.log

Если сервер поднят на Linux через Wine/Proton (частый случай на арендованных VPS), лог нужно искать внутри префикса Wine — по тому же относительному пути, но от корня префикса:

~/.wine/drive_c/users/<user>/AppData/LocalLow/Stunlock Studios/VRising/Player.log

Открывай файл с конца — самые свежие записи там. Ищи строки с Exception, Error, Failed to — они почти всегда указывают на конкретную причину: не хватает библиотеки, не тот порт, повреждён файл сохранения. Если консоль закрывается мгновенно и лог вообще не создаётся — это почти всегда означает, что до старта движка дело не дошло: либо не хватает системных зависимостей, либо файл сервера повреждён или не имеет прав на выполнение. Про то, как в принципе читать логи и крэш-репорты игровых серверов и на что там обращать внимание в первую очередь, есть отдельный разбор: логи и крэш-репорты — как читать и искать причину.

Повреждённая установка через SteamCMD

Самая частая причина «сервер не стартует» на моей практике — недокачанные или битые файлы после установки/обновления через SteamCMD. V Rising Dedicated Server ставится через App ID 1829350:

steamcmd +force_install_dir ./vrising-server +login anonymous +app_update 1829350 validate +quit

Обрати внимание на флаг validate — он заставляет SteamCMD пересчитать контрольные суммы всех файлов и докачать то, что отличается. Если ты когда-то прерывал загрузку (закрыл терминал, упало соединение, кончилось место на диске) — без validate повреждённые файлы так и останутся на месте, и сервер будет падать на старте без внятной причины в логе.

Если после validate ничего не изменилось, попробуй радикальный вариант — снести папку установки полностью и скачать заново с нуля, не полагаясь на докачку:

rm -rf ./vrising-server
steamcmd +force_install_dir ./vrising-server +login anonymous +app_update 1829350 validate +quit

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

Поднять сервер V Rising за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Занятый или не проброшенный порт

V Rising по умолчанию использует связку из двух UDP-портов:

ПараметрЗначение по умолчаниюНазначение
Game Port9876/UDPосновной игровой трафик
Query Port9877/UDPответы на запросы статуса (список серверов, пинг)

Если порт уже занят другим процессом (например, ты пробуешь поднять второй инстанс сервера на той же машине с теми же настройками), движок либо тихо падает, либо в логе будет что-то про Failed to bind или Address already in use. Проверить занятость порта на Linux:

ss -ulnp | grep 9876

На Windows — через PowerShell:

Get-NetUDPEndpoint -LocalPort 9876

Если порт свободен локально, но игроки всё равно не могут подключиться (сервер при этом запускается и не падает) — это уже не про запуск, а про проброс порта на роутере/фаерволе. Смени GamePort и QueryPort в ServerHostSettings.json (см. следующий раздел), если стандартные заняты, и убедись, что оба открыты именно как UDP, а не TCP — это частая ошибка при ручной настройке фаервола. Подробный чек-лист по проверке проброса портов — в отдельной статье: порт не проброшен — как проверить и исправить, а по настройке портов и фаервола под игровой сервер в целом — здесь: настройка портов и фаервола для игрового сервера.

Права на исполняемый файл (актуально для Linux/Wine)

Официально V Rising Dedicated Server — Windows-приложение, и на Linux-хостах его чаще всего запускают через Wine или Proton. Это добавляет отдельный класс проблем, не связанных напрямую с самой игрой:

  • Файл не помечен исполняемым. После распаковки или переноса файлов правами 644 вместо 755 Wine просто не сможет запустить .exe. Проверь и поправь:
chmod +x VRisingServer.exe
  • Wine-префикс создан не тем пользователем, от которого потом запускается сервер (например, установка была через root, а сервис поднимается от отдельного системного пользователя). В этом случае Wine либо не видит префикс, либо создаёт новый пустой — и все настройки/сохранения окажутся «не там». Убедись, что WINEPREFIX указывает на одну и ту же папку и запуск всегда идёт от одного пользователя.
  • Не хватает 32-битных библиотек, если Wine настроен только под 64-бит окружение — это встречается на минимальных Linux-образах. Симптом — лог не создаётся вообще, процесс завершается сразу.

Если сервер поднят как systemd-сервис или в screen/tmux-сессии — стоит проверить, что скрипт запуска использует именно ту рабочую директорию, где лежат конфиги и сохранения, иначе игра либо создаст новые настройки с нуля, либо не найдёт существующий мир. Про правильную организацию таких процессов — в статье systemd, screen и tmux для игровых процессов.

Битые или неверно оформленные конфиги

V Rising хранит настройки сервера в двух JSON-файлах внутри VRisingServer_Data/StreamingAssets/Settings/:

ServerHostSettings.json   — сетевые параметры: имя сервера, порты, пароль, лимит игроков
ServerGameSettings.json   — игровые правила: сложность, PvP/PvE, скорость крафта и т.д.

Это обычный JSON, и достаточно одной лишней или пропущенной запятой, чтобы парсер конфига упал с ошибкой при старте — часто без явного указания, в каком именно файле проблема. Перед тем как разбираться дальше, прогони оба файла через любой JSON-валидатор:

python3 -m json.tool ServerHostSettings.json
python3 -m json.tool ServerGameSettings.json

Если валидатор ругается — он покажет примерную строку с ошибкой. Частые причины: правка конфига вручную в редакторе, который расставляет «умные кавычки» вместо обычных, обрыв файла при копировании по FTP на середине записи, или ручное добавление параметра без запятой перед следующим полем.

Если найти конкретную ошибку не получается — надёжнее всего переименовать оба файла (не удалять, а сохранить как бэкап) и дать серверу сгенерировать чистые конфиги заново при следующем запуске, а затем аккуратно перенести туда нужные значения. Про то, как вообще правильно работать с конфигурационными файлами игровых серверов и на что смотреть при ручном редактировании — отдельный разбор: работа с конфигурационными файлами игрового сервера.

Повреждённое сохранение мира

Если сервер раньше нормально стартовал, а теперь падает после недавнего аптейма, крэша хоста или неудачного бэкапа — подозревай не установку, а именно сохранение. Сейвы лежат в:

<install_dir>\save-data\Saves\v2\<SaveName>\

Проверь дату изменения файлов внутри — если последний сохранённый файл заметно «легче» соседних по размеру или его временная метка обрывается на середине операции записи, это похоже на то, что сохранение было прервано (например, хост перезагрузился в момент автосейва). В таком случае:

  1. Останови сервер полностью.
  2. Скопируй проблемную папку <SaveName> в сторону — на случай, если пригодится для восстановления вручную.
  3. Верни последний рабочий бэкап на её место и попробуй запустить сервер снова.

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

Нехватка системных зависимостей

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

  • Visual C++ Redistributable (актуальные x64-сборки от Microsoft) — на Windows-хостах их отсутствие часто выглядит как мгновенное закрытие консоли без записи в лог.
  • .NET-компоненты, если хост-система урезана до минимума (актуально для некоторых VPS-образов Windows Server Core).
  • На Linux/Wine — актуальная версия самого Wine (лучше не самая свежая экспериментальная, а стабильная ветка) и корректно настроенный winetricks-набор, если сервер требует конкретных рантаймов.

Если ты не уверен, что именно отсутствует, — установи полный набор актуальных VC++ Redistributable пакетов на Windows-хосте перед повторной попыткой запуска, это закрывает большинство подобных случаев без глубокого копания.

Поднять сервер V Rising за пару минут

Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.

Создать сервер

Частые вопросы

Сервер запускается, но игроки не видят его в списке через Steam.

Это почти всегда про Query Port (9877/UDP) — либо он не проброшен, либо занят другим процессом. Проверь его отдельно от игрового порта, они пробрасываются независимо.

После обновления игры сервер перестал запускаться.

Первым делом прогони app_update с флагом validate — после патча клиента файлы сервера могли обновиться частично, особенно если апдейт прервался.

Лог вообще не создаётся, даже пустой.

Значит, до инициализации движка дело не доходит — проверяй права на исполняемый файл, наличие системных зависимостей и то, что запуск идёт не от «битого» Wine-префикса.

Сервер стартует локально, но падает именно при запуске как systemd-сервис.

Обычно это про рабочую директорию (WorkingDirectory в unit-файле) или переменные окружения вроде WINEPREFIX, которые не подхватываются в сервисном контексте так же, как в интерактивной сессии.

Помогает ли банальная переустановка «на всякий случай»?

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