RE:NODE

Выброшенные предметы и очистка мира Valheim на сервере

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


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

Более общая картина того, что тормозит сервер, описана в статье Лаги сервера Valheim: владение зонами и рассинхронизация. Эта статья - о том, что накапливается.

Как Valheim обращается с предметами на земле#

Когда предмет покидает инвентарь - его выбросил игрок, он выпал из убитого существа, из разрушенного сундука, из срубленного дерева, - он становится отдельным объектом в мире с положением, типом предмета и размером стопки. Он сохраняется в файле мира так же, как строительный элемент.

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

Где лежит предметИсчезает?Почему это важно
Дикая местность, зона загруженаДа, примерно через часСтарые поля боёв очищаются сами
Дикая местность, рядом никогоНе пока зона выгруженаТаймер идёт только при симуляции
На территории базыНетЗдесь накапливается хлам
В надгробииНетНадгробия - контейнеры
В сундуке, телеге или на подставкеНетКонтейнеры и подставки - не выброшенные предметы

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

Это единственное правило объясняет типичную картину на сервере. Дикая местность выглядит аккуратной. А в главной базе в двадцати метрах от плавилен лежат триста стопок камня, дерева и осколков костей, и лежат они с тех пор, как расчистили болото.

Надгробия и забеги за трупом#

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

Что это значит на сервере:

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

Сам штраф за смерть - потеря навыков и то, как его меняет модификатор, - описан в статье Штраф за смерть и надгробия в Valheim. Когда надгробие действительно потеряно, застряло под картой или в скале, статья инструменты админа для потерянных надгробий объясняет, как найти его с помощью pos и goto и когда лучше выдать предметы заново.

Погибшие питомцы, погибшие монстры и их добыча#

Погибшие существа выбрасывают добычу как обычные выброшенные предметы: мясо, шкуры, трофеи, чешую. Это относится и к прирученным животным.

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

Питомцы - также одни из самых дорогих живых объектов на сервере, потому что каждого из них симулирует владелец зоны. Разумные размеры загонов разобраны в статье Питомцы, разведение и нагрузка на сервер Valheim. Коротко о хламе: кто ведёт загон, тот собирает его добычу.

Уборка с removedrops и другими командами#

Ванильные админские инструменты против хлама - devcommands. На выделенном сервере админ должен быть в adminlist.txt, включить консоль через -console в параметрах запуска Steam и ввести devcommands в консоли F5. О том, как их включить и чего стоит каждая, рассказано в статье Valheim devcommands: разбор.

КомандаЧто удаляетЧто не трогает
removedropsВсе лежащие предметы в загруженной области вокруг васНадгробия, сундуки, подставки, телеги
killenemiesВраждебные существа поблизостиПитомцев и игроков
killtameПрирученные существа поблизостиВрагов и игроков
killallВсе существа поблизости, включая питомцевИгроков

removedrops действует на загруженную вокруг вас область, а не на радиус, который вы выбираете. Если встать посреди главной базы и запустить её, очистятся база и её окрестности - включая то, что игрок сознательно оставил на полу. Пол ведь используют как склад.

Безопасный порядок уборки общей базы:

  1. Объявите об этом. Например: "В воскресенье вечером убираем лежащие предметы на главной базе, всё нужное уберите в сундук" - в Discord сервера за несколько дней.
  2. Сделайте бэкап. На панельном хостинге сделайте ручной бэкап прямо перед этим. На RE:NODE это один клик на вкладке Backups, а восстановление - одна кнопка, если чья-то любимая куча трофеев окажется лежащей на полу.
  3. Встаньте в нужное место. Подойдите к центру захламлённой области. Если нужно добраться без прохода через чей-то дом, используйте fly из devcommands.
  4. Запустите один раз. removedrops, затем проверьте ответ консоли и осмотритесь.
  5. Сохраните. save записывает мир немедленно, так что результат уборки переживёт сбой.
code
devcommandsremovedropssave

Что со временем раздувает файл мира#

Мир Valheim - это один файл .db плюс небольшой .fwl. Свежий мир занимает несколько мегабайт; давно живущий - обычно десятки, а то и сильно больше сотни мегабайт. В файле хранится каждый объект, который помнит мир, и основной рост дают несколько категорий.

ИсточникКак растётМожно ли почистить?
ИсследованиеКаждая сгенерированная зона хранит свои деревья, скалы, растения и локацииТолько регенерацией зон модом
Строительные элементыКаждая стена, пол, факел и украшениеРазборкой
Правки рельефаЗапись рельефа на каждую изменённую зонуВ ванильной игре нельзя
Выброшенные предметыОдин объект на каждую лежащую стопкуremovedrops или подобрать
Контейнеры и содержимоеСундуки, телеги, подставки и то, что в них лежитОпустошением и удалением
СуществаПитомцы, племенной скот, монстры в загруженных зонахНебольшие загоны, killtame в крайних случаях
Таблички, порталы, кораблиПо одному объектуРазборкой

