8. Animal Unload Trigger - Tiere entladen
Übersicht
Mit Animal Unload Trigger können Tiere direkt in Produktionspunkte entladen und zu FillTypes konvertiert werden.
🐄 Beispiel: Ein Schlachthof akzeptiert Kühe (12-36 Monate alt) und konvertiert sie zu COWMEAT basierend auf ihrem Gewicht.
Funktionsweise
- Trigger-basiert: Anhänger mit Tieren in den Trigger fahren
- Tier-Anforderungen: Alter und Gesundheit müssen in definierten Grenzen liegen
- Gewicht-Berechnung: Gewicht wird über eine konfigurierbare Kurve berechnet
- FillType-Output: Tiergewicht = Menge an FillType (z.B. 500kg Kuh = 500 Liter COWMEAT)

XML-Konfiguration
Basis-Struktur
<placeable>
<productionExtension>
<animalUnloadTriggers>
<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="COW"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="12" kg="300"/>
<weight age="24" kg="500"/>
<weight age="36" kg="600"/>
</animal>
</acceptedAnimals>
</trigger>
</animalUnloadTriggers>
</productionExtension>
</placeable>
Der Trigger-Node muss im i3D als Trigger konfiguriert sein!
Trigger Parameter
| Parameter | Beschreibung | Pflicht | Standard |
|---|---|---|---|
node | Trigger-Node im i3D | ✅ | - |
logoSliceId | Logo für GUI-Dialog | ❌ | animalDialog.animalDialog_logo |
Animal Parameter
| Parameter | Beschreibung | Pflicht | Standard |
|---|---|---|---|
animalType | Generischer Typ (COW, PIG, ...) oder spezifische Rasse (COW_SWISS_BROWN, PIG_BERKSHIRE, ...) | ✅ | - |
minAge | Mindestalter in Monaten | ❌ | 0 |
maxAge | Höchstalter in Monaten | ❌ | 999 |
minHealth | Mindest-Gesundheit in % | ❌ | 0 |
maxHealth | Höchst-Gesundheit in % | ❌ | 100 |
fillType | Ziel-FillType (z.B. COWMEAT) | ✅ | - |
customIcon | Eigenes Icon für GUI | ❌ | - |
Gewichtskurve
Jedes Tier benötigt eine Gewichtskurve mit mindestens 2 Punkten:
<animal animalType="COW" fillType="COWMEAT">
<weight age="0" kg="40"/> <!-- Kalb: 40 kg -->
<weight age="12" kg="300"/> <!-- 1 Jahr: 300 kg -->
<weight age="24" kg="500"/> <!-- 2 Jahre: 500 kg -->
<weight age="36" kg="600"/> <!-- 3 Jahre: 600 kg -->
</animal>
Interpolation:
- Das Gewicht wird linear zwischen den Punkten interpoliert
- Tier mit 18 Monaten: ~400kg (zwischen 12 und 24 Monaten)
Mehr Punkte = genauere Gewichtskurve!
Tier-Typen
animalType kann entweder ein generischer Typ oder eine spezifische Rasse sein.
Generische Typen (alle Rassen der Gruppe)
animalType | Akzeptiert |
|---|---|
COW | Alle Kuh-Rassen (Swiss Brown, Holstein, Angus, Limousin, Highland Cattle, Wasserbüffel) |
PIG | Alle Schweine-Rassen (Landrace, Black Pied, Berkshire) |
SHEEP | Alle Schafe UND Ziegen |
HORSE | Alle Pferde-Rassen |
CHICKEN | Alle Hühner (Hennen + Hähne) |
Spezifische Rassen
animalType | Rasse | Gruppe |
|---|---|---|
COW_SWISS_BROWN | Braunvieh | Kuh |
COW_HOLSTEIN | Holstein-Friesian | Kuh |
COW_ANGUS | Angus | Kuh |
COW_LIMOUSIN | Limousin | Kuh |
COW_HIGHLAND_CATTLE | Hochlandrind | Kuh |
COW_WATERBUFFALO | Wasserbüffel | Kuh |
PIG_LANDRACE | Landschwein | Schwein |
PIG_BLACK_PIED | Bunte Bentheimer | Schwein |
PIG_BERKSHIRE | Berkshire | Schwein |
SHEEP_LANDRACE | Landschaf | Schaf |
SHEEP_STEINSCHAF | Steinschaf | Schaf |
SHEEP_SWISS_MOUNTAIN | Schweizer Bergschaf | Schaf |
SHEEP_BLACK_WELSH | Welsh Mountain | Schaf |
GOAT | Ziege | Schaf/Ziege |
HORSE_BAY | Brauner | Pferd |
HORSE_BLACK | Rappe | Pferd |
HORSE_CHESTNUT | Fuchs | Pferd |
HORSE_DUN | Falbe | Pferd |
HORSE_GRAY | Schimmel | Pferd |
HORSE_PALOMINO | Palomino | Pferd |
HORSE_PINTO | Pinto | Pferd |
HORSE_SEAL_BROWN | Braun-Schwarz | Pferd |
CHICKEN | Henne | Huhn |
CHICKEN_ROOSTER | Hahn | Huhn |
Das System prüft zuerst ob animalType mit der spezifischen Rasse übereinstimmt. Wenn nicht, wird auf den generischen Typ zurückgegriffen.
animalType="COW"→ akzeptiert Swiss Brown, Holstein, Angus, Limousin, Highland Cattle, WasserbüffelanimalType="COW_SWISS_BROWN"→ akzeptiert nur Swiss Brown KüheanimalType="SHEEP"→ akzeptiert alle Schafe und ZiegenanimalType="GOAT"→ akzeptiert nur Ziegen
Nur in FS25 vorhandene FillTypes verwenden!
Beispiele
Schlachthof - Kühe
Akzeptiert Kühe zwischen 12 und 36 Monaten:
<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="COW"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="6" kg="150"/>
<weight age="12" kg="300"/>
<weight age="24" kg="500"/>
<weight age="36" kg="600"/>
</animal>
</acceptedAnimals>
</trigger>
Verhalten:
- Kalb (6 Monate): ❌ Zu jung (minAge=12)
- Kuh (18 Monate, 70% Gesundheit): ✅ Akzeptiert → ~400 Liter COWMEAT
- Kuh (40 Monate): ❌ Zu alt (maxAge=36)
- Kuh (20 Monate, 30% Gesundheit): ❌ Zu krank (minHealth=50)
Schlachthof - Nur Swiss Brown Kühe
Akzeptiert nur Swiss Brown Kühe (spezifische Rasse):
<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="COW_SWISS_BROWN"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="12" kg="320"/>
<weight age="24" kg="520"/>
<weight age="36" kg="620"/>
</animal>
</acceptedAnimals>
</trigger>
Schlachthof - Schweine
Akzeptiert Schweine zwischen 6 und 18 Monaten:
<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="PIG"
minAge="6"
maxAge="18"
minHealth="60"
maxHealth="100"
fillType="PIGMEAT">
<weight age="0" kg="25"/>
<weight age="6" kg="80"/>
<weight age="12" kg="120"/>
<weight age="18" kg="140"/>
</animal>
</acceptedAnimals>
</trigger>
Schlachthof - Schafe (alle Alter)
Akzeptiert Schafe jeden Alters:
<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="SHEEP"
minAge="0"
maxAge="999"
minHealth="40"
maxHealth="100"
fillType="SHEEPMEAT">
<weight age="0" kg="5"/>
<weight age="6" kg="25"/>
<weight age="12" kg="40"/>
<weight age="24" kg="50"/>
</animal>
</acceptedAnimals>
</trigger>
minAge="0" und maxAge="999" = alle Alter akzeptiert!
Mehrere Tier-Typen pro Trigger
Ein Trigger kann mehrere Tier-Typen akzeptieren:
<trigger node="0>6|0|0">
<acceptedAnimals>
<!-- Kühe -->
<animal animalType="COW"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="12" kg="300"/>
<weight age="24" kg="500"/>
<weight age="36" kg="600"/>
</animal>
<!-- Schweine -->
<animal animalType="PIG"
minAge="6"
maxAge="18"
minHealth="60"
maxHealth="100"
fillType="PIGMEAT">
<weight age="0" kg="25"/>
<weight age="6" kg="80"/>
<weight age="12" kg="120"/>
<weight age="18" kg="140"/>
</animal>
<!-- Schafe -->
<animal animalType="SHEEP"
minAge="0"
maxAge="999"
minHealth="40"
maxHealth="100"
fillType="SHEEPMEAT">
<weight age="0" kg="5"/>
<weight age="12" kg="40"/>
<weight age="24" kg="50"/>
</animal>
</acceptedAnimals>
</trigger>
Mehrere Trigger
Verschiedene Trigger für verschiedene Produktionszweige:
<animalUnloadTriggers>
<!-- Trigger 1: Schlachthof (erwachsene Tiere) -->
<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="COW"
minAge="12"
maxAge="36"
fillType="COWMEAT">
<weight age="12" kg="300"/>
<weight age="36" kg="600"/>
</animal>
</acceptedAnimals>
</trigger>
<!-- Trigger 2: Kälber-Aufzucht (nur junge Tiere) -->
<trigger node="0>6|0|1">
<acceptedAnimals>
<animal animalType="COW"
minAge="0"
maxAge="6"
minHealth="80"
maxHealth="100"
fillType="MILK">
<weight age="0" kg="40"/>
<weight age="3" kg="80"/>
<weight age="6" kg="120"/>
</animal>
</acceptedAnimals>
</trigger>
</animalUnloadTriggers>
Nutzen: Verschiedene Trigger für verschiedene Altersklassen/Produktionszwecke!
Alter & Gesundheit
Alter-Grenzen
Tiere außerhalb der Altersgrenzen werden NICHT akzeptiert:
<!-- Nur erwachsene Kühe -->
<animal animalType="COW" minAge="12" maxAge="36" fillType="COWMEAT">
...
</animal>
Beispiele:
- Kalb (6 Monate): ❌ Zu jung
- Kuh (20 Monate): ✅ Akzeptiert
- Kuh (40 Monate): ❌ Zu alt
Gesundheits-Grenzen
Tiere außerhalb der Gesundheitsgrenzen werden NICHT akzeptiert:
<!-- Nur gesunde Tiere -->
<animal animalType="COW" minHealth="60" maxHealth="100" fillType="COWMEAT">
...
</animal>
Beispiele:
- Kuh (40% Gesundheit): ❌ Zu krank
- Kuh (70% Gesundheit): ✅ Akzeptiert
- Kuh (100% Gesundheit): ✅ Akzeptiert
Kombinierte Anforderungen
Alter UND Gesundheit müssen passen:
<animal animalType="COW"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
...
</animal>
Beispiele:
- Kuh (20 Monate, 70% Gesundheit): ✅ Beide Bedingungen erfüllt
- Kuh (20 Monate, 30% Gesundheit): ❌ Gesundheit zu niedrig
- Kuh (8 Monate, 80% Gesundheit): ❌ Alter zu niedrig
- Kuh (40 Monate, 90% Gesundheit): ❌ Alter zu hoch
Häufige Fehler
❌ Trigger akzeptiert keine Tiere
Ursache 1: Trigger-Node fehlt oder falsch
<!-- FALSCH - Node existiert nicht -->
<trigger node="0>99|0|0">
<!-- RICHTIG -->
<trigger node="0>6|0|0">
Ursache 2: Alter/Gesundheit außerhalb der Grenzen
<!-- FALSCH - zu strenge Anforderungen -->
<animal animalType="COW"
minAge="24"
maxAge="25"
minHealth="95"
maxHealth="100"
fillType="COWMEAT">
Grenzen großzügiger wählen!
❌ Gewicht stimmt nicht
Ursache: Zu wenige Gewichtspunkte
<!-- FALSCH - nur 2 Punkte = ungenaue Kurve -->
<animal animalType="COW" fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="36" kg="600"/>
</animal>
<!-- RICHTIG - mehr Punkte = genauere Kurve -->
<animal animalType="COW" fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="6" kg="150"/>
<weight age="12" kg="300"/>
<weight age="24" kg="500"/>
<weight age="36" kg="600"/>
</animal>
❌ FillType nicht gefunden
Ursache: Ungültiger FillType
<!-- FALSCH - MEAT existiert nicht in FS25 -->
<animal animalType="COW" fillType="MEAT">
<!-- RICHTIG - COWMEAT ist ein gültiger FillType -->
<animal animalType="COW" fillType="COWMEAT">
Nur FillTypes verwenden, die in FS25 existieren! Oder eine newFillType.xml erstellen
Logo Slice ID
Ein eigenes Logo für den Trigger-Dialog:
<productionExtension logoSliceId="FS25_Butcher.metzgereiBauer_logo">

