RE:NODE

Сон на сервере Valheim: как пропустить ночь всей группой

Автор Команда RE:NODE
12 мин чтения


На выделенном сервере Valheim ночь пропускается только тогда, когда все подключённые игроки одновременно лежат в кроватях. Один копает руду, другой завис в меню у портала, третий ушёл за чаем, не выходя из игры - и ночь идёт полностью для всех. Голосования, процентной настройки или серверной опции для этого в ванильной игре нет. Менять можно другое: где стоят кровати, кто и когда ложится спать, что делать, если в два часа ночи онлайн один человек, и стоит ли ставить мод, который позволит решать большинству.

В этом руководстве разбираем, как на самом деле работает сон в общем мире, что нужно кровати, чтобы игра разрешила на ней спать, что даёт бонус Rested, почему tod не выход, как ведут себя часы сервера, когда никого нет онлайн, и какие правила группы не дают сну превратиться в спор.

Как работает сон в многопользовательском мире#

В мире одни часы, и на выделенном сервере ими владеет сервер. Когда игрок ночью ложится в кровать, игра помечает его персонажа как пытающегося уснуть. Сервер постоянно проверяет, находятся ли в этом состоянии все подключённые игроки. Как только ложится последний, экран гаснет у всех, часы прыгают на утро, и каждый просыпается у своей кровати.

Следствия просты, но их стоит проговорить:

  • Считаются все, кто онлайн. Не те, кто рядом, и не те, кто на базе, - все подключённые. Игрок в горах на другом краю карты не даёт уснуть всему серверу.
  • Если встать, пропуск отменяется. Если один человек поднимается до того, как лёг последний, ожидание начинается заново.
  • Отсутствие за клавиатурой не равно сну. Игрок, который стоит без дела в поле, для игры бодрствует.
  • Никто не знает, кого не хватает. В ванильной игре нет списка тех, кто ещё не лёг. Узнаёте вы это только из чата.
  • Время прыгает для всего мира. Это не пропуск для одного игрока. Утро наступает у всех вместе.

Так решили в Iron Gate, и для игры, рассчитанной на группы до десяти человек, это разумно. Но на сервере с нерегулярным временем игры сон - это скорее задача на согласование, чем игровая механика.

Что нужно кровати, чтобы на ней можно было спать#

Многие жалобы "сон сломан" на деле означают "кровать непригодна". Прежде чем винить сервер или других игроков, проверьте саму кровать. Игра требует примерно следующего:

УсловиеЧто это значит на практике
Наступила ночьДнём спать нельзя. Сумерки - ещё не обязательно ночь
Кровать вашаВзаимодействуйте один раз, чтобы занять её и сделать точкой возрождения
Над головой крышаКровать должна быть под укрытием, а не под открытым небом
ТеплоНа практике рядом должен гореть огонь - холодное, мокрое или открытое место игра отвергает
Нет врагов рядомСущество в радиусе блокирует сон для вас

Формулировки отказов менялись от версии к версии, но всегда сообщают, какое именно условие не выполнено, - читайте их, а не нажимайте снова и снова. На серверах постоянно встречаются две ловушки:

  1. Кровати личные. Нельзя спать в кровати, которую занял кто-то другой. Взаимодействие с кроватью переносит туда вашу точку возрождения, поэтому на общей базе нужна отдельная кровать каждому игроку, а не одна на всех. Новичок, который ляжет в "запасную кровать", может занять вашу.
  2. Возрождение следует за кроватью. Если игрок занял кровать в передовом лагере, а потом погиб, он проснётся там, а не на основной базе. Это удобно, когда задумано, и сбивает с толку, когда нет. О смерти подробнее в руководстве по штрафу за смерть и надгробиям.

Rested, комфорт и почему сон всё равно важен#

Даже если ваша группа никогда не договаривается о пропуске ночи, кровати важны из-за бонуса Rested.

Rested - это эффект, который даёт отдых рядом с комфортом: посидеть немного у костра под крышей или поспать в кровати и проснуться утром. Пока он действует, здоровье и выносливость восстанавливаются быстрее, а навыки растут быстрее. Точные бонусы для вашей версии показывает подсказка в игре - доверяйте ей больше, чем любому списку в интернете.

Сколько длится Rested, зависит от уровня комфорта, а он определяется мебелью и украшениями вокруг: кровать, стулья, стол, баннеры, костёр получше и так далее. Чем выше комфорт, тем дольше Rested. Число комфорта видно на эффекте, когда вы отдыхаете.

