TeaHost
Rustrustвайпкартаадминистрирование5 мин. чтения

Как сделать вайп сервера Rust: пошагово

Как сделать вайп сервера Rust: какие файлы удалять для вайпа карты и чертежей, смена сида, очистка данных Oxide и что нельзя стирать ни в коем случае

Кратко

Вайп карты Rust — это остановка сервера, бэкап и удаление файлов proceduralmap.*.sav* и proceduralmap.*.map с последующей сменой server.seed. Для вайпа чертежей дополнительно удаляют player.blueprints.*.db, для полного — данные плагинов в oxide/data. Файлы прав oxide.users.data, oxide.groups.data и папку cfg с users.cfg не трогают никогда.

Вопрос «как сделать вайп сервера Rust» на практике сводится к тому, какие именно файлы удалить и в каком порядке. Ошибиться легко: снесёшь лишнее — потеряешь права админов и настройки плагинов, снесёшь недостаточно — игроки зайдут на новую карту со старыми базами в неположенных местах и будут писать в Discord, что сервер сломан.

Разберу по типам вайпа, с конкретными именами файлов.

Три типа вайпа

Тип вайпаЧто стираетсяЧто остаётсяКогда делают
Вайп карты (map wipe)Мир: постройки, ящики, предметы; карта генерируется зановоИзученные чертежи, права, конфигиРаз в неделю или две
Вайп чертежей (BP wipe)Изученные рецептыПрава, конфигиОбычно вместе с вайпом карты в первый четверг месяца, с обязательным патчем Facepunch
Полный вайп (full wipe)Карта, чертежи и данные плагинов: киты, кланы, дома, экономика, статистикаПрава, конфиги плагиновПо решению администрации, фактически старт с нуля

Какой ритм выбрать и как сообщать о нём игрокам — тема отдельной заметки про расписание вайпов. Про сам смысл механики есть обзорная статья.

Что где лежит

Всё нужное — в папке идентичности сервера:

код
server/myserver/
  proceduralmap.4000.1875432190.239.sav   — сохранение мира
  proceduralmap.4000.1875432190.239.map   — файл карты
  player.blueprints.5.db                  — изученные чертежи
  player.deaths.5.db                      — точки смерти
  player.identities.5.db                  — привязки игроков
  player.states.5.db                      — состояние игроков
  player.tokens.db                        — токены
  sv.files.0.db                           — картинки на табличках
  cfg/                                    — конфиги, права, баны

В именах файлов зашиты размер карты, сид и версия протокола. Файлов .sav бывает несколько — сервер хранит предыдущие сохранения с суффиксами .1, .2 и так далее. Удалять надо все.

Как сделать вайп карты на сервере Rust

Порядок такой:

  1. Предупредить игроков заранее. За сутки в Discord и в описании сервера, за час — сообщением в чат.
  2. Остановить сервер корректно: server.save, затем quit.
  3. Снять бэкап всей папки идентичности. Пять минут работы, которые однажды спасут вечер. Как настроить автоматику — здесь.
  4. Удалить файлы карты:
bash
cd /home/container/server/myserver
rm -f proceduralmap.*.sav*
rm -f proceduralmap.*.map
rm -f sv.files.0.db
  1. Сменить сид в строке запуска или в конфиге, иначе сгенерируется та же самая карта:
код
server.seed 445912337
  1. Запустить сервер и дождаться генерации. На карте 4000 это 3–8 минут, на 4500 бывает и дольше.

Про то, как подбирать сид и не получить карту без пляжей или с одним монументом, — в отдельной заметке.

Если используете кастомную карту, server.seed не трогаете, а меняете ссылку в server.levelurl. Файл карты при этом всё равно удаляется.

Вайп чертежей

Добавляется к предыдущему одна строка:

bash
rm -f player.blueprints.*.db

Никаких других файлов трогать не нужно. Число в имени (5) — версия формата, у Facepunch она меняется раз в пару лет, поэтому надёжнее удалять по маске.

Сообщите об этом отдельно: игроки болезненно относятся к вайпу чертежей и хотят знать заранее, будет он или нет. Формулировка в описании сервера обычно выглядит как «Вайп карты — каждый ЧТ, БП — 1-й ЧТ месяца».

Очистка данных плагинов

Здесь начинается зона риска. В oxide/data/ лежат вперемешку и игровые данные, и служебные.

Можно и нужно чистить при полном вайпе:

код
oxide/data/Kits*.json          — кулдауны и выданные киты
oxide/data/Clans.json          — кланы
oxide/data/Economics.json      — балансы игроков
oxide/data/HomesData.json      — точки телепорта
oxide/data/PlayerRanks/        — статистика
oxide/data/RaidableBases/      — прогресс ивентов

Ни в коем случае не удалять:

код
oxide/data/oxide.groups.data   — группы прав
oxide/data/oxide.users.data    — привязка игроков к группам

Именно во втором файле лежат ваши VIP-игроки и админы. Стёрли — и весь купленный донат исчез, а возвращать придётся руками по списку платежей. По документации Oxide права хранятся именно в этих двух файлах; как устроена система, разобрано в заметке о правах и группах Oxide.

Отдельно: файлы в oxide/config/ при вайпе не трогают вообще. Это настройки, а не данные.

Многие плагины умеют чистить свои данные сами — у большинства есть команда вида kits.wipe или опция Wipe on new save: true в конфиге. Такой способ надёжнее ручного удаления файлов.

После запуска

Проверьте по списку:

  • Сервер поднялся, status показывает корректный размер карты и сид.
  • oxide.plugins — все плагины загрузились без ошибок.
  • Права на месте: зайдите и проверьте, что админка работает, а тестовый VIP видит свои привилегии.
  • Обновлено описание в server.hostname — дата следующего вайпа должна быть актуальной, это сильно влияет на приток игроков из списка серверов.
  • Опубликована ссылка на карту (RustMaps) в Discord. На новых серверах это одна из самых кликаемых вещей в день вайпа.

Автоматизация

Руками каждую неделю — быстро надоедает. Три варианта:

  • Планировщик хостинга. Задача по cron, которая останавливает сервер, выполняет скрипт удаления и запускает обратно. Самый прозрачный способ.
  • Плагины автовайпа. Умеют менять сид случайным образом и чистить данные по расписанию.
  • Свой bash-скрипт с генерацией сида: server.seed $((RANDOM * RANDOM % 2147483647)).

Подробный разбор автоматизации есть в блоге. Если вайп не в стандартный четверг, выставьте таймер вайпа в игре конварами wipetimer.* — они описаны в вики Facepunch.

Частые вопросы

Почему после вайпа остались старые базы?

Не удалились все .sav-файлы. Проверьте маску: помимо основного файла бывают proceduralmap.4000.1875432190.239.sav.1 и подобные.

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

Сид не поменялся. Чаще всего он прописан в двух местах — в строке запуска (Startup в панели) и в server.cfg, причём server.cfg читается позже и перекрывает аргументы. Держите сид в одном месте и проверяйте командой server.seed в консоли после старта.

Почему после вайпа слетели админы?

Удалён users.cfg или oxide.users.data.json. Восстанавливайте из бэкапа — это единственный способ вернуть список без ручного перебора.

Нужно ли вайпать после каждого патча Rust?

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

Итог

Короткий чек-лист: предупредить, сохранить, остановить, забэкапить, удалить proceduralmap.*, при необходимости player.blueprints.*, сменить сид, аккуратно почистить oxide/data без файлов прав, запустить, проверить плагины и обновить описание.

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