Rust Руководство

Мир Rust сбросился после рестарта: identity, seed и протокол

Определите причину сброса мира Rust: несовпадение server.identity, изменение seed, повреждение sav-файла или протокольный вайп.

Мир Rust сбросился после рестарта: identity, seed и протокол

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

Инструкция предназначена для администраторов серверов Rust на Linux. На 27 октября 2026 года имя файла сохранения жестко привязано к тройке параметров: размеру мира, сиду и версии протокола сохранения Facepunch.

Как Rust определяет путь к файлу сохранения#

Вся информация о мире, постройках и инвентарях хранится внутри каталога:

text
server/<server.identity>/proceduralmap.<size>.<seed>.<protocol>.sav

Например, для сервера с параметрами +server.identity "main" +server.worldsize 3500 +server.seed 48291 файл мира будет называться:

text
server/main/proceduralmap.3500.48291.261.sav

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

Причина 1: Смена или отсутствие server.identity#

Если в скрипте запуска, unit-файле systemd или docker-compose была удалена или опечатана строка +server.identity, Rust подставит внутреннее значение по умолчанию: my_server_identity.

В результате сервер создаст новую папку server/my_server_identity/ и сгенерирует в ней чистый мир. Ваши настоящие сохранения по-прежнему лежат в прежнем каталоге (например, server/main/).

Проверьте содержимое каталога server/:

bash
ls -la /srv/rust/server/

Если вы видите несколько папок с разными именами, верните правильное значение +server.identity в скрипт запуска и перезапустите службу.

Причина 2: Изменение seed или worldsize в скрипте запуска#

Случайное изменение хотя бы одной цифры в +server.seed или +server.worldsize приводит к тому, что игра ищет файл с новым именем.

Изучите существующие файлы .sav в папке вашего профиля:

bash
ls -la /srv/rust/server/my_server_identity/*.sav*

Сверьте цифры в имени файла с вашей строкой запуска:

Параметр в строке запускаЗначение из имени файла .savРезультат
+server.worldsize 35003500Совпадение (мир загружается)
+server.seed 4829148291Совпадение (мир загружается)
+server.seed 4829248291Несовпадение (создаётся новый мир)

Если параметры в скрипте запуска разошлись с именем последнего файла сохранения, исправьте сид и размер карты на исходные значения.

Пошаговая проверка причин сброса: сверка имени профиля, сопоставление сида и размера, проверка целостности sav-файла и версии протокола.

Причина 3: Повреждение файла сохранения или OOM#

Если сервер был принудительно остановлен (kill -9, аварийное отключение питания или OOM Killer ядра Linux) непосредственно во время записи автосейва, основной файл .sav может оказаться повреждённым или иметь нулевой размер.

В таком случае Rust создаёт резервные копии с номерами .sav.1, .sav.2 и так далее. Если основной файл повреждён, восстановите последнюю резервную копию:

bash
cd /srv/rust/server/my_server_identity
ls -lh proceduralmap.*.sav*
cp -p proceduralmap.3500.48291.261.sav.1 proceduralmap.3500.48291.261.sav

Причина 4: Принудительный глобальный вайп (Forced Wipe)#

В первый четверг каждого месяца Facepunch выпускает обязательное обновление, в котором увеличивается версия протокола сохранений (например, переход с 260 на 261).

Новый бинарный файл RustDedicated принципиально отказывается загружать сохранения, созданные на предыдущей версии протокола, даже если сид и размер карты остались прежними. В журнале сервера при этом появляется строка: Save protocol mismatch: expected 261, got 260. Это нормальное поведение игры, предотвращающее повреждение структур данных новыми механиками обновления.

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

Источники#