Companions — Wiki
EN DE
Du liest das eingefrorene Wiki für v0.3.0 — es beschreibt genau diesen Build und wird nicht mehr aktualisiert. Zur aktuellen Version →

Companions

Ein Survival‑RTS-Aufbauspiel aus der Draufsicht. Führe eine winzige Gruppe kostbarer, sterblicher Gefährten über eine prozedural erzeugte Insel — sammeln, überleben, eine Siedlung bauen und weiterziehen, wenn das Land erschöpft ist.
Lebendes Dokument · spiegelt die F1-Hilfe im Spiel und ergänzt sie um die Entwicklerreferenz · beschreibt Build v0.3.0 · zuletzt überarbeitet 2026-07-22
Die Gruppe auf der Insel
Für Entwickler
Dieses Wiki ist der erweiterte Zwilling der Hilfe im Spiel (F1, scripts/ui/help_panel.gd). Die Hälfte Spielerhandbuch spiegelt jenen Bildschirm; die Hälfte Entwicklerreferenz bildet jede Mechanik auf die Dateien, Funktionen, Stellschrauben und Konsolenbefehle ab, die sie antreiben. Sowohl F1 als auch diese Seite müssen bei jeder Änderung aktuell gehalten werden — siehe Aktuell halten.
Zur Sprache
Das Spiel selbst ist durchgehend englisch — Menüs, Gegenstände und Gebäudenamen erscheinen im Spiel so, wie sie hier in Klammern stehen. Übersetzt ist der erklärende Text, nicht die Beschriftung auf dem Bildschirm.

Überblick

Was das Spiel ist und wie ein Durchgang verläuft.

Du steuerst eine Gruppe von drei Gefährten (weitere anwerben, bis zu zehn, ist möglich) aus einer RTS-artigen Draufsicht: Kastenauswahl, Rechtsklick als Befehl. Es gibt keine Spielfigur — die drei sind gleichrangig. Jeder hat den vollen Satz Überlebenswerte und kann einzeln sterben; einen zu verlieren soll tragisch wirken. Der höchste Schwierigkeitsgrad ist Permadeath. Die einzigen Bedrohungen sind Natur — Nahrung, Wasser, Temperatur, Wetter, Jahreszeiten und Entfernung — dazu wehrhaftes Wild, das sich verteidigen darf. Nichts greift jemals deine Basis an.

Ein Durchgang ist ein Kreislauf aus drei Phasen

  1. Der manuelle Anfang — alles von Hand, keine Automatik. Einen tragfähigen Siedlungsplatz erkunden und von der Hand in den Mund leben.
  2. Die automatisierte Basis — Gebäude schalten Berufe frei, das Regelprogramm jedes Gefährten bestreitet den Tag, die Siedlung läuft.
  3. Erschöpfung → Aufbruch — das Land ist ausgezehrt, die Gruppe packt, was sie tragen kann, wandert und fängt stärker von vorn an: Fertigkeiten, Ausrüstung und Gefährten bleiben, der Ort nicht. Jedes Jahr beißt der Winter härter.

Die Karte mit 512×512 Feldern ist auf etwa 3–5 Siedlungszyklen ausgelegt — das ist die geplante Länge eines Durchgangs. Phase 1 und 2 gibt es heute; Phase 3 (ein erzwungener Aufbruch und ein Werkzeug-/Ausrüstungssystem) ist der große offene Meilenstein.

Bewegen & umsehen WASD · F · Tab

  • WASD schwenkt die Kamera (freier Blick). Die Ansicht bleibt, wo du sie hinstellst — Auswählen oder Befehlen reißt die Kamera nie mit.
  • F zentriert die Kamera auf die gewählte Figur und folgt ihr (eine Gruppe wird auf ihren Mittelpunkt gerahmt). Tab tut dasselbe und wechselt dabei den Gefährten.
  • Rechtsklick befiehlt allen ausgewählten Figuren (siehe Befehlen); ein grüner Punkt markiert den Zielort. Rechtsklick halten steuert fortlaufend — die Auswahl folgt dem Mauszeiger, bis du loslässt.
  • Dichter Wald und loser Sand bremsen das Gehen auf 80 %.
  • Mausrad oder +/- zoomen; M springt auf die weiteste Stufe. Die Maus am Fensterrand scrollt die Ansicht (Geschwindigkeit/Randbreite unter Esc → Settings → Gameplay).
  • Es gibt keine Minikarte und keine Übersichtskarte — du siehst die Insel nie als Ganzes. Das Land zu lesen und zu behalten gehört zum Spiel.
  • Die Zeitraffer-Leiste sitzt oben rechts (Pause, 1–10×). Schalte Esc → Settings → Graphics → Show FPS ein, und die Bildrate erscheint direkt darunter — grün über 50, bernstein über 30, rot darunter. Sie aktualisiert sich viermal pro Sekunde in Echtzeit, Zeitraffer und Pause verfälschen sie also nicht.

Deine Gruppe 3 → 10 Gefährten

Die drei Gefährten aus der Nähe
Die Gruppe landet auf einem zufälligen begehbaren Fleck — 60–90 Felder vom nächsten Süßwasser entfernt. Anfangs ist niemand ausgewählt; jeder folgt seinem eigenen Programm.
  • Linksklick auf eine Figur wählt sie aus (grün / blau / orange; ein weißer Ring markiert sie). Genau eine ausgewählt heißt „sie ist deine“: E-Sammeln und Bauen benutzen sie, und sie läuft deine Rechtsklicks mit voller Geschwindigkeit.
  • Ein Auswahlkasten greift mehrere und befiehlt ihnen gemeinsam.
  • Linksklick auf leeren Boden hebt die Auswahl auf — Beobachtermodus; jeder erledigt einfach seine Arbeit.
  • Das Infofeld unten links folgt der Maus: Zeige auf ein Feld für Gelände und das, was darauf steht (Baumart & Restholz, Salzgehalt des Wassers, Gebäude, Lagerbelegung, Pflanzenbestand); zeige auf eine Figur für ihre aktuelle Tätigkeit. Der Nebel gilt auch hier.
  • Tab übergibt die Kontrolle an den nächsten Gefährten; 19, 0 wählen direkt (zweimal tippen zentriert zusätzlich die Kamera). Die Tastenplätze stehen für den ganzen Durchgang fest — die Nummer eines Toten bleibt leer.
  • Gefährten lernen durch Tun. Gehen trainiert Running (Tempo), jedes Handwerk seine eigene Fertigkeit, schwere Arbeit und Bauen trainieren Strength (Tragkraft + Bautempo), und durchgestandene Kälte, Nässe und Erschöpfung härten Resilience (wird später krank). Die Veteranen eines Durchgangs sind gemacht, und sie sind das, was du in die nächste Siedlung mitnimmst.
  • Fremde klopfen an. Ab und zu kommt ein Wanderer aus der Wildnis und wartet ein paar Tage an der Siedlung. Linksklick auf ihn öffnet sein Panel: Name, Körper, Grundattribute — und sonst nichts, denn ein Neuling kommt ohne Fertigkeiten an. Nimm ihn auf oder schick ihn weiter; wartest du zu lange, zieht er selbst weiter. Die Gruppe ist hart auf zehn begrenzt, und ein zusätzliches Paar Hände isst, bevor es verdient.
  • Nicht jeder meint es ernst. Manche Wanderer sind falsche Gefährten: Sie arbeiten langsam, bedienen sich am Lager, und eines Nachts sind sie fort — mit allem, was sie tragen konnten. Das Panel verrät nichts davon — das Ereignisprotokoll schon, über Tage hinweg (jemand nach Einbruch der Dunkelheit am Lager; ein Arbeitstag, der zu wenig einbrachte). Aufmerksame Gefährten (Perception) nennen Namen. Verstoßen kannst du jeden, der beigetreten ist, über sein Charakterblatt (C) — und ein Irrtum kostet dich ein Paar Hände.
Das Charakterblatt
Das Charakterblatt (C): Porträt und Körper, die sechs Überlebenswerte, die fünf Basis-Attribute, jede Fertigkeit mit ihrem Fortschritt — und das Traggitter, in dem ein Feld genau eine Alters-Charge ist.

Befehlen — Rechtsklick RMT

Der Rechtsklick schickt jede ausgewählte Figur; was passiert, hängt davon ab, worauf du klickst. Dein Wort ist absolut — eine Figur bricht einen Befehl nie ab, nicht einmal, um sich zu retten. Sie setzt bei kritischem Zustand eine rote Warnung ab und macht weiter; brich den Befehl selbst ab, wenn sie überleben soll.

Du klickst auf…Sie…
Freien Bodengehen dorthin (um tiefes Wasser, Berge und Hauswände herum)
Süßwasser / einen BrunnenEin Auswahlring: Drink (trinken, bis der Durst voll ist, dann den Wasserschlauch füllen) oder Scoop water (Schlauch füllen, dann Einheiten in die Traglast schöpfen)
Baum / Fels / Pflanzeernten in die Traglast (Bäume, bis sie fallen)
Ein Bett (genau sein Feld)schlafen, bis sie ausgeruht sind
Ein LagerfeuerEin Auswahlring: Tend fire (nachlegen aus der Traglast oder dem nahen Lager — Holz oder Zweige) oder Boil water (abkochen)
Einen liegenden Stapelheben ihn in die Traglast
Ein Lager 1 ausgewähltgehen hin und öffnen das Transferfenster
Ein Lager Gruppeschaffen ihre Traglast hin und laden sie auf die Felder ab
Einen anderen Gefährten 1 ausgewähltgehen hin und öffnen den Tausch Traglast zu Traglast
Eine blaue Baustellehelfen beim Bau: holen, liefern, errichten

Umschalt+Rechtsklick reiht den Befehl als Wegpunkt an. Ein einfacher Rechtsklick ersetzt die ganze Warteschlange. Niemand kümmert sich von selbst um sich — Trinken, Essen, Wärmen und Schlafen geschehen nur auf deinen Befehl oder durch das Regelprogramm (T).

Sammeln — E halten E