На сервере из этого следует практическое: игроки, которые заходят в странное время, могут получить Rested и без пропуска ночи - достаточно несколько секунд посидеть у костра на базе. Сон нужен, чтобы пропустить темноту, а не как единственный способ получить бонус. Это сильно снимает напряжение вокруг правила "спать должны все": никто не лишается Rested из-за того, что группа не легла.

Почему ночь важна и когда её можно игнорировать#

Ночи в Valheim тёмные, спавнится больше существ, и некоторые из них опаснее. На Лугах это почти неудобство. В Тёмном лесу, на Болоте и на Равнинах путешествия и бои ночью заметно опаснее, а в Горах после наступления темноты выходят волки. Ночью же неопытные игроки теряются, потому что не видят ориентиров, по которым ходят.

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

СитуацияРазумный подход
Вся группа на базе, строитПережидать ночь или спать, если все рядом с кроватями
Одна группа в экспедицииРешать ей самой; игроки на базе ложатся, когда ложится экспедиция
Игроки разбросаны по картеНе просить никого бежать домой. Пережидать
Группа на поздней стадии, Равнины или Туманные землиСпать при любой возможности; ночные бои стоят снаряжения
Один игрок онлайнСпит, когда захочет

Последнюю строку забывают чаще всего. Когда подключён один человек, он и есть "все", поэтому он может пропустить ночь в одиночку. Это нормально.

tod, skiptime и часы сервера#

Когда сон мешает, администраторы идут в консоль. Две известные команды входят в набор читов devcommands, который на ванильном выделенном сервере отклоняется для всех, админ вы или нет, - подробности в руководстве по devcommands. Даже если их включил мод, на многопользовательском мире они делают меньше, чем ждут.

code
> tod 0.5> tod -1> skiptime 600

Что делает каждая:

  • `tod` задаёт время суток числом от 0 до 1, где 0.5 - полдень, а -1 возвращает управление игре. В многопользовательском мире считайте, что команда меняет только то, что показывает ваш клиент. Часы сервера она не двигает, ночные спавны не останавливает, а остальные игроки по-прежнему видят ночь. Это инструмент для скриншотов.
  • `skiptime [seconds]` сдвигает часы мира вперёд. Часы принадлежат тому, кто запускает мир, - на выделенном сервере это сервер, - поэтому команда с клиента не гарантированно что-то меняет для группы. Если вы используете мод вроде Server Devcommands, посмотрите в его документации, какие команды он выполняет на сервере за вас; от версии к версии мод меняется.

Ванильный способ сдвинуть часы без модов - тот же, что и для любой правки на уровне мира: остановить сервер, скачать файлы мира .db и .fwl, открыть их в одиночной игре, выполнить devcommands и skiptime, корректно выйти, чтобы мир сохранился, и загрузить пару обратно. Часы мира хранятся в файле мира, так что изменение переезжает вместе с ним. Загрузка описана в статье о загрузке локального мира на сервер. Ради одной ночи это слишком много усилий, поэтому так почти никто не делает, кроме случаев, когда нужно исправить что-то странное, например часы, которые мод утащил далеко в будущее.

Часы, когда никого нет онлайн

Сервер ведёт мир, пока работает его процесс, есть игроки или нет. Время идёт, счётчик дней растёт, и когда кто-то зайдёт, будет то время суток, которое будет. Отсюда два практических вывода:

  • Зайти ночью - это нормально на сервере, который работает круглосуточно. Никто ничего не сделал неправильно.
  • Процессы, привязанные ко времени, догоняют. То, что считается по часам мира - рост посевов, ферментеры, - учитывает прошедшее время, когда эта область загружается снова. Вы не теряете прогресс, пока оффлайн, и не получаете лишнего, поспав в одиночной копии.

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

Правила сна для группы#

Проблема согласования - социальная, поэтому решается короткое письменное правило, а не настройка. Вот те, что работают у большинства компаний друзей:

  1. Объявляйте в чате. "Спим через две минуты" в сумерках. Кто хочет пропустить ночь, идёт домой; кто не хочет, говорит об этом.
  2. Никакого давления на экспедиции. Игроку посреди склепа или морского похода никто не велит бежать назад. Игроки на базе в это время просто пережидают ночь.
  3. Кровать на каждой передовой базе. Если вы строите лагерь в новом биоме, поставьте там кровать и костёр на каждого, кто идёт. Тогда экспедиция может спать на месте, и те, кто дома, тоже.
  4. Бездействующие игроки выходят из игры. Если вы отходите от клавиатуры больше чем на несколько минут, отключитесь. Запущенная игра ночью блокирует всех остальных, и это самая частая причина "ночь никогда не пропускается".
  5. Одиночка спит свободно. Никто не жалуется, что ночь пропустили, пока он был оффлайн.

