Как конвертировать старый мир в новую версию

Scrap Mechanic40 views2 min readRussianby CHERNYASHView on Steam ↗

Russia

Конвертер старых миров Scrap Mechanic 1.0 (v27 → v28)

После релиза Scrap Mechanic 1.0 (Drilling Thunder) старые Survival-сейвы (savegameversion 27) больше нормально не открываются в новом клиенте. Новые миры создаются уже с версией 28.

Этот гайд — про неофициальный скрипт, который приводит старый `.db` мир к формату 1.0, чтобы в него можно было зайти из новой версии.

Репозиторий на GitHub:
GITHUB[github.com]


Важно прочитать перед стартом

  • Сделай бэкап файла мира. Если что-то пойдёт не так — вернёшь оригинал за минуту.
  • Инструмент неофициальный и не связан с Axolot Games. Используешь на свой страх и риск.
  • Старый мир не получит новый контент 1.0 (новые шахты, квестовую структуру генерации и т.п.). Цель — загрузить базы и постройки, а не превратить карту в полноценный новый сейв.
  • Нужен Python 3.9+.


Где лежат сейвы

Путь к Survival-мирам:
%AppData%\Axolot Games\Scrap Mechanic\User\User_<SteamID>\Save\Survival\

Файл мира выглядит так: ИмяМира.db


Как конвертировать мир

1. Скачай скрипт с GitHub
Открой репозиторий и скачай migrate_sm_v28.py:
GITHUB[github.com]
2. Сделай копию сейва
Скопируй свой .db в отдельную папку (например на Рабочий стол). Оригинал не трогай, пока не проверишь результат.
3. Запусти миграцию
В командной строке / PowerShell:
python migrate_sm_v28.py "C:\path\to\OldWorld.db" "C:\path\to\OldWorld_v28.db"

Пример:
python migrate_sm_v28.py Povtor3_v27_backup.db Povtor3_v28.db

4. Положи результат в папку сейвов
Замени файл мира на сконвертированный _v28.db (имя файла должно совпадать с тем, что видит игра), либо положи рядом под новым именем — как удобнее.
5. Зайди в игру
Запусти Scrap Mechanic 1.0 и попробуй открыть мир.


Что именно меняет скрипт

Сравнение старого (v27) и нового (v28) формата показало такие отличия:
  • Game.savegameversion: 27 → 28
  • Game.uniqueIds: количество счётчиков 16 → 17, в конец добавляется 0x40000000
  • ScriptableObject: появляется колонка worldId + индекс
  • ScriptableObject.data: после 7-байтного заголовка вставляется FF FE (noWorld / 65534)
  • ChildShape.data: в конец дописывается байт 0x00
  • Unit.data: в конец дописывается байт 0x00


Если не запускается / крашит

  • Верни бэкап .db.
  • Проверь, что конвертировал именно Survival-сейв версии 27.
  • Убедись, что Python установлен и команда python работает.
  • Напиши в комментарии к гайду / открой Issue на GitHub и приложи текст ошибки или скрин.

GitHub Issues:
Github issues/issues[github.com]


Not affiliated with Axolot Games. Use at your own risk.

This guide was created by its original author on the Steam Community. Are you the author and want it removed? Request removal.