servarium :)
главная / журнал / Factorio desync на сервере: как найти конфликт модов и исправить рассинхрон
гайд · Factorio

Factorio desync на сервере: как найти конфликт модов и исправить рассинхрон

·

Почему возникает desync в Factorio, как найти конфликт модов, прочитать логи и desync-report, исправить ошибки подключения и настроить стабильный сервер.

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

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

Что такое desync в Factorio и почему он возникает

Мультиплеер Factorio работает по принципу deterministic lockstep: сервер и клиенты рассчитывают развитие одного и того же мира, получая согласованные действия игроков. Результат каждого шага симуляции должен совпадать. Если на одном компьютере состояние мира отличается от остальных, проверка обнаруживает расхождение — desynchronization, или desync. Клиенту приходится повторно получать состояние карты с сервера.

Поэтому desync — не синоним высокого пинга. Медленный интернет способен вызвать долгую загрузку карты, задержки и разрыв соединения, но сам по себе не означает, что игровые расчёты разошлись. И наоборот: клиент с отличной сетью может постоянно рассинхронизироваться из-за ошибки в Lua-скрипте мода или в движке игры.

Особенно внимательно стоит проверять сборку, если проблема появилась после обновления Factorio, установки дополнения, изменения настроек модов или загрузки старого сохранения. При этом нельзя автоматически обвинять мод: разработчики Wube неоднократно исправляли ошибки самой игры, проявлявшиеся только при определённых модификациях.

Сначала определите тип ошибки подключения

Перед диагностикой запишите точный текст сообщения и момент сбоя. Это сэкономит время на бесполезных проверках.

Симптом

Вероятное направление поиска

Появляется desync / desynchronisation, карта скачивается снова

Расхождение состояния мира; нужны desync-report и проверка модов

Игра просит синхронизировать моды или сообщает о несовместимости версии

Разные версии Factorio, модов или их настроек

«Не удалось установить соединение», сервер не отвечает

IP-адрес, UDP-порт, брандмауэр, NAT, доступность сервера

Карта долго загружается, игрок не успевает догнать сервер

Скорость соединения, размер сохранения, производительность клиента и сервера

Всех выбрасывает после конкретного действия или загрузки сейва

Воспроизводимая ошибка скрипта, взаимодействия модов либо движка

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

Как исправить рассинхрон Factorio: порядок действий

Шаг 1. Сохраните исходное состояние сервера

Остановите сервер и сделайте отдельную резервную копию сохранения мира, папки mods и конфигурации. Запишите версию Factorio, список активных модов и их версии. Не тестируйте удаление модов на единственном экземпляре мира: после загрузки сохранения без модификации её объекты и данные могут измениться.

Если рассинхрон появился после обновления, сохраните и проблемную сборку, и предыдущую рабочую копию. Так будет с чем сравнивать результат.

Шаг 2. Приведите игру и моды к одинаковым версиям

Клиент, хост и выделенный headless-сервер должны использовать совместимые, фактически одинаковые версии игры и набора модов. Не смешивайте разные ветки Factorio: например, стабильную 2.0 и экспериментальную 2.1. Проверьте также наличие требуемых компонентов Space Age, если они используются в сохранении.

В Factorio есть встроенная синхронизация модов при подключении к серверу. Соглашайтесь на неё: игра подбирает те же версии модов, которые установлены на сервере, и может синхронизировать стартовые настройки. Для локального сейва есть команда Sync mods with save, но здесь важен нюанс: обычная синхронизация сохранения по умолчанию может выбрать последние версии модов. Чтобы запросить именно версии из сейва, в меню загрузки удерживайте Ctrl при нажатии Sync mods with save.

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

Шаг 3. Воспроизведите ошибку на копии мира

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

Проведите два теста: сначала подключитесь к чистому миру без сторонних модов, затем повторите проблемное действие на копии исходного сохранения. Если vanilla-сервер работает, подозрение падает на модовую сборку, но это ещё не доказательство: некоторые ошибки движка проявляются только с определёнными модами, а некоторые проблемы требуют конкретного состояния старой карты.

