Сервер Valheim с BepInEx из коробки и образом, который останавливает игру правильно - мир успевает записаться на диск, а не остаётся на последнем автосейве
Выберите подходящий тариф для вашего проекта
Valheim дописывает мир на диск, когда получает SIGINT - тот самый CTRL+C из официального руководства Iron Gate. Обычный контейнер шлёт SIGTERM, и игра до него просто не успевает. Наш образ перехватывает команду остановки из панели, превращает её в SIGINT и ждёт до 90 секунд, пока мир допишется, и только потом гасит процесс. Параллельно работает автосейв игры - по умолчанию раз в 30 минут, интервал меняется в панели
При установке сервера egg сам тянет свежий BepInExPack_Valheim с Thunderstore. В поле ModPack можно указать dependency string сборки - её зависимости скачаются и разложатся по BepInEx/plugins. Смена этого поля требует переустановки сервера, отдельные плагины докидываются через файловый менеджер или SFTP
Переменная World Name задаёт, какой мир поднимать, поэтому на одной услуге можно держать несколько сохранений и переключаться между ними. Свой мир заливается парой файлов .db и .fwl в .config/unity3d/IronGate/Valheim/worlds_local - имя файла должно совпасть с именем в панели. Рядом работают собственные бэкапы Valheim: интервал сохранения, количество копий и оба окна ротации вынесены в отдельные поля панели, а поверх них лежат наши резервные копии на стороне ноды
Флажок Enable Crossplay добавляет к запуску -crossplay и переводит сервер на бэкенд PlayFab - к вам заходят не только из Steam, но и с Xbox и из Game Pass. Цена вопроса честная: трафик такого сервера идёт через релей PlayFab, а не напрямую до нашей ноды, так что пинг может отличаться от прямого подключения, и по локальному адресу сервер не найти - только по публичному IP, коду или через список серверов
Valheim сам поднимает Steam-запрос на соседний порт, и панель умеет его опрашивать: в списке услуг видно название сервера и сколько человек сейчас в мире. Условие одно - соседний номер должен оставаться свободным, при выдаче услуги мы это учитываем. Если он всё же занят соседом по ноде, пропадает только счётчик, на саму игру это не влияет
Защита Guard Rise фильтрует вредоносный трафик на уровне сети. Valheim целиком живёт на UDP, где подделать источник проще всего, поэтому фильтрация тут не формальность
При каждом запуске сервер сверяется со Steam и подтягивает актуальную версию. Автообновление выключается переключателем, чтобы сборка модов не сломалась в неудобный момент. Нужна тестовая ветка - впишите её имя в поле Beta Branch, а если ветка закрытая, пароль из поля Beta Password наш образ передаёт в SteamCMD флагом -betapassword
Недавно мы представили YourControl - это современная игровая панель, которую мы довели до нашего идеала. Безусловно ещё много открытых предложений, и они будут реализованы в ближайшее время
| Характеристика | Pterohost |
|---|---|
| Процессоры | Intel i9-9900K / AMD Ryzen 9 7950X3D / Ryzen 9 9950X |
| Игроки | До 10 в ванили |
| Моды | BepInEx, модпаки Thunderstore |
| Кроссплей | Steam, Xbox, Game Pass |
| Порты | Игровой порт и порт+1 под запрос |
| DDoS-защита | Guard Rise (L3/L4/L7) |
| Диски | NVMe SSD / NVMe Gen4 |
| Панель управления | YourControl |
| Активация | Сразу после оплаты |
Штатный предел игры - 10 человек, так же описан и наш шаблон сервера. Больше умеют только моды, и это уже за пределами того, что гарантирует Iron Gate. Нагрузку создаёт не столько число игроков, сколько размер разведанного мира и количество построек
BepInEx ставится сам при установке сервера - свежая сборка BepInExPack_Valheim скачивается с Thunderstore. Отдельные плагины кладутся в BepInEx/plugins через файловый менеджер или SFTP. Целый модпак можно указать в поле ModPack его dependency string, тогда зависимости скачаются автоматически, но смена этого поля требует переустановки сервера
Да. Valheim дописывает мир на диск по SIGINT - это то же самое, что CTRL+C в консоли по официальному руководству Iron Gate. Наш образ перехватывает команду остановки из панели, шлёт игре именно SIGINT и ждёт до 90 секунд, пока запись закончится. Плюс к этому мир автоматически сохраняется каждые 30 минут - интервал задаётся полем Backup Interval, - так что даже при аварийном падении теряется максимум последний интервал, а сервер после краша поднимается сам
Включите переключатель Enable Crossplay в панели и перезапустите сервер - к строке запуска добавится флаг -crossplay, и сервер перейдёт на бэкенд PlayFab. После этого к вам смогут подключаться игроки с любых платформ, а не только из Steam. Учтите оговорку самой Iron Gate: в режиме кроссплея данные идут через релей PlayFab, поэтому пинг может отличаться от прямого подключения по Steam, а зайти по локальному адресу нельзя - только по публичному IP, коду или через список серверов
RCON у Valheim нет ни в ванили, ни в нашем шаблоне, а консоль сервера в панели работает только на вывод - вводить в неё команды игра просто не умеет, это её свойство, а не ограничение хостинга. Права раздаются файлами adminlist.txt, bannedlist.txt и permittedlist.txt в каталоге .config/unity3d/IronGate/Valheim (по одному Platform User ID в строке, правятся через файловый менеджер или SFTP), а сами Kick, Ban, Unban и Banned админ вводит уже в игре по клавише F5. Онлайн игроков при этом виден в панели: её опрос идёт по Steam-запросу, а не по консоли
Заберите из каталога сохранений пару файлов ИмяМира.db и ИмяМира.fwl: на Windows это %USERPROFILE%/AppData/LocalLow/IronGate/Valheim/worlds_local, на Linux ~/.config/unity3d/IronGate/Valheim/worlds_local. Обе залейте через файловый менеджер или SFTP в такую же папку на сервере - .config/unity3d/IronGate/Valheim/worlds_local, файловый менеджер панели показывает скрытые каталоги. В поле World Name укажите ровно то же имя, до 20 символов - иначе сервер сгенерирует новый мир и ваш просто не увидит
Да, при каждом запуске он сверяется со Steam и подтягивает актуальную версию Valheim. Если сборка модов ещё не готова к патчу, автообновление отключается переключателем Auto Update. Нужна тестовая или закрытая ветка - имя пишется в поле Beta Branch, пароль в поле Beta Password, и оба уходят в SteamCMD при следующем запуске
Ванильный сервер на компанию до 4 человек спокойно живёт на 4 ГБ. Полному составу из 10 игроков или среднему модпаку берите 8 ГБ, тяжёлым сборкам с новыми биомами - 12-16 ГБ. Память съедают моды и площадь разведанного мира, а не сами игроки
Наши серверы расположены в дата-центрах Германии с отличной связностью по всей Европе и СНГ. Средний пинг из России - 40-60 мс, из Европы - 5-20 мс. Диски везде NVMe, что важно для Valheim: сохранение мира упирается именно в диск
Хостинг Valheim на Pterohost стоит от 519 рублей в месяц. В каждый тариф входят BepInEx, DDoS-защита Guard Rise, резервные копии на стороне ноды, FTP и SFTP, планировщик задач и панель YourControl. Услуга создаётся автоматически сразу после оплаты, а первая установка занимает несколько минут: SteamCMD качает около полутора гигабайт серверных файлов, следом ставится BepInEx - прогресс виден в консоли панели