Исследование - самый большой фактор, и это не хлам, а сам мир. Когда игрок впервые подходит к зоне, игра генерирует её: растительность, скалы, собираемые предметы, подземелья и другие локации. Всё это становится сохранёнными объектами. Группа, обплывшая всю карту за месяц, раздувает файл гораздо сильнее, чем любое количество выброшенного камня. Поэтому же потребление памяти растёт вместе с исследованной частью карты, как объясняет статья сколько RAM нужно серверу Valheim.

Дальше идёт строительство. Большая база может состоять из многих тысяч элементов. Каждый хранится и загружается. Терраформирование добавляет собственные записи по зонам - см. Терраформирование на серверах Valheim.

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

Сам по себе файл заметно не уменьшается. Подбор предметов убирает объекты-предметы, а исследованные зоны, записи рельефа и элементы остаются, пока их не удалят.

Как поддерживать порядок в давно живущем мире#

Основная работа - это привычки, а не команды.

  1. Сундук для сброса у каждой рабочей зоны. Подписанный сундук рядом с печью, плавильнями и верстаком, чтобы у камня, дерева и костей было место, кроме пола.
  2. Подбирайте после рубки. Деревья, срубленные внутри базы, дают брёвна и древесину, которые никогда не исчезают. Если рубить вне территории базы, остатки уберутся сами.
  3. Отбивайте набеги на краю. Добыча с врагов из набега, убитых за стенами, может исчезнуть; внутри базы - нет.
  4. Выводите заброшенные форпосты из обращения. Форпост, которым никто не пользуется, по-прежнему хранит все элементы, сундуки и выброшенные предметы. Разберите его или хотя бы опустошите и переименуйте его портал, чтобы он не мог заново соединиться - см. проектирование хаба порталов Valheim.
  5. Ежемесячное окно для уборки. Объявите, сделайте бэкап, запустите removedrops в главной базе и на самых оживлённых форпостах. Группы, которые так делают, редко видят замедление баз из-за хлама.
  6. Следите за размером файла. Раз в месяц отмечайте размер .db в файловом менеджере панели. Устойчивый рост - норма; резкий скачок после одних выходных заслуживает вопроса.
  7. Еженедельные перезапуски. Плановый чистый перезапуск удерживает память на одном уровне и гарантирует регулярное сохранение мира. Как предупредить игроков и сохраниться заранее, описано в статье Плановые перезапуски и автоматизация Valheim.

Моды могут автоматизировать часть этой работы. Upgrade World от JereKuusela включает команды для подсчёта и удаления объектов на больших территориях, чем достают ванильные команды, и для регенерации непосещённых зон; это точный инструмент без отмены, поэтому прочитайте Upgrade World для Valheim и сделайте бэкап, прежде чем его использовать. На Thunderstore есть и серверные моды очистки, которые удаляют старые предметы по таймеру. Они работают, но возвращают проблему "пол как склад" в автоматическом виде - убедитесь, что все знают это правило.

Когда уборка - не ответ#

Хлам - проще всего обвинить в тормозах мира, но не всегда справедливо.

  • Лаги, которые следуют за одним игроком, - это владение зоной, а не хлам. Лечение - перенос владения, а не удаление предметов.
  • Долгая загрузка после телепортации - это клиент загружает место назначения. Более аккуратная база немного помогает; прибытие на портал сразу за базой помогает больше.
  • Медленные сохранения в огромном мире - это размер исследованной карты плюс базы. Уменьшение -saveinterval делает потерю прогресса при каждом сохранении меньше, а не само сохранение быстрее.
  • Мир, исследованный до самых краёв, уже достиг своего размера. Если производительность неприемлема, честный ответ - новый мир; как начать его, не потеряв ни у кого снаряжение, описано в статье новый мир без потери персонажей.

А если уборка пошла не так, мир - это один файл. Восстановите бэкап, сделанный перед ней; какие файлы хранить и почему автоматические бэкапы рядом с миром не считаются настоящей копией, объясняет статья Бэкапы Valheim и повреждение мира.

FAQ#

Исчезают ли выброшенные предметы в Valheim?

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

Удаляет ли removedrops надгробия?

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

Можно ли отменить removedrops?

Только восстановлением бэкапа, сделанного до запуска. Отмены в игре нет, поэтому предупредите игроков и сначала сделайте бэкап.

Что происходит с седлом прирученного животного, когда оно погибает?

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

Почему наш файл мира такой большой?

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

Стоит ли использовать мод автоматической очистки?

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