Dynamische Materialfilter in Factorio: Ein didaktischer Werkstattbericht

In der Logistik – sowohl im echten Leben als auch in Factorio – läuft selten alles sauber getrennt über die Förderbänder. Manchmal mischen sich die Materialien, manchmal tauchen Pakete auf, die da ganz bestimmt nicht hingehören, und manchmal möchte man dynamisch entscheiden, was wohin soll. Genau darum geht es hier: Wie baut man ein System, das zuverlässig erkennt, was ankommt, und es korrekt sortiert – auch dann, wenn der Materialstrom bunt gemischt, hektisch oder völlig chaotisch ist?


Szenario für die Filtertechniken:  ▣ ClearSorterRealDEMO 

Ich habe dafür ein Lernszenario aufgebaut, in dem ich Schritt für Schritt zeige, wie solche Filter funktionieren, wo die Grenzen liegen und wie man die Schaltung so auslegt, dass sie stabil bleibt. Der Beitrag ist also gleichzeitig Dokumentation, technische Erklärung und kommentierte Reise durch mein Testgelände.


Ein einfacher Sortierkreislauf – und seine Tücken

Wir starten mit einem einfachen Sortierkreislauf: Eine Quelle erzeugt acht Materialien aus, die zusammengeführt und über ein einzelnes Band geleitet werden. In der Community sagt man dazu liebevoll „Sushi-Band“, da sich alle Verbraucher einfach am Band nach Bedarf bedienen.

Jedes Objekt wird auf von Band identifiziert, das bei jedem Item einen Puls ausgibt. Dieser Puls landet auf einem Kombinator für Vergleiche, der von einem Kombinator für Konstanten die Liste mit den 8 erlaubten Materialien gespeichert hat und für jedes davon ein „–1“-Signal hält. Was passiert nun?


    erste Version des dynamischen Filters mit Splittern

  • Kommt ein erlaubtes Material, heben sich +1 und –1 gegenseitig auf → Ergebnis: 0

  • Kommt ein fremdes Material, bleibt ein Restwert übrig → „Das gehört hier nicht hin“

Diesen Wertnutzen wir als Startsignal für den gesamten Filterprozess.

Damit hören die Gemeinsamkeiten mit einfachen Splittern aber auf. Wir brauchen nämlich eine saubere Synchronisierung, sonst schaltet der Filter zu früh, zu spät oder bleibt hängen.

Unerwünschtes Material bekommt in meiner Schaltung einen Timer: Es wird zu einem Wert von –17 gemacht. Die Zahl 17 ist nicht magisch – sie entspricht der Zeit (in Systemticks), die das Material vom Detektor bis zum Splitter benötigt. „-17“ passt hier kann aber angepasst werden. 

Der Ablauf ist einfach: Unerwünschtes Material wird erkannt → der Timer bekommt den Wert –17 → negative Zählerstände werden in eine „1“ umgewandelt → das aktiviert den Filter im Splitter UND der Zähler wir um 1 erhöht → nach 17 Ticks ist der Zähler auf 0 → der Splitter ist bereit für das nächste Material

Damit sind wir schon auf einem Niveau, das ein statischer Splitter niemals erreichen kann: Der Filter arbeitet dynamisch und in Echtzeit.

Wenn der Zähler Amok läuft

Was passiert aber, wenn eine Sorte Material sehr schnell hintereinander kommt?
Zum Beispiel eine Welle blauer Pakete?

Nun – dann läuft der Zähler schneller hoch, als der Timer zurückzählen kann. Funktioniert das noch? Ja. Schön ist es nicht. Der Zähler schafft es irgendwann wieder zurück, aber die Performance sinkt, und manchmal reagiert das System träge. Um dieses Verhalten zuverlässig zu verhindern, habe ich eine Reset-Logik ergänzt. Sie sorgt dafür, dass der Zähler jeden einzelnen Puls vom Identifikationsband wieder auf 0 gesetzt zurückgesetzt wird. 

