Enshrouded: краш сервера при загрузке мира
Сервер стартует, лог доходит до строчки про загрузку мира — и всё, процесс вылетает или зависает намертво. При этом на пустом тестовом мире всё работает нормально, а вот конкретный сейв с прогрессом игроков упорно роняет сервер. Это одна из самых неприятных ситуаций в Enshrouded, потому что причин у неё несколько, и лечатся они по-разному. Разберём по шагам, как понять, что именно сломалось, и как вернуть мир к жизни, не потеряв прогресс игроков.
Содержание
Сначала определите, какой именно это краш
Прежде чем что-то чинить, важно сузить круг подозреваемых. Краш «при загрузке мира» может означать три разные вещи:
- Падает сам процесс
enshrouded_server.exeсразу после строчки в логе о загрузке savegame — почти всегда это повреждённый файл сохранения или нехватка памяти. - Сервер стартует и висит в списке серверов, но не пускает никого — часто это как раз память: процесс жив, но не может выделить нужный объём и подвисает на десятки минут.
- Сервер загружается нормально, но крашится через минуту-две после того как первый игрок заходит и начинает подгружать чанки — это уже почти наверняка не сейв, а конфликт мода/патчера с новой версией сервера.
Откройте папку ./logs рядом с enshrouded_server.exe и найдите файл с последним по времени логом. Ищите момент, где обрывается вывод — сразу после этой строки обычно и написана (или не написана) причина. Если в логе просто тишина без явной ошибки — переходите к проверке памяти, движок Enshrouded не всегда толком логирует OOM-килы.
Повреждённый файл сохранения
Мир сервера лежит в папке, которая задаётся полем saveDirectory в enshrouded_server.json — по умолчанию это подпапка ./savegame рядом с исполняемым файлом. Внутри — набор файлов сейва конкретного слота. Файл может повредиться из-за:
- жёсткого выключения хоста или
kill -9процесса сервера во время автосохранения; - обновления сервера через SteamCMD пока процесс ещё не был остановлен (частая ошибка в автоматизированных скриптах обновления);
- обрыва диска или нехватки места на разделе прямо в момент записи сейва.
Проверить гипотезу просто: временно переименуйте папку savegame в savegame_broken, запустите сервер — он создаст чистый новый мир. Если сервер поднялся без проблем, повреждён именно сейв, а не конфиг или установка. Дальше два пути:
- Если есть свежий бэкап — восстанавливаете его (раздел ниже).
- Если бэкапа нет — можно попробовать откатить сейв на предыдущее автосохранение, если хостер или ваш скрипт делают ротацию нескольких последних копий, а не одну перезаписываемую. Полного «лечения» одного конкретного повреждённого файла без сторонних инструментов для парсинга формата сейва Enshrouded, по сути, нет — разработчики не публикуют официальный repair-тул, так что тут только бэкап.
Совет на будущее: настройте автобэкап так, чтобы хранились не одна, а 5–10 последних копий с интервалом в час — тогда даже если повреждение попало в бэкап, у вас есть более старая версия. Подробно про схему ротации — в статье про автобэкапы игрового сервера.
Поднять сервер Enshrouded за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверНехватка RAM — вторая по частоте причина
Официально Keen Games заявляют, что сервер Enshrouded не должен потреблять больше 6 ГБ памяти, и в простое это ориентировочно 4–4.5 ГБ плюс около 100 МБ на каждого подключённого игрока. Именно от этой цифры отталкивается объём RAM в тарифах хостеров, включая MAATRIX GAMES. Но на практике потребление растёт не от числа игроков, а от того, насколько исследован и застроен мир: свежий сейв с одним персонажем ест сильно меньше, чем мир на полсотни часов игры с раскрытым туманом на полкарты и десятками построек.
Если при старте сервер пытается прогрузить в память большой, сильно исследованный мир, а свободной RAM впритык — процесс либо крашится по нехватке памяти, либо зависает на загрузке, потому что ОС активно уходит в своп. Быстрая проверка:
# Linux — смотреть потребление в реальном времени во время старта
watch -n 1 free -h
# Windows — то же самое через диспетчер задач, вкладка «Производительность»,
# или через PowerShell:
Get-Process enshrouded_server | Select-Object WorkingSet64
Если видите, что доступная память улетает в ноль ровно в момент, когда в логе появляется строка про загрузку savegame — дело в RAM. Ориентировочные рекомендации для планирования:
| Сценарий | RAM |
|---|---|
| Свежий мир, 2–4 игрока | 6–8 ГБ |
| Развитый мир, 8–16 игроков | 12–16 ГБ |
| Мир с модами/патчерами | +1–2 ГБ к обычной норме |
Это именно ориентир, а не измеренный бенчмарк — реальная цифра зависит от того, сколько территории игроки успели раскрыть. Если 6 ГБ регулярно оказывается мало именно на загрузке — проще увеличить тариф, чем гоняться за оптимизацией: у Enshrouded нет тонких настроек лимита памяти, которые можно покрутить в конфиге. Как посчитать нужный объём заранее для любой игры — в статье сколько RAM нужно под игровой сервер.
Конфликт модов или патчеров после обновления
У Enshrouded нет официальной поддержки модов уровня Forge или BepInEx — движок у игры свой, не Unreal и не Unity, поэтому большинство доступных на Nexus Mods модификаций работает через паттчеры и лоадеры, которые правят исполняемый файл или инжектят изменения на лету (часть — вообще клиентские cheat-таблицы под Cheat Engine, к серверу отношения не имеющие). Проблема в том, что такие патчеры жёстко завязаны на конкретную версию enshrouded_server.exe: после апдейта игры смещаются адреса и структуры, патчер либо не запускается, либо запускается и портит память процесса — а крашится это чаще всего именно на загрузке мира, потому что это самый тяжёлый по памяти и логике этап.
Если краш начался сразу после того, как вы обновили сервер или добавили/обновили мод — порядок действий такой:
- Остановите сервер, сделайте бэкап
savegameна всякий случай. - Полностью уберите папку с модами/патчером (не просто отключите в конфиге — вынесите файлы за пределы директории сервера).
- Запустите сервер на чистой установке с тем же сейвом. Если мир загрузился — проблема на 90% в моде, который ещё не обновили под новую версию.
- Возвращайте моды по одному, перезапуская сервер после каждого, пока не найдёте виновника.
Держите отдельную тестовую копию сервера (другой порт, другая папка) для проверки модов после каждого патча игры — так вы не роняете боевой мир ради эксперимента.
Проверьте enshrouded_server.json и логи отдельно
Даже когда причина не в сейве и не в модах, стоит перепроверить сам конфиг — синтаксическая ошибка в JSON (лишняя запятая, незакрытая скобка) иногда проявляется именно на этапе применения настроек к загруженному миру, а не сразу при старте. Валидный минимальный конфиг выглядит так:
{
"name": "My Enshrouded Server",
"saveDirectory": "./savegame",
"logDirectory": "./logs",
"ip": "0.0.0.0",
"queryPort": 15637,
"slotCount": 16,
"voiceChatMode": "Proximity"
}
Частая ошибка — прописать в поле ip конкретный внешний адрес вместо 0.0.0.0. Сервер может стартовать, не забиндить сокет как надо, а следом упасть или подвиснуть при попытке применить сетевые настройки к уже загруженному миру — выглядит это как краш «на загрузке», хотя причина сетевая. Проверьте JSON любым онлайн-валидатором перед тем, как перезапускать сервер — это быстрее, чем вычитывать скобки глазами.
Отдельно посмотрите на права доступа к папке savegame и logs, особенно если сервер переносился между хостами или разворачивался из архива: если процесс не может писать в директорию сейва, некоторые сборки сервера крашатся вместо того, чтобы внятно сообщить об ошибке доступа. О том, как читать краш-репорты системно, а не гадать — в статье логи и краш-репорты: как читать и искать причину.
Восстановление из бэкапа — пошагово
Если диагностика привела к повреждённому сейву и бэкап есть — процедура простая, но важно не перепутать порядок:
- Остановите сервер полностью, не просто перезапустите — иначе восстановленные файлы может перезаписать сам процесс в момент автосохранения.
- Скопируйте текущую (сломанную) папку
savegameв сторону — на случай, если восстановление не поможет и вы захотите повторить диагностику. - Удалите содержимое
savegameи распакуйте туда бэкап целиком, а не отдельные файлы — сейв Enshrouded это набор связанных файлов, частичная замена почти гарантированно даст рассинхрон. - Запустите сервер и дождитесь полной загрузки, прежде чем пускать игроков — проверьте лог на предмет ошибок.
- Предупредите игроков заранее, что часть прогресса после момента бэкапа будет потеряна — это неизбежно при откате на резервную копию.
Если бэкапов вообще не настроено — самое время это исправить сразу после того, как сервер снова на ногах. Хостинг MAATRIX GAMES умеет делать автоматические бэкапы по расписанию из панели, без ручных скриптов на стороне сервера — это снимает саму проблему «бэкапа не было» на будущее. Общий алгоритм восстановления с разбором типичных ошибок — в статье восстановление сервера из бэкапа: практика.
Как не попасть в ту же ситуацию снова
Несколько практик, которые закрывают все три причины разом:
- Никогда не обновляйте сервер через SteamCMD, пока процесс не остановлен полностью — гонка записи сейва и обновления файлов игры — частый источник порчи сохранений.
- Держите ротацию из нескольких бэкапов с разным временем создания, а не одну перезаписываемую копию.
- Прежде чем ставить мод/патчер на боевой сервер — проверяйте его на тестовом инстансе после каждого крупного обновления игры.
- Закладывайте RAM с запасом от заявленного минимума, особенно если планируете долгоживущий мир с активным исследованием карты.
Поднять сервер Enshrouded за пару минут
Готовый образ MAATRIX GAMES: NVMe, AMD EPYC, DDoS-защита, панель управления. Локации UK, US, RU. Оплата картой РФ, СБП или криптой.
Создать серверЧастые вопросы
Сервер падает сразу при старте, ещё до строки про загрузку мира — это тоже про сейв?
Нет, это почти всегда про конфиг (enshrouded_server.json) или порты — сейв на этом этапе ещё не читается. Проверьте синтаксис JSON и поле ip.
Можно ли починить повреждённый файл сохранения без бэкапа?
Официального repair-инструмента от разработчиков нет. На форумах иногда предлагают ручную правку через сторонние парсеры формата сейва, но это экспериментальные решения без гарантий — надёжный путь только один: бэкап.
Сколько именно RAM нужно, чтобы точно не упереться в память при загрузке?
Официальный минимум — около 6 ГБ, но это для свежего мира. Для развитого мира с 8+ игроками закладывайте 12–16 ГБ — точную цифру заранее не предскажете, она зависит от того, сколько карты уже раскрыто.
После обновления игры моды ломаются всегда?
Не всегда, но патчеры под Enshrouded особенно чувствительны к смещениям в новой версии исполняемого файла — проверяйте совместимость мода с текущим патчем игры на странице мода перед обновлением сервера, а не после.
Есть смысл переносить мир на новый сервер, если краши продолжаются?
Да, если вы перепробовали и бэкап, и чистую установку без модов, и увеличение памяти — иногда проще поднять сервер с нуля на новом инстансе и перенести только сейв, чем чинить накопившиеся проблемы окружения.