Как поднять сервер Vintage Story: пошаговая инструкция
Vintage Story — не рельсовый выживач, а неспешная песочница с глубоким крафтом, металлургией и лором, и держать свой сервер для этого хочется именно так, как удобно вашей компании: со своими настройками мира, без чужих правил и случайных попутчиков. Проблема в том, что установка сервера здесь устроена иначе, чем у большинства игр из этого блога — никакого SteamCMD и app id, всё качается напрямую с официального сайта и требует отдельно поставленный .NET. Ниже — весь путь от чистого VPS до работающего мира с автозапуском.
Содержание
Особенность Vintage Story: это не Steam-игра
У Vintage Story действительно есть страница в Steam, но классический и самый гибкий способ поставить именно сервер — скачать его напрямую с vintagestory.at, в обход Steam вообще. Это удобно для VPS: не нужен анонимный логин SteamCMD, не нужно тащить на сервер клиентские библиотеки Steam — просто архив с бинарниками игры.
На странице загрузок обычно есть два варианта под Linux:
- Client + Server — полный пакет с клиентскими ресурсами, годится, если хотите одним архивом иметь и клиент для теста, и сервер;
- Server (headless) — облегчённый пакет только с серверной частью, без клиентской графики и звука. Именно его стоит ставить на VPS — меньше вес, меньше лишнего на диске.
Разработчики (Anego Studios) выпускают обновления регулярно, поэтому точный номер версии и прямую ссылку на архив всегда проверяйте на странице загрузок — она меняется с каждым релизом, и вшивать конкретный URL в инструкцию бессмысленно.
Системные требования и выбор VPS
Vintage Story не самая прожорливая игра, но мир с активной генерацией руды, множеством построек и десятком игроков ест память куда охотнее, чем кажется на старте.
Ориентиры по памяти:
| Игроков | RAM (минимум) | RAM (комфортно) |
|---|---|---|
| 1-4 | 3 ГБ | 4 ГБ |
| 5-10 | 4 ГБ | 6 ГБ |
| 10-20 | 6 ГБ | 8+ ГБ |
По CPU движок в основном опирается на несколько потоков (генерация чанков, симуляция), но пиковая нагрузка на одно ядро всё равно ощутима при большом количестве игроков рядом друг с другом — берите процессор с хорошей однопоточной производительностью, а не просто побольше ядер. Диск лучше SSD/NVMe: мир Vintage Story состоит из множества чанковых файлов, и при активной добыче руды и террейформинге запись на диск идёт постоянно.
Систему берите Ubuntu 22.04/24.04 LTS или Debian 12 — под них проще всего ставить .NET из официальных репозиториев Microsoft. Если поднимаете сервер на VPS у MAATRIX GAMES, конфигурация с 3+ ГБ памяти и NVMe уже готова из коробки — не придётся вручную докручивать диск и своп перед установкой.
Поднять сервер Vintage Story за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверУстановка .NET и подготовка окружения
Сервер Vintage Story работает на .NET (в старых версиях игра опиралась на Mono, но актуальные билды ориентируются на современный .NET runtime — точную требуемую версию для вашего билда сайт укажет на странице загрузки). Ставить будем через официальный репозиторий Microsoft:
sudo apt update
sudo apt install -y wget tar libicu-dev
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
sudo apt install -y dotnet-runtime-8.0
Если репозиторий Microsoft для вашей версии дистрибутива недоступен или отдаёт не ту мажорную версию .NET, альтернатива — официальный скрипт dotnet-install.sh с сайта Microsoft, который ставит нужный runtime в домашнюю директорию без системного пакета.
Дальше — отдельный непривилегированный пользователь под сервер, это не формальность: если в игре или в загружаемом моде найдут уязвимость, атакующий не получит root на всей машине.
sudo useradd -m -s /bin/bash vsuser
sudo su - vsuser
Скачивание и первый запуск сервера
Под пользователем vsuser скачайте архив headless-сервера (замените ссылку на актуальную с страницы загрузок — имя файла содержит номер версии, например vs_server_linux-x64_1.20.x.tar.gz):
mkdir -p ~/vsserver && cd ~/vsserver
wget https://cdn.vintagestory.at/gamefiles/stable/vs_server_linux-x64_1.20.x.tar.gz
tar -xzf vs_server_linux-x64_1.20.x.tar.gz
chmod +x server.sh
Первый запуск делает две вещи: проверяет, что .NET установлен и виден, и создаёт структуру данных сервера (мир, конфиги, логи) в указанной папке. Для VPS удобнее сразу задать отдельный путь данных, чтобы не зависеть от домашней директории по умолчанию:
./server.sh --dataPath /home/vsuser/vsserver/data
При первом старте в консоли пробегут строки инициализации, загрузка ассетов и генерация базового мира — дайте серверу подняться полностью (обычно это заметно по строке о готовности принимать подключения), затем остановите его через Ctrl+C. Конфиг уже создан, дальше его нужно отредактировать до запуска для игроков.
Настройка serverconfig.json
Файл лежит в указанной папке данных: ~/vsserver/data/serverconfig.json. Откройте его текстовым редактором (nano подойдёт) — здесь задаются имя, порт, лимит игроков и режим мира.
Ключевые параметры, которые стоит проверить и поменять сразу:
{
"ServerName": "Мой сервер Vintage Story",
"ServerDescription": "Уютный мир для друзей",
"Port": 42420,
"MaxClients": 8,
"Password": "",
"WhitelistMode": "off",
"AdvertiseServer": false,
"WorldConfig": {
"Seed": "",
"PlayStyle": "surviveandbuild",
"WorldWidth": 1024000,
"WorldLength": 1024000
}
}
Пояснения по важным пунктам:
- Port — сетевой порт сервера, по умолчанию 42420/UDP. Менять смысла нет, если только не держите на одной машине несколько игровых серверов одновременно.
- AdvertiseServer —
trueпубликует сервер в общем списке серверов игры. Для приватного сервера с друзьями держитеfalseи раздавайте адрес вручную. - Password — пароль на вход, полезен даже при выключенной публикации на случай, если IP кто-то узнает или отсканирует диапазон.
- WhitelistMode — можно перевести на
"strict"и вручную добавлять игроков в whitelist, если хочется закрытого круга без паролей. - PlayStyle внутри
WorldConfig— базовый пресет режима:surviveandbuild(стандартное выживание),wildernesssurvival(жёстче, без части подсказок),creativebuilding(творческий режим без выживания). Этот параметр применяется только при генерации нового мира — сменить его на уже созданном сохранении нельзя, только начать новый мир. - Seed — оставьте пустым для случайной генерации или впишите свой, если хотите конкретный ландшафт (например, совпадающий с чьим-то знакомым миром).
После правок сохраните файл и запускайте сервер снова — изменения применяются при следующем старте.
Управлять сервером после запуска можно прямо из консоли (текстовые команды в терминале, где крутится процесс) или через игровые команды администратора внутри самого клиента — правами оператора наделяются командой /op ИмяИгрока, введённой уже существующим оператором или через консоль сервера.
Проброс порта, firewall и автозапуск
Порт по умолчанию — 42420/UDP. На VPS с «белым» IP пробрасывать через роутер ничего не нужно, достаточно открыть порт в firewall самой машины. Для ufw на Ubuntu:
sudo ufw allow 42420/udp
sudo ufw status
Если хостинг использует облачный firewall (security group) поверх VPS, тот же порт нужно открыть и там — иначе пакеты отфильтруются раньше, чем дойдут до процесса сервера.
Проверить, что порт реально слушается:
sudo ss -ulnp | grep 42420
Для автозапуска и устойчивости к обрывам SSH-сессии используйте systemd. Создайте /etc/systemd/system/vsserver.service:
[Unit]
Description=Vintage Story Dedicated Server
After=network.target
[Service]
User=vsuser
WorkingDirectory=/home/vsuser/vsserver
ExecStart=/home/vsuser/vsserver/server.sh --dataPath /home/vsuser/vsserver/data
Restart=on-failure
RestartSec=15
[Install]
WantedBy=multi-user.target
Активируйте и запустите:
sudo systemctl daemon-reload
sudo systemctl enable vsserver
sudo systemctl start vsserver
sudo systemctl status vsserver
Логи удобнее смотреть через journalctl -u vsserver -f, чем искать текстовые файлы вручную. Останавливайте сервер только через sudo systemctl stop vsserver — так процесс успевает корректно дописать данные мира перед выходом, а не обрывается на середине сохранения чанка.
Отдельно заведите бэкап папки данных мира (файлы сохранения в Vintage Story имеют расширение .vcdbs) — простой cron-джоб, копирующий папку data/Saves раз в сутки на другой диск, спасёт от порчи мира при сбое питания хоста или неудачном обновлении.
Если ищете похожую по духу песочницу для сравнения — гайды по Project Zomboid, Valheim и Enshrouded построены по тому же принципу: конфиг, порты, автозапуск.
Поднять сервер Vintage Story за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Нужен ли аккаунт Steam для сервера?
Нет. Сервер скачивается напрямую с официального сайта и не требует Steam или SteamCMD. Лицензия нужна только игрокам, которые будут подключаться клиентом.
Обязательно ли ставить .NET отдельно?
Да, для headless-сервера, скачанного с сайта, нужен установленный runtime — актуальную требуемую версию .NET сайт указывает на странице загрузки конкретного билда.
Сколько места на диске займёт мир?
Сильно зависит от размера исследованной территории и настроек генерации — небольшой мир для компании из 2-4 человек обычно укладывается в пару гигабайт, крупный активно осваиваемый мир может вырасти заметно больше. Точных универсальных цифр тут нет, следите за занятым местом по факту роста мира.
Можно ли сменить PlayStyle на уже запущенном сервере?
Нет, этот параметр определяет генерацию мира при его создании. Чтобы сменить режим, нужно создать новый мир (новый Seed или новая папка данных) — старое сохранение не конвертируется.
Как обновить сервер до новой версии?
Скачайте новый архив с официального сайта, остановите сервис (systemctl stop vsserver), замените файлы сервера, оставив нетронутой папку data, и запустите снова. Перед крупным обновлением сделайте бэкап data/Saves.
Можно ли играть без пароля и вайтлиста?
Можно, но при AdvertiseServer: true сервер попадёт в публичный список и его довольно быстро найдут случайные игроки — для закрытой компании держите публикацию выключенной и/или включайте WhitelistMode.