Voraussetzung: Siehe FS25 Dokumentation für Logo-Registrierung in Advanced Configuration
Praktische Beispiele
Schlachthof (alle Fleisch-Tiere)
<trigger node="0>6|0|0" logoSliceId="myMod.slaughterhouse">
<acceptedAnimals>
<!-- Kühe -->
<animal animalType="COW"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
<weight age="12" kg="300"/>
<weight age="24" kg="500"/>
<weight age="36" kg="600"/>
</animal>
<!-- Schweine -->
<animal animalType="PIG"
minAge="6"
maxAge="18"
minHealth="60"
maxHealth="100"
fillType="PIGMEAT">
<weight age="6" kg="80"/>
<weight age="12" kg="120"/>
<weight age="18" kg="140"/>
</animal>
<!-- Schafe -->
<animal animalType="SHEEP"
minAge="6"
maxAge="24"
minHealth="40"
maxHealth="100"
fillType="SHEEPMEAT">
<weight age="6" kg="25"/>
<weight age="12" kg="40"/>
<weight age="24" kg="50"/>
</animal>
</acceptedAnimals>
</trigger>
Hühnerfarm (Eier-Produktion)
<trigger node="0>6|0|0">
<acceptedAnimals>
<animal animalType="CHICKEN"
minAge="0"
maxAge="24"
minHealth="70"
maxHealth="100"
fillType="EGG">
<weight age="0" kg="0.5"/>
<weight age="6" kg="1.5"/>
<weight age="12" kg="2.0"/>
</animal>
</acceptedAnimals>
</trigger>
Gewicht entspricht Eier-Produktion, nicht dem tatsächlichen Tier-Gewicht!
Vollständiges Beispiel
<productionExtension>
<animalUnloadTriggers>
<!-- Schlachthof-Trigger -->
<trigger node="0>6|0|0" logoSliceId="myMod.slaughterhouse">
<acceptedAnimals>
<!-- Kühe: 12-36 Monate -->
<animal animalType="COW"
minAge="12"
maxAge="36"
minHealth="50"
maxHealth="100"
fillType="COWMEAT">
<weight age="0" kg="40"/>
<weight age="6" kg="150"/>
<weight age="12" kg="300"/>
<weight age="24" kg="500"/>
<weight age="36" kg="600"/>
</animal>
<!-- Schweine: 6-18 Monate -->
<animal animalType="PIG"
minAge="6"
maxAge="18"
minHealth="60"
maxHealth="100"
fillType="PIGMEAT">
<weight age="0" kg="25"/>
<weight age="6" kg="80"/>
<weight age="12" kg="120"/>
<weight age="18" kg="140"/>
</animal>
<!-- Schafe: alle Alter -->
<animal animalType="SHEEP"
minAge="0"
maxAge="999"
minHealth="40"
maxHealth="100"
fillType="SHEEPMEAT">
<weight age="0" kg="5"/>
<weight age="6" kg="25"/>
<weight age="12" kg="40"/>
<weight age="24" kg="50"/>
</animal>
</acceptedAnimals>
</trigger>
<!-- Kälber-Aufzucht Trigger -->
<trigger node="0>6|0|1">
<acceptedAnimals>
<!-- Nur junge Kälber -->
<animal animalType="COW"
minAge="0"
maxAge="6"
minHealth="80"
maxHealth="100"
fillType="MILK">
<weight age="0" kg="40"/>
<weight age="3" kg="80"/>
<weight age="6" kg="120"/>
</animal>
</acceptedAnimals>
</trigger>
</animalUnloadTriggers>
<productions>
<production id="schlachthof" name="Schlachthof" cyclesPerHour="1" costsPerActiveHour="50">
<inputs>
<input fillType="COWMEAT" amount="500"/>
</inputs>
<outputs>
<output fillType="MEAT" amount="400"/>
</outputs>
</production>
</productions>
</productionExtension>
Beispieldatei
Siehe: examples/10_AnimalUnloadTrigger.xml
Verwandte Features
- Placeable Setup - Grundlagen der XML-Konfiguration
- Production Templates - Produktionsketten
Zusammenfassung
✅ Tiere direkt in Produktionspunkte entladen ✅ Konfigurierbare Alter- & Gesundheits-Anforderungen ✅ Gewichtsbasierte FillType-Konvertierung ✅ Mehrere Tier-Typen pro Trigger möglich ✅ Mehrere Trigger für verschiedene Produktionszweige ✅ Custom Icons & Logos ✅ Multiplayer-kompatibel