Для публичного или общественного сервера те же правила стоит включить в список правил сервера - написание правил для сервера Valheim разбирает весь этот документ. Большим серверам, где онлайн много игроков одновременно, сложнее, потому что вероятность того, что в сумерки свободны все восемь человек, мала. Именно тогда стоит подумать о моде.

Группы в разных часовых поясах

Когда половина группы играет вечером по европейскому времени, а другая - вечером по североамериканскому, пересечение коротко, и проблема меняется. Обычно онлайн только одна часть, и каждая может спать, когда ей удобно. Трения возникают в час пересечения:

Моды, меняющие сон#

На Thunderstore есть несколько модов, смягчающих правило "спать должны все": ночь пропускается, когда в кроватях настраиваемая доля игроков, иногда с сообщением в чате о том, сколько человек спит. Они полезны для больших серверов сообщества и в основном не нужны пятерым друзьям.

Что проверить у любого мода сна перед установкой:

  • Где он работает. Мод, меняющий решение о пропуске ночи, должен стоять на сервере. Нужен ли он при этом каждому игроку, зависит от мода - читайте его страницу. Если клиентам он нужен, игроки Xbox на сервере с кроссплеем не смогут зайти, ведь они не могут ставить моды.
  • Поддерживается ли он. Моды сна правят тот же код, который игра меняет в крупных обновлениях. Посмотрите дату последнего релиза и комментарии после самого свежего патча игры.
  • Что он делает с Rested. Некоторые пропускают ночь, но не дают бонус Rested тем из спящих, кто ещё не спал; обычно это нормально.

Установка любого из них идёт обычным путём через BepInEx, описанным в статье о модах Valheim с BepInEx. Относитесь к моду сна как к любому другому: сделайте резервную копию мира перед установкой и будьте готовы ждать обновления после патча игры.

На RE:NODE серверы Valheim работают с включённым кроссплеем, и здесь это важно: если в вашей группе есть игроки Xbox, мод сна, который нужно ставить на клиенты, закроет им вход, так что выбирайте мод только для сервера или оставайтесь на ваниле. Моды загружаются через файловый менеджер или SFTP, а резервная копия перед изменением делается одной кнопкой в панели.

Устранение проблем со сном#

"Ночь никогда не пропускается". Кто-то из подключённых не лежит в кровати. Спросите в чате, кто не у кровати, и проверьте, нет ли игроков, которые простаивают с открытой игрой. Игрок, застрявший на экране загрузки или сидящий в окне инвентаря, всё равно считается бодрствующим.

Кровать пишет, что сейчас не ночь. Сумерки - это не ночь. Подождите немного: игра разрешает сон, когда считает, что ночь началась.

Кровать отказывает из-за крыши или тепла. Добавьте элемент крыши прямо над кроватью и костёр достаточно близко, чтобы согреть место. Обычно виноваты кровати в навесе или на открытом балконе.

"Враги рядом". Поблизости, часто вне поля зрения за стеной или в воде, находится что-то враждебное. Разберитесь с ним или перенесите кровати во внутреннюю комнату.

Игроки просыпаются в неожиданном месте. Они заняли другую кровать. Взаимодействуйте с той кроватью, которая нужна как точка возрождения, и держите кровати передовых лагерей чётко отдельно от домашних.

Сон пропустил ночь, но событие всё равно пришло. Рейды не привязаны к ночному времени. О рейдах и их времени читайте в статье о рейдах и событиях на серверах.

FAQ#

Можно ли в ванильном Valheim изменить, сколько игроков должно спать?

Нет. В ваниле нужно, чтобы одновременно в кровати были все подключённые игроки, и нет ни аргумента запуска, ни модификатора мира, чтобы это изменить. Единственный путь - мод, и он должен работать на сервере.

Идёт ли время на сервере, когда все оффлайн?

Да, пока процесс сервера запущен. Счётчик дней продолжает расти, и заходить вы часто будете ночью. Посевы и ферментеры догоняют, когда их область загружается снова.

Почему мой друг не может спать в кровати рядом с моей?

Каждая кровать принадлежит игроку, который её занял. Вашему другу нужна своя кровать; если он займёт чужую, точка возрождения перенесётся туда, но делить её двоим нельзя.

Сделает ли tod день для всех?

Нет. В многопользовательском мире tod меняет только то, что показывает ваш клиент, требует включённого набора читов и не трогает часы сервера и ночные спавны. Для пропуска ночи используйте кровати.

Стоит ли вместо этого пережидать ночь?

Часто да. Полные сутки - это всего около получаса реального времени, а ночь - меньшая их часть. Строительство, плавка и сортировка сундуков хорошо её заполняют, и не нужно возвращать домой игроков из экспедиции.