Процесс сервера Valheim загружает ровно один мир, поэтому «несколько миров на одном хосте» означает одно из двух. Либо вы держите несколько миров в одной папке сохранений и переключаетесь между ними, меняя -world и перезапуская сервер: дёшево, просто, в каждый момент работает один мир. Либо запускаете несколько серверных процессов рядом, у каждого свой -world, свой -port с разницей не меньше двух и желательно свой -savedir, так что общей у них остаётся только машина. Первый вариант подходит группе, которая чередует основной мир и творческий или тестовый. Второй - группе, которая действительно играет в два мира одновременно, и стоит примерно вдвое больше памяти. Всё остальное - файлы списков, бэкапы, коды кроссплея, моды - следует из того, что вы выберете.
Основы самого сервера описаны в руководстве по выделенному серверу Valheim; эта статья только о наличии больше одного мира.
Две модели: переключение или параллельная работа#
| Переключение миров на одном сервере | Несколько серверов параллельно | |
|---|---|---|
| Миров работает одновременно | Один | По одному на процесс |
| Нужные порты | Одна пара | Пара на каждый сервер |
| Память | На один мир | Каждый процесс добавляет свою |
| Файлы списков | Общие, если не менять и -savedir | Раздельные, если у каждого свой -savedir |
| Код подключения (кроссплей) | Один, меняется при каждом перезапуске | По одному на сервер |
| Трудозатраты | Изменить один аргумент, перезапустить | Вторая установка или вторая служба |
Незагруженный мир заморожен. Ничего не растёт, ничего не исчезает, рейдов нет, и время в нём не идёт. Из-за этого переключение абсолютно безопасно для миров, которые посещают от случая к случаю, - строительный мир, сезонный мир, старый мир из архива, - и неверно для двух миров, в которые разные люди хотят играть в один вечер.
Столбец памяти люди недооценивают. Каждый процесс сервера Valheim держит собственную копию всего, что ему нужно; два процесса не делят память. Зрелому миру со средней группой нужно 3-4 ГБ, свежему тестовому - меньше, так что два сервера рядом требуют суммы. Общий подбор размера описан в статье сколько RAM нужно серверу Valheim.
Как хранятся миры и почему переключение так просто#
Все миры, которые может загрузить сервер, лежат в папке worlds_local внутри его каталога сохранений. В Linux по умолчанию это ~/.config/unity3d/IronGate/Valheim/, в Windows %USERPROFILE%\AppData\LocalLow\IronGate\Valheim\, а -savedir переносит всё дерево в другое место. Полная структура описана в руководстве по savedir и расположению файлов.
Аргумент -world называет мир, который нужно загрузить, и это имя - имя файла. Несколько миров могут лежать в одной папке, не мешая друг другу:
worlds_local/ Midgard.db Midgard.fwl <- the main world Workshop.db Workshop.fwl <- a creative world Season1.db Season1.fwl <- an archived worldТак выглядит раскладка в сборках до Valheim 1.0. Начиная с 1.0, вышедшей в сентябре 2026 года, мир хранится как папка с его именем внутри worlds_local, а не как пара .db и .fwl, и старый мир преобразуется при первой загрузке сервером 1.0. Принцип тот же - одно имя, один мир, много миров рядом, - но когда вы копируете, архивируете или переносите мир, берите папку целиком, а не отдельные файлы из неё. Посмотрите, что лежит в вашей worlds_local, прежде чем следовать любому руководству, написанному для другой раскладки.
Если -world называет несуществующий мир, сервер создаёт новый мир с этим именем и случайным сидом. Так вы намеренно создаёте второй мир, а также так опечатка молча даёт вам пустой.
Переключение миров на одном сервере#
Простейшая конфигурация: один сервер, одна пара портов, несколько миров, один рабочий.
- Корректно остановите сервер, чтобы текущий мир сохранился. Дождитесь в логе строки о сохранении.
- Измените имя мира - на своей машине правьте
-worldв стартовом скрипте; на панельном хостинге - поле мира на вкладке Startup. - Запустите сервер и проверьте по логу, что мир загружается по новому имени, а не генерируется.
# Main world./valheim_server.x86_64 -nographics -batchmode -name "Longship Crew" \ -port 2456 -world "Midgard" -password "herring-barrel-42" -crossplay# Switch to the creative world: change only -world and restart# -world "Workshop"Модификаторы и ключи мира хранятся для каждого мира отдельно, поэтому творческий мир с -setkey nobuildcost сохраняет это правило, только если вы передаёте его в строке, которая его запускает. Помещайте модификаторы в строку запуска каждого мира - если вы переключитесь на основной мир и оставите nobuildcost в строке, основной мир получит бесплатное строительство, пока вы не заметите. Дешёвое решение - небольшой текстовый файл с полной строкой для каждого мира.
В этой модели у миров общий каталог сохранений, а значит, и adminlist.txt, bannedlist.txt и permittedlist.txt. Бан действует во всех мирах. Обычно это то, что нужно одной группе; это неверно, если второй мир предназначен для других людей.
Общие и моды. Одна установка сервера означает одну папку BepInEx, поэтому каждый мир работает с одним и тем же набором модов. Мод, добавляющий контент, хранит свои данные в мире, а мир, открытый без мода, может потерять этот контент; не переключайте модифицированный мир на немодифицированную строку или наоборот без бэкапа.
Несколько серверов рядом#
Чтобы два мира работали одновременно, нужны два серверных процесса. На собственной Linux-машине это либо две установки, либо одна установка, запущенная дважды с разными аргументами. Каждому нужна своя пара портов и, для чистого разделения, свой каталог сохранений.
# Server one - the main world./valheim_server.x86_64 -nographics -batchmode -name "Longship Crew" \ -port 2456 -world "Midgard" -password "herring-barrel-42" \ -savedir /home/valheim/saves/main -crossplay# Server two - a separate world for a second group./valheim_server.x86_64 -nographics -batchmode -name "Raven Fjord" \ -port 2466 -world "Fjord" -password "salt-cod-and-tar" \ -savedir /home/valheim/saves/fjord -crossplayПравила, при которых это работает:
- Порты с разницей минимум в два. Каждый сервер использует свой игровой порт и следующий за ним. Если два игровых порта -
2456и2457, они конфликтуют, потому что игровой порт второго сервера - порт запросов первого. Шаг в десять (2456,2466,2476) - привычка, при которой правила файрвола остаются читаемыми. Подробности есть в статье порты Valheim 2456-2458: разбор. - Свой каталог сохранений у каждого. При раздельных путях
-savedirмиры, бэкапы и файлы списков полностью раздельные. Два сервера с общим каталогом сохранений могут работать, если имена миров различаются, но у них общие списки админов и банов, а их автоматические бэкапы лежат в одной папке. - Разные имена в браузере серверов. Два публичных сервера с одинаковым
-nameв лучшем случае сбивают с толку. Сделайте их явно разными. - Никогда один и тот же мир дважды. Два процесса, загружающих один мир из одной папки, оба будут в него сохраняться, и побеждает тот, кто сохранится последним. Это надёжный способ повредить или потерять мир.
Аргумент -instanceid существует для различения экземпляров на одной машине. Большинству конфигураций он не нужен: разные имена миров, разные порты и собственные папки сохранений уже разделяют два сервера. Его место в полном списке есть в справочнике аргументов запуска.
Запускать оба как службы чище, чем в двух окнах терминала. Unit systemd на каждый сервер, каждый со своей строкой ExecStart, даёт каждому собственные логи, перезапуски и сигнал остановки. Главное в каждом unit - то, что он останавливает сервер сигналом SIGINT, из-за чего Valheim сохраняется перед выходом.
[Service]User=valheimWorkingDirectory=/home/valheim/serverExecStart=/home/valheim/server/start_fjord.shKillSignal=SIGINTTimeoutStopSec=120Restart=on-failureФайрвол: откройте каждую пару UDP. С ufw это ufw allow 2456:2457/udp и ufw allow 2466:2467/udp.
Кроссплей с несколькими серверами#
Кроссплей работает для каждого сервера отдельно. Каждый процесс, запущенный с -crossplay, регистрирует собственную сессию и получает собственный шестизначный код подключения, который печатается в его логе при запуске:
Session "Raven Fjord" with join code 715204 and IP 203.0.113.10:2466 is active with 0 player(s)Три вещи, которые нужно знать, когда серверов больше одного:
- Каждый код принадлежит одному серверу. Игроки на Xbox и версии из Microsoft Store подключаются по коду, поэтому группе, играющей на втором сервере, нужен код этого сервера, а не первого. Чётко подписывайте их везде, где публикуете.
- Коды меняются при каждом перезапуске. Два сервера, перезапускающиеся в разное время, - это два кода, меняющиеся в разное время. Если запланировать оба перезапуска на один час, оповещение умещается в одно сообщение.
- Игроки Steam по-прежнему могут подключаться по IP. На сервере с кроссплеем
203.0.113.10:2466продолжает работать для игроков Steam и остаётся самым надёжным способом выбрать нужный сервер.
Кроссплей также меняет ID в файлах списков на ID с префиксом платформы, например Steam_76561198012345678 и Xbox_.... Если на одном сервере кроссплей включён, а на другом нет, форматы их списков админов будут различаться - ещё одна причина дать каждому свой каталог сохранений. ID и ретранслятор описаны в статье кроссплей и игроки Xbox.
Персонажи переходят между мирами, а вместе с ними и предметы#
Последствие множества миров, которое группы обнаруживают поздно: персонажи хранятся на компьютере каждого игрока, а не на сервере, и работают во всех мирах. Что персонаж несёт в одном мире, то он приносит в другой.
Для основного и архивного мира это безвредно. Это небезвредно, когда один из миров - творческий с nobuildcost, или где админ использует devcommands, или мир с щедрыми модификаторами ресурсов. Игрок может набить инвентарь в лёгком мире и унести его в сложный. В ваниле остановить это нельзя.
Распространённые ответы:
- Отдельные персонажи для каждого мира. Группа договаривается использовать в творческом мире другого персонажа. Это держится на доверии, но среди друзей работает.
- Считать инвентарь «грязным». Каждый, кто посещает творческий мир, перед уходом выкладывает инвентарь в сундук. Слабее, потому что сундук находится в творческом мире, и ничто не принуждает.
- Принять это. Для расслабленной группы лёгкий мир - просто отпуск, и контролировать принесённые предметы не стоит.
Между мирами не делится карта: исследование хранится для каждого персонажа в каждом мире, так что в каждом мире у каждого игрока своя карта.
Бэкапы, обновления и моды при нескольких мирах#
Бэкапы. Автоматические бэкапы Valheim покрывают только загруженный мир. Мир, из которого вы переключились, не бэкапится, и в нём ничего не изменилось, так что это нормально, - но сделайте копию перед тем, как включить мир после долгого перерыва, особенно через обновление игры. При параллельных серверах каждый процесс бэкапит свой мир в свой каталог сохранений. Бэкапы вне машины должны включать каждый мир, который вам дорог, а не только рабочий; порядок восстановления описан в статье бэкапы сервера Valheim и повреждение мира.
Обновления. Все серверы одной установки обновляются вместе, и затем каждый мир должна загрузить новая версия. Миры, не загружавшиеся со времён старого патча, обновляются при первой загрузке. Крупные обновления порой меняли способ хранения миров - переход 1.0 на папку для каждого мира здесь очевидный случай, - поэтому архивные миры стоит скопировать перед первой загрузкой на новой версии. Время патчей описано в статье обновление сервера и несовпадение версий.
Моды. Параллельные серверы могут работать с разными наборами модов, только если это отдельные установки, каждая со своей папкой BepInEx. Одна установка, запущенная дважды, использует одни и те же плагины для обоих. Если один мир с модами, а другой ванильный, дайте каждому свой каталог установки.
Как это делается на панельном хостинге#
В панели вроде Pterodactyl сервер - это один контейнер с одним процессом, поэтому две модели выглядят так:
- Переключение - вкладка Startup: смените имя мира, перезапустите. Каждый мир в
worlds_localостаётся на диске сервера, виден в файловом менеджере, и там их можно загружать и скачивать. - Параллельная работа означает второй сервер: свой контейнер, свой лимит памяти, свои аллокации портов, своя консоль и свои бэкапы.
На RE:NODE это отображается напрямую. На каждом тарифе Valheim выделены два порта - игровой и порт запросов для одного сервера, - а имя мира - поле на вкладке Startup, так что переключение сводится к правке и перезапуску. Два одновременно работающих мира - это два сервера, каждый подобран под свой мир: небольшой тестовый мир умещается на тарифе в 2 ГБ, а основной - на более крупном. Перед сменой мира сделайте бэкап из панели; бэкапы хранятся вне машины и восстанавливаются кнопкой, но восстановление возвращает всю папку сервера, включая каждый мир в ней.
Диагностика#
Сервер запустил новый мир вместо того, на который я переключился. Имя в строке не совпадает с миром в worlds_local, включая регистр. Новый мир лежит рядом со старым; ничего не перезаписано. Исправьте имя и перезапустите.
Второй сервер не запускается или ни один не виден в списке. Конфликт портов. Проверьте, что игровые порты отстоят минимум на два и что ничто другое их не занимает.
Бан на одном сервере сработал на другом. У них общий каталог сохранений и, значит, общий bannedlist.txt. Дайте каждому свой -savedir.
Бесплатное строительство творческого мира просочилось в основной. -setkey nobuildcost остался в строке запуска при переключении. Уберите его, перезапустите и держите отдельную строку для каждого мира.
Игроки на Xbox не находят второй сервер. Они используют код подключения первого сервера или старый, действовавший до последнего перезапуска. Прочитайте актуальный код в логе второго сервера.
FAQ#
Может ли один процесс сервера Valheim запускать два мира одновременно?
Нет. Процесс загружает один мир. Два живых мира требуют двух процессов, каждому из которых нужна своя пара портов, а на панельном хостинге это два сервера.
Продолжают ли меняться миры, которые я не запускаю?
Нет. Незагруженный мир заморожен - время не идёт, посевы не растут, рейдов нет. Он продолжается ровно с того места, где остановился, при следующей загрузке.
Могут ли два сервера использовать один и тот же файл мира?
Не должны. Оба будут сохраняться в него и перезаписывать изменения друг друга. Скопируйте мир под новым именем, если хотите дубликат для отдельной игры.
Нужны ли игрокам разные персонажи для разных миров?
Технически нет - любой персонаж подходит для любого мира, - но предметы переносятся, поэтому группы, у которых есть творческий или лёгкий мир, часто договариваются использовать там отдельных персонажей.
Второй сервер дешевле, чем более крупный?
Обычно нет, если считать память, потому что каждому процессу нужна своя. Второй небольшой сервер имеет смысл, когда второй мир маленький или нужен изредка; для двух загруженных миров закладывайте бюджет на оба.


