Сброс сервера Project Zomboid бывает трёх размеров, и какой из них вы получите, решает папка сохранения. Удаление Zomboid/Saves/Multiplayer/<servername>/ стирает мир и всех персонажей, но оставляет аккаунты, вайтлист и баны, которые лежат в Zomboid/db/<servername>.db. Удаление только файлов чанков карты в этой папке - с сохранением players.db - сбрасывает мир, а персонажи сохраняют навыки и инвентарь. Удаление только тех чанков, что лежат вне защищаемых областей, - это частичный сброс: города заново наполняются лутом и зомби, а базы остаются. Что бы вы ни выбрали, сначала корректно остановите сервер, сделайте резервную копию всей папки Zomboid и увеличьте ResetID в ini, если сам мир новый.
В этом руководстве разобрано, что представляет собой каждый файл сохранения, три вида сброса и как сделать каждый, какие настройки при изменении требуют сброса и как вести сервер так, чтобы сбросы были нужны реже. Остальной файл настроек описан в статье настройки сервера Project Zomboid.
Что где лежит#
Всё, что знает выделенный сервер, находится в его папке Zomboid, и каждый файл назван по имени сервера, переданному через -servername (по умолчанию servertest):
Zomboid/ Server/ servertest.ini server options, mods, ResetID servertest_SandboxVars.lua world rules servertest_spawnregions.lua where new characters appear db/ servertest.db accounts, whitelist, access levels, bans Saves/Multiplayer/servertest/ the world as played map_<x>_<y>.bin one file per explored chunk players.db characters: skills, inventory, position vehicles.db vehicles in the world map_meta.bin safehouses, factions and other world metadata map_t.bin the world clock map_sand.bin the sandbox options this world was created with backups/ the server's own zipped backupsТочный набор файлов в папке сохранения различается от сборки к сборке, и вы увидите больше, чем здесь перечислено, - файлы популяции зомби по клеткам и разные таблицы. Важны три категории:
| Что | Где | Переживает вайп мира? |
|---|---|---|
| Аккаунты, пароли, уровни доступа, вайтлист, баны | db/<servername>.db | Да, если вы его не удалите |
| Персонажи | players.db в папке сохранения | Только если сохранить этот файл |
| Мир: здания, лут, зомби, постройки игроков | Файлы чанков в папке сохранения | Нет |
| Настройки сервера и песочницы | Server/ | Да |
Это структура мультиплеера Build 41, где персонажи хранятся на сервере. В Build 42 изменились внутренняя геометрия карты и формат сохранений, и разработчики заявили, что сохранения Build 41 в неё не перенесутся, - так что перевод сервера с одной на другую означает новый старт, что бы вы ни сохранили.
Перед любым сбросом#
Каждый сброс начинается одинаково. Делайте эти шаги по порядку, каждый раз.
- Объявите о нём. Назовите дату и скажите, какой это сброс. «Сброс карты, персонажи остаются» и «полный вайп» вызывают очень разную реакцию, а игроки, которых предупредили, строят планы соответственно.
- Корректно остановите сервер.
/quitиз консоли или кнопка Stop в панели. Корректная остановка записывает мир на диск. Убитый процесс оставляет последние минуты несохранёнными и может оставить чанк записанным наполовину, который вы потом бережно сохраните в резервной копии. - Сделайте резервную копию всей папки `Zomboid`. Не только сохранения. Настройки, база данных и сохранение вместе - единственная копия, из которой восстанавливается ровно то, что было.
- Храните эту копию не на диске сервера. Собственные zip-копии Zomboid в
Zomboid/backups/лежат рядом с тем, что защищают. В RE:NODE резервные копии хранятся вне машины и могут быть заблокированы от ротации - это то, что нужно для последнего снимка сезона.
Полный вайп: новый мир, новые персонажи#
Полный вайп - самый простой и самый частый вариант в конце сезона.
- Остановите сервер и сделайте резервную копию.
- Удалите
Zomboid/Saves/Multiplayer/<servername>/. - Откройте
<servername>.iniи увеличьтеResetIDна единицу. - Поменяйте любые настройки песочницы, которые хотите для нового сезона (см. ниже - некоторые из них и так действуют только на новый мир).
- Запустите сервер. Мир генерируется по мере того, как игроки его исследуют, начиная с регионов спавна.
ResetID=485729113Значение - просто число. Важно, чтобы оно изменилось. Клиенты запоминают кое-что о серверах, на которые заходили, и новый ResetID сообщает им, что знакомого мира больше нет, - это избавляет от странного поведения из-за устаревших кэшированных данных при переподключении.
Аккаунты сохраняются, потому что лежат в базе данных. Все заходят с тем же логином и паролем, вайтлист продолжает действовать, баны тоже, а модераторы сохраняют свой уровень доступа. Если нужен и свежий состав - новое сообщество или сервер, который был открытым, а становится приватным, - удалите заодно db/<servername>.db. Это удаляет все аккаунты, включая admin, так что держите пароль администратора под рукой к следующему запуску; в RE:NODE пароль администратора генерируется для каждого сервера и показывается вместе с остальными его реквизитами.
Сброс карты: новый мир, те же персонажи#
Сброс карты даёт свежий, полностью нетронутый мир, где все зомби на месте, а игроки сохраняют персонажей - навыки, черты, выученные рецепты и всё, что у них с собой. Он подходит давно работающему серверу, где карту вычистили дочиста, но никто не хочет терять два месяца прокачки плотничества.
- Остановите сервер и сделайте резервную копию.
- В папке сохранения оставьте
players.db. Решите, что делать сvehicles.db(ниже). - Удалите всё остальное в папке сохранения.
- Запустите сервер.
Персонажи загружаются в той позиции, где были в старом мире, а значит, кто-то зайдёт, стоя там, где у здания раньше был второй этаж, или внутри здания, которое теперь заперто и полно зомби. Это можно решить двумя способами:
- Попросите игроков заходить, когда рядом есть друзья, и примите немного хаоса как часть сброса.
- Перед сбросом попросите всех перейти на открытое место - в поле, на дорогу - и выйти из игры там.
Их базы, конечно, исчезнут вместе со всеми вещами, которые в них хранились. Уцелеет только то, что персонаж несёт с собой. Популярная любезность - объявить сброс за неделю, чтобы люди успели собрать в рюкзак то, что им дорого.
В vehicles.db хранятся все машины в мире. Оставлять его, удаляя чанки под этими машинами, - не та комбинация, на которую рассчитана игра. Если у вас нет конкретной причины, удалите его вместе с картой, и машины заспавнятся заново.
В map_meta.bin хранятся права на сейфхаусы. При сбросе карты здания, на которые они ссылаются, тоже сбрасываются, поэтому удалите его; иначе игроки будут владеть зданиями, полными новых зомби и лута, а это в лучшем случае путает.
Частичный сброс: наполнить города, сохранить базы#
Частичный сброс - то, к чему в итоге приходит большинство долгоживущих серверов. Разграбленные города снова наполняются лутом и зомби, а базы игроков и территория вокруг них остаются ровно такими, какими были.
Это работает, потому что мир хранится в файлах чанков - по одному на каждый исследованный чанк, с именем по координатам чанка. Удалите файл чанка, и сервер заново сгенерирует этот кусок карты из исходных данных карты, когда кто-нибудь в следующий раз подойдёт близко: свежий лут, свежие зомби, закрытые двери, целые окна. Оставьте файл чанка, и этот кусок мира не изменится.
В Build 41 чанк - это 10 на 10 тайлов, поэтому файл map_1180_1020.bin покрывает тайлы x 11800-11809, y 10200-10209. Чтобы защитить базу:
- Узнайте координаты базы в тайлах. Администратор может посмотреть их в игре; на веб-картах ванильного мира от сообщества координаты тоже показаны.
- Вычислите диапазон координат чанков, покрывающий базу плюс запас в несколько чанков, разделив координаты тайлов на 10.
- Остановите сервер и сделайте резервную копию.
- Удалите все
map_<x>_<y>.binза пределами защищённых диапазонов. Оставьтеplayers.db,vehicles.dbиmap_meta.bin. - Запустите сервер и посетите сброшенный город и защищённую базу, чтобы проверить и то, и другое.
Делать это вручную больше чем для двух-трёх баз легко с ошибками. Большинство админов пишут небольшой скрипт или пользуются одним из инструментов сообщества, сделанных для этого: они читают список защищённых прямоугольников - часто взятый из списка сейфхаусов - и удаляют всё остальное. Чем бы вы ни удаляли, сначала запустите это на копии и посмотрите на результат.
Две оговорки. Машины, оставленные в сбрасываемой области, могут странно себя вести после регенерации их чанка; попросите игроков сначала пригнать машины домой. И размер чанка и именование файлов изменились в Build 42, так что скрипт, написанный под координаты Build 41, на сервере Build 42 работает неправильно - проверьте файлы на своей сборке, прежде чем доверять любой арифметике, включая арифметику из этого руководства.
Настройки, которым нужен новый мир#
Не все настройки песочницы применяются к существующему миру. Мир хранит настройки песочницы, с которыми был создан, - это и есть map_sand.bin, - и несколько параметров срабатывают один раз, при создании, или привязаны ко времени с начала мира:
- Дата и время начала -
StartYear,StartMonth,StartDay,StartTime. - Отключение коммуникаций -
WaterShutиElecShutотсчитываются от начала мира, поэтому их изменение потом не перезапускает обратный отсчёт. - Выбор карт - порядок
Mapи моды карт, которые определяют, из какой географии генерируются чанки. - Регионы спавна - в каких городах могут начинать новые персонажи.
Другие параметры, например популяцию и респавн зомби, редкость лута и множители опыта, обычно можно менять на существующем мире через настройки песочницы в админ-панели в игре или правкой Lua-файла с перезапуском. Полный список параметров - в статье SandboxVars в Project Zomboid.
Для модов карт есть своё правило. Добавить мод карты в существующий мир можно; новая область сгенерируется, когда в неё кто-то впервые зайдёт. Удаление мода или такая перестановка Map, при которой в исследованной области побеждает другая карта, оставляет чанки, ссылающиеся на данные карты, которых у сервера больше нет. Это сброс - как минимум затронутой области. Строка Map и порядок загрузки разобраны в статье моды на сервере Project Zomboid.
Опция soft reset и почему с ней стоит быть осторожнее#
В Build 41 есть параметр запуска -Dsoftreset, который выполняет на стороне сервера сброс объектов мира с сохранением персонажей. Это из тех возможностей, что встречаются в старых ветках форумов и патчноутах, а не в документации, и её точное поведение - что она очищает, что оставляет и подходит ли она для мира с модами - менялось. Если хотите попробовать, сначала скопируйте сервер, запустите её на копии и посмотрите на результат, прежде чем подходить к настоящему. Для большинства серверов описанные выше сбросы через файлы предсказуемее, потому что вы точно видите, что удалили.
Как реже нуждаться в сбросах#
Сбросы существуют, потому что карта заканчивается: лут вынесен, зомби зачищены, мир затихает. Несколько настроек песочницы замедляют это, и сервер живёт дольше между сбросами.
| Параметр | Эффект |
|---|---|
LootRespawn | Контейнеры пополняются по расписанию. По умолчанию выключено |
SeenHoursPreventLootRespawn | Контейнеры, в которые игроки недавно заглядывали, не пополняются |
ConstructionPreventsLootRespawn | Области с постройками игроков не пополняются - это защищает базы |
ZombieConfig.RespawnHours | Зомби возвращаются в клетки, которые давно никто не видел |
ZombieConfig.RespawnMultiplier | Сколько их возвращается |
Респавн лута с защитой построек - по сути медленный автоматический частичный сброс. Он подходит публичным серверам, где игроки приходят и уходят. Для сервера друзей, которым нравится ощущение исчерпанного мира, он кое-что отнимает, и сброс раз в несколько месяцев - ритм получше.
Решение проблем#
После сброса карты игроки потеряли персонажей. Был удалён players.db или сервер запустили с другим -servername, и он загрузил другую папку сохранения.
Персонажи сохранились, но базы из старого мира вернулись. Сервер работал во время удаления файлов и записал свои чанки из памяти обратно. Сначала остановите его, затем повторите.
После полного вайпа часть игроков не может зайти. У них устаревшие клиентские данные старого мира. Убедитесь, что ResetID изменён, и попросите их перезапустить игру.
Всем пришлось регистрироваться заново. Вместе с сохранением удалили db/<servername>.db. Если это было не нарочно, восстановите его из резервной копии.
Защищённая база лишилась огорода и забора. Запас был слишком мал. Восстановите эти файлы чанков из резервной копии - это одна из причин её делать.
После изменения модов карт мир не загружается. Из мира, где уже исследовали область мода карты, этот мод удалили. Верните его или сбросьте затронутые чанки.
Сервер не запускается с новыми настройками песочницы. Опечатка в Lua-файле. Консоль покажет строку. Сравните с файлом, который сгенерировал сервер, или восстановите предыдущий.
FAQ#
Удаляет ли вайп аккаунты игроков?
Нет. Аккаунты, пароли, уровни доступа, вайтлист и баны лежат в Zomboid/db/<servername>.db, а не в сохранении. Удаление сохранения их не трогает. Удаляйте базу данных тоже, только если хотите, чтобы все зарегистрировались заново.
Могут ли игроки сохранить навыки при сбросе карты?
Да, в мультиплеере Build 41. Персонажи хранятся в players.db в папке сохранения. Оставьте этот файл, удалите остальное сохранение, и персонажи вернутся в свежий мир с навыками и вещами, которые несли.
Что делает ResetID?
Он идентифицирует мир для клиентов. Его изменение сообщает им, что мира, который они помнят, больше нет, и это избавляет от проблем с устаревшими данными после вайпа. Увеличивайте его каждый раз, когда создаёте новый мир.
Как сбросить только разграбленные города?
Удалите файлы чанков вне защищённых областей вокруг баз игроков, оставив players.db, vehicles.db и map_meta.bin. Чанки регенерируются из исходной карты при посещении. Используйте скрипт или инструмент, проверьте его на копии и оставляйте широкий запас.
Нужен ли сброс, чтобы поменять настройки песочницы?
Только для параметров, привязанных к созданию мира, - дата начала, время отключения коммуникаций, список карт и регионы спавна. Большинство остальных - популяцию зомби, респавн, лут, опыт - можно менять на существующем мире.
Можно ли перенести мир Build 41 на Build 42?
Нет. Формат сохранений и геометрия карты изменились, и миры Build 41 на Build 42 не загружаются. Перевод сервера между ними - это новый мир, и планировать его стоит как смену сезона.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.