【Factorio】Дедлок поездов: причины возникновения и проектирование обхода
Когда поезда зависают на перекрёстках или перед станциями, причину обычно можно разделить на три категории: неправильное расположение сигналов, недостаточная пропускная способность пересечения и нехватка очередей ожидания перед станцией. В ванильной версии Factorio v2.0 и Space Age основные принципы железнодорожной логистики совпадают, поэтому разобравшись в этих моментах, вы сможете предотвратить большинство дедлоков.
【Factorio】Дедлок поездов: причины возникновения и проектирование обхода
Когда поезда зависают на перекрёстках или перед станциями, причину обычно можно разделить на три категории: неправильное расположение сигналов, недостаточная пропускная способность пересечения и нехватка очередей ожидания перед станцией. В ванильной версии Factorio v2.0 и Space Age основные принципы железнодорожной логистики совпадают, поэтому разобравшись в этих моментах, вы сможете предотвратить большинство дедлоков.
Когда я впервые подключал несколько шахт, очередь ожидания перед станцией вышла за пределы развилки и остановила всю линию. После того как я правильно рассчитал длину буфера очереди и переделал перекрёсток перед ней на цепные сигналы, поток восстановился сразу же.
В этой статье разберу разницу между обычными и цепными сигналами, и объясню, когда выбирать одноколейку, двухколейку, ротонду или накопитель. Это не про исправление дедлоков после их возникновения — это про то, как спроектировать сеть так, чтобы они не возникали с самого начала.
Целевые версии и предварительные знания
Указание целевых версий
Эта статья рассчитана на Factorio v2.0 ванильную версию и Space Age. Space Age — это платное расширение, выпущенное 21 октября 2024 года согласно 'Space Age - Factorio Wiki'.
Главное, что важно понимать: основные принципы предотвращения дедлоков поездов в этой статье одинаковы как для v2.0, так и для Space Age. Идея расставлять цепные сигналы перед перекрёстком и отпускать поезда только при свободном выходе работает везде. Когда я расширял существующий мир после обновления, старые маршруты переделывал по тем же правилам, и они работали. Здесь важнее не версия, а логика проектирования.
С другой стороны, в Space Age физические масштабы логистики растут, и поездов может быть больше. Это значит не то, что сигналы работают иначе, а то, что небрежность в базовых вещах сразу же видна. Если в v2.0 маленькую ошибку можно «пережить», то в Space Age она расползётся на весь сетевой граф.