Где найти логи Factorio и desync-report

При настоящем desync игра формирует архив с данными для сравнения состояний сервера и клиента. В официальной инструкции разработчиков он называется desync-report-...zip. Ищите его в папке archive каталога пользовательских данных Factorio:

  • Windows: %AppData%\Factorio\archive
  • Linux: ~/.factorio/archive
  • macOS: ~/Library/Application Support/factorio/archive

Путь может отличаться у переносной установки или специально настроенного сервера. Важно: после обнаружения desync не обрывайте подключение мгновенно. По инструкции Wube клиент должен дождаться полной передачи данных сервера для отчёта; это бывает заметно дольше обычного скачивания карты.

Рядом с каталогами saves и mods обычно лежит factorio-current.log — лог текущего запуска. Файл factorio-previous.log относится к предыдущему запуску, поэтому после перезапуска сервера полезные строки могли переместиться туда. Для headless-сервера смотрите путь к журналу в его конфигурации или панели хостинга.

В логах обращайте внимание на версию игры, загруженные моды, сообщения об ошибках скриптов и записи с desynchronisation, crc или disconnect. Например, строка о несовпадении serverCRC и localCRC подтверждает различие состояний, но не называет автоматически виновный мод. Сам desync-report обычно требует сравнения игровых данных; это диагностический материал, а не простой текстовый список ошибок.

Как найти конфликт модов Factorio без удаления всей сборки

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

  1. Зафиксируйте тест. Например: второй игрок входит, открывает конкретное меню — и через несколько секунд получает desync. Запишите результат и время.
  2. Разделите моды на группы. На копии мира отключите примерно половину необязательных модов. Обязательные библиотеки и зависимости отключайте вместе с зависящими от них модами. Перезапустите сервер и синхронизируйте клиентов.
  3. Повторите тот же сценарий. Если ошибка исчезла, постепенно возвращайте отключённые моды; если сохранилась — исследуйте оставшуюся группу. При большом количестве модов такое деление быстрее проверки по одному.
  4. Проверьте сочетания. Иногда мод работает сам по себе, но ломается рядом с другим. После нахождения подозреваемых протестируйте каждый отдельно, затем оба вместе — обязательно с одинаковыми настройками и на тестовой копии.
  5. Сверьте логи и отчёты. Убедитесь, что подозрительный мод действительно был отключён на сервере и у клиента. Не полагайтесь только на воспоминания о нажатой галочке.

У метода есть ограничение: отключение модов может изменить сам мир и убрать условие, вызывавшее ошибку. Поэтому отсутствие desync после «выключения половины» — полезная улика, но не окончательный вердикт. Для сложных случаев сохраните исходный сейв и подберите минимальную сборку, которая стабильно воспроизводит проблему.

Хороший реальный пример есть на официальном форуме Factorio: разработчик Rseding91 нашёл повторяющийся desync в моде zoom-based-exoskeleton-speed, который не был правильно адаптирован к изменениям Factorio 2.0. При переходе на 2.0 хранилище состояния модов global переименовали в storage. После корректного отключения проблемной модификации ошибка перестала воспроизводиться. Это показательнее, чем абстрактный совет «переустановите игру»: причина была в конкретной логике мода.

Если ошибка повторяется даже без подозрительных модов

Попробуйте загрузить минимальный тестовый сейв в одиночной игре, включить через консоль /toggle-heavy-mode и повторить действие, которое вызывало рассинхрон. Это специальный режим диагностики; он существенно замедляет игру и не подходит для обычного мультиплеера. Если удаётся получить ошибку таким способом, автору мода или разработчикам Factorio гораздо проще её исследовать.