Eine weitere Besonderheit zeigt sich, wenn wenn ich testweise einen ganzen z.B. Schwung Fässer auf das Band werfe. In solchen Situationen kann es passieren, dass zwei erlaubte Materialien im exakt gleichen Tick am Identifikator vorbeikommen. Dan wird 2 Fässer identifiziert, was dann nicht gelöscht wird. Das führt dazu, dass ein eigentlich korrektes Material pausgeschleust wird. Für einen echten Betrieb ist das natürlich untragbar.

Genau an dieser Stelle zeigt sich, warum neben der Reset-Logik noch eine weitere Schutzmaßnahme notwendig ist. Die Lösung besteht darin, jedes Signal grundsätzlich auf „1“ zu begrenzen, unabhängig davon, wie viele Items gleichzeitig hereinschneien. Erst diese Signalbegrenzung stabilisiert das System endgültig und verhindert, dass Doppelereignisse den Filter durcheinanderbringen.

Sobald die Grundlogik stand, habe ich ein vollgemischtes Förderband erzeugt, auf dem sich alles tummelt, was Factorio hergibt. Gelbe Pakete, blaue Pakete, grüne Pakete, Betonmarkierungen, Textblätter – völlig egal. Die Schaltung erkennt zuverlässig alles, was nicht auf der Liste steht, und schleust es aus.


    FINALE Version des dynamischen Filters mit Splittern


  • Der Prozess läuft ohne Stau

  • Der Fluss darf nie stehen

  • Der Filter ist immer im richtigen Moment aktiv

  • Der Splitter verliert nie den Überblick

Das ist die Stärke dieser dynamischen Splitterlogik.

In der Praxis gibt es zwei grundsätzliche Wege, einen dynamischen Filter aufzubauen. Entweder man definiert eine Positivliste, also eine feste Menge an Materialien, die ausdrücklich erhalten bleiben sollen. Alles, was nicht in dieser Liste steht, wird automatisch ausgeschleust. Oder man arbeitet mit einer Negativliste, die genau die Materialien enthält, die man entfernen möchte, während der gesamte Rest ungehindert passieren darf. 

Welche Variante man wählt, hängt immer davon ab, was man über seinen Materialstrom weiß: Habe ich einen klaren Überblick über die erlaubten Materialien, nutze ich die Positivliste; kenne ich nur die Störstoffe oder Fremdmaterialien, arbeitet die Negativliste effizienter. In beiden Fällen liegt der Kern der Lösung darin, das vorhandene Wissen vollständig im Kombinator abzubilden. Alles, was dort eingetragen ist, wird gezielt behandelt, und alles andere wird konsequent entweder ausgeleitet oder im Hauptstrom weitergeführt. Die entsprechenden Listen und Rezeptdetails sind vollständig im Blueprint hinterlegt.

Natürlich könnte man auch sagen: „Wozu die ganze Kombinatorlogik? Ich nehme einfach Greifer!“ Ja, könnte man. Und ja, ich habe das getestet. Ausführlich auch mit mehreren Greifern. Es hilftalles nichts. Sobald der Materialstrom wirklich chaotisch ist, entstehen Lücken. Das Ergebnis ist eindeutig:

  • Greifer verpassen Objekte

  • Während der Drehbewegung können sie nicht greifen

  • Große Materialströme überfordern sie

  • Permanente Nachsortierung ist ineffizient 

Kurz gesagt: Greifer skalieren nicht. Splitterlogik schon.

Abschluss und Ausblick

ich habe die verschiedenen Varianten gespeichert und ins Blueprint-Buch gelegt. Ihr könnt das komplette Paket direkt übernehmen. Natürlich könnt ihr auch auch den Spielstand ▣ ClearSorterRealDEMO übernehmen.

Damit haben wir ein voll dynamisches Filtersystem, das nicht nur Splitter sinnvoll einsetzt, sondern das gesamte Prinzip der Förderlogik in Factorio erweitert. Es ermöglicht flexible Filterung, intelligente Verzweigungen und stabile Sortiermechanismen selbst in hochkomplexen Netzwerken.

Ich freue mich auf euer Feedback – und natürlich auf eure Anpassungen, eure Tests und eure eigenen Varianten.

Viel Spaß beim Ausprobieren!



Blog: , Seite:
Version: 1.4 April 2025, Kontakt: E-Mail Martin Wölker
Pirmasens, Germany, 2018-, ausgelesen am: , Licence CC BY


Kommentare