Space Age/ru
wiki.factorio.comГраницы этой статьи
Дальше разговор ведётся исключительно о дедлоках, связанных с железнодорожной сетью. Речь идёт о перекрёстках, развилках, одноколейных разъездах, двухколейке, очередях ожидания перед станциями, ротондах и использовании train limit для контроля потока.
Я не буду вдаваться в логистику между планетами или детали космической сети в Space Age. Это интересная область, но суть застоев одна: нужно определить, где поезду позволено стоять, а где запрещено, и это решается на уровне железных дорог. Добавьте планет сколько угодно — если перед перекрёстком стоит обычный сигнал вместо цепного, дедлок возникнет. Если буфер перед станцией слишком короток, основная линия будет перекрыта.
Дедлок — это состояние, когда поезда одновременно ждут друг друга и не могут сдвинуться. Может быть всего два поезда, и решается только вручную. На первый взгляд может выглядеть как лёгкая пробка, но на самом деле это полный отказ системы резервирования пути.
💡 Tip
В этой статье я разделяю «остановку из-за ошибки сигнала» и «хроническую пробку из-за нехватки пропускной способности». Если сигналы правильны, но ротонда слишком маленькая или буфер слишком короток — это тоже приводит к застою. Такое разделение помогает быстро найти причину.
Мини-словарик терминов
Давайте сразу договоримся о словах, чтобы потом не путаться.
Обычный сигнал смотрит только на то, свободен ли следующий блок. Для прямых участков и простых мест работает хорошо. Но если поставить его прямо перед развилкой или перекрёстком, поезд может въехать внутрь и там остановиться.
Цепной сигнал смотрит не только на соседний блок, а на то, свободен ли весь путь до следующего обычного сигнала или станции. Логика простая: «если сейчас въеду и остановлюсь внутри, не попущу». Поэтому их ставят прямо перед пересечениями.
Блок — это участок между двумя сигналами. Обычно там может быть только один поезд. Поезда занимают и освобождают блоки по очереди. Когда разбираешь дедлок, часто выясняется, что проблема не в самих поездах, а в том, как разделены блоки.
Если помнить эти три вещи, сразу становится ясно, почему перед пересечением ставят цепной сигнал, а после него — обычный.
Эта статья углубляется в дедлоки, но если хочешь разобраться в целом железнодорожном строительстве, переходи на парентопик про всю сеть. Способ раскладки двухколейки, как ставить станции, как рассчитать буфер, роли разных сигналов — всё это лучше смотреть вместе, а не только про дедлоки.
В моём опыте дедлок возникает не от одной ошибки, а из комбинации трёх: перекрёстка, станции и пропускной способности основной линии. Поэтому дальше рассмотрю каждый участок не отдельно, а в контексте всей сети: где нужно остановить поезд и где нельзя.
Дедлок Factorio: что это и при каких условиях он возникает
Определение дедлока и отличие от пробки
Дедлок в Factorio — это когда поезда ждут друг друга и вручную невозможно их сдвинуть. На вид может показаться, что просто немного затора, но на самом деле пути зарезервированы циклично и система не может выхода найти. Даже официальное руководство по сигналам говорит: это может быть всего два поезда.
Пробка — это когда медленно, но движение есть. Перекрёсток перегружен, станция долго выгружает — неудобно, но со временем разойдётся. Дедлок — это когда за часы ничего не сдвинулось.
Ловушка в том, что это может выглядеть как просто много красных сигналов. Но на самом деле это взаимный паралич резервирования.