Не игнорируйте и патчноуты. Например, Factorio 2.0.77 исправила desync, связанный с событием пользовательского ввода и флагом in_gui. А в 2.1.23 от 20 октября 2026 года разработчики устранили рассинхрон, обусловленный порядком инициализации вражеских спавнеров и особенностями масок столкновений. Не каждый desync на модовом сервере вызван конфликтом модов: иногда требуется именно исправление движка.

Ошибки подключения к серверу Factorio, которые не связаны с desync

Если сервер не появляется в списке или соединение обрывается до загрузки карты, проверьте сетевую часть отдельно. Factorio использует UDP, стандартный порт — 34197. При самостоятельном размещении нужен открытый UDP-порт в брандмауэре и, если сервер находится за роутером, корректный проброс порта. Учитывайте, что номер порта можно изменить в конфигурации.

Попробуйте подключение по IP-адресу и порту, а не только через публичный список. Убедитесь, что процесс headless-сервера запущен, слушает нужный порт и не блокируется средствами защиты. Если сервер доступен одним игрокам, но недоступен другим, сравните маршруты соединения, сетевые ограничения и сообщения в логах. Для сервера в домашней сети причиной может оказаться NAT; для арендованного — неверный адрес или правила сетевого фильтра.

Если игрок получает карту, но бесконечно «догоняет» симуляцию, проверьте загрузку процессора, скорость передачи карты и производительность клиента. Низкий UPS и долгий вход не равны desync. На крупных фабриках и тяжёлых модпаках оборудование может не успевать рассчитывать игровой мир, даже когда состояние игры формально остаётся согласованным.

Как не допустить повторного рассинхрона

После устранения проблемы зафиксируйте рабочую комбинацию версий Factorio и модов. Обновляйте сборку сначала на копии мира, проверяйте подключение хотя бы двух игроков и только затем переносите изменения на основной сервер. Держите несколько резервных копий, включая сейв до обновления игры. Это особенно важно при переходе с 2.0 на экспериментальную 2.1: разработчики предупреждали, что обновлённые под 2.1 сохранения нельзя вернуть обратно в 2.0.

Если не хочется параллельно заниматься установкой headless-сервера и обслуживанием инфраструктуры, хостинг Factorio в Сервариуме предлагает панель управления, загрузку своего мира и резервные копии. При этом диагностика конфликтующих модов всё равно остаётся отдельной задачей.

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

Почему Factorio постоянно выкидывает с сервера при подключении?

Сначала уточните сообщение: desync указывает на расхождение симуляции, ошибка совместимости — на версии игры или модов, а отсутствие ответа сервера — чаще на сеть и доступность UDP-порта. Один симптом «выкидывает» не позволяет определить причину.

Как понять, какой мод вызывает desync?

Сохраните desync-report, воспроизведите ошибку и проверяйте моды группами на копии мира. Когда найдёте подозреваемых, протестируйте их по отдельности и вместе; затем сопоставьте результат с логами и обновлениями авторов.

Поможет ли переустановка Factorio или смена сервера?

Только если проблема действительно связана с повреждённой установкой или инфраструктурой. Если Lua-скрипт мода рассчитывает состояние мира по-разному у участников, перенос той же сборки на другой сервер не устранит причину.

Что отправить в техподдержку или на форум разработчиков?

Укажите точную версию Factorio, список и версии модов, последовательность действий до ошибки, лог клиента и сервера, тестовый сейв и архив desync-report-...zip. Для модовой сборки используйте профильный раздел форума Desyncs with mods; если проблема воспроизводится в чистой игре — обычный раздел баг-репортов. Перед публикацией проверьте файлы на личные данные, IP-адреса и секретные токены.

Итог: лечить desync вслепую — всё равно что перестраивать завод, не зная, где оборвался конвейер. Сначала отделите рассинхрон от сетевой ошибки, затем сохраните мир, выровняйте версии, найдите воспроизводимый сценарий и сузьте круг модов. Логи и desync-report помогут подтвердить гипотезу, а патчноуты — понять, не исправлена ли причина самой игрой.

Читать дальше