Halte E neben einem Ziel; ein Ring füllt sich über die Erntezeit. Gesammeltes wandert in die Traglast dieser Figur, begrenzt durch das Gewicht (~40 kg, durch Strength mehr).

  • Bäume → Holz: Jedes Waldfeld ist ein Baum; der gesamte Holzvorrat fällt an, wenn er stürzt (das Feld wird zu Gras). Schläge werden angerechnet — aufhören und später fertig machen ist erlaubt. Vier Arten, an der Färbung erkennbar: Birke (10 Holz), Kiefer (20), Fichte (25), Eiche (35).
  • Fels → Stein und Fischen kosten das ~10×fache gewöhnlicher Arbeit — plane ganze Tage ein; Steinmetzhof und Fischerhütte setzen Arbeiter rund um die Uhr daran.
  • Kräuter, Beeren, Wurzeln wachsen an Ort und Stelle nach (nicht im Winter). Vogelnester (nur im Frühling, nach dem Ausnehmen endgültig weg), Pilze (Sommer+Herbst, am Waldrand), Haselnüsse (ganzjährig, verderben nie, aber ein abgeernteter Strauch ist erledigt und der nächste wächst außer Sicht), Muschelbänke (Salzküste, ganzjährig, verderben schnell).
  • Kostenlose Fundstücke (ein halbsekündiges Bücken, danach weg): Zweige und Laubhaufen am Waldrand, lose Steine in der Ebene.
  • Wildhanf → Pflanzenfaser — wächst nur auf feuchtem Boden neben Süßwasser (Flussufer und Seeufer; nie an der Salzküste, nie im Landesinneren). Hohe, gefächerte Halme, wächst außerhalb des Winters in ~5 Tagen nach. Faser ist noch keine Schnur: Spinne sie im Crafting-Reiter zu Cordage, und aus Cordage bestehen Bogensehne und Angelschnur. Kein Hanf in Reichweite → kein Bogen und keine Angel — noch ein Grund, warum ein Siedlungsplatz gut oder schlecht ist.
  • Jagen braucht einen Bogen (herstellbar, sobald eine Hunting lodge steht). Rehe und Schweine fliehen schneller, als du gehst — du schießt sie: Übernimm einen Jäger, halte H, ein schwankendes Fadenkreuz steigt auf, halte auf das laufende Tier vor und lass zum Schuss los. Ein Treffer ist Zielen, nicht Glück. Ein Schuss schreckt die Beute auf — ein sauberer erster Schuss, dann flieht sie. Die Hunter-Regel schießt genauso von allein, und ohne Wild in Sicht stellt sie sich auf den Ansitz, statt zur nächsten Regel durchzufallen: Sie geht zum nächsten bekannten Waldfeld (ersatzweise irgendwohin ins Freie — nie unter ein Dach) und wartet dort, mit der Meldung „No huntable animals in sight - waiting“. Jagen ist überwiegend Warten.
  • Fischen braucht eine Angel (eine Rute plus eine Schnur aus Cordage; herstellbar, sobald eine Fisher's hut steht). Die Hütte verleiht das Fischrecht an ihrem Gewässer, die Angel ist das Gerät: keine Angel im Gepäck → der Gefährte fischt nicht, die Fisher-Regel bleibt blockiert, und die Aufgaben der Hütte bleiben für die liegen, die ausgerüstet sind. Angeln gelten pro Gefährte — drei Fischer brauchen drei Angeln.

Acht Tierarten streifen umher: Rehe und Schweine sind die Herden, von denen du lebst; Tauben und Krähen fliegen dorthin, wo du nicht folgen kannst; Biber bleiben am Süßwasser; Dachse sind langsam genug, um sie zu stellen; Wölfe und Bären weichen nicht (ein Bär ist das meiste Fleisch auf der Karte). Nichts da draußen jagt dich — noch nicht.

Kochen
Rohes Fleisch ist keine Mahlzeit — Gefährten essen es von sich aus nie, und von Hand gegessen baut es Lebensmittelvergiftung auf. Gare es an der Feuerstelle eines Lagerfeuers (Linksklick auf das Feuer → Slots PAN / COOKED) oder räuchere es im Smokehouse zu Dauerproviant. Roher Fisch ist unbedenklich; gegart ist er nur besser.

Am Leben bleiben

Health, Thirst, Hunger, Tiredness und Temperature (Gesundheit, Durst, Hunger, Müdigkeit, Temperatur) sinken mit der Zeit; Mood (Stimmung) ist ein zweitrangiger, nie tödlicher Wert. Jeder Gefährte ist oben links eine kompakte Zeile; wer mit der Maus darüberfährt, klappt sie zu vollen Balken auf — und nur das öffnet eine Karte, damit sich die Ecke nie umsortiert, wenn die Steuerung wechselt. Buff-/Debuff-Abzeichen neben der Karte zeigen, was auf einem Gefährten liegt — grün = Segen, rot/magenta/violett = Übel. Fällt irgendeine Gesundheit in den roten Bereich, schlägt der ganze Bildschirm Alarm (roter Rand, Herzschlag), damit kein Tod außerhalb des Bildes übersehen wird.

GefahrWas sie anrichtetDas Gegenmittel
Durst leerTötet in ~einem halben Tag (am schnellsten)An Süßwasser/Brunnen trinken; den Wasserschlauch voll halten
Hunger leerVerhungern über mehrere TageAus der Traglast essen (Eat-Regel / Doppelklick im Blatt); Überschuss kochen & räuchern
Müdigkeit niedrigGehen −25 %, Arbeit −40 %; Schlafschuld zehrt bis zu 60 % schnellerIm Bett schlafen (heilt auch Gesundheit); Schlafrolle auf Wanderung
TemperaturUnter 4 °C oder über 35 °C zehrt an der GesundheitAm Feuer/drinnen wärmen; am Wasser/Brunnen abkühlen
Nass (Regen/Sumpf)Fühlt sich bis zu 30 % kälter an, −5 % Tempo, drückt die StimmungTrocknet am brennenden Feuer oder unter Dach am schnellsten (~4 h)
Fever (Fieber)Aus Kälte, Nässe und Erschöpfung. −25 % Arbeit, zehrt unbehandelt an der Gesundheit; kann tötenBettruhe + Kräuter aus der Traglast
Dysentery (Ruhr)Aus unbehandeltem Wasser. −20 % Arbeit — und macht durstiger, die Falle, die sich selbst nährtBettruhe + Kräuter; danach nur noch sauberes Wasser
Food poisoning (Lebensmittelvergiftung)Aus rohem oder verdorbenem Essen. −30 % Arbeit, der härteste Schlag der drei, aber schnell vorbeiBettruhe + Kräuter; Fleisch vorher garen oder räuchern
Stehendes Wasser (See/Tümpel)Jeder unbehandelte Schluck baut die Ruhr-Last auf (~12 je voller Durstleiste)An fließendem Wasser oder am Brunnen trinken; oder es schöpfen und im Pfannenslot eines Feuers abkochen
Niedergeschlagen (Stimmungstief)Verweigert das Regelprogramm UND versorgt sich nicht mehr selbstNur noch direkte Befehle — trocken, warm, satt und gesund pflegen

Was dir schadet, lässt dich nicht heilen: Eine leere Durst-/Hungerleiste oder ein frierender bzw. überhitzter Körper setzt die Regeneration im Schlaf vollständig aus — der Schläfer baut Müdigkeit ab, wacht aber nicht gesünder auf. Der Winter ist die Prüfung: Höfe ruhen, Pflanzen wachsen nicht nach, keine Tiere werden geboren. Lege im Herbst Vorräte an; Nüsse, Fischerei und Muschelbänke tragen das ganze Jahr.

Das Panel eines Lagerfeuers mit den Herd-Slots
Das Panel eines Feuers: wie lange es noch brennt, der Brennstoff-Slot in Scheiten gemessen (und was sonst noch brennt, zu welchem Satz), und die beiden Koch-Slots mit dem Fortschrittspfeil dazwischen — Pfanne links, fertig rechts.

Boni & Mali — die genauen Zahlen

Jeder Zustand, den ein Gefährte tragen kann, was er wirklich kostet und wie er endet.

Zustände erscheinen als Symbole neben der HUD-Karte und unter dem Porträt im Charakterblatt (C). Die Farbe sagt die Art, bevor man irgendetwas liest: grün = ein Bonus, und magenta / blau / violett / rot = etwas stimmt nicht. Alle Verlangsamungen unten multiplizieren sich: durchnässt, erschöpft und krank zugleich ist ein Gefährte, der sich kaum noch bewegt.

SymbolWas es auslöstWas es kostetWie es endet
Überladen (Gewicht) Ein Rucksack über dem Gewichtsbudget (40 kg Basis, ×1,05 je Stärke-Stufe → 60 kg auf Stufe 10). Nur du kannst das verursachen — jeder automatische Weg hält am Budget an. Das Lauftempo fällt linear von 100% auf 0% zwischen Budget und +50%. 20% drüber = 40% langsamer. Bei +50% wird das Symbol rot und der Gefährte kann sich gar nicht mehr bewegen. Die Arbeit bleibt unberührt. Etwas aus dem Rucksack nehmen. Sonst nichts.
Nass (durchnässt) Im offenen Regen, Hagel oder Schnee stehen durchnässt in 30 min; ein Sumpf braucht 1,5 h (ein Moor nässt nur, was darin steht). −5% Laufen und −5% Arbeit bei voller Nässe, und die gefühlte Wärme fällt auf 70% — das ist, was tatsächlich tötet, denn Kälte füttert die Fieber-Belastung. Die Stimmung sinkt mit. Unter einem Dach oder am brennenden Feuer: 4 h ab durchnässt. Draußen trocknet es auch, aber nur so schnell wie der Himmel erlaubt: 10 h × Wetter (alles, was fällt = gar nichts, bedeckt 35%, klar 100%) × Temperatur (nichts bei 5 °C, voll ab 20 °C, bis 150% in echter Hitze). Aus einem Moor kann man sich nicht heraustrocknen — man muss gehen.
Fieber Die Kälte-und-Nässe-Belastung, die sich füllt (Auskühlung, Durchnässung, Erschöpfung). Die Belastung ist deterministisch — es gibt keine Würfel, und sie fällt von selbst, solange die Ursache fernbleibt. −25% Arbeit, −10% Laufen bei voller Schwere. Zieht die Stimmung in 18 h von voll auf leer. Über Schwere 0,75 zehrt es an der Gesundheit und tötet aus vollem Stand in 24 h. 24 h Bettruhe oder 12 h Kräuterbehandlung — beides stapelt sich. Erst trocken und warm werden, sonst kommt es einfach wieder.
Ruhr Stehendes Wasser trinken (See oder Teich — ein Fluss oder ein Brunnen ist sauber). Je volle Durstleiste kommen 12 auf eine 0–100-Belastung; bei 100 bricht sie aus. −20% Arbeit, −15% Laufen. Stimmung von voll auf leer in 12 h. Über Schwere 0,80 tötet sie aus voller Gesundheit in 30 h. Und sie zieht zusätzlich alle 8 h eine volle Durstleiste — das ist die Falle: schlechtes Wasser macht durstiger, und der Durst schickt dich zurück zum schlechten Wasser. 30 h Bettruhe oder 15 h Kräuter — und ab dann sauberes Wasser: abkochen, aus einem Fluss trinken oder einen Brunnen graben.
Lebensmittel­vergiftung Rohes Fleisch oder verdorbenes Essen. Gefährten tun das nie von selbst; es ist ein von Hand verfütterter Fehler. Die härteste der drei: −30% Arbeit, −20% Laufen. Über Schwere 0,70 tötet sie aus voller Gesundheit in 18 h und zieht alle 12 h eine Durstleiste. 12 h Bettruhe oder 6 h Kräuter. Sie geht schnell vorbei, aber sie trifft hart.
Ankränkelnd (blass) Eine Belastung über ihrer Warnlinie — die Krankheit ist noch nicht ausgebrochen. Noch nichts. Es trägt das eigene Symbol der kommenden Krankheit, ausgewaschen, damit man weiß, welche kommt, und sie noch aufhalten kann. Die Ursache abstellen. Eine Belastung fällt von selbst, solange die Ursache fernbleibt.
Erschöpft Müdigkeit unter 35%. Beine und Hände werden linear langsamer bis −25% Laufen und −40% Arbeit bei leerer Leiste. Die Hände versagen vor den Beinen, absichtlich. Schlafen. Ein Bett ist am besten, eine Schlafmatte bringt 70% der Bett-Erholung, blanker Boden am wenigsten.
Schlaflos (Schlafschuld) Eine abgebrochene Nacht: der Fehlbetrag wird gemerkt. Die Müdigkeit sinkt bis zu 60% schneller, bis die Schuld getilgt ist. Ein Schlaf, der mit voller Müdigkeitsleiste endet. Eine weitere abgebrochene Nacht tilgt sie nicht.
Mutlos Stimmung ganz unten. Der schwerste Malus, der selbst keinen Schaden macht: der Gefährte verweigert sein Regelprogramm und versorgt sich nicht mehr selbst. Unter Stimmung 35% kostet schlechte Moral schon bis zu −15% Arbeit. Nur direkte Befehle dringen durch. Von Hand pflegen — Trinken befehlen, Essen reichen, trocken, warm und gesund machen.
Behandelt Eine Kräuterdosis genommen. Ein Bonus: sie heilt, was auch immer plagt. Eine Dosis behandelt alle Krankheiten zugleich — Medizin ist für den Körper, nicht für eine Diagnose. Läuft von selbst aus.
Behaglichkeit In einem erkannten Raum stehen. Ein Bonus: die Raumqualität hebt die Stimmung drinnen und doppelt im Schlaf. Die Qualität ist der Durchschnitt des comfort über die Zellen — Holzboden zahlt 1,0 je Zelle, Möbel zahlen ihr eigenes dazu, gedeckelt bei 100%. Den Raum verlassen.
Charakterblatt eines überladenen Gefährten
Ein überladener Rucksack: die Carry-Zeile und das Gewicht-Symbol unter dem Porträt tragen dasselbe Orange, und das Info-Panel unten links sagt beim Überfahren dasselbe.

Arbeit & Handwerke — wie jedes aufgelöst wird

Sammeln, Fällen, Bergbau, Fischen und Jagen sind nicht eine Mechanik — sie kosten unterschiedlich viel Zeit und brauchen Unterschiedliches.

HandwerkWie es funktioniertZeitBraucht
SammelnBeeren, Kräuter, Pilze, Wurzeln, Eier, Muscheln, Nüsse — E am Knoten halten oder eine Ernte befehlen. Der Knoten leert sich und wächst je nach Art an Ort und Stelle nach, erscheint anderswo neu oder ist für die Saison weg. 2,7 s je Einheit (die Basis-Arbeitsuhr)Nichts
FällenJede Waldzelle ist ein Baum mit endlichem Holzvorrat (Birke 10, Kiefer 20, Fichte 25, Eiche 35). Jeder Hieb bucht Fortschritt auf der Zelle — kein Hieb geht je verloren, und die Krone dünnt sichtbar aus. Der ganze Vorrat fällt mit dem letzten Hieb, der die Zelle zu Ebene macht. 5,4 s je Hieb; ein Baum braucht 2 Hiebe je Holz, eine Eiche also 70 Hiebe Nichts (ein Holzfällerlager schaltet den Automatik-Beruf frei)
BergbauVon einer Zelle neben der Felswand aus. Endlos, bis umgelenkt. 27 s je Stein — 10× die gewöhnliche Arbeit, mit Absicht Ein Steinmetzhof schaltet den Beruf frei
FischenEine Fischerhütte ist ein Fischereirecht auf dem einen Gewässer, an dem sie liegt — keine Lizenz, überall zu fischen. Ein Fischer geht am näheren Teich vorbei zum See seiner eigenen Hütte. Ein anderes Gewässer befischen? Bau eine Hütte daran. 27 s je Fisch — ebenfalls 10× Eine Angelrute (Schnur aus Pflanzenfaser) und für den Beruf eine Fischerhütte an dem Gewässer
JagenZwei verschiedene Dinge. Von Hand (H): ein echter Zielschuss — das Fadenkreuz schwankt, man löst aus, wenn es sich beruhigt, und der Treffer ist geometrisch (Pfeil 420 px/s, trifft innerhalb 12 px, Reichweite 12 Zellen). Automatisiert: ein gewürfelter Schuss alle 2 s, Aufgabe nach 8 s Verfolgung, 6 s Abklingzeit. Ohne Bogen stattdessen E neben dem Tier halten. Je Schuss, nicht je Einheit Einen Bogen im Rucksack für den Fernkampf; eine Jagdhütte schaltet den Beruf frei
Wasser schöpfenAm Ufer in den Trinkschlauch schöpfen, dann als tragbare Einheiten in den Rucksack (10 je Befehl).2,7 s je Einheit Trinkbares Wasser in Reichweite
AbkochenAbgestandenes Wasser im Pfannen-Slot eines Feuers wird sauberes Wasser. Die ganze Ladung wird gemeinsam fertig — nie in Tranchen. Ein voller Trinkschlauch braucht eine Spielstunde am Lagerfeuer, ein Drittel davon am Steinherd. Abkochen ist unbeaufsichtigt: mittendrin weggehen kostet nichts. 1 h je Schlauchfüllung (Lagerfeuer)Ein brennendes Feuer, das kochen kann

Jedes Handwerk trainiert seine eigene Fertigkeit durchs Tun, und die Fertigkeit multipliziert das Tempo zurück. Schwere Handwerke und Bauen trainieren Stärke (mehr Traglast und schnelleres Bauen), Laufen trainiert Rennen, und Kälte, Regen oder Erschöpfung auszuhalten härtet Widerstandskraft (wird später krank).

Waren bewegen — die eine Hand

Es gibt genau eine Hand im Spiel, und jedes Fenster füllt sie auf dieselbe Weise.

Hebe einen Stapel im Traggitter des Charakterblatts auf, im Transferfenster oder direkt von einem Lagerfeld auf der Karte (Shift+Rechtsklick) — es ist immer dieselbe Hand, ein Stapel kann also nie an zwei Orten sein. Ein Fenster zu schließen behält den Stapel in der Hand, und genau so kommt er hinaus auf die Karte: trag ihn zu einer Baustelle, an den Herd eines Feuers, auf einen Stapel oder zu einem Gefährten und setz ihn mit Linksklick ab. Esc bei leerem Bildschirm legt ihn dorthin zurück, wo er herkam.

GesteIm CharakterblattIm Transferfenster
Rechtsklick auf ein FeldDiese Charge in die Hand nehmenDiese Charge (bzw. den Stapel dieses Lagerfelds) in die Hand nehmen
Shift+RechtsklickFragt, wie viele in die Hand kommenFragt, wie viele auf die andere Seite gehen
DoppelklickEine Einheit essenEine Einheit hinüberschieben
Shift+DoppelklickDen ganzen Stapel in die Hand nehmen — jede Alters-Charge dieser Art, nicht nur das angeklickte FeldDen ganzen Stapel hinüberschieben
Linksklick mit vollem HandAbsetzen oder mit der angeklickten Charge tauschenAuf dieser Seite absetzen
Klick außerhalb des FenstersFällt zu Boden, zu Füßen des Gefährten — jeder kann ihn per Rechtsklick wieder aufheben. Ein Getränk wird stattdessen ausgeschüttet: eine Flüssigkeit liegt nicht als Haufen herum.
Wasser lebt in einem Gefäß, nicht im Rucksack
Loses Wasser im Rucksack ist totes Gewicht — von Hand trinkt es niemand, und kein Lager außer einem Wasserfass nimmt es. Deshalb geht abgekochtes Wasser immer nur in einen Trinkschlauch: wer den Fertig-Slot des Feuers leert, füllt zuerst den Schlauch des dort stehenden Gefährten und bekommt nur den Rest in die Hand; bei vollem Schlauch und voller Hand wartet es einfach in der Pfanne, wo es sich unbegrenzt hält. Rechtsklick auf den Werkzeug-Slot im Blatt gießt den Schlauch in die Hand, ein weiterer Rechtsklick mit Wasser in der Hand gießt es zurück.

Bauen — Leertaste drücken Leertaste

Eine Baustelle (Grundriss)
Ein bestätigter Geisterbau legt einen blauen Grundriss. Bauleute holen das Material tatsächlich, liefern es an und errichten den Bau dann von neben dem Grundriss aus. Material blockiert den Geisterbau nie — ein bernsteinfarbener Geisterbau wartet einfach auf Lieferungen.

Du beginnst mit nichts. Leertaste öffnet den Bauring (Radialmenü, 2026-07-20): ein innerer Ring aus Kategorien — Workshops, Structure, Supply, Demolish —, wobei ein Linksklick auf eine Kategorie sie im zweiten, äußeren Ring öffnet. Beim Überfahren erklärt das Infofeld unter dem Kreis den Eintrag samt Kosten je Material (grün = jetzt bezahlbar, rot = nicht). Platziere ihn, und jede ausgewählte Figur geht ihn bauen (die nächstgelegene, wenn keine ausgewählt ist). R dreht den Geisterbau vor dem Setzen.

Die Mitte geht immer einen Ring zurück und schließt das Menü auf der obersten Ebene — dasselbe, was Rechtsklick und Esc tun, damit es eine einzige Regel für den Ausgang gibt. Leertaste schließt aus jeder Tiefe. Es werden immer nur zwei Ringe gezeichnet: Eine geöffnete Kategorie ersetzt den äußeren Ring, statt einen dritten hinzuzufügen, deshalb ist Verschachtelung gratis und der Kreis wächst nie. Ausgegraute Einträge gibt es in zwei Sorten, die man nicht verwechseln darf — ein Schloss ist ein Spielerziel (die Werkstatt, die es freischaltet, steht noch nicht), eine gestrichelte Umrandung ist ein geplanter Platzhalter, den es im Spiel noch nicht gibt.

Es gibt kein fertiges Haus. Das ziehbare Fertighaus wurde dem Spieler aus der Hand genommen (2026-07-20): Jedes Haus wird jetzt aus Wänden, Türen und Böden entworfen und hat genau die Form, die du umschließt. Berufsgebäude werden weiterhin einfach gesetzt und der Hof bleibt ziehbar — eine Werkstatt ist Ausrüstung, keine Architektur; nur das Zuhause ist der Entwurf des Spielers.

GebäudeWas es tutAnmerkung
Campfire (Lagerfeuer)Wärme + Feuerstelle (Brennstoff / Kochen)9 Zweige oder 3 Holz (siehe unten); Wirkbereich 20; körperlicher Wärmeradius 3,5
Well (Brunnen)Trinken, Schläuche füllen, abkühlenDie einzige Trinkquelle, die Arbeiter von selbst nutzen — sprudelt weiter, wenn das Wasser gefriert
Bed / Stone hearth (Bett / Steinherd)MöbelGar nicht im Bauring — wird über das Raum-Panel gesetzt
Straw bed (Strohbett)Möbel, das auch als Lager taugtDas eine Stück in beiden Listen: im Raum-Panel und im Supply-Ring, damit es schon vor jedem Raum neben dem Lagerfeuer hingeworfen werden kann (secondary_category)
Wall / Door (Wand / Tür)Umschließen einen warmen, überdachten RaumWände werden als gerade, verkettete Züge gezogen; die Tür ist begehbar
Bridge (Brücke)Der einzige Weg über einen FlussEin Deck von Ufer zu Ufer ziehen; macht Wasser begehbar
Wooden Floor (Holzboden)Hebt die Stimmung im RaumBoden, kein Möbel — Betten/Feuer stehen darauf
Road (Straße)Darauf läuft man ~35 % schnellerBoden wie ein Fußboden; Stein pro Feld — der Preis, nicht das Tempo, hält die Platzwahl ehrlich
Stockpile zone / Storage box (Lagerzone / Kiste)Siedlungslager (1 Sorte je Feld, 20 Einheiten)Die Zone ist kostenlos; auf freiem Boden aufziehen
Water barrel (Wasserfass)Lagert Wasser (20 Einheiten, sauber oder abgestanden)Reserve für Winter/Dürre; DRAW + HAUL füllen es; es reicht zuerst das saubere Wasser aus
Smokehouse (Räucherhaus)Macht frische Nahrung haltbarDient zugleich als Lager
Lumber camp / Fisher's hut / Mason's yard / Hunting lodgeWerkstättenJede schaltet ihr Handwerk für die Regeln frei (Fischen und Jagen brauchen zusätzlich Angel bzw. Bogen im Gepäck)
Farm (Hof)Gemüse (der Farmer bestellt ihn)Ruht im Winter
Planning table (Planungstisch)+6 Regelblöcke; Programme kopieren; öffnet das Aufgabenbrett

Zwei Preise für ein Gebäude. Ein Bauwerk darf alternative Kosten führen — beim Lagerfeuer 9 Zweige oder 3 Holz (2026-07-21). Zweige liegen überall herum, deshalb muss das erste Feuer eines Durchgangs nie auf einen gefällten Baum warten. Der Bauring zeigt beide an, jedes Material nach dem Besitz der Siedlung eingefärbt, mit einem or dazwischen; ein Grundriss legt sich auf eine Variante fest (die, die er decken kann, primär zuerst) und zeigt nur diese an. Solange noch nichts geliefert wurde, entscheidet er sich selbst neu, sodass ein Grundriss, der Holz wollte, nach Zweigen fragt, sobald Zweige in Reichweite sind; sobald das erste Material eintrifft, ist die Rechnung darin festgeschrieben. Abriss erstattet die Hälfte dessen, was wirklich bezahlt wurde — ein aus Reisig errichtetes Feuer gibt Reisig zurück.

Und zwei Brennstoffe für ein Feuer. Dieselbe Überlegung trägt über den Bau hinaus: Ein Feuer, das man aus Zweigen errichten kann, kann man auch mit ihnen füttern (2026-07-21). Ein Lagerfeuer brennt Holz oder Zweige, 3 Zweige je Scheit, der Stone hearth (Steinherd) genauso. Scheite werden immer bevorzugt, solange es welche gibt — jeder Brennstoff-Gang arbeitet die Liste der Reihe nach ab, die Gruppe greift also erst zum Reisig, wenn der Holzstapel leer ist. Alles, was ein Feuer versorgt, geht durch diese eine Liste: der Rechtsklick-Befehl, die REFUEL-Regel, eine übernommene Aufgabe, gehaltenes E am Feuer, die Welt-Hand und der FUEL-Slot des Panels (der in Scheiten zählt, aber beides annimmt).

Eine kleine Basis mit Haus, Brunnen und Lagerfeuer
Ein Haus kostet echte Arbeit (3× Bauzeit pro Feld) — nimm Helfer mit. Umschließe eine beliebige Form mit Wänden und einer Tür, und das Innere wird ein warmer, überdachter Raum; dielst du ihn mit Holzboden, hebt das die Stimmung.
Das radiale Baumenü
Das radiale Baumenü (Leertaste): ein innerer Ring aus Kategorien, ein äußerer mit ihrem Inhalt. Die Mitte ist immer der Weg zurück. Ein Schloss heißt, die zugehörige Werkstatt steht noch nicht.

Einen Raum möblieren — Linksklick hinein

Ein selbst entworfenes Haus ist kein Objekt, das man anklicken kann, deshalb hängt das Möbel-Panel am Raum: Linksklick auf ein beliebiges Feld eines umschlossenen Raums öffnet es, liest den Raum aus (Felder, Schutzwärme, Wohnlichkeit) und listet die Möbel auf, die hineindürfen. Wählst du ein Stück, nimmt der Geisterbau nur Felder innerhalb dieser Wände an — ansonsten ist es eine ganz gewöhnliche Baustelle: Bauleute holen das Material und errichten es. Ein weiterer Klick in denselben Raum oder Esc schließt es. Es wird zuletzt von allen Kartenklicks aufgelöst, alles mit einem eigenen Panel (ein Lager, ein Feuer, eine Baustelle) behält den Klick also.

StückKostenArbeitWas es ist
Straw bed (Strohbett)6 Laubkeine (sofort)Eine schlechte Nacht — und das einzige Stück, das keinen Raum braucht: Es steht auch im Supply-Ring und kann so schon am ersten Abend neben dem Lagerfeuer entstehen
Bed (Bett)6 Laub + 1 Holz14,4 s/Feld = 28,8 sDas richtige: erholt schneller und heilt im Schlaf. Es liegt 1×2R vor dem Setzen dreht es quer
Stone hearth (Steinherd)Stein + Holz, braucht einen Mason's yard10,8 s/FeldDas Feuer für drinnen: Wärme wie ein Lagerfeuer, ~3× so lange Brenndauer je Scheit und größere Reichweite. Ein Herd trägt ein Haus durch eine Winternacht, und er kocht wie jedes Feuer

Die beiden Betten unterscheidet ihre ARBEIT, nicht ihr Preis (2026-07-21): Ihr Material ist fast identisch, also trennt sie die Arbeit. Ein Strohbett setzt build_seconds_per_cell = 0sofort: total_build_seconds() hat 0,001 als Untergrenze, deshalb vollendet es der erste Arbeitsframe eines Bauenden. Das Material muss trotzdem zur Baustelle getragen werden; nur die Arbeit ist null. Das Bett kostet doppelt so viel Arbeit wie früher (7,2 → 14,4 s je Feld). Der Tooltip des Eintrags nennt die Arbeit in Spielzeit für einen Bauenden (BuildEntry.labour_line); Helfer addieren ihre Anteile und verkürzen sie.

Ein Raum ist noch kein Zuhause. Seine Wohnlichkeit ist der Durchschnitt über seine Felder aus dem darauf verlegten Boden und den darin stehenden Möbeln, und diese Wohnlichkeit hebt die Stimmung, solange ein Gefährte drinnen ist — im Schlaf doppelt. Übermöblieren macht den Raum lediglich fertig; es ist gedeckelt und nie ein Exploit.

Das Raum-Panel
Linksklick in einen geschlossenen Raum: wie groß, wie warm und wie wohnlich er ist — und was hineindarf. Boden und Möbel heben beide die Raumqualität, und die hebt die Stimmung.
Der Handwerks-Reiter
Handwerk (K) ist das Baumenü, gefiltert auf das, was zu getragenen Gegenständen wird statt zu Gebäuden — Schlafmatte, Bogen, Angelrute.

Automatisieren — T drücken T

Der Regeleditor
Der Regeleditor: ein geordnetes WHEN → DO UNTIL-Programm je Gefährte, von oben nach unten geprüft (die erste durchführbare Regel gewinnt). Läuft nur, wenn du Auto ankreuzt.

Automatik wird gebaut, nicht eingeschaltet. Schreibe jedem Gefährten ein Programm — eine geordnete Liste aus Regeln der Form WHEN Bedingung(en) → DO Aktion UNTIL Abbruch. Die Reihenfolge ist die Priorität.

Es gibt überhaupt keine eingebaute Selbstversorgung
Niemand trinkt, isst, wärmt sich oder schläft von allein — nicht einmal aus dem eigenen Wasserschlauch oder mitgeführtem Proviant. Alles geschieht nur über deine Befehle oder deine Regeln (die Vorlage Basic supply ist ein sicherer Einstieg). Eine vergessene Trinkregel ist ein Todesurteil. Auf Brutal kann das Spiel nicht pausieren, solange der Editor offen ist.
  • WHEN — Sensoren: die Körperleisten (auch Health & Mood), Nässe, Krankheit, die Uhr, die Jahreszeit, Niederschlag, das Siedlungslager, die eigene Traglast, der Wasserschlauch, Brennstoff im Feuer, eine wartende Baustelle. Bedingungen werden mit UND verknüpft.
  • DO — Aktionen: die Handwerke (fällen, fischen, ackern, brechen, jagen), trinken, essen, schlafen, wärmen/abkühlen, Feuer versorgen, bauen, die Traglast ins Lager schaffen, Gegenstände in die Traglast holen und eine Aufgabe nehmen vom Aufgabenbrett.
  • UNTIL — die Verriegelung: „Holz fällen UNTIL Lager ≥ 60“ hält eine Regel über ihren Auslöser hinaus am Laufen, damit Gefährten nicht an der Schwelle hin- und herspringen.
  • Nichts geschieht, worum niemand gebeten hat (11.7): Kein Gefährte trägt seine Last von allein heim. Eine volle Traglast stoppt die Arbeit, die sie weiter füllen würde (in ein volles Gepäck zu ernten zerstört die Quelle für nichts), und der Rest des Programms läuft weiter. Bring sie herein: per Rechtsklick auf ein Lager, mit einer Regel WHEN Carry full → Haul oder über das Aufgabenbrett — das Ziel einer Aufgabe steht im Siedlungslager, also ist das Abliefern ihr letzter Schritt. Jeder Transport behält eine Ration jeder Nahrungssorte und Trinkwasser zurück: Die Last geht, das Mittagessen bleibt.
  • Blöcke sind budgetiert: Eine Regel kostet 1 Block, +1 je zusätzlichem WHEN, +1 für ein UNTIL; die ganze Siedlung teilt sich ein Budget (Basis 12, +6 durch einen Planning table). Regeln jenseits des Budgets laufen nicht — die oberen Regeln werden zuerst bezahlt.

Das Aufgabenbrett (braucht einen Planning table): Gebäude beobachten ihren eigenen Bedarf und schreiben Aufgaben aus — eine Fischerhütte ruft nach einem Fischer, solange das Lager unter 20 Fisch hält, ein heruntergebranntes Feuer ruft nach Brennstoff, offene Baustellen melden sich selbst. Eine einzige Regel Take a task für 1 Block greift die nächstgelegene Ausschreibung, ein neuer Gefährte ist also einfach ein weiterer Abnehmer. Handwerke werden verdient: Jede Arbeitsaktion bleibt gesperrt, bis ihre Werkstatt steht. Arbeiter suchen nur, was die Gruppe bereits entdeckt hat.

Zeit & Welt

Tag/Nacht und Jahreszeiten vergehen; Uhr, Temperatur (°C) und Wetter stehen oben in der Mitte. Die Geschwindigkeitsregler (oder -/.) schalten Pause / 1× / 2× / 5× / 10×.

Regen
Regen durchnässt jeden im Freien (Feuer oder Dach trocknen am schnellsten, warme Sonne langsam).
Winterschnee
Winterschnee legt sich über die Welt; Gewässer frieren zu.

Das Wetter folgt den Jahreszeiten — Sonne, Wolken, Regen, Hagel, Sommerdürre, Winterschnee. Hagel tut weh (zehrt im Freien an der Gesundheit; nur ein Dach oder das Blätterdach halten ihn ab). Regen durchnässt (nass = bis zu 30 % kälter). Nasse Kleidung trocknet am Lagerfeuer oder unter einem Dach am schnellsten (~4 Spielstunden von völlig durchnässt) — und im Freien so schnell, wie der Himmel es zulässt: ~10 h bei warmem Sonnenschein, etwa ein Drittel dieses Tempos bei bedecktem Himmel und überhaupt nicht in kalter Luft oder während Regen, Schnee oder Hagel fällt. Eine sommerliche Durchnässung trocknet sich während der Arbeit von selbst; eine winterliche wartet auf ein Feuer. Im tiefen Winter frieren Flüsse und Seen zu (Brunnen sprudeln weiter); eine Sommerdürre trocknet kleine Tümpel aus, bis der nächste Regen fällt.

Wasser hat neben dem Salzgehalt auch eine Güte. Ein Süßwasser, das nie das Meer erreicht — ein See, ein Tümpel — ist stehendes Wasser: trinkbar, und jeder Schluck baut die Ruhr-Last des Trinkenden auf — für sich genommen nichts, aber der Tümpel, zu dem du immer wieder gehst, bricht als Krankheit aus. Flüsse entwässern ins Meer und gelten auf ihrer ganzen Länge als fließend, ebenso Brunnen und heiße Quellen. Ein am See gefüllter Wasserschlauch trägt Tümpelwasser mit sich, bis er leergetrunken ist. Die Wahl zwischen einem Platz am See und einem am Fluss (oder an einem Brunnen) ist genau der Punkt.

Das Gegenmittel ist ein Feuer. Rechtsklick darauf und Boil water wählen: der Companion gießt alles Unbehandelte, das er trägt — erst die Traglast, dann seinen Wasserschlauch — in die Pfanne der Feuerstelle, wartet ab und nimmt das saubere Wasser wieder an sich (erst der Schlauch, der Rest in die Traglast). Mit leeren Händen holt derselbe Befehl schlicht ab, was schon kocht. Von Hand geht es ebenso: mit Rechtsklick auf den Werkzeugslot im Charakterblatt (C) den Schlauch in die Hand gießen und ihn auf ein Feuer setzen (der ganze Schlauch geht hinein), auf ein Fass, oder auf einen anderen Companion, um dessen Schlauch zu füllen.

Abkochen kostet Zeit, und das ist Absicht. Ein voller Wasserschlauch braucht am Lagerfeuer eine Ingame-Stunde; eine Steinfeuerstelle ist bei allem, was sie kocht, dreimal so schnell. Die Pfanne fasst 20 Einheiten und kocht unbeaufsichtigt weiter, solange das Feuer brennt — man belädt sie also und geht. Aber eine Pfanne versorgt keine ganze Gruppe mit Wasser, und während sie kocht, brät sie keinen Fisch. Abkochen ist der Notbehelf am Tümpel; die Antwort ist ein Fluss oder ein Brunnen.

Tundra
Tundra (Nordsaum): 10 °C kälter, als der Tag sagt.
Wüste
Wüste (trockener Süden): 8 °C heißer — aber der wärmste Boden im Winter.

Das Land selbst hat ein Klima. Der größte Teil der Insel ist gemäßigt, drei Landstriche aber nicht: Tundra (−10 °C) am hohen Nordsaum, Wüste (+8 °C) im trockenen Süden und Sumpf (durchnässt wie Regen, und kein Feuer trocknet dich, solange du darin stehst). Die Jahreszeiten drehen beide Extreme um — zu wissen, in welcher Jahreshälfte ein Landstrich überlebbar ist, ist mehr wert, als ihn zu meiden.

Ein Fluss vom zentralen Berg
Zwei schmale, tiefe Flüsse entspringen dem zentralen Berg der Insel — überquerbar nur per Brücke.
Ein Kratersee als Landmarke
Landmarken, die man sich merkt: ein Kratersee, dampfende heiße Quellen, Steinkreise.
Nebel des Krieges
Der Nebel verbirgt unerkundetes Land; erkundeter Boden außer Sicht ist Erinnerung (Gelände & Gebäude, aber kein laufendes Geschehen). Es gibt keine Minikarte — erkunden und merken.
Nacht
Nacht: die Welt dunkelt weich ab, und ein Feuer ist der einzige warme Ort darin.
Ein Sumpf
Ein Moor nässt, was darin steht, und man kann sich nicht heraustrocknen — nur weggehen hilft.

Oberfläche & Tasten

Das Gefährtenfenster fasst alles zusammen, was du mit einem Gefährten tust, in drei Reitern — jede Taste öffnet ihren eigenen Reiter (nochmal drücken schließt; Strg+Tab wandert durch die Reiter). Alle drei gelten dem Gefährten, den du gerade steuerst.

TasteAktionTasteAktion
CReiter Character (Werte, Fertigkeiten, Traglast)LeertasteBauring (Radialmenü)
TReiter Automation (Regeln)TabNächster Gefährte (+Kamera)
KReiter Crafting (Schlafrolle, Cordage, Bogen, Angel)10Gefährten wählen (zweimal = Kamera)
ESammeln (halten)HZielen & schießen (Bogen, halten)
FKamera auf die Auswahl zentrierenMWeitester Zoom
GNebel umschalten (Debug)- / .Spieltempo hoch / runter
JChronik (gespeicherte Historie)F1Hilfe
F5 / F9Speicherplatz sichern / ladenEscOffenes Fenster schließen, sonst Pause/Einstellungen
F12Dev-Konsole (Debug-Builds)Alles neu belegbar unter Esc → Settings
— Entwicklerreferenz —
Ein volles Traggitter
Gegenstände im Rucksack: jede Art hat ihr eigenes Gewicht und ihren Nährwert, und Verderbliches zeigt seine Frische je Charge. Rechtsklick nimmt ein Feld in die Hand, Shift+Rechtsklick fragt nach der Menge.
Das Transferfenster
Das Transferfenster: links der Gefährte, rechts der Lagerplatz als seine physischen Felder (eine Art je Feld). Es öffnet sich auch zwischen zwei Gefährten.
Die Chronik
Die Chronik (J): die gespeicherte Geschichte des Durchgangs — Tode, Stufenaufstiege, Premieren und Jahreszeitenwechsel, mit Tagesstempel und im Spielstand.

Architektur & Konventionen

Engine, Aufbau und die Grundregeln, an die sich die Codebasis hält.

  • Engine: Godot 4.x, 2D-Draufsicht. Nur GDScript (kein C#).
  • Sprache: alle Bezeichner, Kommentare, Node-/Szenennamen auf Englisch — kein Deutsch im Code oder im Szenenbaum.
  • Benennung: snake_case für Variablen/Funktionen/Signale/Dateien; PascalCase für Klassen/Nodes/Szenen; class_name für wiederverwendbare Skripte.
  • Datengetrieben: Stellschrauben leben in .tres-Resources (resources_data/) und @export-Variablen — keine magischen Zahlen. Zahlen sollen ohne Codeänderung justierbar sein.
  • Entkopplung: übergreifender Zustand liegt in Autoload-Singletons; Systeme reden über Signale, wo das entkoppelt.
PfadEnthält
scripts/autoload/Singletons (Manager, Welt- & Speicherzustand)
scripts/player/Gefährten-Rig: Werte, Fertigkeiten, Controller, Jobs, Automatik
scripts/world/Weltgenerierung, Gelände/Biom/Landmarke, Renderer, Kamera, Wetter, Nebel
scripts/resources/Ressourcen-Nodes, Tiere, Erntezyklus
scripts/buildings/Buildable, Build-Controller, Baustellen, Lagerinventar
scripts/items/Item-Katalog, Item-Grafik, liegende Gegenstände
scripts/ui/HUD, Panels, Dev-Konsole, Einstellungen, Screens
resources_data/Alle .tres-Konfigurationen: Gebäude, Tiere, Ressourcen, Werte, Fertigkeiten, Palette, Theme
tests/Headless-Suite + Benches + Screenshot-Harness

Autoload-Übersicht

Die Singletons, die jedes System erreicht. Persistente Autoloads müssen sich in WorldGenerator._ready zurücksetzen (ein Neuladen erzeugt sie nicht neu).

AutoloadBesitztDatei
GridManagerZelle↔Welt-Mathematik, Belegungsgitterautoload/grid_manager.gd
TerrainManagerGelände-/Biom-/Landmarken-Ebenen je Zelle, Begehbarkeit, Wasserkörper, Klimaautoload/terrain_manager.gd
TimeManagertime_of_day, Tag, Jahreszeit; Umgebungstemperatur; Wechselsignaleautoload/time_manager.gd
TimeWarpManagerPause / 1–10× über Engine.time_scaleautoload/time_warp_manager.gd
WeatherManagerJahreszeitlich gewichtete Wetterphasen, Schneedeckeautoload/weather_manager.gd
FogManagerDreistufige Sichtbarkeit je Zelleautoload/fog_manager.gd
PartyManagerMitglieder, Auswahl, Verkörperungautoload/party_manager.gd
BuildingManagerPlatzierung, Baustellen, Räume, Wirkbereichs-Versorgung, Wasserkörperautoload/building_manager.gd
CityInventoryAggregierende Fassade über alle Lagerfelderautoload/city_inventory.gd
AnimalManagerLaufende Bestandszählung, Kapazitätenautoload/animal_manager.gd
TaskBoardVon Gebäuden ausgeschriebene Aufgaben (11.6)autoload/task_board.gd
SaveManagerBenannte Speicherplätze, Migrationsnahtstellenautoload/save_manager.gd
EventLog / ChronicleLaufender Feed / gespeicherte Historieautoload/event_log.gd, chronicle.gd
SoundManagerZoomabhängiger, positionsbezogener Ton, UI-Klicksautoload/sound_manager.gd
KeybindManager / GraphicsManager / GameState / ResourceManager / GroundItemManagerEingabe, Grafikeinstellungen, Laufzustand, Ressourcenregister, liegende Stapelautoload/…

Weltgenerierung & Gelände

Nahtstellen. WorldGenerator.generate() baut die Welt. TerrainManager.is_walkable(cell) ist DIE Begehbarkeits-Nahtstelle (Nav-Bake, Kollision, Standfähigkeit und Räume lesen sie alle — das set_walkable_override einer Brücke öffnet die Querung für sie alle). TerrainManager.climate_offset_at(cell) ist DIE Klima-Nahtstelle. TerrainManager.is_drinkable_water() ist DIE Trink-Nahtstelle; is_fresh_water() ist reiner Salzgehalt; is_still_water() ist DIE Güte-Nahtstelle (7.5 — ein Gewässer, das kein Meer erreicht), und IllnessController.wear_bad_water() ist die eine Stelle, an der ein unbehandelter Schluck abgerechnet wird.

Eine Zelle hat drei orthogonale Ebenen: Gelände (was sie physisch ist — world/terrain_types.gd: PLAINS/WATER/FOREST/MOUNTAIN/SAND/SHALLOW), Biom (ihr Klima — world/biome_types.gd: gemäßigt/Tundra/ Sumpf/Wüste, je als eine gewachsene Region) und Landmarke (world/landmark_types.gd: Kratersee / heiße Quellen / Steinkreis).

Wichtige Stellschrauben — scripts/world/world_generator.gd

GruppeExports (am WorldGenerator-Node in Main.tscn)
Formworld_seed, noise_frequency, island_falloff[_power], sea_level, mountain_level, forest_moisture, sand_share
Flüsseriver_count (2), river_max_half_width (1.7), river_meander_strength (2.2, Obergrenze ~2.4), river_meander_wavelength, river_source_flank, river_bias_*
Waldwood_per_forest_cell (20), birch_/spruce_/oak_share
Biometundra_share, desert_share, swamp_share, swamp_bog_count, biome_terrain_affinity
Landmarkencrater_lake_count/radius, hot_springs_count/radius, standing_stones_count/radius, landmark_min_spacing
Startpunktspawn_water_min_walk/max_walk (60/90), spawn_open_land_share
Kartengröße & Dichte
Die Gittergröße steht ausschließlich am GridRenderer-Node (512×512). Technisch deckelt sie nichts — der Nav-Bake läuft in Chunks (chunk_cells 64, ~0,1 s bei 512², eine Wand bäckt nur ihren Chunk neu, ~5 ms), und jede Spawn-Zahl ist eine Dichte über TerrainManager.area_scale() (begehbares Land gegen REFERENCE_WALKABLE_CELLS ≈203000). 512 ist eine Design-Entscheidung (3–5 Zyklen je Durchgang), keine Performance-Frage.

Rendering: world/terrain_renderer.gd (Textur je Zelle), terrain_snow.gdshader, tree_canopies.gd (Kronen zeichnen über Läufern auf z 4; _apply_walkers speist den Shader für Durchsicht und Schwanken), room_floor_renderer.gd, fog_overlay.gd. Alle Weltfarben liegen in resources_data/palette.tres über GamePalette. Navigation: walkable_navigation_region.gd; Kollision: terrain_collision.gd.

Ressourcen & Tiere

Nahtstellen. Ein Ressourcentyp ist eine .tres (resources/resource_type.gd); ein Tier ist eine .tres (resources/animal_species.gd) — ein neues Tier braucht keinen Code-Zweig. ResourceType.restock entscheidet, wo eine Quelle zurückkommt; HarvestCycle.work_node ist die eine Ernte-Nahtstelle; Animal._can_enter ist die Bewegungs-Nahtstelle (flies); ItemCatalog hält Nährwert und Haltbarkeit je Sorte.
BelangDatei / KonfigurationBemerkenswerte Felder
Ressourcendefinitionenresources_data/resources/*.tresspawn_terrain, spawn_biome, yield_item, harvest_time, work_scale (Fels/Fisch 10), restock, spawn_seasons, regrow_days, spawn_abundance
Spawn & Nachschubworld/resource_spawner.gdcount_per_type (120, eine Dichte), _target_count, _pick_restock_cell
Tierartenresources_data/animals/*.tresflies, flee_radius_cells (0 = flieht nie), speed_variance, carrying_capacity, initial_population, food_yield, spawn_near_fresh_water_cells
Tierverhaltenresources/animal.gd, world/animal_spawner.gdParametrisches _draw; breed_check_days (kein Registerscan je Frame); _can_enter
Ernte & Fällenresources/harvest_cycle.gdchop_treeTerrainManager.chop_wood; HARVEST_TIME_SCALE 1.8
Falle
Die Herde umfasst Hunderte Tiere — nichts im Tick darf das gesamte Register durchsuchen (eine naive Partnersuche kostete 47 ms/Frame gegenüber 1,4 ms). AnimalManager.count_of() ist eine laufende Zählung, deshalb ruft _spawn() setup() vor add_child(). Und „jedes Tier steht auf begehbarem Gelände“ ist falsch — Flieger kennen nur den Kartenrand.

Gefährten

Das Gefährten-Rig ist scenes/player/Player.tscn / class_name Player, dreimal instanziiert als Nodes Character1/2/3 (ein Node-Name ist ein Speicherschlüssel — umbenennen über SaveManager.RENAMED_CHARACTER_NODES). Das Verhalten verteilt sich auf kleine Controller am Rig.

Controller / DateiBesitztWichtige Nahtstellen / Stellschrauben
player/player_stats.gd (+ player_stats_config.gd)Die sechs Werte, Verfall, sleep_debtSignal stat_changed; Konfiguration in resources_data/stats/*.tres
player/vitals_controller.gdAnwenden von Essen/Trinken, Heilungssperreheals_at_rest(), begin_meal/drink_if_below (die EINZIGEN Einstiege in den Verbrauch)
player/temperature_controller.gdDrift zur gefühlten Wärme_target_warmth() (Klimaversatz, danach das maxf des Lagerfeuers); in_danger_band()
player/wetness_controller.gd / comfort_controller.gdNässe-Debuff, Stimmung aus Raumkomfort_standing_in_swamp; room_quality_at
player/illness_controller.gdAusbruch/Heilung von Krankheitenführt aus, was player/ailments.gd deklariert
player/ailments.gdWas eine Krankheit ISTUrsache, Verlauf, Heilung — eine neue ist ein Eintrag
player/character_skills.gd (+ skill_set_config.gd)Lernen durch Tunpractice() = XP-Eingang, multiplier() = Wirkung; resources_data/skills_config.tres
player/job_runner.gdFührt Jobs/Bedürfnisse aus; das Herz der Balancesiehe unten
player/command_controller.gd / worker_commands.gd / worker_needs.gdAuflösung des Rechtsklicks, Befehlsausführung, Bedürfnis-HandlerHalte-/Zieh-Schwellen; _fetch_from_stores
player/character_profile.gd / nordic_name_generator.gdIdentitätdisplay_name() = die Namens-Nahtstelle; disposition (verborgen), recruited, joined_day
player/renegade_controller.gdFalsche Gefährten (5.4b)work_factor() (über die EINE Arbeits-Nahtstelle), desert_day (einmal gezogen, gespeichert), _tell()
world/wanderer_controller.gdEin Rig, das NICHT in der Gruppe ist (5.4)seine ANWESENHEIT ist das Kennzeichen (Player.is_wanderer()); Phase, wanderer_at()

Anwerben — scripts/world/wanderer_spawner.gd

Ein Wanderer ist ein Gefährten-Rig (Player.tscn), das noch nicht beigetreten ist — keine zweite Art Mensch. Das ist der ganze Entwurf: Identität, Traglast, Zeichnung und Speichereintrag sind dieselben, die jeder Gefährte ohnehin hat, deshalb ist Anwerben PartyManager.recruit() → Umbenennen auf ein freies Character<N> (ein Node-Name ist ein Speicherschlüssel) + Player.join_party(). Ein Fremder ist eingefroren, solange er wartet (Player._halt_survival), und deckt keinen Nebel auf. Das Weggehen läuft rückwärts durch dieselbe Tür: Player.leave_party() hängt einen frischen Controller in LEAVING an, das Rig läuft von der Karte und gibt sich selbst frei — Verstoßen und Desertieren teilen sich diesen einen Weg.

Stellschrauben des Spawners: first_possible_day (6), min_days_between (6), arrival_chance (0.22/Tag), linger_days (3), renegade_chance (0.3), approach_cells (45). Immer nur ein Fremder unterwegs; einer vollen Gruppe wird niemand geschickt. Konsole wanderer [spawn [renegade]|here|panel|recruit|send|desert].

Speicherfalle
SaveManager._collect_characters läuft den BAUM ab, keine Namensliste — die Gruppe wächst jetzt, CHARACTER_NODES wäre also in dem Moment gelogen, in dem jemand beitritt. Ein Restore baut Rigs, die die frische Welt nicht hat (_rebuild_character), und gibt Player frei, die der Speicherstand nicht kennt. Der WandererController muss angehängt werden, bevor das Rig in den Baum kommt, sonst belegt es einen Tastenplatz, der ihm nicht zusteht.

Die große Tuning-Fläche — scripts/player/job_runner.gd

Bewegung/Arbeit: move_speed, work_seconds, mine_seconds, fish_seconds. Bedürfnisse/Schwellen: need_trigger_ratio/recover_ratio, emergency_ratio, warm_seek_below/cool_seek_above, despondent_below. Automatik: base_rule_slots (12), dev_self_care (reaktiviert die schlafenden Selbstversorgungsstufen — Tests / ein künftiger leichterer Schwierigkeitsgrad). Jagd: hunt_range_cells, hunt_base/min/max_hit, hunt_giveup_seconds. Die Erschöpfungsstrafen liegen in player/player.gd (fatigue_walk_penalty, fatigue_work_penalty, mood_work_penalty).

Design-Invariante
Auf keinem aktuellen Schwierigkeitsgrad gibt es eingebaute Selbstversorgung — Gefährten handeln nur auf Befehle und Regeln; passiver Verbrauch ist abgeschafft. Die Komfort- und Notfallstufen schlafen hinter dev_self_care. Keine Sicherheitsnetze klammheimlich wieder einbauen.

Automatik-Interna

Nahtstellen. Ein Programm ist ein AutomationProgram (eine geordnete AutomationRule-Liste); AutomationInterpreter wertet es von oben nach unten aus (die erste durchführbare ausgelöste Regel gewinnt; UNTIL verriegelt). Aktionen sind bestehende Verhaltensweisen — Regeln wählen nur, welche läuft.
DateiRolle
player/automation_program.gdDie Regelliste + Verrechnung des Blockbudgets
player/automation_rule.gd / automation_condition.gdEine WHEN→DO-UNTIL-Regel; eine Sensorbedingung
player/automation_interpreter.gdAuswertung von oben nach unten, Verriegelung, Live-Diagnose (ACTIVE/blockiert/wartend)
ui/automation_panel.gdDer Regeleditor (Reiter Automation)
autoload/task_board.gd + buildings/building_task_rule.gdGebäude schreiben bedarfsgetriebene Aufgaben aus; der Block „Take a task“ greift die nächstgelegene

Arbeitsaktionen sind durch stehende Werkstätten gesperrt (Gebäude). Alte Speicherstände überführen beim Laden einen gemalten Tagesplan in Zeitfenster-Regeln. Konsole: rules, prog, tasks, auto.

Gebäude & Bau

Nahtstellen. Jedes Gebäude ist eine Buildable-.tres (buildings/buildable.gd) — ein neues Gebäude ist Daten, kein Code. BuildingManager._serves ist die Wirkbereichs-Nahtstelle (jedes find_*_near läuft hindurch). Buildable.paint (CHAIN/AREA/einzeln) steuert die Platzierung. makes_walkable + TerrainManager.set_walkable_override ist die Brücken-Nahtstelle. _stand_by = von welcher Zelle aus ein Gebäude benutzt wird. Buildable.cost_alternatives + pick_cost = die Nahtstelle für „9 Zweige oder 3 Holz“: Ein Grundriss legt sich auf EINE Variante fest, damit alles Nachgelagerte (Lieferung, Holgang, Panel, Speicherstand) weiterhin ein schlichtes Kosten-Dictionary sieht.
BelangDateiAnmerkungen
Gebäudedefinitionenresources_data/buildings/*.trescost, cost_alternatives, size, category/secondary_category, action_radius, build_seconds_per_cell, room_warmth, comfort, speed_factor, heat_output/radius, burn_seconds, yields_item, task_rules
Platzierung / Geisterbau / Malenbuildings/build_controller.gdrequest_build_path; CHAIN-Wände, AREA-Böden; Konsole ghost
Platzierungsregeln, Räume, Versorgungautoload/building_manager.gdcell_placeable, _room_id_at (Flutfüllung ≤400 Zellen), warmth_at/sheltered_at, adjoining_water_body, Böden in _floor_cells
Baustellenbuildings/construction_site.gdHolen/Liefern/Bauen; gespeichert (inkl. der festgelegten Kostenvariante); reconsider_cost wählt neu, solange nichts geliefert ist; cancel_site lässt Material fallen
Gebäude-Node & Panelsbuildings/building_node.gd, ui/building_panel.gd, construction_site_panel.gdstack_at = „was liegt auf dieser Zelle“
Speicherfalle
Die Wiederherstellungsreihenfolge ist Boden → Struktur → Inneneinrichtung (SaveManager._restore_rank): Ein Boden lässt sich nicht auf eine belegte Zelle legen, ein vor seinen Dielen wiederhergestelltes Bett verliert den Boden also stillschweigend.

Gegenstände, Inventar & Lager

Nahtstellen. ItemCatalog (items/item_catalog.gd) ist die EINE Datennahtstelle für Gewicht, Nährwert und Haltbarkeit — es gibt kein generisches „food“-Item, jede Quelle liefert ihre Sorte. ItemGraphics.draw() ist DAS Aussehen im Inventar. Inventory rechnet in Gewicht (capacity_kg, space_for) mit FIFO-Alterschargen. StockpileInventory.tile_layout() = eine Sorte je Feld, 20 Einheiten; CityInventory aggregiert.
DateiRolle
items/item_catalog.gdGewicht / Nährwert / shelf_days / rest_factor je Gegenstand
items/item_graphics.gd / ui/item_icon.gdProzedurale Item-Zeichnung (Welt + Inventar)
player/inventory.gdDie Traglast: kg-Budget, take_amount/take_all_of, Alterschargen
buildings/stockpile_inventory.gdPhysisches Feldlager, Lagerregeln
items/ground_item.gd + autoload/ground_item_manager.gdLiegende Stapel (altern, während sie liegen)
player/world_hand.gd + ui/character_sheet_panel.gdEINE Hand (gehört dem Charakterblatt, Gruppe character_sheet); Auflösungsreihenfolge Baustelle>Lager>Feuerstelle>Gefährte>Boden
ui/transfer_panel.gdTauschfenster Traglast↔Lager und Traglast↔Traglast

Zeit, Wetter & Temperatur

Nahtstellen. TimeManager verfolgt und sendet nur (time_changed/day_changed/season_changed) — er weiß nichts über Spielmechanik. WeatherManager.get_effective_temperature() ist die eine Wetter-Temperatur-Nahtstelle. Die Umgebungstemperatur speist TemperatureController._target_warmth().
DateiExports / Nahtstellen
autoload/time_manager.gdday_length_seconds (18 min), days_per_season (7), start_time_of_day, *_temp je Jahreszeit, day_night_swing; get_ambient_temperature(), jump_to_day()
autoload/weather_manager.gdmin_/max_spell_hours, temperature_jitter, snow_accumulate_/melt_per_hour
world/day_night_cycle.gdInterpolation der CanvasModulate-Tönung
world/weather_particles.gd / weather_hazard.gd / cloud_shadows.gdRegen-/Schnee-/Hagelpartikel, Hagelschaden an der Gesundheit, Wolkenschatten

Temperaturschaden: Kälte unter 4 °C / Hitze über 35 °C (temperature_controller.gd). Taktung: der 18-Minuten-Tag und die ×1,8-Aufgabendauern; HARVEST_TIME_SCALE ist die Ernte-Nahtstelle.

UI & Panels

Nahtstellen. resources_data/ui_theme.tres ist DIE Nahtstelle für das UI-Aussehen (Panels dürfen sich nicht selbst umstylen). StatVisuals = Glyphe+Stufe+Farbe; StatusEffects.list(character) = „was liegt gerade auf diesem Gefährten“. Das Gefährtenfenster ist ein gerahmter TabContainer mit drei Reitern (C/T/K) — das visible eines Reiters ist nicht dasselbe wie ein stehendes Fenster, also is_visible_in_tree() lesen.
DateiRolle
ui/hud.gdWurzel-HUD; bindet das Gefährtenfenster beim Steuerungswechsel
ui/companion_window.gd + companion_header.gdDer 3-Reiter-Rahmen; subject()/bind_character(); host_of()
ui/character_sheet_panel.gd / automation_panel.gd / crafting_panel.gdDie drei Reiter (Character / Automation / Crafting)
ui/character_status_panel.gd / stat_bar.gd / stat_visuals.gd / status_effects.gd / stat_icon.gdGruppenkarten, Balken, Abzeichen
ui/alert_screen.gdHerzschlag bei Todesgefahr (löst auf der Stufe EMERGENCY der Gesundheit aus; health_alert.gdshader)
ui/build_radial_menu.gdDer Bauring: ein _draw, Trefferprüfung über Winkel+Radius (kein Node je Sektor); die Geometrie wird aus der Sektorzahl BERECHNET
ui/build_categories.gdDer Baum als DATEN. Kategorien werden hier deklariert; Einträge werden aus dem lebenden Katalog nach Buildable.category GRUPPIERT — nie eine Liste von Ids. PLANNED = die ausgegrauten Platzhalter (seit 16.3 leer, als Mechanismus behalten). FURNITURE ist eine echte Kategorie-Id, die bewusst NICHT in CATEGORIES steht und daher keinen Sektor bekommt — das Raum-Panel fragt sie direkt ab. entries_for prüft category oder secondary_category, ein Stück in zwei Listen sagt das also selbst (das Strohbett: Möbel und Supply)
ui/room_panel.gdMöbel hängen am RAUM, nicht an einem Gebäude (16.3). Bindet an eine Zelle, nie an eine Raum-Id (Ids werden bei jeder Platzierung neu erzeugt). Treibt das gewöhnliche BuildController.select_buildable(buildable, fence) an — nie eine zweite Platzierungspipeline. Konsole room panel
ui/building_icons.gdBuildingIcons.draw() = die Nahtstelle für Gebäudesymbole (der Zwilling von ItemGraphics.draw); monochrom, Einheitsquadrat, eine Zeichnung je Buildable.id — unbekannte Id → stiller Ersatzfleck. Konsole icons prüft, welche Einträge ihn noch tragen
ui/build_icon.gdBuildIcon = das Control, das die Nahtstelle WÄHLT: Ein Bausatz (yields_item) zeichnet sich als sein Item über ItemGraphics, alles andere als sein Gebäude. Genutzt vom gemeinsamen Eintragsbutton und vom Baustellen-Panel
ui/build_entry.gdBuildEntry.cost_labels_for() / tooltip_for() speisen das Infofeld des Rings UND den Crafting-Reiter — eine Quelle dafür, was etwas kostet
ui/loading_screen.gdGepushte Phasen; alles über den RenderingServer geschaltet (force_draw())
ui/event_log_panel.gd / chronicle_panel.gd / task_board_panel.gdFeed / Historie / Aufgabenbrett
ui/wanderer_panel.gdDie Anwerbe-Entscheidung (5.4): Identität + Attribute, aufnehmen / weiterschicken. Darf die verborgene disposition niemals lesen
ui/pause_menu.gdDie Esc-Leiter (schließt die Gruppe ui_windows, bevor pausiert wird)
ui/settings_panel.gd + gameplay/graphics/audio/keybindings_settings.gdEinstellungen; Neubelegen schreibt .cfg je Bereich

Speichern / Laden

Nahtstelle. Neue zustandsbehaftete Systeme müssen sich in SaveManager._collect_state / _apply_state eintragen. Speicherstände sind benannte Plätze auf der Platte (user://saves/<name>.save). brutal_testing_saves ist true, solange der Prototyp getestet wird (Brutal speichert/lädt frei) — umlegen, um die Permadeath-Säule wiederherzustellen.

Node-Namen sind Speicherschlüssel (siehe Gefährten). Seit dem Anwerben (5.4) läuft _collect_characters den Baum ab, keine feste Namensliste, und _rebuild_character baut die Rigs, die eine frische Welt nicht hat. Die Wiederherstellung folgt einer Rangordnung (Boden → Struktur → Einrichtung). Der Schwierigkeitsgrad (Hard = freies Speichern/Laden, Brutal = nur Unterbrechen + Löschen des Platzes) wird im Titelbildschirm gewählt. Konsole: saves, save, load, delsave, difficulty.

Konsolenbefehle

Jeder Befehl der Entwicklerkonsole, was er tut und je ein Beispiel.

F12 öffnet die Konsole (nur in Debug-Builds); Esc oder F12 schließt sie, und das Spiel pausiert, solange sie offen ist. Die Handler liegen in scripts/ui/dev_console.gdhelp in der Konsole ist die maßgebliche Liste, und jede neue Mechanik bringt hier einen Befehl mit.

Die meisten Befehle wirken auf die Auswahl: die gerade ausgewählten Gefährten, oder die ganze Gruppe, wenn niemand ausgewählt ist. select 2 ist deshalb meist das Erste, was man tippt.

Gefährten & Werte

BefehlWas er tutBeispiel
select [<n>|none]Wählt den n-ten Gefährten aus und übernimmt ihn (1-basiert). Alles unten, was „die Auswahl“ sagt, meint diese.select 2
who [reroll]Identität der Auswahl: Name, Alter, Körper, die fünf Basis-Attribute. reroll würfelt neu.who reroll
stat <name> <value>Setzt health / thirst / hunger / tiredness / temperature — auch sleep_debt in Prozent.stat thirst 8
fillFüllt alle Überlebenswerte wieder auf Maximum.fill
skill [<id> <level>]Listet die Fertigkeiten der Auswahl oder setzt eine direkt (Stufen 0–10).skill lumberjacking 5
fatigueDer Erschöpfungszug: Müdigkeitsquote, das aktuelle Lauf-/Arbeitstempo und die Schlafschuld.fatigue
weight [<kg>]Zeigt die getragene Last gegen das Gewichtsbudget oder setzt das Budget selbst.weight 60
carry [<kg>|clear]Die Last und ihre Überladung: wie weit über dem Budget, was sie die Beine kostet, ob unbeweglich. Eine Zahl lädt Stein auf, bis der Rucksack so viel wiegt.carry 50
wet [<0-100>]Regennässe und wie schnell sie dort trocknet, wo der Gefährte steht — oder setzt sie.wet 100
sick [<kind>] [<0-100>]Krankheiten und die Belastungen, die darauf zulaufen — oder erzwingt eine. Arten: fever, dysentery, food_poisoning — sie stapeln sich. sick load <kind> <n> setzt eine Belastung direkt.sick dysentery 50
effectsAlle Boni und Mali auf der Auswahl — dieselbe Liste, die das HUD als Symbole zeigt, mit ihrer Wirkung.effects
skin [<0-100>|stale|clean]Trinkschlauch-Füllstände und Inhalt; setzt die Füllung oder markiert den Inhalt als stehend (schmutzig) bzw. sauber.skin stale
alert [on|off|auto]Der Todesgefahr-Alarm (roter Rand + Herzschlag): erzwingen für einen Blick oder wieder an die Gesundheit übergeben.alert on
face n|s|e|wRichtet die stehenden Kartenfiguren nach einer Himmelsrichtung aus — Hilfsmittel für Screenshots.face s
figures [iso|top]Stil der Kartenfiguren: aufrechte 3/4-Ansicht oder die alte Vogelperspektive.figures iso
wanderer [<action>]Rekrutierung: listet, wer unterwegs ist; spawn [renegade|loyal], here, panel, recruit, send, desert.wanderer spawn renegade

Fenster, Gegenstände & die Hand

BefehlWas er tutBeispiel
sheet [<n>]Schaltet das Charakterblatt um (C) oder öffnet es beim n-ten Gefährten.sheet 2
rulesSchaltet den Automatik-Regeleditor um (T).rules
craftingSchaltet die Werkbank um (K) — dort entstehen tragbare Ausrüstung wie die Schlafmatte.crafting
transfer [mate]Öffnet den Austausch Rucksack↔Lager (setzt einen Gefährten an den nächsten Stapel); transfer mate öffnet ihn zwischen zwei Gefährten.transfer mate
hearth [<logs>]Öffnet das Panel des nächsten Feuers und richtet es her: Scheite in der Flamme (0–4) und roher Fisch in der Pfanne, damit Brennstoff-Slot und Kochpfeil etwas zeigen.hearth 3
boil [<units>]Führt die ganze Kochkette aus: füllt den Schlauch mit Teichwasser, legt Einheiten in den Rucksack, schürt das nächste Feuer und erteilt den echten BOIL-Befehl.boil 6
cook [<units>]Kocht getragenen rohen Fisch bzw. Fleisch in die gegarte Form.cook 3
hand [grab|drop]Die Welt-Hand: meldet, was gehalten wird; grab setzt den einen ausgewählten Gefährten an den nächsten Stapel und hebt den ersten Stapel auf, drop legt ihn zurück.hand grab
give <item> <n> [carry]Legt Gegenstände in die Siedlungslager oder mit carry direkt in die Rucksäcke der Auswahl.give berries 20 carry
drop <item> [n]Legt einen Stapel am ersten ausgewählten Gefährten auf den Boden (im Spiel per Rechtsklick aufheben).drop wood 5
spoil <days>Altert alle verderblichen Lebensmittel (Lager und Rucksäcke) um n Tage und verrottet, was abläuft.spoil 4
fishGibt der Auswahl eine Angelrute — das Gerät, das der Fischer-Beruf braucht.fish
chronicle [<text>]Schaltet die Chronik des Durchgangs um (J); mit Text schreibt es diese Zeile mit dem heutigen Tag hinein.chronicle A hard winter began
context [fire|water]Öffnet den Rechtsklick-Kontextring am nächsten Feuer oder Wasser — dieselben Einträge wie ein Rechtsklick.context water

Welt & Gelände

BefehlWas er tutBeispiel
worldKartengröße, begehbares Land und die Dichte-Skala, die daraus jede Spawn-Zahl ableitet (1,0 = die ausgelieferte 512×512-Insel), samt aktuellen Populationen.world
biome [<name>|<x> <y>]Biom-Zählung als Anteil des begehbaren Landes; ein Name teleportiert die Gruppe hinein, eine Zelle liest sie aus.biome tundra
landmark [<n>|<x> <y>]Gestaltete Landmarken (Kratersee, heiße Quellen, Steinkreis): auflisten, hinteleportieren oder eine Zelle auslesen.landmark 2
rivers [<n>]Die beiden Flüsse und ihre Quellen am zentralen Berg; ein Index teleportiert die Gruppe dorthin.rivers 1
water [<x> <y>]Gewässer. Mit einer Zelle auch ihre Qualität — stehendes Wasser baut Ruhr-Belastung auf, fließendes ist sauber.water 120 84
salt [on|off]Salzgehalt des Meeres — off macht alles Wasser wieder trinkbar (Testschalter).salt off
freeze [on|off]Mittwinter-Eis: Zustand und Zeitfenster; off verhindert das Zufrieren.freeze off
tree [<species> <x> <y>]Baumarten-Zählung oder pflanzt Kiefer/Birke/Fichte/Eiche auf eine Zelle.tree oak 100 100
chop <x> <y> [strikes]Bucht Hiebe auf einen Baum; ohne Zahl alle bis auf den letzten — der nächste Hieb fällt ihn.chop 100 100
canopy [reveal|sway <n>]Der Live-Feed des Walddachs (wer die Kronen ausdünnt und schwingen lässt) oder justiert Transparenz / Schwungweite.canopy sway 2
relief [<knob> <v>]Die Regler für Bergschattierung und Schneekappen — freq, amp, ambient, snowline, snowsoft, light x y.relief snowline 0.7
sites [on|off]Die Heatmap der Siedlungsqualität (rot schlecht, grün gut) und wie selten ein guter Platz ist.sites on
navmesh [rebake]Navmesh-Chunks: Aufbau, Polygonzahl und Bake-Zeiten (was eine Wand kostet). rebake backt die Welt neu und misst.navmesh rebake
room [panel] [<x> <y>]Raumerkennung: liegt die Zelle in einem geschlossenen Raum, wie groß, wie warm, wie wohnlich. room panel öffnet das Möblierungsfenster.room panel
revealDeckt die ganze Karte auf (Nebel fällt auf „erkundet“).reveal
fog on|offNebel des Krieges an oder aus.fog off
tp <x> <y>Teleportiert die Auswahl (oder alle) auf diese Rasterzelle.tp 100 100

Zeit & Wetter

BefehlWas er tutBeispiel
time <hour>Setzt die Uhr, 0–24.time 22.5
day <n>Springt auf Tag n; die Jahreszeit folgt dem Kalender und die Wechsel-Signale feuern wirklich.day 20
season <name>Springt auf den ersten Tag des nächsten Frühlings / Sommers / Herbstes / Winters.season winter
tint [<season>]Die jahreszeitliche Bodenfärbung; mit Namen zur Mitte der Jahreszeit, wo sie am stärksten ist.tint autumn
weather <name> [hours]Erzwingt sunshine / cloudy / rain / snow / hail / drought für einige Spielstunden.weather rain 6
clouds [<0..1>|auto]Wolkenschatten-Deckung: eine Zahl erzwingt sie sofort, auto folgt wieder dem Wetter.clouds 0.8
speed <x>Zeitraffer: 0 pausiert, dann 1 / 2 / 5 / 10 …speed 5

Ressourcen & Tiere

BefehlWas er tutBeispiel
res [<id>]Zählung der Ressourcenknoten oder teleportiert zum ersten Knoten dieser Art. Ids: berry_bush, herbs, rock, mushrooms, hazel_bush, mussel_bed, bird_nest, wild_roots, twigs, loose_stones, leaf_pile, cactus, wild_hemp.res mussel_bed
animal [<species> [n]]Populationszählung oder setzt n erwachsene Tiere im Ring um die Gruppe. Arten: deer, pig, pigeon, crow, wolf, bear, badger, beaver.animal wolf 3
huntBereitet eine Jagd für die Auswahl vor (der Fernschuss und sein Zielen).hunt
regrowFüllt alle Bestandsressourcen (Beerensträucher usw.) sofort wieder auf.regrow
restockFührt den saisonalen Spawn-Durchlauf sofort aus — sät und räumt Pilze, Nester und Nüsse.restock

Bauen & Automatik

BefehlWas er tutBeispiel
build <id> [<x> <y>] [site [<pct>]]Zaubert ein fertiges Gebäude kostenlos hin oder legt mit site seine Baustelle — wahlweise teilgebaut.build smokehouse site 50
cost [<id>]Baukosten: jeder Eintrag mit seinen Kostenvarianten („9 Zweige oder 3 Holz“), dem jeweiligen Arbeitsaufwand, dem Siedlungsbestand und dem, worauf stehende Baupläne festgelegt sind.cost campfire
radial [<cat> [<n>]]Das radiale Baumenü: umschalten oder auf einer Kategorie offen halten und auflisten, was der Ring enthält, samt Zustand. Ein angehängter Index hebt einen Eintrag hervor und öffnet sein Info-Panel.radial workshops 3
iconsPrüft die Gebäude-Symbole: welche Katalogeinträge eine eigene Zeichnung haben und welche auf den Platzhalter zurückfallen.icons
ghost <id> <x> <y> [<w> <h>] [<rot>]Fixiert den Platzierungs-Geist auf einer Zelle ohne Maus — w h simuliert ein Ziehen; bei der Wand fixiert es einen Kettenanker, sodass der offene Zug vorschaut. ghost off löst.ghost wall 40 40 6 1
cancelsite [<x> <y>]Bricht die Baustelle auf dieser Zelle ab — gelieferte Materialien fallen zu Boden.cancelsite
area [<id> [<cells>]]Wirkbereiche: jedes stehende Gebäude mit einem, seine Reichweite und wer darin steht. Mit Id und Zahl wird die Reichweite live verstellt (0 = unbegrenzt).area campfire 25
pilerule [<x> <y>] <rule>Die Lagerregel eines Stapels: everything, nothing, food, materials oder eine Liste von Item-Ids.pilerule wood stone
auto on|offStartet oder stoppt das Regelprogramm der Auswahl.auto on
prog [basic|off]Gibt das Regelprogramm der Auswahl und den Live-Zustand aus; basic weist das eingebaute Grundversorgungs-Programm zu, off entfernt es.prog basic
tasksGibt das Aufgabenbrett aus: jede Aufgabe, die stehende Gebäude ausschreiben, mit ihrem Vergabestand.tasks
unlockjobs [on|off]Behandelt jeden Beruf der Arbeitsregeln als freigeschaltet, Werkstatt hin oder her.unlockjobs on
freebuild [on|off]Gebäude kosten nichts und stehen sofort.freebuild on

Speicher, Meta & Inszenierung

BefehlWas er tutBeispiel
savesListet die Speicherplätze auf der Platte (user://saves).saves
save [<name>]Schreibt einen Speicherplatz; ohne Namen den eigenen des Durchgangs, wie F5.save winter-test
load [<name>]Lädt einen Speicherplatz; ohne Namen den eigenen des Durchgangs, sonst den neuesten.load winter-test
delsave <name>Löscht einen Speicherplatz von der Platte.delsave winter-test
difficulty [hard|brutal]Zeigt oder wechselt den Schwierigkeitsgrad (normalerweise im Titelbildschirm gewählt).difficulty brutal
god [on|off]Friert alle Überlebenswerte ein — kein Verfall, kein Tod.god on
scenario <name>Startet einen Testzustand: startbase (die alte freie Siedlung), base20 (versorgte Basis an Tag 20), broke (alle Vorräte weg).scenario base20
shot [file.png]Speichert einen Screenshot der Spielansicht ohne Konsole und gibt den vollen Pfad aus.shot look.png
float [<item> [<n>]]Erzeugt einen schwebenden „+n Item“-Text in der Gruppenmitte.float wood 3
music [next|stop|start]Hintergrund-Playlist: überspringen, verstummen lassen oder neu starten.music next
fps [on|off]Die FPS-Anzeige unter der Zeitraffer-Leiste; ohne Argument meldet sie Bildrate, Bildzeit und Draw-Calls.fps on
versionDie Version des Builds, die Engine darunter und die Speicherformat-Version.version
clearLeert die Ausgabe der Konsole.clear
helpDie vollständige Kommandoliste in der Konsole — immer die maßgebliche.help

Tests & Werkzeuge

WerkzeugBefehlZweck
Headless-Suitegodot --headless --script res://tests/run_tests.gdRauch- & Regressionstests
Screenshot-Harnessgodot --path . --script res://tests/screenshot.gd -- out=… seed=… grid=… cmd="…"Startet das echte Spiel mit Rendering, stellt den Zustand über die Konsole her und speichert ein PNG (braucht ein Display — DISPLAY=:1, nicht --headless). Die Screenshots in diesem Wiki sind damit entstanden.
Soak-Testtests/soak_test.gdBalance-Netz über N Tage Basisbetrieb (nicht Teil der Suite)
Benches / Sondentests/animal_bench.gd, grid_benchmark.gd, river_probe.gd, water_probe.gd, sim_night.gdGezielte Performance-/Verhaltenssonden

Godot-Binary in dieser Umgebung: ~/Downloads/Godot_v4.7-stable_linux.x86_64. Nach dem Hinzufügen eines class_name den Klassencache neu bauen, bevor Headless-Tests laufen. Claude sieht den laufenden Viewport nicht — visuelle Arbeit wird über den Screenshot-Harness oder vom Entwickler geprüft.

Wiki-Screenshots neu aufnehmen
Alle Screenshots entstehen aus einem Skript: wiki/screenshots/ stammt aus dem Lauf, mit dem diese Seite gebaut wurde (Seed 12345, Gitter 256, Auflösung 1360×760). Um eine Aufnahme aufzufrischen, screenshot.gd mit derselben out=-, seed=- und cmd=-Zeile erneut laufen lassen und das PNG zurücklegen.

Versionierung

Eine Nummer, eine Quelle — und die zwei Dinge, die sie bewusst nicht ist.

Die Version des Spiels liegt an genau einer Stelle: application/config/version in project.godot — dem eigenen Feld der Engine, damit ein exportierter Build sie gratis im PCK mitträgt. Alles im Spiel liest sie über GameVersion (scripts/main/game_version.gd), eine statische Klasse wie BuildCategories: GameVersion.string() liefert "0.3.0", GameVersion.label() liefert "v0.3.0" — die eine Schreibweise, die jeder Bildschirm benutzt, damit keine Beschriftung das „v“ selbst tippt.

Schema: schlichtes SemVer. Solange der Prototyp bei 0.x läuft, steigt MINOR je abgeschlossenem Funktionspaket und PATCH bei Korrekturen; 1.0.0 ist für die Ausgabe reserviert, die den Spielbogen schließt (ROADMAP-Meilenstein 10, der Wanderzyklus). Eine meilensteinbasierte Nummerierung wurde verworfen — Meilensteine werden außer der Reihe fertig, die Version wäre also rückwärts gelaufen.

Zwei Versionen, die nicht verwechselt werden dürfen
SaveManager.SAVE_VERSION ist das FORMAT der Speicherdatei — die einzige Zahl, die je das Laden verweigern darf. GameVersion ist der Build, der sie geschrieben hat, im Kopf jedes Speicherstands als game_version eingestempelt und im Tooltip des Speicherbrowsers sichtbar. Ein Speicherstand eines älteren Builds lädt immer; der Stempel ist Herkunft, nie eine Sperre.

Wo sie auftaucht: unten rechts im Titelbildschirm, im Pausenmenü, im Kopf jedes Speicherstands, im Konsolenbefehl version (der auch den Engine-Build und das Speicherformat ausgibt), in der Windows-Programmdatei (gespiegelt in export_presets.cfg) und in der Zeile oben auf dieser Seite.

Eine Ausgabe schnüren (die vollständigen Schritte stehen in CHANGELOG.md): project.godot erhöhen, die Nummer nach export_presets.cfg und auf diese Seite spiegeln, den Changelog-Abschnitt schreiben, die Headless-Suite laufen lassen, committen, dann git tag -a v<version>. Die Suite schlägt fehl, wenn die drei Kopien auseinanderlaufen — diese Prüfung hält die Spiegel ehrlich.

Das Wiki-Archiv — eine eingefrorene Seite je Release

Diese Seite ist ein lebendes Dokument: sie beschreibt immer den Build in Entwicklung. Damit sie auch sagen kann, was ein älterer Build tat, friert jedes Release eine vollständige Kopie ein unter wiki/v<version>/ — beide Sprachen und eine eigene Kopie der Screenshots, denn eine archivierte Seite mit den heutigen Bildern würde den Sinn des Archivierens aufheben. Der Wähler in der Seitenleiste erreicht jeden eingefrorenen Build; eine eingefrorene Seite trägt ein oranges Banner und verlinkt hierher zurück.

SkriptWas es tut
wiki/shots.sh Schießt jeden Wiki-Screenshot neu aus dem echten Spiel, eine Liste, jedes Mal derselbe Seed, damit die Bilder zweier Builds vergleichbar sind. DISPLAY=:1 wiki/shots.sh für alle oder einzelne benennen: wiki/shots.sh hero party. Braucht ein Display — die Vorrichtung startet das Spiel mit Rendering, --headless kann das nicht.
wiki/snapshot.sh Friert die lebenden Seiten + Screenshots als wiki/v<version>/ ein, stempelt das Archiv-Banner in die Kopien und schreibt den Versionswähler der lebenden Seiten neu. Liest die Version aus project.godot, läuft also nach dem Bump. Idempotent.
wiki/deploy.sh Lädt die lebenden Seiten, jede Übersetzung und jedes Archivverzeichnis hoch. Warnt, wenn die <style>- oder <script>-Blöcke der beiden Sprachen auseinandergelaufen sind.

Reihenfolge beim Release, und sie ist wichtig: beide Seiten für das Release bearbeiten → wiki/shots.sh (damit der eingefrorene Satz zu diesem Build gehört) → project.godot, export_presets.cfg und beide Seiten hochziehen → wiki/snapshot.sh → Changelog, Testsuite, Commit, Tag.

Aktuell halten wichtig

Stehende Anweisung
F1 und dieses Wiki müssen dauerhaft aktuell gehalten werden — und das Wiki in beiden Sprachen. Ein Feature ist erst fertig, wenn alle drei es abbilden.

Wenn sich eine spielerseitige Mechanik ändert (eine Steuerung, ein Gebäude, ein Sammelziel, eine Überlebensregel):

  1. HelpPanel.HELP_TEXT in scripts/ui/help_panel.gd bearbeiten — die einzige Quelle der Spielerhilfe auf dem Bildschirm (ihre Navigation leitet sich aus den Abschnittsüberschriften ab, also das Kopfformat [font_size=17][color=#9ec1ff][b]…[/b] beibehalten).
  2. Den passenden Abschnitt im Spielerhandbuch hier aktualisieren.
  3. Betrifft die Änderung die Codestruktur (eine neue Datei, Nahtstelle, Stellschraube oder ein Konsolenbefehl), den passenden Abschnitt der Entwicklerreferenz aktualisieren und gegebenenfalls den Screenshot neu aufnehmen.
  4. Jede Änderung nach wiki/index.html spiegeln, den englischen Zwilling, im selben Commit.
Zwei Sprachfassungen, ein Layout
wiki/index.html (Englisch) und wiki/index.de.html (Deutsch) sind eigenständige Seiten mit identischer Struktur, identischen Ids und Ankern — der Umschalter EN / DE ist ein schlichter Link, der den aktuellen #anchor mitnimmt, ein Abschnitt darf also nie nur in einer der beiden existieren. Ihre <style>- und <script>-Blöcke sind absichtlich bytegleich: das Aussehen in einer Datei ändern und den Block in die andere kopieren — wiki/deploy.sh vergleicht beide und warnt, wenn sie auseinanderlaufen. Der Deploy lädt beide Dateien hoch (und der Hook feuert für jede von beiden).

Die Entwicklerreferenz leitet sich aus dem Nahtstellen-Katalog im Projektgedächtnis ab (memory/MEMORY.md), wo jedes System seine eine Nahtstelle nennt — die schnellste Stelle, um nachzusehen, wo eine Mechanik tatsächlich wohnt.


Companions — Entwickler-Wiki des Prototyps. Das Spielerhandbuch spiegelt die F1-Hilfe im Spiel; die Entwicklerreferenz bildet Mechaniken auf Dateien, Nahtstellen, Stellschrauben und Konsolenbefehle ab. Screenshots erstellt mit tests/screenshot.gd (Seed 12345).