Tutorial:Train signals/ru
wiki.factorio.comТри типовых сценария возникновения
Когда разбирал свои затопленные логистикой миры, понял, что дедлоки возникают по одному из трёх сценариев.
Первый — остановка внутри перекрёстка. Ставишь обычный сигнал прямо перед развилкой, он говорит: «соседний блок свободен, идёшь». Поезд въезжает внутрь и там останавливается. Теперь поезда с других сторон не могут пройти. Это очень распространённо.
Второй — встреча на одноколейке. Если разъездов недостаточно, два поезда с разных сторон претендуют на один участок. Один ждёт, другой ждёт — зависли. Одноколейка требует тщательной организации.
Третий — очередь перед станцией перекрывает основную линию. Станция заполнена, новые поезда ждут входа, их хвосты лежат на развилке или перекрёстке. Основная сеть встала.
Это кажется тремя разными проблемами, но на самом деле корень один: поезд остановился в месте, где ему стоять было нельзя.
💡 Tip
Дедлок — это про то, где поезд стоит, а не сколько поездов. Даже два поезда остановят сеть, если встанут в неправильных местах. Потому сначала фиксим расположение остановок, потом количество.
Как видеть дедлок на практике
Когда сеть встала, не смотри на общую картину — смотри на первого остановившегося поезда. Где его нос? На самом деле обычно ещё важнее — где его хвост?
Главное — где именно между сигналами он остановился. Если внутри перекрёстка — ошибка сигнала. Если красиво перед перекрёстком, но в хвостовом ряду — может быть, беда в буфере или в далеко находящейся станции.
Ещё смотрю: вышла ли очередь ожидания за границы буфера? Перед станцией может быть два-три поезда, но если их хвосты вылезают на развилку, это уже проблема.
В моём опыте часто видел: на всём экране красное, но если приблизиться, оказывается, что всё началось из-за одного поезда, который встал где-то одной точкой. Инспектируя причину, сначала смотрю на то, где нельзя стоять, потом на то, может ли там быть хвост.
Причина дедлока №1: неправильное размещение сигналов
Поведение обычного и цепного сигналов
Это часто путают, но на деле работают по-разному. Обычный сигнал смотрит только на соседний блок. Если тот свободен, пропускает — в том числе и во вредные места. Поезд может въехать в перекрёсток, а потом заблокировать выход.
Цепной сигнал смотрит вперёд на весь путь до обычного сигнала или станции. 'Руководство на вики' объясняет: пропускать можно, только если путь полностью свободен. Суть: «если я встану внутри, попущу соседей» — значит, не входи.
Разница острая на перекрёстках. Я долго не понимал: сигналы есть, они красные, почему дедлок? Потом разобрался — обычный сигнал перед перекрёстком — это всё равно что сказать поезду: «входи, если только рядом свободно», а то, что будет дальше — неважно.
Базовое правило развилок и пересечений
Правило простое: перед развилкой — цепной сигнал, после неё — обычный. Иначе говоря: chain in, rail out. Этого хватает, чтобы убить половину дедлоков.
Логика: на входе нужна жёсткая проверка — свободно ли всё до конца? Если нет, не входим. Внутри перекрёстка стоять нельзя — это не парковка. На выходе переходим на обычное управление блоками.
Вики показывает: если на входе в перекрёсток стоят обычные сигналы, поезд может зависнуть внутри. Меняешь входные на цепные — и вот он уже ждёт снаружи.
💡 Tip
Когда разбираю дедлок на перекрёстке, смотрю не на то, кто виноват, а на то, имел ли право входить. Если вход — цепной сигнал, он ответит быстро.
Пример: короткие выходы требуют цепных сигналов и там
Базово выход — обычный сигнал. Но есть исключение: если сразу после выхода развилка или станция, то короткий выход может быть проблемой.
Поезд выходит из перекрёстка — и вот его хвост ещё внутри пересечения. Если сразу за ним новая развилка, то входящий туда поезд заблокирует путь первому. Решение: делаем выход тоже цепным, он смотрит дальше и пропускает, только если весь путь чист.
Это техническое решение, и я его много раз применяю на практике. Выглядит как мелкое редактирование, но поток становится стабильнее.
Частые ошибки и порядок исправления
Самая частая ошибка: вся развилка из обычных сигналов. Делаешь как на прямой — и попадаешь в ловушку.
Исправление:
- Смотрю на развилку, которая зависает
- Проверяю, входные ли сигналы цепные
- Если обычные — меняю на цепные
- Смотрю выход, если он близко к следующей развилке — тоже цепной
- Нужно чтобы поезд ждал перед перекрёстком, а не в нём
Основное: не увеличиваем количество сигналов, а переносим точки остановки наружу.
Причина дедлока №2: недостаточная пропускная способность пересечений и ротонд
Размер ротонды и количество поездов
Вот тут подвох: даже если сигналы идеальны, маленькая ротонда затолкает поезда в себя и они там зависнут.
Ротонда выглядит красиво и компактно, но когда трафик растёт, из четырёх сторон приходят поезда, входят, начинают друг друга ждать. Когда я впервые в большой сети использовал ротонду, она казалась решением для всего, но потом выяснилось: маленькая ротонда — это не перекрёсток, а ловушка.
Проблема в том, что если в ротонде остаётся поезд, все входы становятся красными. Я это видел: входная цепь блокируется, основная линия ждёт, очередь растёт.
Коммьюнити давно говорит: ротонда должна вмещать не одного поезда, иначе все четыре стороны могут заблокировать друг друга.
Стратегия «пропускаем по одному»
Одна из тактик — на входе ротонды жёсткая цепь, входит максимум один поезд.
Плюсы: ротонда внутри почти пустая, поезда проходят, не ждут в центре. Проблемы видны сразу.
Минусы: если один вход заблокирован, остальные три ждут на входах ротонды. То есть мы просто переместили ожидание с центра на периметр.
Но это лучше! Ожидание на входе не блокирует остальное.
Буфер перед станцией вместо ротонды
Если ротонда слишком маленькая, а основная линия ждёт входа, нужен буфер перед станцией.
Идея: не оставляй поезда ждать в перекрёстке или ротонде — жди их в буфере, который специально для этого сделан. Так основная линия остаётся свободной.
Когда закрываешь ротонду жёсткой цепью, очередь выбрасывается наружу. Где она должна быть? В буфере перед станцией. Это место для ожидания, а не магистраль.
Я так делал и вот результат: ротонда небольшая, чистая, а очередь выстроена в специальный буфер перед станцией, у которого есть достаточно места.
💡 Tip
Я ротонду увеличил, вход сделал цепным, и потом пришлось расширить буфер перед станцией. Оказалось, я не сделал ротонду безопаснее — я просто переместил очередь куда-то ещё. Но когда она в буфере, основная линия спокойна, это главное.
Сравнение конфигураций
| Вариант | Когда использовать | Сильные стороны | Слабые стороны |
|---|---|---|---|
| Маленькая ротонда | Первая сеть, низкий трафик | Компактно, красиво | Легко заклинивает |
| Ротонда + жёсткий вход | Средний трафик | Безопаснее в центре | Очередь на входах |
| Ротонда + большой буфер | Высокий трафик | Буфер защищает основную линию | Занимает место |
Причина дедлока №3: нехватка буфера перед станцией
Роль стэка (буфера очереди)
Если поезд входит в станцию и там нет места, он стоит где-то. Где? На основной линии, на развилке. Это плохо. Специальный буфер (стэк) перед станцией — это место, где поезда могут ждать без вреда остальной сети.
Функция проста: на основную линию выводим только поезда, которые едят; остальное ждёт в буфере.
В начале я пропустил эту очевидность. Поезд приходит, ждёт входа в станцию, и его хвост упирается в развилку. Я думал: «нужно больше линий развилок», а надо было: «нужен буфер».
Длина блока буфера и максимальный поезд
Самое важное: буфер должен вмещать самый длинный поезд целиком в одно пространство между сигналами. Если он частью лежит на развилке — буфер не работает.
Коммьюнити измерил: поезд-тяжеловес типа 1-4-0 занимает примерно 37 клеток (это не официальная цифра, расчёт сообщества). Буфер должен быть не короче.
Главное не цифры, а поезд полностью влезает в пространство, хвост не задевает развилку.
Если в сети несколько поездов разной длины, ориентируемся на самый длинный. Я жёстко выучил это, когда буфер был рассчитан на короткие поезда, потом пустил длинный — и он перекрыл развилку.
Типичные ошибки: хвост на развилке / на магистрали
Ошибка №1: буфер короче, чем нужно, хвост лежит на развилке. Поезд внутри буфера ждёт входа в станцию, но его хвост блокирует поезда, которые хотят в другую сторону. Это замыкание.
Ошибка №2: буфер настолько короткий, что вообще лежит на основной линии. Поезд, стоящий в очереди перед станцией, блокирует проходящие поезда.
Я это видел на железорудной станции. Буфер был два блока, поезд туда влезал наполовину. Я удлинил буфер до полной длины поезда, поправил сигналы, чтобы не доставали до развилки — и поток восстановился.
Суть: буфер должен быть вне пути, полностью.
💡 Tip
Буфер — это не «много маленьких очередей», а несколько полноразмерных мест. Если в буфер помещается только 1 поезд целиком, значит 1 такое место. На 4 ожидающих поезда нужно 4 полноразмерных места в буфере.
Управление через схемы и train limit
Когда используешь train limit (ограничение количества поездов на станции), это мощный инструмент. Станция может быть открыта или закрыта для входа. Но бафер остаётся нужен.
Вот почему: даже если train limit говорит «0 поездов», поезд, который уже в пути туда, не развернётся. Он будет ждать входа. Где? В буфере, если мы его сделали. Или на основной линии, если не сделали.
Коммьюнити наблюдает: когда открытых мест больше, чем поездов в сети, система стабильнее. Если замыкаешь all arrival gates, поезда теряют цели и начинают ломать сеть по инерции.
Управление train limit работает вместе с буфером, а не вместо него.
Одноколейка, двухколейка, ротонда: что выбрать
Когда использовать одноколейку
Одноколейка дёшева и быстра в построении. На раннем этапе игры это спасение. Я часто так делаю: протянул ленту от далёкой шахты до базы — вот и одноколейка.
НО: одноколейка требует разъездов прямо из коробки. Два поезда на одноколейке — это сразу проблема. Они встречаются, ждут друг друга. Ничего не движется. Это самый простой дедлок.
Разъезд нужно делать полной длины поезда, чтобы один целиком туда влез. И если трафик растёт, нужны два, три разъезда, иначе один поезд все время стоит.
Я видел, как одноколейка становилась управляемой только после того, как я натыкал туда кучу разъездов и правильно расставил сигналы. На какой-то момент это становится смешно, и проще перейти на двухколейку.
Вывод: одноколейка для лёгкого трафика и временных линий. Если станций много или ещё будут добавляться — сразу в двухколейку.
Двухколейка с односторонним движением
Когда трафик растёт, это стандартный выбор. Одна колея туда, вторая обратно. Поезда не встречаются в лоб.
Плюсы очевидны: безопасно по дизайну, просто расширяется (добавляем станцию), понятно другому игроку.
Минусы: земли занимает вдвое больше. Но это цена стабильности.
Я перехожу на двухколейку как только кормлю две-три шахты в одну базу. Избыток земли стоит меньше, чем часы на отладку одноколейки.
Ротонда: когда подходит
Ротонда компактна и даёт четыре направления на малой площади. Часто используется в чертежах как универсальное решение.
Но! Маленькая ротонда затолкивается сама в себя. Нужна либо больше размер, либо жёсткое ограничение входа (цепной сигнал на входе, максимум один поезд внутри).
Даже так ротонда хороша для низкотрафиковых перекрёстков. Если каждую минуту через неё проходит по 20 поездов, это не рабочее решение.
💡 Tip
Я выбираю по простому критерию: будут ли потом добавляться новые станции на эту линию? Если да — двухколейка с запасом. Если нет — одноколейка или ротонда. Потом переделывать линию — мучение.
Таблица выбора
| Тип | Когда | Плюсы | Минусы |
|---|---|---|---|
| Одноколейка | Ранняя игра, одна-две станции | Дёшева, быстра | Нужны разъезды, капризна |
| Двухколейка | Средняя игра, много станций | Стабильна, расширяема | Занимает место |
| Ротонда | Компактный перекрёсток, низкий трафик | Красивая, четыре направления | Легко перегружается |
Чеклист быстрой проверки сети
Проверка перекрёстков
Обычно дедлок на перекрёстке — это то, что видно сразу. Смотрим три места: вход, внутри, выход.
Вход: цепной ли сигнал? Если обычный — меняем.
Внутри: может ли поезд встать? Если да, плохо.
Выход: близко
RinSeo
Factorio 2,000時間超。100駅以上の列車ネットワーク運用実績と Death World マラソンクリアの経験から、物流・防衛の実践ノウハウをお届けします。
Похожие статьи
Factorio расписание поездов: настройка и автоматизация [обновление 2.0]
Factorio расписание поездов: настройка и автоматизация [обновление 2.0]
Factorio железнодорожные сигналы: принципы работы и построение сетей
Factorio железнодорожные сигналы: принципы работы и построение сетей
Основы сигналов поездов в Factorio | Обычные и цепные сигналы
Основы сигналов поездов в Factorio | Обычные и цепные сигналы
【Factorio】Основы логистики роботов|минимальная конфигурация и принципы расстановки