diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..78e3f8b --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,425 @@ +# Ændringslog — FS25_ADSmartPickup + +Nyeste version øverst. Versionsnummeret står i `FS25_ADSmartPickup/modDesc.xml`. Brugervejledningen +står i [docs/BRUGERMANUAL.md](docs/BRUGERMANUAL.md) (dansk) og [docs/USER_MANUAL.md](docs/USER_MANUAL.md) +(engelsk). De ældste afsnit (v1.1–v1.13) er de oprindelige udviklernoter, der tidligere stod i README. + +--- + +## 1.60 — "Kræver handling" → flow, menuplacering, flow-vogne i guiden + +- **1.60.11** Udkørselsregler vises kun, når en vare bruger dem: salgsgrænserne ("Sælg fra", "Sælg altid + over") kun ved Salg / Salg, ellers lager, og "Kør til lager over" kun ved Lager / Salg, ellers lager. + Gælder Regler-trinnet, resuméet og status (et rent lagerflow viser fx kun "lager > 80 %"). +- **1.60.10** Guiden "Opsæt flow" tildeler ledige vogne til solo-traktorer (traktor uden vogn bagpå): + guiden foreslår en vogn (navnematch, ellers "Disponibel …"), vognen kan skiftes pr. traktor på linjen + "↳ Vogn", og flowet husker parret ved Gem. +- **1.60.9** Tydelig linje øverst i Fields, når "Stop alt"-pausen er aktiv (pausen gemmes med savegamet). +- **1.60.8** Gemt produkt (ensilage/hø) gælder kun slåafgrøder. +- **1.60.7** Traktor med redskab på sin egen parkering er et parkeret sæt, ikke en forældreløs påkobling. +- **1.60.6** Tømning ved stop bruger aldrig marksiloer; kan en silo ikke tage imod, prøves den næste + (op til 3), før der parkeres med last. +- **1.60.4–1.60.5** Redskab/vogn der er koblet på uden ejer efter genindlæsning, sættes tilbage efter + 2 min uden opgave. Flowet husker kun vognen, når et kørende flow stoppes. +- **1.60.3** Diagnoselinje når vognen står ved målet med plads, uden at læsset falder, i 30 s. +- **1.60.2** Vin og oliven er aldrig slåafgrøder. +- **1.60.1** Fanen Smart Pickup ligger lige over spillets Indstillinger i ESC-menuen. +- **1.60.0** Lagerfanernes "Kræver handling": klik åbner eller opretter et forsyningsflow (løber tør) eller et + salgsflow (sælg nu), eller siger "producér/køb", når et flow ikke hjælper. Statuslinjen i lagerfanerne + viser ikke længere det sidst valgte flows status. + +## 1.59 — Fields som farvet liste, Pleje Automatisk/Manuelt + +- **1.59.0** Fields-fanen som farvet liste med Start/Stop pr. række; klik åbner redigeringsvinduet. +- **1.59.1–1.59.5** Review-rettelser til listen og redigeringsvinduet (placering, fokus, ESC, [Start] + kræver markør); vinduet i menuens mørke tone; tekstrækker op til 90 tegn; forklaring af farver i hint. +- **1.59.2** Flow der ikke er stoppet og har kørende traktorer, tæller som kørende efter genindlæsning. +- **1.59.3** Under "Stop alt"-pausen vises marker som stoppet med [Start]; [Start] genoptager kun den mark. +- **1.59.6–1.59.7** Traktorer der ikke findes længere (solgt), fjernes fra flowet 2 min efter indlæsning, + med besked på skærmen; rød besked når flowet står uden traktorer. +- **1.59.8** Pleje har Automatisk/Manuelt som Klargøring (Automatisk = gødning, ukrudt og kalk). +- **1.59.9–1.59.11** Markvinduet viser ikke marksilo-advarsler; kolonnebredder i Marksiloer og Måned. + +## 1.58 — Flows som farvet liste med redigeringsvindue + +- **1.58.0** Flows-fanen som farvet liste med [Start]/[Stop] pr. række; klik åbner et redigeringsvindue + (Luk/ESC, Start/Stop, Slet). + +## 1.57 — Forsyning og Wait-valg + +- **1.57.0** Mindst fyldte kilde først kun blandt kilder med mindst 25 % af et læs (ellers fyldeste). +- **1.57.1–1.57.2** "Vent ved: Alle" vælger det ledige Wait-punkt nærmest flowets kilder. +- **1.57.3** Manuel påkobling starter traktoren i et flow, hvis Start blev afvist. +- **1.57.4** AutoDrive tælles ikke som Courseplay (flow-traktor ventede på sig selv efter indlæsning). + +## 1.56 — Bedste pasform i maskinpuljen + +- **1.56.0** Puljen vælger den mindste traktor med hk nok; afstand kun inden for ±15 %; over 2,5× redskabets + behov kun som nødløsning. +- **1.56.1–1.56.5** Flow prøver én gang mere at hente vognen; traktor startes, når spilleren selv har kørt + den til Connect og koblet vognen på; AD "Kør til" et puljeredskabs parkering kobler det af; flowet + husker vognen før et stop; afviste traktorer ved Start vises med grund. + +## 1.55 — Redskaber foldes ved stop + +- **1.55.0** Redskaber slukkes, løftes og foldes til transport, når en mark, et flow eller "Stop alt" stoppes. +- **1.55.1** Tømning ved stop: 45 s ved målet uden at læsset falder → silo, ellers parkering med last. + +## 1.51–1.54 — Flow-vogne og kobling + +- **1.51.0** Flow-vogne: flowets vogn huskes pr. traktor, solo-traktor henter sin vogn ved start, stop/slet + sætter vognen på plads og kører traktoren hjem; stoppede flows er ledige i maskinpuljen. +- **1.51.1** Konsolkommandoen `spuNameFleet` giver traktorer uden for flows butiksnavne og parkeringer + "P ". +- **1.51.3–1.51.4** Flow-traktor finder sin vogn på parkeringsnavnet; stoppet flow tømmer vognen før den + parkeres. +- **1.51.5** Nye Courseplay-kurser får altid 2 forager-runder. +- **1.52.0** Lagerfanerne får vareoversigt med nøgletal, "Kræver handling" og fyldningsbjælker. +- **1.52.1** Flow startet igen under tømning/hjemtur kører videre med vognen. +- **1.53.0** Koblingsrækkevidde 3 m og bakning de sidste 3–8 m ved Connect-markører. +- **1.53.1–1.53.2** Tømning ved stop kun ved flowets egne mål; afkobling bekræftes (op til 20 s). +- **1.54.0** Flow-vogne holdes altid af deres flow; markredskaber kun bag traktorer. + +## 1.48–1.50 — Maskinpulje + +- **1.48.0** Maskinpulje etape 1: markarbejdet sender en solo-traktor efter et puljeredskab (frakoblet, med + parkering + Connect-markør), når ingen færdig kombination er ledig; bagefter sættes redskabet af på sin + parkering, og traktoren kører hjem. Marker der venter, betjenes længst-ventende først. +- **1.48.1–1.48.4** Bar mark med mål-afgrøde klargøres straks (kun såningen venter); plov før kultivator i + rolletabellen; markflåden viser puljetraktorer og -redskaber med status. +- **1.49.0** Etape 2: tømmevogne ved høst fra puljen. +- **1.50.0** Etape 3: marksilo-flowet låner også solo-traktor + puljevogn. +- **1.50.2–1.50.5** Plov foldes ud før afkobling; kultivering/pløjning måles på jorden (≥95 %); tom/fuld + marksilo og fuld fabrik håndteres. + +## 1.46–1.47 — Connect- og Afkobl-markører + +- **1.46.0** Connect-markører: en traktor der kører AD "Kør til" en "Connect "-markør, kobler + redskabet på ved ankomst. +- **1.47.0–1.47.4** Afkobl-markører; Connect virker begge veje; ture i flere trin; vognen sættes af ved sin + egen AD-parkering. + +## 1.41–1.45 — Navne, Stop alt, Courseplay-genstart + +- **1.41.0** Markmaskiner med modelnavn navngives efter rollen (Læssevogn 5, Mejetærsker 1 …). +- **1.41.1** Navnefilen skrives i spillets gem-hook. +- **1.42.0** "Stop alt og parkér" og "Start alle" med pause der gemmes. +- **1.42.1–1.42.5** Parkeringspunkt findes også på vognen/redskabet; højst én maskine sendt ud hvert + 10. sekund; vent op til 5 min på Courseplays kursusberegning; Flows-fanen med valgt flow øverst. +- **1.43.0** Høster med korn i tanken efter høsten: tømmevogn sendes ud, før marken går videre. +- **1.44.0** Marksilo: "Kør overskud til produktion" med foderreserve. +- **1.45.0** Maskiner som Courseplay kører, huskes ved hvert gem og startes igen efter indlæsning. + +## 1.36–1.40 — Marksilo-flow og bygningsnavne + +- **1.36.0** Fanen Marksiloer: låner ledige tømmevogne og kører marksiloernes varer hjem til gårdlagre. +- **1.36.x** Flow-guiden viser ubrugelige traktorer med grund (foldet sammen); grunden "AutoLoad er slået + til på vognen"; pallespawnere viger for aflæsningens markør. +- **1.37.0** CP-maskiner midt i et job genstartes efter indlæsning. +- **1.38.0** Manuel transport af brede høstere ("Kører selv på vejen" Ja/Nej). +- **1.38.x** Rettelser til CP-startpunkt, genstart og marksilo-navne. +- **1.39.0** Egne bygningsnavne fra `ADSmartPickup_names.xml` bruges overalt. +- **1.40.0** Nye bygninger navngives automatisk; knappen "Omdøb bygning" i bygningsfanerne. + +## 1.33–1.35 — Courseplay-kursusgenbrug og fanen Måned + +- **1.33.0** Udkørsel: "Sælg altid når kilden er over X %". +- **1.33.1–1.33.4** Vinmarker, maskiner langt fra vejnettet sendes ikke ud, intet sendes de første 2 min + efter indlæsning, hurtigere rutetjek. +- **1.34.0** Genbrug af Courseplay-kurser (markform-signatur + kursusregister pr. maskine). +- **1.34.1–1.34.2** Slåmarker klar først i fuld højde; utoppede kartofler tæller som høstklare. +- **1.35.0** Fanen Måned: marker i gang, næste trin, og om høst-/såvinduet lukker ved månedsskiftet. +- **1.35.x** Fremdrift for høst/slåning; diagnose af stillestående AD-køretøjer; fyldte traktorer + registreres "på vej". + +## 1.32 — Guiden "Opsæt flow" + +- **1.32.0** Flows-fanen med tavle + resumé og trin-for-trin-guide; nyt flow oprettes først ved Gem. +- **1.32.1–1.32.5** Oprydning i gammel GUI-kode; høsterens restkorn; advarsel når markflåden er tom; + forkert vare hældes kun ud som lille rest; vinkursus i gangen. + +## 1.31 — Guiden "Opsæt mark" + +- Markfanen får resumé (klik på en linje = ret ét trin) og en trin-for-trin-guide. + +## 1.21–1.30 — Markarbejde + +- **1.21** Fanen Marker: slåafgrøder (slå, vend, riv, saml op) med AutoDrive til F-markøren og Courseplay + på marken; arbejdsbredde fra Courseplay. +- **1.22–1.25** Vender/river/læssevogn genbruger slåmaskinens kursus; smalle maskiner; sideriver; ensilage + til gæringssilo. +- **1.26–1.27** Høst, klargøring, pleje, multi-tool, vejr, påfyldning, mål-afgrøde pr. mark, halm efter høst; + ydelsesforbedringer. +- **1.28** Profiler og hak-audit; æg-paller; forsyning med flere mål vælger målet med færrest vogne på vej. +- **1.29** Bebyggede marker udelades; minimum arbejdsbredde 1,5 m; påfyldning via AD og købestationer; + lange tekstrækker ombrydes. +- **1.30** Faste maskiner pr. mark; markflåden er tydeligt fælles. + +## 1.14–1.20 — Forsyning, lagerfaner og Overblik + +- **1.14** Bedste foder først (lavere foder kun når truget er mindst 75 % tomt); læs på vej tælles med; + rest under 100 l regnes som tom. +- **1.15–1.16** Lagerfaner pr. bygningstype med statistik pr. vare; første brugermanual. +- **1.17** Traktorer navngives efter deres flow; kilder med fælles lager regnes som ét stop; lagerture til + egne fabrikker; jordbundne kortanlæg regnes som gårdens. +- **1.18** "Lager til" (tvunget aflæsningssted, fodring ved ≥ 10.000 l); siloer der kun kan fyldes; generelle + lagre som kilde; æg/uld-paller fra stalde. +- **1.19** Fanen Overblik; "Lager til" filtreres efter varer; parallelt foder (høns). +- **1.20** Start/Stop alle flows; klik på et flow i Overblik hopper til redigering. + +## 1.10–1.11 + +- **1.10** Overblik i fanen; "Kør hjem fra Wait under X %" (10–90, standard 50); foderprioritering efter + spillets fodervægt. +- **1.11** Flere mål pr. run; faneikon; forkert last læsses af i nærmeste silo; forbedret Wait-logik. + +## v1.13 — Flow-tavle (bygningsbaseret opsætning) + +ESC-fanen har nu to under-faner: **Flows** og **Lagre**. Flows viser én række pr. flow (run): +`> Mælk: Sukker · Kostald 1 + Kostald 2 → salg · pris ≥ 90 %, lager > 80 % · Virtus · kører (1/1) — SUGAR 78 % af top` +og under tavlen en detail-blok for det valgte flow: **Retning** (ind til bygning / ud fra bygning), +**Fra** (udkørsel) eller **Til** (forsyning) som afkrydsning pr. **bygning** — moden finder selv den +AD-markør der står nærmest bygningens læsse-/aflæsningstrigger (≤ 40 m; siloer via det strenge +opslag) og viser den: `Kostald 1 (stald) — markør 'cow 1 milk' 12 m` eller `INGEN MARKØR inden for +40 m`. Derefter Varer, Regler, Vent ved, Traktorer og Status som før. Forsyning har "Fra = alle +siloer" (som hidtil). Wait-puljerne står nederst. + +Gamle runs oversættes automatisk: markører der er en bygnings markør bliver til bygningen; rå +markører uden bygning beholdes og vises som `markør '…'`. Start afviser med `'' mangler en +AD-markør ved triggeren`, når en valgt bygning ingen markør har. Runs gemmes som XML version 3. + +## v1.12 — Udkørsel af produkter + +Et run har nu en **retning**: *Forsyning* (som hidtil) eller *Udkørsel*. ESC-fanen har tre +under-faner: **Oversigt** · **Forsyning** · **Udkørsel**. + +Et udkørsels-run består af: + +- **Kilder** (én eller flere AD-markører): en **fabrik** (produktionspunkt, dens outputs), + en **silo** (`spec_silo`, dens indhold) eller et **objektlager** (palle-/ballelager som HVF- + pakkens; paller tages ud automatisk). Kilden genkendes inden for 40 m af markøren. +- **Varer** med politik pr. vare: **Fra** · **Lager** · **Salg** · **Salg, ellers lager**. + Bulk-varer kræver tipvogn/tank; pallevarer kræver **Universal Autoload** på vognen. +- **Regler:** *Sælg fra* (% af årets toppris, standard 90), *Kør til lager over* (% fyldning i + kilden, standard 80), *Saml op på én tur* (opsamlingsrunde). +- Wait-pulje og traktorer som i forsynings-runs. + +**Turvurdering** (før hver pålæsning, og hvert 5. sekund mens traktoren holder): + +1. *Salg*: en vare med Salg-politik, hvis bedst betalende **nåelige** salgssted giver mindst + tærsklen af årets toppris — **kører uanset mængde**. Højeste pris-% først. Toppris = stationens + grundpris nu × (årets højeste periodefaktor ÷ nuværende). Stor efterspørgsel giver > 100 %. +2. *Lager*: en vare med Lager-politik, når der er et **fuldt læs** eller kildens lager er over + tærsklen — til nærmeste silo med plads til hele læsset og vejnet begge veje (aldrig en kilde, + fabrik eller stald). Mest fyldte kilde først. +3. Ingen tur → traktoren holder ved et ledigt Wait-punkt (run'ets pulje) og prøver igen. + Loggen viser hvorfor: `holder ved Wait 3: SUGAR 78 % af top (kræver 90), lager 41 %`. + +**Opsamlingsrunde:** tipvogn = samme vare fra flere kilder efter tur til vognen er fuld (næste +kilde kun ved ≥ 10 % fri plads); autoload-vogn = flere pallevarer med samme mål på én tur. + +**Objektlager:** markøren skal stå så vognens autoload-zone dækker lagerets spawn-område (som når +man læsser manuelt). Moden beder lageret spawne **én palle ad gangen** og venter til UAL har taget +den, så der aldrig ligger paller tilbage. Sidder lageret fast (kendt spilfejl), afsluttes +læsningen efter 30 s med det der er. Ved en autoload-kilde uden fremdrift i 15 s køres der med +det der er ("uanset mængde"). + +**Advarsler på skærmen:** kan intet salgssted nås (vejnet), eller findes ingen silo med plads, +vises en rød AutoDrive-notifikation (`'MT635' kan ikke nå salgssted 'Grain Elevator' for SUGAR – +tjek vejnettet`), samme tekst i AD's notifikations-historik, i log.txt (WARN) og i run'ets status. +Traktoren holder ved Wait og kører selv når vejen er koblet på. Advarslen gentages først når +traktor, station eller vare ændrer sig. + +**Prisregel (v1.12.1, metode fra Distribution Redux):** pris-% = nuværende periodes faktor ÷ årets +højeste faktor i spillets faste sæsonkurve (samme data som prisgrafen) × stationens egen afvigelse +(effektiv pris ÷ stationens grundpris nu). Sværhedsgraden falder ud; flade kurver (top/bund < 1,02) +regnes som 100 %; stor efterspørgsel giver > 100 %. + +**Reserve (v1.12.1):** før salg fratrækkes det gårdens egne fabrikker og stalde skal bruge det næste +døgn (forbrug × 24 t minus det de allerede har, højst deres fri plads; fabrikker = ønskede +produktioners inputs, stalde = foder/halm/vand-rate). Der sælges kun når et helt læs kan tages uden +at røre reserven. Loggen/UI'et siger fx `SUGARBEET: 196.0k reserveret til TMR-fabrik`. Lager-politik +rører ikke reserven (varen bliver på gården). + +**Paller til lager (v1.12.1):** Lager-mål for pallevarer = nærmeste objektlager (palleskur) der tager +varen og har plads; AutoDrive læsser UAL-vognen af dér. + +**Tætte siloer (AutoDrive-indstilling):** AutoDrive tipper ved den første aflæsningstrigger inden for sin +globale "Max trigger distance" (standard 25 m). Står siloerne tættere end det, kan nabosiloen få læsset — +sæt AD-indstillingen til **10 m**. Moden advarer i loggen første gang et lagermål har en anden +aflæsningsmarkør inden for afstanden. + +**Fanen Lagre (v1.12.1):** gårdens beholdning pr. bygning (fabrikker med ▸ ved outputs, stalde, +palleskure som antal paller, siloer), opdateret hvert sekund. + +**Opsætning:** Udkørsel-fanen → Nyt run → afkryds kilder → sæt politik pr. vare → Ja på traktorer +→ Start. AD-tilstand pr. traktor: PickupAndDeliver, 1./2. markør = første kilde (pladsholder, +sættes pr. tur), rotation "kun pålæsning". Runs gemmes i `ADSmartPickup_runs.xml` version 2; +ældre filer læses som forsynings-runs. + +## v1.9 — læs-bytte fra Wait + +Venter en traktor ved et Wait-punkt med en vare målet er fuldt af, mens målet **samtidig mangler +en anden vare** på traktorens liste (run eller AD's multi-valg) — kan der ellers gå i hårdknude: +alle traktorer venter med den ene vare, mens ingen henter den anden. Hvert 5. sekund tjekkes derfor: + +1. Er der en anden vare i listen, målet mangler et **fuldt** læs af (og som kan hentes fra en + silo)? Ellers venter traktoren som hidtil. +2. Findes en **ren lager-silo** (ikke stald, ikke fabrik, og ikke målet selv) med en + aflæsningsstation ved en AD-markør, der tager varen og har fri plads ≥ resten, samt vejnet + både til siloen og videre fra siloen til målet? Siloer der **allerede har varen** foretrækkes, + ellers den nærmeste. +3. Findes en silo: Wait-punktet frigives, traktoren kører derhen og læsser resten af. Når vognen + er tom, henter næste tur den vare målet mangler. +4. Findes ingen egnet silo: traktoren bliver ved Wait-punktet (som før v1.9). + +Loglinjer: `'' bytter læs: N l STRAW tilbage i (markør n), målet mangler FORAGE` ved +bytte, og én gang pr. venteperiode `'' venter med N l STRAW, og målet mangler FORAGE — ingen +silo med plads og vejnet til/fra tager resten, så den bliver ved Wait-punktet` når ingen silo findes. + +Kræver at traktoren har **begge** varer i sin liste (run's varer eller AD's multi-valg) — kun én +vare valgt betyder ingen bytte-mulighed, og traktoren venter som hidtil. Wait-logikken gælder desuden +kun mens aflæsningsopgaven peger på AD's rigtige aflæsningsmål, så en silo-omvej (fx efter et bytte) +aldrig fejlagtigt bliver opfattet som et fuldt mål. + +## v1.8 — Runs i ESC-menuen + +Et **run** er en navngivet opskrift: mål + varer + Wait-pulje + ture, samt en liste traktorer der skal +køre den. I stedet for at sætte AutoDrive op manuelt på hver traktor, defineres run'et ét sted og +startes/stoppes samlet for alle traktorer i det. + +**Oprettelse:** ESC → fanen "Smart Pickup" → "+ Nyt run". Runs vælges i Run-selectoren øverst; +"Omdøb" og "Slet run" findes som knapper nederst sammen med Start/Stop. + +**Felter:** + +- **Mål** — dropdown med aflæsningsmål (markører med aflæsningsstation, fx en stald eller fabrik). +- **Varer** — Auto (følger målets behov, som ved almindelig behovsstyret forsyning) eller Vælg + (afkrydsning af bestemte varer). +- **Wait-pulje** — hvilken `Wait`-mappe rest-læs skal vente i ("Alle (nærmeste ledige)" eller en + navngivet pulje som fx "Cow Wait"). +- **Ture** — loop-tælleren (0–99, 0 = uendeligt), som normalt i AutoDrives Pickup&Deliver. +- **Traktorer** — rækker med Ja/Nej (er traktoren med i run'et), kapacitet og et ✔/✖-ikon. En + **✖-traktor springes over ved Start**, med en grund vist ved siden af (fx "ingen vogn", "vognen + kan ikke bære run'ets varer", "for langt fra vejnettet" eller "intet mål"). Sættes en traktor til + Nej (fjernet fra run'et), rører det IKKE dens AutoDrive-vareliste — run'ets varer forbliver valgt + i traktorens AD-vareliste (synlig/redigerbar i AD's eget HUD) indtil de ændres dér manuelt. + +**Start/Stop:** "Start run" sætter AutoDrive op på hver ✔-traktor: mode Pickup&Deliver, målmarkør, +nærmeste pålæsningsmarkør som start, run'ets varer valgt, run'ets tur-tæller, mapper ("Brug mapper") +slået til, og rotation sat til "kun pålæsning" (bemærk: "Brug mapper" er en global +AutoDrive-indstilling og slås til for hele spillet, ikke kun run'ets traktorer). **Dette overskriver +traktorens hidtidige manuelle AutoDrive-indstillinger.** "Stop run" stopper AutoDrive på hver traktor +i run'et (medlemskabet i run'et bevares, så det kan startes igen). Traktorer der ikke er del af noget +run, kører som før — bortset fra at "Brug mapper" kan være blevet slået til globalt af et run. + +**Wait-puljer-afsnittet** nederst på siden viser hver Wait-mappe skrivebeskyttet: antal punkter og +hvilken traktor der holder hvor. + +**Gemning:** Runs gemmes i `savegameN/ADSmartPickup_runs.xml` (ved gem og ved Start/Stop). De +**genstartes ikke automatisk** ved indlæsning af et savegame — kør "Start run" igen efter load, hvis +traktorerne skal køre videre. + +## v1.1–v1.7 — Grundfunktionerne + +### Vare-bevidst mappe-rotation (én vare valgt) + +Når pålæsningsmål roteres i en AD-mappe, køres der direkte til den silo i mappen, der har den +valgte vare — mindst fyldte først (mælk/gylle: fyldeste først) — i stedet for at prøve markørerne én efter én. + +### Behovsstyret forsyning (flere varer valgt) + +Én traktor holder alle input i en produktion fyldt — fx hø, græs, ensilage og sukkerroer til en +TMR-blander — i stedet for én traktor pr. vare. + +1. Aflæsningsmål = produktionens markør. +2. Multi-vælg ingredienserne i AutoDrives vare-dropdown. +3. Start Pickup&Deliver. Loop-tælleren virker som normalt (N læs → parkér, 0 = uendeligt). + +Pr. tur læses målets lager; den ingrediens der mangler mest (relativt til kapacitet) hentes fra en +silo **hvor som helst på kortet** (eget lager før nabo-lån, mindst fyldte først). Ingredienser uden +plads i målet (< 1000 l fri) eller uden kilde springes over. Mens AD kører viser HUD'en kun turens +vare (AutoDrive ville ellers selv rotere vare ved triggeren); når AD stopper, gendannes hele listen. +Slå fra ved at vælge en anden enkelt vare. + +"Mest brug for" defineres i `ADSupplyPlanner.scoreNeed` (`adSupplyPlanner.lua`). + +### Fabriksstyret (v1.6): målet er et produktionspunkt + +Er aflæsningsmålet en fabrik (produktionspunkt), **erstattes** ingredienslisten af inputs fra +fabrikkens ønskede produktioner — slår du fx TMR til i en AIO-fabrik, begynder traktoren at hente +ensilage/hø/halm/roer/mineralfoder af sig selv; slår du den fra, holder den op. Dit multi-valg er kun +tændknappen (og det gendannes ved stop). Listen genudledes hver tur, begrænset til det vognen kan bære. + +- **Ønsket produktion** = tændt, ELLER slukket af kortet med status "mangler input" (Dakotas + `ExtendedProductionPoint` slår produktioner fra automatisk, når de løber tør — dem skal vi netop + fodre). Manuelt slukket = ikke ønsket. +- **Prioritet = tid til tom:** `lager / (Σ amount × cyclesPerMinute)` over ønskede produktioner — + den vare der løber tør først hentes først, uanset relativ fyldning. Loggen viser forbrug og minutter. +- Fabrik uden ønskede produktioner, eller inputs vognen ikke kan bære → dit multi-valg som hidtil. + +### Kilder: en fabriks inputs stjæles aldrig (v1.6.1) + +En fabriks læssestation udleverer også dens **inputs** (halm i en TMR-fabrik). Sådan en vare hentes +aldrig derfra — kun fabrikkens outputs og rigtige siloer er kilder. Gælder både mappe-logik og +behovsstyring. Varer der både er input og output (kæde) må hentes. + +### Stalde som mål (v1.6.1) + +Kostald m.fl. svarer selv for niveau/kapacitet (`getHusbandryFillLevel/Capacity`), så halm+TMR til en +stald rangeres korrekt, selv om staldens aflæsningsstation kun "kender" foder. + +### Wait-punkter: rest-læs ved fuld stald (v1.7) + +AutoDrive holder ellers en traktor med rest-læs stille ved aflæsningspunktet, til den er tømt — og +spærrer for de næste i køen. Med Wait-punkter: + +1. Læg markører i en **mappe med ordet `Wait` i navnet** (fx mappen `Cow Wait`) — så mange du har + plads til; de er en fælles pulje for alle traktorer. Markørernes egne navne er ligegyldige, så + dine mark-ventepladser ("F91 Wait" i mark-mapperne) rører den ikke. +2. Kan målet ikke tage mere af vognens vare, kører traktoren til det **nærmeste ledige** Wait-punkt + (modden holder styr på reservationer) og venter dér. +3. Når målet igen har plads til **hele** resten — eller er mindst **halvt tomt** (kæmpe vogne kan aldrig + tømme hele resten i en lille stald) — kører den tilbage og læsser af. Derefter normal tur. +4. Wait-punkterne SKAL være forbundet til vejnettet både fra målets udkørsel og tilbage til målet. + Modden tjekker ruten begge veje før den omdirigerer; uden rute prøves næste punkt (AutoDrive + ville ellers vise "cannot reach" og slukke sig selv). + +Kun den aktuelle aflæsningsopgaves destination ændres — mål, rotation og loop-tæller røres ikke. +Ventende traktorer ser rotationen som slået fra, så AutoDrive ikke kører videre fra Wait-punktet. +Ingen ledige Wait-punkter → AutoDrive venter ved målet som i dag (én advarsel i loggen). +Seks markører må gerne hedde det samme (fx `Cow Wait`); loggen viser markørnummeret. + +**Læs der passer, foretrækkes (v1.7):** ved valg af næste tur går varer, hvor et fuldt læs kan komme af +i målet, forud; passer intet fuldt læs, tages den mest trængende alligevel (og Wait-punktet bruges). + +**Opsætning med flere stalde:** én traktor (eller flere) pr. stald med *Rotér mål: kun pålæsning*. +Brug IKKE "pålæsning og aflæsning": AutoDrive vælger næste pålæsning FØR den roterer aflæsningsmålet, +så behovet ville blive regnet for den forkerte stald. Pålæsningsmarkøren må ikke være fast på en +fabrik ("kun aflæsning") — så kalder AutoDrive aldrig modden, og alt valgt læsses dér. + +### Fælles tekniske noter (v1.2–v1.5) + +- Wrapper `ADMultipleTargetsManager.getNextPickup` (via den globale `FS25_AutoDrive`-tabel); rører ikke AutoDrive-zip'en. +- Siloens eget lager rangeres før nabo-lån (udvidelses-siloer deler lager inden for `storageRadius`). +- Intet fund, intet behov eller fejl i et spil-API → AutoDrives originale rotation. Valg logges som `ADSmartPickup:` i log.txt. +- Kræver i AutoDrive: "Brug mapper" (global AutoDrive-indstilling, gælder hele spillet) + + "Rotér mål: pålæsning" på køretøjet (pr. køretøj). +- **Markør ↔ silo (v1.3):** markøren er dér hvor trækkerens næse stopper; vognen holder et vogntog + bagved. Markørens silo er derfor nærmeste trigger **bag næsen** set i ankomstretningen (forrige + waypoint), højst 2 m foran. I tætte rækker (15 m mellem siloerne) er nabosiloens trigger ellers + nærmere end markørens egen. Ingen trigger bag næsen/ukendt retning → nærmeste trigger som før. +- **Kildestrategi (v1.5):** lagervarer hentes fra den **mindst fyldte** silo først (rester ryddes, + siloer frigives). Varer hvis tanke *løber fulde* — mælk, gylle, digestat — hentes fra den **fyldeste** + kilde først, så produktionen ikke går i stå. Listen er `ADSupplyPlanner.FULLEST_FIRST_FILL_TYPES` + (`adSupplyPlanner.lua`). En trigger foran næsen tæller aldrig som markørens egen. +- **Spor-regel (v1.4):** triggeren skal ligge i trækkerens spor (højst 6 m til siden). Kendes retningen, + men ligger intet i sporet (kurve ind til markøren), accepteres kun en trigger inden for 12 m. +- **Kun fremme ved markøren (v1.4):** rotationen skjules først når målet er nået — undervejs ruller + vognen gennem nabosiloers triggere, og dér skal AutoDrive køre videre ved tom trigger. +- **Sikkerhedsventil (v1.4):** 30 s ved markøren uden at vognen fyldes → grebet slippes (advarsel i + log), og AutoDrive kører videre som med almindelig rotation. +- **Står og læsser (v1.2):** når moden har valgt siloen, ser AutoDrive under + `LoadAtDestinationTask.update` rotationen som slået fra for netop det køretøj, så den holder ved + markøren og læsser som uden rotation. Løber kilden tør, slippes grebet og turen fortsætter med det der + er i vognen. diff --git a/README.md b/README.md index 17a124a..8055842 100644 --- a/README.md +++ b/README.md @@ -1,267 +1,99 @@ -# FS25_ADSmartPickup +# AD Smart Pickup (FS25_ADSmartPickup) -**Brugermanual for spillere:** [dansk](docs/BRUGERMANUAL.md) · [English](docs/USER_MANUAL.md). Resten af denne fil er udviklernoter pr. version. +Tillæg til **AutoDrive** i Farming Simulator 25. Du fortæller, hvad der skal køres hvorhen, og moden +styrer dine AutoDrive-traktorer tur for tur. Markarbejdet kører med Courseplay på marken. +Alt sættes op i menuen **Smart Pickup** i ESC-menuen. -**Download / installation:** hent `FS25_ADSmartPickup.zip` under [Releases](https://git.powerdata.dk/masterdraco/fs25-adsmartpickup/releases) og læg zip-filen (ikke udpakket) i `Documents/My Games/FarmingSimulator2025/mods/`. Kræver **AutoDrive** (og gerne Courseplay til markarbejde). Fanen "Smart Pickup" ligger i ESC-menuen. Fejl og idéer: opret et issue her i repoet. +*English summary below.* -AutoDrive-tillæg til Farming Simulator 25 med to funktioner oven på Pickup&Deliver: +## Hvad moden gør -## 1. Vare-bevidst mappe-rotation (én vare valgt) +- **Forsyning:** holder stalde og fabrikker fyldt. Hver tur henter den vare, målet mangler mest, fra + den bedste silo på kortet. +- **Udkørsel:** tømmer fabrikker, stalde, siloer og palleskure. Varerne køres til lager eller sælges, når + prisen er tæt på årets top, uden at sælge det, gården selv skal bruge. +- **Flows:** en navngivet opskrift med bygninger, varer, regler og traktorer. Flows sættes op i en guide og + startes eller stoppes samlet fra en farvet liste. +- **Flow-vogne og maskinpulje:** en traktor uden vogn kan selv hente sin vogn ved en Connect-markør og + sætte den på plads igen. Frakoblede redskaber og ledige traktorer bruges som en fælles pulje. +- **Markarbejde:** slåning, høst, klargøring, såning og pleje på alle marker. AutoDrive kører på vejen, + og Courseplay arbejder på marken. +- **Marksiloer:** varer i marksiloer køres automatisk hjem til gårdens lagre. +- **Lagerfaner:** beholdning, værdi og forbrug pr. vare og bygning. Listen "Kræver handling" opretter + det flow, der løser problemet. +- **Stop alt og parkér:** stopper alt, folder redskaberne sammen og parkerer maskinerne. Pausen gemmes + med savegamet. -Når pålæsningsmål roteres i en AD-mappe, køres der direkte til den silo i mappen, der har den -valgte vare — mindst fyldte først (mælk/gylle: fyldeste først) — i stedet for at prøve markørerne én efter én. +## Download og installation -## 2. Behovsstyret forsyning (flere varer valgt) +1. Hent `FS25_ADSmartPickup.zip` under [Releases](https://git.powerdata.dk/masterdraco/fs25-adsmartpickup/releases). +2. Læg zip-filen (ikke udpakket) i `Documents/My Games/FarmingSimulator2025/mods/`. +3. Aktivér moden sammen med AutoDrive, når du vælger savegame. Menuen **Smart Pickup** ligger i + ESC-menuen lige over Indstillinger. -Én traktor holder alle input i en produktion fyldt — fx hø, græs, ensilage og sukkerroer til en -TMR-blander — i stedet for én traktor pr. vare. +## Krav -1. Aflæsningsmål = produktionens markør. -2. Multi-vælg ingredienserne i AutoDrives vare-dropdown. -3. Start Pickup&Deliver. Loop-tælleren virker som normalt (N læs → parkér, 0 = uendeligt). +- **FS25_AutoDrive** (påkrævet) og et AutoDrive-vejnet mellem bygningerne. +- **Courseplay** anbefales. Det er nødvendigt for markarbejdet. +- **Universal Autoload** anbefales på vogne, der skal køre paller. -Pr. tur læses målets lager; den ingrediens der mangler mest (relativt til kapacitet) hentes fra en -silo **hvor som helst på kortet** (eget lager før nabo-lån, mindst fyldte først). Ingredienser uden -plads i målet (< 1000 l fri) eller uden kilde springes over. Mens AD kører viser HUD'en kun turens -vare (AutoDrive ville ellers selv rotere vare ved triggeren); når AD stopper, gendannes hele listen. -Slå fra ved at vælge en anden enkelt vare. +## Dokumentation -"Mest brug for" defineres i `ADSupplyPlanner.scoreNeed` (`adSupplyPlanner.lua`). +- Brugermanual: [dansk](docs/BRUGERMANUAL.md) · [English](docs/USER_MANUAL.md) +- Ændringer pr. version: [CHANGELOG.md](CHANGELOG.md) -### Fabriksstyret (v1.6): målet er et produktionspunkt +## Feedback -Er aflæsningsmålet en fabrik (produktionspunkt), **erstattes** ingredienslisten af inputs fra -fabrikkens ønskede produktioner — slår du fx TMR til i en AIO-fabrik, begynder traktoren at hente -ensilage/hø/halm/roer/mineralfoder af sig selv; slår du den fra, holder den op. Dit multi-valg er kun -tændknappen (og det gendannes ved stop). Listen genudledes hver tur, begrænset til det vognen kan bære. +Fejl og idéer: opret et issue her i repoet. Vedlæg gerne `log.txt` fra +`Documents/My Games/FarmingSimulator2025/`, eller i det mindste linjerne der starter med `ADSmartPickup`. -- **Ønsket produktion** = tændt, ELLER slukket af kortet med status "mangler input" (Dakotas - `ExtendedProductionPoint` slår produktioner fra automatisk, når de løber tør — dem skal vi netop - fodre). Manuelt slukket = ikke ønsket. -- **Prioritet = tid til tom:** `lager / (Σ amount × cyclesPerMinute)` over ønskede produktioner — - den vare der løber tør først hentes først, uanset relativ fyldning. Loggen viser forbrug og minutter. -- Fabrik uden ønskede produktioner, eller inputs vognen ikke kan bære → dit multi-valg som hidtil. +## Udvikling -### Kilder: en fabriks inputs stjæles aldrig (v1.6.1) +- Mod-koden ligger i `FS25_ADSmartPickup/`, og testene ligger i `tests/` (ren Lua, kører uden spillet). +- Kør testene: -En fabriks læssestation udleverer også dens **inputs** (halm i en TMR-fabrik). Sådan en vare hentes -aldrig derfra — kun fabrikkens outputs og rigtige siloer er kilder. Gælder både mappe-logik og -behovsstyring. Varer der både er input og output (kæde) må hentes. + ```sh + for t in tests/test_*.lua; do luajit $t >/dev/null 2>&1 || echo FAIL $t; done + ``` -### Stalde som mål (v1.6.1) +- Byg zip: `cd FS25_ADSmartPickup && zip -qr ../FS25_ADSmartPickup.zip .` +- Design og planer: `docs/superpowers/` -Kostald m.fl. svarer selv for niveau/kapacitet (`getHusbandryFillLevel/Capacity`), så halm+TMR til en -stald rangeres korrekt, selv om staldens aflæsningsstation kun "kender" foder. +--- -### Wait-punkter: rest-læs ved fuld stald (v1.7) +## English summary -AutoDrive holder ellers en traktor med rest-læs stille ved aflæsningspunktet, til den er tømt — og -spærrer for de næste i køen. Med Wait-punkter: +**AD Smart Pickup** is an add-on for **AutoDrive** in Farming Simulator 25. You tell it what goes where, +and it drives your AutoDrive tractors trip by trip. Field work runs with Courseplay on the field. Everything +is set up in the **Smart Pickup** menu in the ESC menu. -1. Læg markører i en **mappe med ordet `Wait` i navnet** (fx mappen `Cow Wait`) — så mange du har - plads til; de er en fælles pulje for alle traktorer. Markørernes egne navne er ligegyldige, så - dine mark-ventepladser ("F91 Wait" i mark-mapperne) rører den ikke. -2. Kan målet ikke tage mere af vognens vare, kører traktoren til det **nærmeste ledige** Wait-punkt - (modden holder styr på reservationer) og venter dér. -3. Når målet igen har plads til **hele** resten — eller er mindst **halvt tomt** (kæmpe vogne kan aldrig - tømme hele resten i en lille stald) — kører den tilbage og læsser af. Derefter normal tur. -4. Wait-punkterne SKAL være forbundet til vejnettet både fra målets udkørsel og tilbage til målet. - Modden tjekker ruten begge veje før den omdirigerer; uden rute prøves næste punkt (AutoDrive - ville ellers vise "cannot reach" og slukke sig selv). +**Features** -Kun den aktuelle aflæsningsopgaves destination ændres — mål, rotation og loop-tæller røres ikke. -Ventende traktorer ser rotationen som slået fra, så AutoDrive ikke kører videre fra Wait-punktet. -Ingen ledige Wait-punkter → AutoDrive venter ved målet som i dag (én advarsel i loggen). -Seks markører må gerne hedde det samme (fx `Cow Wait`); loggen viser markørnummeret. +- **Supply:** keeps barns and factories filled. Each trip fetches the good the target lacks most, from + the best silo on the map. +- **Outbound:** empties factories, barns, silos and pallet sheds. Goods are stored or sold near the + yearly top price, and the mod never sells what the farm needs itself. +- **Flows:** a named recipe of buildings, goods, rules and tractors. You set flows up in a guide and + start or stop them from a colour-coded list. +- **Flow trailers and machine pool:** a tractor without a trailer can fetch its trailer at a Connect + marker and park it again. Detached implements and free tractors form a shared pool. +- **Field work:** mowing, harvesting, preparation, sowing and crop care on every field. AutoDrive + drives the roads and Courseplay works the field. +- **Field silos:** goods in field silos are brought home to the farm's storages automatically. +- **Storage tabs:** stock, value and consumption per good and building. The "Needs attention" list + creates the flow that fixes the problem. +- **Stop all and park:** stops everything, folds implements and parks the machines. The pause is saved + with the savegame. -**Læs der passer, foretrækkes (v1.7):** ved valg af næste tur går varer, hvor et fuldt læs kan komme af -i målet, forud; passer intet fuldt læs, tages den mest trængende alligevel (og Wait-punktet bruges). +**Install:** download `FS25_ADSmartPickup.zip` from +[Releases](https://git.powerdata.dk/masterdraco/fs25-adsmartpickup/releases). Put the zip, not unpacked, +in `Documents/My Games/FarmingSimulator2025/mods/`. -**Opsætning med flere stalde:** én traktor (eller flere) pr. stald med *Rotér mål: kun pålæsning*. -Brug IKKE "pålæsning og aflæsning": AutoDrive vælger næste pålæsning FØR den roterer aflæsningsmålet, -så behovet ville blive regnet for den forkerte stald. Pålæsningsmarkøren må ikke være fast på en -fabrik ("kun aflæsning") — så kalder AutoDrive aldrig modden, og alt valgt læsses dér. +**Requirements:** AutoDrive is required. Courseplay is needed for field work, and Universal Autoload is +needed for pallets. -## v1.8 — Runs i ESC-menuen +**Docs:** [User manual](docs/USER_MANUAL.md) · [Danish manual](docs/BRUGERMANUAL.md) · +[Changelog](CHANGELOG.md) -Et **run** er en navngivet opskrift: mål + varer + Wait-pulje + ture, samt en liste traktorer der skal -køre den. I stedet for at sætte AutoDrive op manuelt på hver traktor, defineres run'et ét sted og -startes/stoppes samlet for alle traktorer i det. - -**Oprettelse:** ESC → fanen "Smart Pickup" → "+ Nyt run". Runs vælges i Run-selectoren øverst; -"Omdøb" og "Slet run" findes som knapper nederst sammen med Start/Stop. - -**Felter:** - -- **Mål** — dropdown med aflæsningsmål (markører med aflæsningsstation, fx en stald eller fabrik). -- **Varer** — Auto (følger målets behov, som ved almindelig behovsstyret forsyning) eller Vælg - (afkrydsning af bestemte varer). -- **Wait-pulje** — hvilken `Wait`-mappe rest-læs skal vente i ("Alle (nærmeste ledige)" eller en - navngivet pulje som fx "Cow Wait"). -- **Ture** — loop-tælleren (0–99, 0 = uendeligt), som normalt i AutoDrives Pickup&Deliver. -- **Traktorer** — rækker med Ja/Nej (er traktoren med i run'et), kapacitet og et ✔/✖-ikon. En - **✖-traktor springes over ved Start**, med en grund vist ved siden af (fx "ingen vogn", "vognen - kan ikke bære run'ets varer", "for langt fra vejnettet" eller "intet mål"). Sættes en traktor til - Nej (fjernet fra run'et), rører det IKKE dens AutoDrive-vareliste — run'ets varer forbliver valgt - i traktorens AD-vareliste (synlig/redigerbar i AD's eget HUD) indtil de ændres dér manuelt. - -**Start/Stop:** "Start run" sætter AutoDrive op på hver ✔-traktor: mode Pickup&Deliver, målmarkør, -nærmeste pålæsningsmarkør som start, run'ets varer valgt, run'ets tur-tæller, mapper ("Brug mapper") -slået til, og rotation sat til "kun pålæsning" (bemærk: "Brug mapper" er en global -AutoDrive-indstilling og slås til for hele spillet, ikke kun run'ets traktorer). **Dette overskriver -traktorens hidtidige manuelle AutoDrive-indstillinger.** "Stop run" stopper AutoDrive på hver traktor -i run'et (medlemskabet i run'et bevares, så det kan startes igen). Traktorer der ikke er del af noget -run, kører som før — bortset fra at "Brug mapper" kan være blevet slået til globalt af et run. - -**Wait-puljer-afsnittet** nederst på siden viser hver Wait-mappe skrivebeskyttet: antal punkter og -hvilken traktor der holder hvor. - -**Gemning:** Runs gemmes i `savegameN/ADSmartPickup_runs.xml` (ved gem og ved Start/Stop). De -**genstartes ikke automatisk** ved indlæsning af et savegame — kør "Start run" igen efter load, hvis -traktorerne skal køre videre. - -## v1.9 — læs-bytte fra Wait - -Venter en traktor ved et Wait-punkt med en vare målet er fuldt af, mens målet **samtidig mangler -en anden vare** på traktorens liste (run eller AD's multi-valg) — kan der ellers gå i hårdknude: -alle traktorer venter med den ene vare, mens ingen henter den anden. Hvert 5. sekund tjekkes derfor: - -1. Er der en anden vare i listen, målet mangler et **fuldt** læs af (og som kan hentes fra en - silo)? Ellers venter traktoren som hidtil. -2. Findes en **ren lager-silo** (ikke stald, ikke fabrik, og ikke målet selv) med en - aflæsningsstation ved en AD-markør, der tager varen og har fri plads ≥ resten, samt vejnet - både til siloen og videre fra siloen til målet? Siloer der **allerede har varen** foretrækkes, - ellers den nærmeste. -3. Findes en silo: Wait-punktet frigives, traktoren kører derhen og læsser resten af. Når vognen - er tom, henter næste tur den vare målet mangler. -4. Findes ingen egnet silo: traktoren bliver ved Wait-punktet (som før v1.9). - -Loglinjer: `'' bytter læs: N l STRAW tilbage i (markør n), målet mangler FORAGE` ved -bytte, og én gang pr. venteperiode `'' venter med N l STRAW, og målet mangler FORAGE — ingen -silo med plads og vejnet til/fra tager resten, så den bliver ved Wait-punktet` når ingen silo findes. - -Kræver at traktoren har **begge** varer i sin liste (run's varer eller AD's multi-valg) — kun én -vare valgt betyder ingen bytte-mulighed, og traktoren venter som hidtil. Wait-logikken gælder desuden -kun mens aflæsningsopgaven peger på AD's rigtige aflæsningsmål, så en silo-omvej (fx efter et bytte) -aldrig fejlagtigt bliver opfattet som et fuldt mål. - -## v1.13 — Flow-tavle (bygningsbaseret opsætning) - -ESC-fanen har nu to under-faner: **Flows** og **Lagre**. Flows viser én række pr. flow (run): -`> Mælk: Sukker · Kostald 1 + Kostald 2 → salg · pris ≥ 90 %, lager > 80 % · Virtus · kører (1/1) — SUGAR 78 % af top` -og under tavlen en detail-blok for det valgte flow: **Retning** (ind til bygning / ud fra bygning), -**Fra** (udkørsel) eller **Til** (forsyning) som afkrydsning pr. **bygning** — moden finder selv den -AD-markør der står nærmest bygningens læsse-/aflæsningstrigger (≤ 40 m; siloer via det strenge -opslag) og viser den: `Kostald 1 (stald) — markør 'cow 1 milk' 12 m` eller `INGEN MARKØR inden for -40 m`. Derefter Varer, Regler, Vent ved, Traktorer og Status som før. Forsyning har "Fra = alle -siloer" (som hidtil). Wait-puljerne står nederst. - -Gamle runs oversættes automatisk: markører der er en bygnings markør bliver til bygningen; rå -markører uden bygning beholdes og vises som `markør '…'`. Start afviser med `'' mangler en -AD-markør ved triggeren`, når en valgt bygning ingen markør har. Runs gemmes som XML version 3. - -## v1.12 — Udkørsel af produkter - -Et run har nu en **retning**: *Forsyning* (som hidtil) eller *Udkørsel*. ESC-fanen har tre -under-faner: **Oversigt** · **Forsyning** · **Udkørsel**. - -Et udkørsels-run består af: - -- **Kilder** (én eller flere AD-markører): en **fabrik** (produktionspunkt, dens outputs), - en **silo** (`spec_silo`, dens indhold) eller et **objektlager** (palle-/ballelager som HVF- - pakkens; paller tages ud automatisk). Kilden genkendes inden for 40 m af markøren. -- **Varer** med politik pr. vare: **Fra** · **Lager** · **Salg** · **Salg, ellers lager**. - Bulk-varer kræver tipvogn/tank; pallevarer kræver **Universal Autoload** på vognen. -- **Regler:** *Sælg fra* (% af årets toppris, standard 90), *Kør til lager over* (% fyldning i - kilden, standard 80), *Saml op på én tur* (opsamlingsrunde). -- Wait-pulje og traktorer som i forsynings-runs. - -**Turvurdering** (før hver pålæsning, og hvert 5. sekund mens traktoren holder): - -1. *Salg*: en vare med Salg-politik, hvis bedst betalende **nåelige** salgssted giver mindst - tærsklen af årets toppris — **kører uanset mængde**. Højeste pris-% først. Toppris = stationens - grundpris nu × (årets højeste periodefaktor ÷ nuværende). Stor efterspørgsel giver > 100 %. -2. *Lager*: en vare med Lager-politik, når der er et **fuldt læs** eller kildens lager er over - tærsklen — til nærmeste silo med plads til hele læsset og vejnet begge veje (aldrig en kilde, - fabrik eller stald). Mest fyldte kilde først. -3. Ingen tur → traktoren holder ved et ledigt Wait-punkt (run'ets pulje) og prøver igen. - Loggen viser hvorfor: `holder ved Wait 3: SUGAR 78 % af top (kræver 90), lager 41 %`. - -**Opsamlingsrunde:** tipvogn = samme vare fra flere kilder efter tur til vognen er fuld (næste -kilde kun ved ≥ 10 % fri plads); autoload-vogn = flere pallevarer med samme mål på én tur. - -**Objektlager:** markøren skal stå så vognens autoload-zone dækker lagerets spawn-område (som når -man læsser manuelt). Moden beder lageret spawne **én palle ad gangen** og venter til UAL har taget -den, så der aldrig ligger paller tilbage. Sidder lageret fast (kendt spilfejl), afsluttes -læsningen efter 30 s med det der er. Ved en autoload-kilde uden fremdrift i 15 s køres der med -det der er ("uanset mængde"). - -**Advarsler på skærmen:** kan intet salgssted nås (vejnet), eller findes ingen silo med plads, -vises en rød AutoDrive-notifikation (`'MT635' kan ikke nå salgssted 'Grain Elevator' for SUGAR – -tjek vejnettet`), samme tekst i AD's notifikations-historik, i log.txt (WARN) og i run'ets status. -Traktoren holder ved Wait og kører selv når vejen er koblet på. Advarslen gentages først når -traktor, station eller vare ændrer sig. - -**Prisregel (v1.12.1, metode fra Distribution Redux):** pris-% = nuværende periodes faktor ÷ årets -højeste faktor i spillets faste sæsonkurve (samme data som prisgrafen) × stationens egen afvigelse -(effektiv pris ÷ stationens grundpris nu). Sværhedsgraden falder ud; flade kurver (top/bund < 1,02) -regnes som 100 %; stor efterspørgsel giver > 100 %. - -**Reserve (v1.12.1):** før salg fratrækkes det gårdens egne fabrikker og stalde skal bruge det næste -døgn (forbrug × 24 t minus det de allerede har, højst deres fri plads; fabrikker = ønskede -produktioners inputs, stalde = foder/halm/vand-rate). Der sælges kun når et helt læs kan tages uden -at røre reserven. Loggen/UI'et siger fx `SUGARBEET: 196.0k reserveret til TMR-fabrik`. Lager-politik -rører ikke reserven (varen bliver på gården). - -**Paller til lager (v1.12.1):** Lager-mål for pallevarer = nærmeste objektlager (palleskur) der tager -varen og har plads; AutoDrive læsser UAL-vognen af dér. - -**Tætte siloer (AutoDrive-indstilling):** AutoDrive tipper ved den første aflæsningstrigger inden for sin -globale "Max trigger distance" (standard 25 m). Står siloerne tættere end det, kan nabosiloen få læsset — -sæt AD-indstillingen til **10 m**. Moden advarer i loggen første gang et lagermål har en anden -aflæsningsmarkør inden for afstanden. - -**Fanen Lagre (v1.12.1):** gårdens beholdning pr. bygning (fabrikker med ▸ ved outputs, stalde, -palleskure som antal paller, siloer), opdateret hvert sekund. - -**Opsætning:** Udkørsel-fanen → Nyt run → afkryds kilder → sæt politik pr. vare → Ja på traktorer -→ Start. AD-tilstand pr. traktor: PickupAndDeliver, 1./2. markør = første kilde (pladsholder, -sættes pr. tur), rotation "kun pålæsning". Runs gemmes i `ADSmartPickup_runs.xml` version 2; -ældre filer læses som forsynings-runs. - -## Fælles - -- Wrapper `ADMultipleTargetsManager.getNextPickup` (via den globale `FS25_AutoDrive`-tabel); rører ikke AutoDrive-zip'en. -- Siloens eget lager rangeres før nabo-lån (udvidelses-siloer deler lager inden for `storageRadius`). -- Intet fund, intet behov eller fejl i et spil-API → AutoDrives originale rotation. Valg logges som `ADSmartPickup:` i log.txt. -- Kræver i AutoDrive: "Brug mapper" (global AutoDrive-indstilling, gælder hele spillet) + - "Rotér mål: pålæsning" på køretøjet (pr. køretøj). -- **Markør ↔ silo (v1.3):** markøren er dér hvor trækkerens næse stopper; vognen holder et vogntog - bagved. Markørens silo er derfor nærmeste trigger **bag næsen** set i ankomstretningen (forrige - waypoint), højst 2 m foran. I tætte rækker (15 m mellem siloerne) er nabosiloens trigger ellers - nærmere end markørens egen. Ingen trigger bag næsen/ukendt retning → nærmeste trigger som før. -- **Kildestrategi (v1.5):** lagervarer hentes fra den **mindst fyldte** silo først (rester ryddes, - siloer frigives). Varer hvis tanke *løber fulde* — mælk, gylle, digestat — hentes fra den **fyldeste** - kilde først, så produktionen ikke går i stå. Listen er `ADSupplyPlanner.FULLEST_FIRST_FILL_TYPES` - (`adSupplyPlanner.lua`); tilføj fx `MANURE = true` hvis møddinger også skal tømmes fyldest-først. - Loggen viser den brugte strategi. En trigger foran næsen tæller aldrig som markørens egen (v1.5). -- **Spor-regel (v1.4):** triggeren skal ligge i trækkerens spor (højst 6 m til siden). En tank med - aflæsningsbane på den ene side og pålæsningsbane på den anden giver ellers to markører til samme - tank, og "Dropof"-markøren kunne vinde. Kendes retningen, men ligger intet i sporet (kurve ind til - markøren), accepteres kun en trigger inden for 12 m. -- **Kun fremme ved markøren (v1.4):** rotationen skjules først når målet er nået — undervejs ruller - vognen gennem nabosiloers triggere, og dér skal AutoDrive køre videre ved tom trigger. -- **Sikkerhedsventil (v1.4):** 30 s ved markøren uden at vognen fyldes → grebet slippes (advarsel i - log), og AutoDrive kører videre som med almindelig rotation. -- **Står og læsser (v1.2):** med rotation + mapper afslutter AutoDrive normalt pålæsningen i det øjeblik - markøren nås (læsning skal være startet på vej ind, ellers kører den tom videre). Når moden har valgt - siloen, ser AutoDrive under `LoadAtDestinationTask.update` rotationen som slået fra for netop det - køretøj, så den holder ved markøren og læsser som uden rotation. Løber kilden tør, slippes grebet og - turen fortsætter med det der er i vognen. - -Begrænsninger: AD læsser fuld vogn — er der mindre plads i målet end ét læs, venter traktoren ved -aflæsning. Målet skal være en placeable med aflæsningstrigger (ikke en blandevogn). - -Test: `for t in tests/test_*.lua; do luajit $t | tail -1; done` -Byg: `cd FS25_ADSmartPickup && zip -qr ../FS25_ADSmartPickup.zip .` -Design/plan: `docs/superpowers/` +**Feedback:** open an issue in this repository. Attach `log.txt`, or at least the lines starting with +`ADSmartPickup`. diff --git a/docs/BRUGERMANUAL.md b/docs/BRUGERMANUAL.md index 0b86535..ac61ce1 100644 --- a/docs/BRUGERMANUAL.md +++ b/docs/BRUGERMANUAL.md @@ -1,19 +1,24 @@ # AD Smart Pickup — brugermanual -Version 1.28.0 · Farming Simulator 25 · tillæg til AutoDrive +Version 1.60.11 · Farming Simulator 25 · tillæg til AutoDrive *English version: [USER_MANUAL.md](USER_MANUAL.md)* AD Smart Pickup får dine AutoDrive-traktorer til at tænke selv. Du fortæller, hvad der skal køres hvorhen, og moden vælger tur for tur, hvilken vare der skal hentes, fra hvilken silo, og hvor den -skal af. Alt sættes op ét sted i ESC-menuen, og alle traktorer i et flow startes og stoppes samlet. +skal af. Den kan også køre gårdens marker med Courseplay og hente marksiloerne hjem. Alt sættes op i +menuen **Smart Pickup** i ESC-menuen. -Moden kan to ting: +Moden kan især: - **Forsyning (ind til bygning):** holder stalde og fabrikker fyldt. Traktoren henter hver tur den vare, målet mangler mest, fra en silo hvor som helst på kortet. - **Udkørsel (ud fra bygning):** tømmer fabrikker, siloer, stalde og palleskure. Varerne køres til lager eller sælges, når prisen er tæt på årets top. +- **Markarbejde:** slåning, høst, klargøring, såning og pleje. AutoDrive kører maskinerne til marken, og + Courseplay arbejder på marken. +- **Marksiloer:** varer i marksiloer køres hjem til gårdens lagre. +- **Maskinpulje:** ledige traktorer henter selv frakoblede vogne og redskaber og sætter dem på plads igen. --- @@ -21,17 +26,21 @@ Moden kan to ting: 1. [Krav og installation](#1-krav-og-installation) 2. [Grundbegreber](#2-grundbegreber) -3. [Forbered kortet: markører og Wait-punkter](#3-forbered-kortet-markører-og-wait-punkter) +3. [Forbered kortet: AutoDrive-markører](#3-forbered-kortet-autodrive-markører) 4. [Menuen Smart Pickup](#4-menuen-smart-pickup) 5. [Forsyning: hold stalde og fabrikker fyldt](#5-forsyning-hold-stalde-og-fabrikker-fyldt) 6. [Udkørsel: tøm, lagr og sælg](#6-udkørsel-tøm-lagr-og-sælg) -7. [Traktorer og vogne](#7-traktorer-og-vogne) +7. [Traktorer, vogne og maskinpulje](#7-traktorer-vogne-og-maskinpulje) 8. [Start, stop og gemning](#8-start-stop-og-gemning) -9. [Lagerfanerne: beholdning og statistik](#9-lagerfanerne-beholdning-og-statistik) -10. [Markarbejde: alle marker](#10-markarbejde-alle-marker) -11. [Opskrifter](#11-opskrifter) -12. [Fejlfinding](#12-fejlfinding) -13. [Ordliste](#13-ordliste) +9. [Lagerfanerne: beholdning og "Kræver handling"](#9-lagerfanerne-beholdning-og-kræver-handling) +10. [Markarbejde](#10-markarbejde) +11. [Fanen Måned](#11-fanen-måned) +12. [Marksiloer](#12-marksiloer) +13. [Navne på bygninger og maskiner](#13-navne-på-bygninger-og-maskiner) +14. [Opskrifter](#14-opskrifter) +15. [Fejlfinding](#15-fejlfinding) +16. [Test og feedback](#16-test-og-feedback) +17. [Ordliste](#17-ordliste) --- @@ -39,48 +48,60 @@ Moden kan to ting: **Påkrævet** -- **FS25_AutoDrive.** Moden bygger oven på AutoDrives Pickup & Deliver og ændrer ikke AutoDrive selv. -- Et **AutoDrive-vejnet** der forbinder siloer, stalde, fabrikker, salgssteder og Wait-punkter. +- **FS25_AutoDrive.** Moden bygger oven på AutoDrive og ændrer ikke AutoDrive selv. +- Et **AutoDrive-vejnet**, der forbinder siloer, stalde, fabrikker, salgssteder, marker, parkeringer og + Wait-punkter. **Anbefalet** +- **Courseplay** til markarbejde. Uden Courseplay virker forsyning og udkørsel, men ikke markarbejdet. - **Universal Autoload (UAL)** på de vogne, der skal køre paller. Uden UAL kan moden kun køre bulk som korn, mælk, ensilage og TMR. **Installation** -1. Læg `FS25_ADSmartPickup.zip` i mods-mappen: +1. Hent `FS25_ADSmartPickup.zip` under Releases: + +2. Læg zip-filen i mods-mappen. Den skal **ikke** pakkes ud: `Documents/My Games/FarmingSimulator2025/mods/` -2. Aktivér moden sammen med AutoDrive, når du vælger savegame. -3. Tjek at AutoDrive-indstillingen **"Brug mapper"** kan slås til. Moden slår den selv til, når et - flow startes. Indstillingen er global og gælder derfor hele spillet. +3. Aktivér moden sammen med AutoDrive (og Courseplay), når du vælger savegame. +4. Moden slår selv AutoDrive-indstillingen **"Brug mapper"** til, når et flow startes. Indstillingen er + global og gælder derfor hele spillet. --- ## 2. Grundbegreber -**Flow.** Et flow er en navngivet opskrift. Det består af en retning, bygninger, varer, regler og en -liste traktorer. Ældre versioner kaldte det et *run*, og ordet står stadig på nogle knapper. +**Flow.** En navngivet opskrift med en retning, bygninger, varer, regler og en liste traktorer. Alle +traktorer i et flow startes og stoppes samlet. Ældre versioner kaldte det et *run*, og ordet står +stadig i enkelte tekster, fx når du sletter et flow. **Bygning.** En stald, fabrik, silo, et objektlager (palleskur) eller et salgssted. Du vælger bygninger, ikke markører. Moden finder selv den AutoDrive-markør, der hører til bygningens trigger. -Kun gårdens egne bygninger vises. Kortets faste anlæg, der følger jorden, som Dakotas biogasanlæg, -regnes som gårdens, når jorden under dem er købt. +Kun gårdens egne bygninger vises. Kortets faste anlæg, der følger jorden, fx et biogasanlæg, regnes som +gårdens, når jorden under dem er købt. **Markør.** En AutoDrive-destination. Hver bygning skal have en markør inden for 40 m af sin læsse- -eller aflæsningstrigger. En stald har tit flere, fx én ved mælketanken og én ved gyllebeholderen. +eller aflæsningstrigger. Moden bruger også markører med bestemte navne til parkering, kobling og +marker (se [kapitel 3](#3-forbered-kortet-autodrive-markører)). **Wait-punkt.** En markør i en AutoDrive-mappe med ordet **Wait** i navnet. Her holder traktorer, der -venter på plads, på en god pris eller på et behov. Wait-punkter er en fælles pulje for alle traktorer. +venter på plads, på en god pris eller på et behov. **Behov.** Hvor meget en stald eller fabrik mangler af en vare. For fabrikker regnes det som *tid til tom*: den vare, der slipper op først, hentes først. **Reserve.** Det, gårdens egne stalde og fabrikker skal bruge det næste døgn. Reserven sælges aldrig. +**Sæt.** En traktor med redskab eller vogn koblet på, eller en selvkørende maskine. Et **fast sæt** er et +redskab, der ikke har en Connect-markør. Det bliver siddende og udlånes aldrig. + +**Maskinpulje.** Frakoblede redskaber og vogne med parkering og Connect-markør samt ledige traktorer uden +redskab. Moden parrer dem selv, når der er brug for det. + --- -## 3. Forbered kortet: markører og Wait-punkter +## 3. Forbered kortet: AutoDrive-markører ### Markører ved bygningerne @@ -96,8 +117,7 @@ Markøren skal højst være **40 m** fra bygningens trigger. - **Separat drop og pickup:** har en fabrik både en pickup- og en drop-markør, bruges drop til aflæsning, også når pickup står tættere på aflæsningstriggeren. Drop-markøren må højst stå 25 m fra triggeren. Siloer og palleskure bruger altid deres egen nærmeste markør. -- **Markørnavne:** navnene er frie. Moden viser bygningens eget navn i menuen og markørens navn i - parentes. +- **Markørnavne ved bygninger** er frie. Menuen viser bygningens navn og markørens navn. ### Wait-punkter @@ -105,11 +125,43 @@ Markøren skal højst være **40 m** fra bygningens trigger. 2. Læg så mange markører i mappen, som du har plads til. Én pr. traktor er rigeligt. 3. Forbind hvert Wait-punkt til vejnettet **i begge retninger**, både fra bygningerne og tilbage. -Wait-markører bliver aldrig brugt som kilde eller mål, heller ikke når de står tæt på en bygning. -Et Wait-punkt regnes som optaget, når det er reserveret, eller når et andet køretøj fysisk holder -højst 6 m fra det. -Markører i markernes mapper, fx *F91 Wait*, bliver ikke rørt, fordi det er **mappens** navn, der -tæller. +Det er **mappens** navn, der tæller. En markør, der hedder *F91 Wait* i en markmappe, er ikke et +Wait-punkt. Wait-markører bliver aldrig brugt som kilde eller mål. Et Wait-punkt regnes som optaget, +når det er reserveret, eller når et andet køretøj holder højst 6 m fra det. + +### Parkering: "P " + +Moden bruger AutoDrives egen **parkeringsdestination** på hvert køretøj og redskab (sættes i AutoDrive). +Færdige maskiner kører dertil, og vogne og redskaber sættes af dér. Konventionen er at kalde +parkeringsmarkøren `P `, fx `P Cow Food vogn 1`. Konsolkommandoen `spuNameFleet` bruger samme +konvention (se [kapitel 13](#13-navne-på-bygninger-og-maskiner)). + +### Kobling: "Connect " + +En **Connect-markør** er stedet, hvor traktoren holder for at koble et redskab eller en vogn på. + +- Navnet er `Connect ` efterfulgt af **præcis** navnet på redskabets parkeringsmarkør (store og små + bogstaver er ligegyldige). Til en vogn med parkeringen `P Cow Food vogn 1` hedder markøren + `Connect P Cow Food vogn 1`. `Kobl ` virker også. +- Sæt markøren lige ved vognens trækøje, så traktoren kan bakke hen til det. +- Når traktoren er fremme, kobles der på inden for ca. **3 m**. Står vognens trækøje **3–8 m** bag + traktoren og næsten på linje, bakker traktoren selv langsomt det sidste stykke. +- Kører du selv en traktor med AutoDrives "Kør til" til en Connect-markør, kobler moden også på. +- Omdøber du en parkering, skal Connect-markøren omdøbes med. + +Et redskab eller en vogn **uden** Connect-markør er et fast sæt og bliver aldrig lånt ud. + +### Afkobling: "Afkobl" + +En markør, der hedder `Afkobl` (eller begynder med `Afkobl `, `Kobl af`, `Detach` eller `Disconnect`), +kobler de redskaber af, der sidder **bag** traktoren, når den kører dertil med AutoDrive. Frontvægte og +frontlæssere bliver siddende. En plov o.l. foldes ud først, hvis spillet kræver det. Kører du en traktor +med "Kør til" til et puljeredskabs egen parkering, sættes redskabet også af dér. + +### Marker: "F" + +Hver mark, der skal køres af moden, skal have en markør ved markkanten med navnet `F` + marknummeret, +fx `F109`, højst 400 m fra marken. Se [kapitel 10](#10-markarbejde). ### Tætte siloer og AutoDrives triggerafstand @@ -121,13 +173,15 @@ som er 25 m som standard. Står siloerne tættere, kan nabosiloen få læsset. S ## 4. Menuen Smart Pickup -Tryk **ESC** og vælg fanen **Smart Pickup**. Fanen har syv underfaner: +Tryk **ESC**. Menuen **Smart Pickup** ligger lige over spillets **Indstillinger**. Den har ni faner: | Fane | Indhold | |---|---| -| **Overblik** | Tabel over alle flows og Wait-puljerne | -| **Flows** | Redigering af det valgte flow | -| **Marker** | Markarbejde på alle marker: slå, høst, klargøring, såning, pleje (kapitel 10) | +| **Overblik** | Tabel over alle flows, Wait-puljerne og knapperne til at starte og stoppe alt | +| **Flows** | Farvet liste over flows med Start/Stop pr. række og redigeringsvindue | +| **Marker** | Farvet liste over markerne med Start/Stop pr. mark, guiden "Opsæt mark" og markflåden | +| **Måned** | Markarbejde i gang og om noget skal nå det før månedsskiftet | +| **Marksiloer** | Automatisk hjemkørsel fra marksiloer | | **Fabrikker** | Beholdning og statistik for gårdens fabrikker | | **Siloer** | Beholdning og statistik for gårdens siloer | | **Stalde** | Beholdning og statistik for gårdens stalde | @@ -135,92 +189,146 @@ Tryk **ESC** og vælg fanen **Smart Pickup**. Fanen har syv underfaner: ### Overblik -Fanen **Overblik** viser alle flows som en tabel med kolonnerne **Flow**, **Varer**, **Fra**, **Til**, -**Kører** og **Status**. Det valgte flow er markeret med `>`. Kører viser traktorer i gang ud af flowets -traktorer. Status viser en advarsel, grunden til at traktorerne holder, eller flowets regel. +Øverst står **Klik på et flow for at redigere det**. Tabellen har kolonnerne **Flow**, **Varer**, **Fra**, +**Til**, **Kører** og **Status**, delt i **· Ind til bygning ·** og **· Ud fra bygning ·** og sorteret efter +navn. Klik på et flow for at vælge det og skifte til fanen **Flows**. -**Klik på et flow** i tabellen for at hoppe direkte til fanen **Flows** med det flow valgt. Statuslinjen -nederst viser, hvor mange traktorer og flows der kører i alt. +- **Varer** viser *efter behov*, når flowet selv vælger varer, ellers de valgte varer. +- **Fra** viser *alle siloer* for forsyning. Et `!` efter et bygningsnavn betyder, at bygningen mangler en + markør. +- **Kører** viser traktorer i gang ud af flowets traktorer, fx `2/3`. +- **Status** viser en advarsel (`!!`), grunden til at traktorerne holder, eller flowets regel, fx + `efter behov — laveste først`, `pris >= 90 %, lager > 80 %` eller for et rent lagerflow kun `lager > 80 %`. -Tidligere stod tavlen som én lang linje pr. flow: +Under tabellen står **Wait-puljer**: hver Wait-mappe med antal punkter, hvor mange der er optaget, og af +hvem. Statuslinjen nederst viser fx `Kører: 3 af 5 traktorer · 2 af 4 flows aktive`. -``` -> Mælkesalg: Mælk · Cow Barn 1 + Cow Barn 2 → Salg · pris >= 90 %, lager > 80 % · Virtus · Kører (1/1) - Foder stald: efter behov · alle siloer → Cow Barn 1 · behov · JCB 1 + JCB 2 · Stoppet (2 traktorer) -``` - -Linjen læses sådan: **navn: varer · fra → til · regel · traktorer · status**. Tavlen er delt i -**Ind til bygning** og **Ud fra bygning**, og hver gruppe er sorteret efter navn. Flow-vælgeren følger -samme rækkefølge. - -- Et `!` efter et bygningsnavn betyder, at bygningen mangler en markør. -- `!!` i status er en advarsel, fx at et salgssted ikke kan nås. -- Status viser også, hvorfor en traktor holder, fx `SUGAR 78 % af top (kræver 90)`. - -### Knapper - -Fanen **Flows** viser tavlen (én linje pr. flow) og under den det valgte flows **resumé**: Navn, Retning, -Fra/Til, Varer, (Lager), Regler, Vent ved, Traktorer og Status. **Klik på et flow** i tavlen for at vælge det, -og **klik på en resumé-linje** for at rette netop det trin (**Gem** gemmer og går tilbage). Klik på -**Navn** for at omdøbe flowet. +**Knapperne på Overblik** | Knap | Funktion | |---|---| -| **Start flow / Stop flow** | Starter eller stopper alle traktorer i flowet | -| **Opsæt flow** | Guiden for det valgte flow med de nuværende valg | -| **Nyt flow** | Guiden for et nyt flow. Intet oprettes før du trykker **Start flow** eller **Gem uden at starte** | -| **Slet flow** | Sletter flowet og stopper dets kørende traktorer. Kan ikke fortrydes | +| **Start alle flows** | Ophæver en pause fra "Stop alt og parkér" og starter alle flows med traktorer. Traktorerne startes **én ad gangen hvert 10. sekund**. Flows, der allerede kører, røres ikke | +| **Stop alle flows** | Stopper alle flows. Vognene tømmes og sættes på plads, og traktorerne kører hjem | +| **Stop alt og parkér** | Stopper alt og holder pause, også efter genindlæsning (se nedenfor) | +| **Nyt flow** | Åbner guiden "Opsæt flow" for et nyt flow | -På fanen **Overblik** er knapperne i stedet: +Statuslinjen viser bagefter, hvad der skete, fx `Start alle: 6 traktorer startes én ad gangen (hvert 10. +sekund), 1 flows kørte allerede, 1 sprunget over`, og op til tre grunde til traktorer, der blev sprunget +over. Mens køen kører, står der `Starter traktorer: 2 af 6 …`. + +### Stop alt og parkér + +**Stop alt og parkér** er til, når du vil have ro på gården, fx før du gemmer og holder pause: + +- Alle flows stoppes. Flow-traktorer tømmer vognen, sætter den på sin parkering og kører hjem. +- Alt markarbejde stoppes. Redskaberne slukkes, løftes og **foldes sammen til transport**. + Puljeredskaber sættes af på deres parkering, og traktoren kører hjem. Markernes fremskridt bevares. +- Lån til marksiloerne stoppes. +- Øvrige køretøjer kører til deres AutoDrive-parkering. +- Høstere, du selv skal køre til marken (for brede), flyttes ikke. De nævnes som `hent selv (for brede): …`. + Køretøjer uden parkering nævnes som `uden parkeringspunkt: …`. +- Moden holder **pause**. Pausen gemmes i savegamet, så intet markarbejde eller marksilo-lån starter af + sig selv efter genindlæsning. Statuslinjen viser `Pause — tryk Start alle for at fortsætte`, og fanen + **Marker** viser en linje øverst om pausen. + +**Start alle flows** ophæver pausen og starter flowene igen, én traktor ad gangen. En enkelt mark kan +genoptages med **[Start]** på dens række uden at ophæve pausen for de andre. + +### Flows + +Fanen **Flows** er en farvet liste med én række pr. flow: + +``` +● Cow Food · efter behov · 2/2 · efter behov — laveste først [Stop] +● Milk Sale · Mælk · 1/1 · MILK 78 % af top (kræver 90) [Stop] +● Egg Store · Æg · 0/1 [Start] +``` + +Rækken viser farvet prik, navn, varer, traktorer i gang/i alt, status og **[Start]** eller **[Stop]** +yderst til højre. Listen er delt i *Ind til bygning* og *Ud fra bygning*. + +| Farve | Betyder | +|---|---| +| **Grøn** | Flowet kører uden problemer | +| **Gul** | Flowet er startet, men venter, fx ved et Wait-punkt, på en vogn eller på en pris | +| **Rød** | Problem: en advarsel (`!!`), eller sidste start afviste alle traktorer | +| **Grå** | Stoppet eller aldrig startet | + +*Efter behov* betyder, at hver tur henter den vare, målet har mindst af. + +- Klik på **[Start]/[Stop]** yderst til højre for at starte eller stoppe flowet direkte. Bliver traktorer + sprunget over, vises grunden også som besked i højre side af skærmen (rød, hvis ingen startede). +- Klik et andet sted på rækken for at åbne **redigeringsvinduet**. +- Knappen **Nyt flow** nederst åbner guiden. Statuslinjen viser `Flows i gang: 2 af 4`. + +### Redigeringsvinduet + +Vinduet **Rediger flow: ** lægger sig oven på listen. Under titlen står flowets status i samme farve +som i listen. Derunder står flowets **resumé**, én linje pr. trin med **[Ret]** bagved, fx +*Retning: Ind til bygning [Ret]*: + +- Klik på en linje for at rette netop det trin. **Gem** gemmer uden at starte flowet. +- Klik på **Navn** for at omdøbe flowet. +- Linjen **Opsæt flow** åbner hele guiden inde i vinduet. | Knap | Funktion | |---|---| -| **Start alle flows** | Starter alle flows med traktorer. Flows, der allerede kører, røres ikke, så ingen tur afbrydes | -| **Stop alle flows** | Stopper alle aktive traktorer i alle flows | -| **Nyt flow** | Hopper til fanen **Flows** og åbner guiden for et nyt flow | +| **Luk** (også ESC) | Lukker vinduet. Står et trin eller guiden åben, lukker første tryk dem, og andet tryk lukker vinduet | +| **Start flow / Stop flow** | Starter eller stopper flowet | +| **Slet flow** | Sletter flowet efter en bekræftelse. Kørende traktorer stoppes. Kan ikke fortrydes | -Statuslinjen viser bagefter, hvor mange flows og traktorer der blev startet, og op til tre grunde til -traktorer, der blev sprunget over. Alle grunde står i `log.txt`. +Skifter du fane eller lukker menuen, kasseres ændringer, der ikke er gemt. ### Guiden "Opsæt flow" -Samme trin-skærm og knapper som markguiden (**Næste**, **Tilbage**, **Annullér**; ét spørgsmål ad gangen, -trin der ikke passer springes over): +Guiden stiller ét spørgsmål ad gangen: *Trin 3 af 8 — Varer*. Trin, der ikke passer, springes over, så et +flow har op til 9 trin. Knapperne er **Næste**, **Tilbage** og **Annullér**. Intet oprettes, før du trykker +**Start flow** eller **Gem uden at starte** på sidste trin. | Trin | Vises når | Valg | |---|---|---| -| **Navn** | nyt flow | *Skift navn …* åbner tekstfeltet | -| **Retning** | altid | *Ind til bygning* (forsyning) / *Ud fra bygning* (udkørsel) | +| **Navn** | nyt flow | *Skift navn …* åbner tekstfeltet. Traktorerne får navn efter flowet | +| **Retning** | altid | *Ind til bygning* (forsyning) eller *Ud fra bygning* (udkørsel) | | **Til** / **Fra** | altid | Bygningerne (se *Bygningslisten* nedenfor) | -| **Varer** | altid | Forsyning: *Automatisk (det bygningen mangler)* eller *Vælg selv*. Udkørsel: pr. vare Fra / Lager / Salg / Salg, ellers lager | +| **Varer** | altid | Forsyning: *Automatisk (det bygningen mangler)* eller *Vælg selv*. Udkørsel: pr. vare *Fra*, *Lager*, *Salg* eller *Salg, ellers lager* | | **Lager** | udkørsel med en vare på Lager | *Automatisk (nærmeste med plads)* eller *Vælg selv* blandt lagrene | -| **Regler** | altid | Udkørsel: sælg fra %, lager over %, saml op på én tur. Forsyning: ture, kør hjem fra Wait under % | -| **Vent ved** | altid | Wait-puljen | -| **Traktorer** | altid | Ledige traktorer og flowets egne. Traktorer i andre flows (og dem hvis vogn ikke passer) er skjult med en linje | -| **Oversigt** | altid | Resuméet; klik på en linje for at rette. **Start flow** eller **Gem uden at starte** | +| **Regler** | altid | Forsyning: ture og *Kør hjem fra Wait under*. Udkørsel: *Sælg fra*, *Kør til lager over*, *Sælg altid når kilden er over* og *Saml op på én tur*, men kun de regler, varernes politik bruger (se [kapitel 6](#regler-for-udkørsel)) | +| **Vent ved** | altid | *Alle (nærmeste ledige)* eller en bestemt Wait-mappe | +| **Traktorer** | altid | Se nedenfor | +| **Oversigt** | altid | Resuméet. Klik på en linje for at rette den. **Start flow** eller **Gem uden at starte** | + +**Trinnet Traktorer** + +- Listen viser flowets egne traktorer først og derefter de ledige, med kapacitet og hvad vognen kan bære: + *JCB 1 — 32.000 l — kan bære: … — OK*. +- **Solo-traktorer** (uden vogn bagpå) kan vælges, når der findes en **ledig vogn**. Der står + * — ingen vogn bagpå: henter en ledig vogn*. En ledig vogn er frakoblet, har en + AutoDrive-parkering med en Connect-markør, hører ikke til et andet flow og kan bære flowets varer. +- Vælger du en solo-traktor, **foreslår guiden en vogn**. Først vogne, hvis parkeringsnavn indeholder + flowets navn, derefter vogne, hvis parkeringsnavn indeholder *Disponibel*, og så resten alfabetisk. +- Under traktoren står linjen **↳ Vogn**, hvor du kan skifte til en anden ledig vogn. Er der ingen, står + der *↳ ingen ledig vogn (frakoblet, med Connect-markør, kan bære varen)*. +- Flowet **husker parret** traktor → vogn, når du gemmer. Vognens parkering behøver derfor ikke hedde det + samme som flowet. +- Traktorer i andre flows er skjult: *N traktorer kører i andre flows og vises ikke*. +- Traktorer, hvis vogn ikke passer, er foldet sammen i linjen *N traktorer kan ikke bruges her (vognen + passer ikke) — klik for at se hvorfor*. Klik for at se navn og grund for hver. Moden spørger aldrig om markøren ved bygningen, rutetjek, bedste foder først, læs-bytte, kildevalg, fordeling på flere mål, hvile af tomme kilder eller traktornavne. -### Retning - -Feltet **Retning** skifter mellem to slags flow: - -- **Ind til bygning** er forsyning. Se [afsnit 5](#5-forsyning-hold-stalde-og-fabrikker-fyldt). -- **Ud fra bygning** er udkørsel. Se [afsnit 6](#6-udkørsel-tøm-lagr-og-sælg). - ### Bygningslisten Hver bygning står på en linje med sine markører og afstanden til triggeren: ``` -Cow Barn (large) — Cow 1 Milk 6 m · Cow 1 Slurry 4 m -Silo 7 (silo) — INGEN MARKØR inden for 40 m — sæt en AD-markør ved triggeren +Kostald 1 — Cow 1 Milk 6 m · Cow 1 Slurry 4 m +Silo 7 — INGEN MARKØR inden for 40 m — sæt en AD-markør ved triggeren ``` -Sæt **Ja** ud for de bygninger, flowet skal bruge. De valgte står øverst. Bygninger uden markør er -skjult, indtil du slår **Vis alle bygninger** til. Listen er ellers sorteret efter navn, så *Silo 9* -kommer før *Silo 10*. En bygning, du har solgt, står som *bygningen findes ikke længere*. +Sæt **Ja** ud for de bygninger, flowet skal bruge. Bygninger uden markør er skjult, indtil du slår +**Vis alle bygninger** til. Listen er sorteret efter navn, så *Silo 9* kommer før *Silo 10*. En bygning, +du har solgt, står som *Fjernet bygning (findes ikke mere) — sæt NEJ*. --- @@ -230,17 +338,16 @@ Et forsyningsflow holder én eller flere bygninger fyldt med alt det, de bruger. ### Opsætning -1. **Nyt flow** (guiden), og lad Retning stå på **Ind til bygning**. +1. **Nyt flow**, og vælg Retning **Ind til bygning**. 2. Under **Til**: sæt Ja ud for de stalde og fabrikker, der skal fyldes. Listen viser også siloer, - der kun kan fyldes og ikke tømmes, fx Pumps & Hoses' drive-on-bunkere (DOB 115), der fodrer en - biogas-fermentor. For dem er **Vælg** med de varer, fermentoren skal have, bedst. -3. Under **Varer**: vælg **Auto** eller **Vælg**. - - **Auto** henter alt det, bygningen tager. For fabrikker er det inputs til de produktioner, + der kun kan fyldes og ikke tømmes, fx drive-on-bunkere, der fodrer en biogas-fermentor. For dem er + **Vælg selv** med de varer, fermentoren skal have, bedst. +3. Under **Varer**: vælg **Automatisk** eller **Vælg selv**. + - **Automatisk** henter alt det, bygningen tager. For fabrikker er det inputs til de produktioner, der er tændt. - - **Vælg** lader dig krydse bestemte varer af. -4. Sæt **Ture**, **Kør hjem fra Wait under** og **Wait-pulje**. Se reglerne nedenfor. -5. Sæt **Ja** ud for de traktorer, der skal køre. -6. Tryk **Start run**. + - **Vælg selv** lader dig krydse bestemte varer af. +4. Sæt **Ture** og **Kør hjem fra Wait under** under Regler, og vælg Wait-mappe under **Vent ved**. +5. Vælg traktorerne, og tryk **Start flow**. **Fra** står altid som *alle siloer*. Traktoren henter fra hvilken som helst silo på kortet. @@ -252,65 +359,61 @@ Før hver pålæsning ser moden på målene og vælger: den laveste fyldning i forhold til kapacitet. 2. **Fuldt læs først.** Varer, hvor et helt læs kan komme af, går forud for varer, hvor kun en del passer. -3. **Den stald, der mangler mest.** Har flowet flere mål, får den mest trængende turen. -4. **Hvilken silo.** Egne siloer bruges før nabo-lån. Mindst fyldte silo tømmes først, så rester - ryddes. Mælk, gylle og digestat hentes fra den *fyldeste* kilde, så produktionen ikke stopper. +3. **Det mål, der mangler mest.** Har flowet flere mål, får den mest trængende turen. Mål med færrest + andre vogne på vej går forud. +4. **Hvilken silo.** Egne siloer bruges før nabo-lån. Blandt siloer med rigeligt af varen (mindst + 5.000 l eller en fjerdedel af et læs) tømmes den mindst fyldte først, så rester ryddes. Har ingen silo + rigeligt, bruges den fyldeste. Mælk, gylle og digestat hentes altid fra den *fyldeste* kilde, så + produktionen ikke stopper. En fabriks egne **inputs** hentes aldrig fra fabrikken selv. Halm i en TMR-fabrik bliver altså, hvor den er. En stalds læssepunkter bruges kun til staldens produktion, altså mælk, gylle, gødning, æg og -uld. Halm og foder hentes aldrig ved en stald. +uld. **Fabrikker følger produktionerne.** Tænder du TMR i en fabrik, begynder traktoren at hente ensilage, hø, halm og mineralfoder af sig selv. Slukker du den, holder traktoren op. Produktioner, -som kortet selv har slukket på grund af manglende input, tæller som ønskede, for dem skal der netop -fyldes på. +som kortet selv har slukket på grund af manglende input, tæller som ønskede. ### Forkert last på vognen Har en traktor en vare på vognen, som ikke er en af flowets varer, køres den først til en silo, der -tager varen. Den afleveres ikke ved flowets mål, heller ikke når målet tager varen. Med **Vælg** tæller -kun de afkrydsede varer. Med **Auto** tæller alt, målet tager. +tager varen. Den afleveres ikke ved flowets mål. Med **Vælg selv** tæller kun de afkrydsede varer. Med +**Automatisk** tæller alt, målet tager. ### Bedste foder først Foder i et stald-trug deler plads. Står bedre foder som **TMR** på listen, hentes lavere foder som -ensilage og hø kun, når truget er **mindst 75 % tomt**. Så fylder silage ikke truget op, mens der er -TMR at få. +ensilage og hø kun, når truget er **mindst 75 % tomt**. -Dyr, der spiser fra flere fodergrupper **samtidig**, fx høns med korn og roesnitter, følger ikke den regel. -Hver gruppe får sin andel af krybben efter hvor meget dyrene spiser af den. For høns er det korn 80 % og -roesnitter 20 %. Begge grupper skal være med under **Vælg**, for at hønsene når 100 %. +Dyr, der spiser fra flere fodergrupper **samtidig**, fx høns med korn og roesnitter, følger ikke den +regel. Hver gruppe får sin andel af krybben efter hvor meget dyrene spiser af den. Begge grupper skal +være med under **Vælg selv**, for at hønsene når 100 %. ### Flere traktorer til samme stald Moden husker, hvad der allerede er **på vej** til hver stald. Har du fire vogne på samme stald, -fordeler de sig. Én henter TMR, en anden halm, og en tredje kører til den næste stald, i stedet for -at alle henter det samme. +fordeler de sig på varer og stalde i stedet for at hente det samme. ### Rest-læs og Wait Kan målet ikke tage hele læsset, sker følgende: 1. Traktoren læsser af, hvad der er plads til. -2. Har flowet flere mål, køres resten til det af de andre mål, der har mest plads til varen. Det - kræver mindst 1.000 l fri plads. Store vogne fordeler sig altså på alle staldene. -3. Har ingen af målene plads, køres resten til det **nærmeste ledige Wait-punkt**, så triggeren ikke blokeres for de næste. +2. Har flowet flere mål, køres resten til det af de andre mål, der har mest plads til varen (mindst + 1.000 l fri plads). +3. Har ingen af målene plads, køres resten til det **nærmeste ledige Wait-punkt**, så triggeren ikke + blokeres. 4. Den kører tilbage, når målet kan tage **hele resten**, eller er faldet under **Kør hjem fra Wait under**. -En rest på under 100 l, som målet ikke kan tage, tæller som tom. Traktoren kører videre i stedet for -at blokere triggeren. +En rest på under 100 l, som målet ikke kan tage, tæller som tom. ### Læs-bytte Venter en traktor med en vare, målet er fuldt af, mens målet mangler en anden vare på listen, -bytter den læs: - -1. Resten læsses af i en almindelig lagersilo, der tager varen og har plads. -2. Traktoren henter den vare, målet mangler. - -Det sker kun, når målet mangler mindst en fjerdedel af sin kapacitet af den anden vare, og der er -vejnet til siloen og videre til målet. Findes der ingen egnet silo, bliver traktoren ved Wait. +bytter den læs: resten læsses af i en almindelig lagersilo med plads, og traktoren henter den vare, +målet mangler. Det sker kun, når målet mangler mindst en fjerdedel af sin kapacitet af den anden vare, +og der er vejnet til siloen og videre til målet. Findes ingen egnet silo, bliver traktoren ved Wait. ### Regler for forsyning @@ -318,9 +421,7 @@ vejnet til siloen og videre til målet. Findes der ingen egnet silo, bliver trak |---|---|---| | **Ture** | Antal ture pr. traktor, derefter parkerer den | 0 = uendeligt, ellers 1–99 | | **Kør hjem fra Wait under** | Ventende traktor kører tilbage, når målet er under denne fyldning | 10–90 %, standard 50 % | -| **Wait-pulje** | Hvilken Wait-mappe traktorerne venter i | *Alle (nærmeste ledige)* eller en mappe | - -Under reglerne viser **Hentes** de varer, flowet henter nu, med den mest trængende først. +| **Vent ved** | Hvilken Wait-mappe traktorerne venter i | *Alle (nærmeste ledige)* eller en mappe | --- @@ -336,14 +437,12 @@ Under **Fra** kan du vælge: |---|---| | **Fabrik** | Fabrikkens outputs, både bulk og paller fra pallespawneren | | **Silo** | Siloens indhold | -| **Stald** | Mælk, gylle og gødning fra staldens læssepunkter, inklusive tilknyttede udvidelsestanke som Milk Tank Extension. Æg og uld hentes som paller ved staldens pallespawner, fx i hønsehuset. Sæt en markør ved spawneren | +| **Stald** | Mælk, gylle og gødning fra staldens læssepunkter, inklusive tilknyttede udvidelsestanke. Æg og uld hentes som paller ved staldens pallespawner. Sæt en markør ved spawneren | | **Objektlager** | Paller og baller. De tages ud én ad gangen | -| **Lager** | Andre bygninger med en læssestation, fx Pumps & Hoses' separatorhal med digestat. Varerne læses fra læssestationen | +| **Lager** | Andre bygninger med en læssestation, fx en separatorhal med digestat | -**Kilder med fælles lager:** nogle lagre er udvidelser, der deler beholdning med alle inden for en -vis afstand, fx mælketanke i en række. Læsser man ved én, tømmes de alle. Moden opdager det selv og -regner dem som ét stop, så traktoren ikke kører rundt mellem tankene. Den første i listen bruges, og -loggen skriver hvilke kilder der er slået sammen. Det er nok at vælge én tank som kilde. +**Kilder med fælles lager:** nogle lagre deler beholdning med naboerne, fx mælketanke i en række. Moden +opdager det selv og regner dem som ét stop. Det er nok at vælge én tank som kilde. ### Politik pr. vare @@ -352,11 +451,13 @@ Hver vare, kilderne har, står med sin mængde og nuværende pris. Vælg en poli | Politik | Betydning | |---|---| | **Fra** | Varen røres ikke | -| **Lager** | Køres til en silo, et palleskur eller en af gårdens egne fabrikker, der bruger varen, fx gylle til et biogasanlæg. Det sker, når der er et fuldt læs, eller kilden er ved at være fuld | +| **Lager** | Køres til en silo, et palleskur eller en af gårdens egne fabrikker, der bruger varen, når der er et fuldt læs, eller kilden er ved at være fuld | | **Salg** | Sælges, når prisen er tæt nok på årets top | | **Salg, ellers lager** | Sælges ved god pris. Ellers køres den til lager, når kilden er ved at være fuld | -Bulkvarer kræver en tipvogn eller tank. Pallevarer kræver en vogn med Universal Autoload. +Bulkvarer kræver en tipvogn eller tank. Pallevarer kræver en vogn med Universal Autoload. Flydende varer +(gylle, digestat, mælk, vand m.fl.) køres aldrig automatisk ind i en fabriks rist, kun til siloer og tanke, +medmindre du selv vælger fabrikken under **Lager**. ### Regler for udkørsel @@ -364,53 +465,49 @@ Bulkvarer kræver en tipvogn eller tank. Pallevarer kræver en vogn med Universa |---|---|---| | **Sælg fra** | Der sælges, når prisen er mindst denne andel af varens toppris i året | 50–100 %, standard 90 % | | **Kør til lager over** | Lager-varer køres væk, når kilden er fyldt over denne andel | 50–95 %, standard 80 % | +| **Sælg altid når kilden er over** | Sælger uanset pris, når den fyldeste kilde er over denne andel. Reserven røres stadig ikke | *Fra* eller 50–100 %, standard *Fra* | | **Saml op på én tur** | Opsamlingsrunde, se nedenfor | Ja/Nej | -### Lager til: tvunget aflæsningssted +Reglerne vises kun, når en vare bruger dem. **Sælg fra** og **Sælg altid når kilden er over** vises, når +mindst én vare står på *Salg* eller *Salg, ellers lager*. **Kør til lager over** vises, når mindst én vare +står på *Lager* eller *Salg, ellers lager*. Er der endnu ingen vare med Lager eller Salg, vises alle +regler. Det samme gælder resuméet og status i Overblik: et rent lagerflow viser fx kun `lager > 80 %`. -Under reglerne står afsnittet **Lager til**. Det viser kun de siloer, egne fabrikker og palleskure, der -kan tage mindst én af flowets lagervarer. Æggepaller viser altså kun palleskure, der tager æg, og -ingen siloer. Er ingen vare sat til Lager endnu, tæller alle kildernes varer. Valgte bygninger vises -altid. Vælger du én eller -flere, kører lagerture kun dertil. Den første i listen, der tager varen, har plads og kan nås, får -læsset. Et eksempel er gylle, der kun må til biogasanlægget og aldrig til AIO-fabrikken. Kan ingen af -de valgte tage læsset, venter traktoren ved Wait, og loggen skriver hvorfor, fx *valgt lager: BGA500kw: -fuld*. Vælger du ingen, finder moden selv den nærmeste silo eller egne fabrik, der bruger varen. -Pallevarer går til det første valgte palleskur, der tager varen, har plads og kan nås. Er intet -palleskur valgt, går de til det nærmeste. +### Lager: tvunget aflæsningssted -Med **Lager til** valgt regnes flowet som **fodring**: traktoren kører, så snart kilden har mindst -10.000 l af varen. Den venter ikke på fuldt læs eller *Kør til lager over*, for et anlæg som en -biogas-fermentor går i stå, hvis det kun får læs en gang imellem. +Trinnet **Lager** viser kun de siloer, egne fabrikker og palleskure, der kan tage mindst én af flowets +lagervarer. Vælger du *Automatisk (nærmeste med plads)*, finder moden selv den nærmeste silo eller egne +fabrik, der bruger varen. Vælger du selv ét eller flere lagre, kører lagerture kun dertil. Den første i +listen, der tager varen, har plads og kan nås, får læsset. Kan ingen af de valgte tage læsset, venter +traktoren ved Wait, og status skriver hvorfor. + +Med et valgt lager regnes flowet som **fodring**: traktoren kører, så snart kilden har mindst 10.000 l af +varen, uden at vente på fuldt læs. Så går et anlæg som en biogas-fermentor ikke i stå. ### Sådan vælges hver tur Før hver pålæsning, og hvert femte sekund mens traktoren holder, vurderer moden: 1. **Salg.** Findes en Salg-vare, hvis bedste *nåelige* salgssted betaler mindst tærsklen, køres der - til salg **uanset mængde**. Det sikrer, at du får pengene, når prisen topper. Den højeste pris-% - går først. + til salg **uanset mængde**. Den højeste pris-% går først. 2. **Lager.** Findes en Lager-vare med et fuldt læs, eller en kilde over tærsklen, køres den til den - nærmeste silo med plads til hele læsset. Den mest fyldte kilde går først. Markører, som et andet - udkørselsflow henter fra, bruges kun som aflæsningssted, hvis intet andet passer. Så læsser en - lagertur ikke af, hvor en salgstur skal læsse. -3. **Ingen tur.** Traktoren holder ved et Wait-punkt og prøver igen. Status viser hvorfor, fx - `holder ved Wait 3: SUGAR 78 % af top (kræver 90), lager 41 %`. + nærmeste silo med plads til hele læsset. Den mest fyldte kilde går først. +3. **Ingen tur.** Traktoren holder ved et Wait-punkt og prøver igen. Med *Vent ved: Alle* vælges det + ledige Wait-punkt nærmest flowets kilder. Status viser hvorfor, fx + `SUGAR 78 % af top (kræver 90), lager 41 %`. ### Prisen Salgssteder er kortets rigtige salgssteder og fabrikker, som gården ikke ejer, fx kortets mejeri. -Afleveringer til gårdens egne fabrikker og stalde tæller ikke som salg. Pris-% er varens nuværende -pris i forhold til årets højeste. Moden bruger den samme sæsonkurve som -spillets prisgraf. Varer med flad kurve regnes altid som 100 %. Salgsstedet med den bedste pris vinder, -så længe vejnettet når derhen. +Afleveringer til gårdens egne fabrikker og stalde tæller ikke som salg. Pris-% er varens nuværende pris +i forhold til årets højeste ifølge spillets sæsonkurve (den samme som i prisgrafen). Varer med flad kurve +regnes som 100 %. Salgsstedet med den bedste pris vinder, så længe vejnettet når derhen. ### Reserve: sælg aldrig det, gården selv skal bruge Før salg trækker moden det fra, gårdens egne fabrikker og stalde skal bruge det næste døgn. Der sælges kun, når et helt læs kan tages uden at røre reserven. Status viser fx -`SUGARBEET: 196.0k reserveret til TMR-fabrik`. Lager-politikken rører ikke reserven, for varen -bliver jo på gården. +`SUGARBEET: 196.0k reserveret til TMR-fabrik`. Lager-politikken rører ikke reserven. ### Opsamlingsrunde @@ -423,60 +520,97 @@ Med **Saml op på én tur** slået til: ### Paller og Universal Autoload - Moden slår AutoDrives **AL unload** til på vognen, når flowet starter. -- **Stropper** spændes efter pålæsning og løsnes **25 m før** aflæsningstriggeren. +- **Stropper** spændes efter pålæsning og løsnes **25 m før** aflæsningsmålet. - Et fuldt læs paller er mindst fire paller. - Paller til lager køres til det nærmeste palleskur, der tager varen og har plads. -- Fra et objektlager tages **én palle ad gangen**, så der aldrig ligger paller tilbage på jorden. -- Sidder lageret fast, afsluttes læsningen efter 30 sekunder med det, der er læsset. Står en - autoload-kilde stille i 15 sekunder, køres der med det, der er på vognen. +- Fra et objektlager tages **én palle ad gangen**. Sidder lageret fast, afsluttes læsningen efter + 30 sekunder med det, der er læsset. +- En tipvogn med **AutoLoad slået til** afvises i et forsyningsflow, fordi AutoDrive så kun ser den som + palle-/ballevogn. Slå AutoLoad fra på vognen. ### Advarsler på skærmen -Kan et salgssted ikke nås, eller findes der ingen silo med plads, viser moden en rød -AutoDrive-besked, fx: - -``` -'MT635' kan ikke nå salgssted 'Grain Elevator' for SUGAR – tjek vejnettet -``` - -Beskeden kommer også i AutoDrives beskedhistorik, i `log.txt` og i flowets status. Traktoren venter -ved Wait og kører selv, når vejen er koblet på. Advarslen gentages først, når traktor, station eller -vare skifter. +Kan et salgssted ikke nås, eller findes der ingen silo med plads, viser moden en rød AutoDrive-besked, +fx `'MT635' kan ikke nå salgssted 'Grain Elevator' for SUGAR – tjek vejnettet`. Beskeden kommer også i +AutoDrives beskedhistorik, i `log.txt` og i flowets status. Traktoren venter ved Wait og kører selv, når +vejen er koblet på. --- -## 7. Traktorer og vogne +## 7. Traktorer, vogne og maskinpulje -Nederst i flowet står gårdens køretøjer med kapacitet. Sæt **Ja** ud for dem, der skal køre. +### Traktorer i et flow -- Kapaciteten står i liter for bulkvogne og som *autoload (paller)* for UAL-vogne. -- **Køretøjer, der ikke kan bruges, er låst** og viser grunden. Grundene er beskrevet i tabellen. -- Som standard vises flowets egne traktorer og de ledige, der kan bruges. Traktorer i andre flows og - låste traktorer vises med **Vis alle traktorer**. -- Et køretøj kan kun være med i ét flow. Flyttes det, står der *flyttet fra 'andet flow'*. +- Et køretøj kan kun være med i ét flow. Vælger du det i et andet flow, flyttes det. - Fjerner du en kørende traktor fra et flow, stoppes den. -- **Navne:** traktorerne får automatisk AutoDrive-førernavn efter deres flow, fx *Milk Collect 1* og - *Milk Collect 2*. Er traktoren alene i flowet, hedder den bare som flowet. Navnet bruges i - AutoDrive, i menuen og i loggen, og modelnavnet står i parentes i menuen. Tages traktoren ud af - flowet, får den sit modelnavn igen. Navne, du selv har givet i AutoDrive, røres kun, mens - traktoren er med i et flow. +- **Navne:** traktorerne får AutoDrive-førernavn efter deres flow, fx *Milk Collect 1* og *Milk Collect 2*. + Er traktoren alene i flowet, hedder den bare som flowet. Tages den ud af flowet, får den sit modelnavn + igen. Navne, du selv har givet, røres ikke, når traktoren forlader flowet. +- **Solgte traktorer:** ca. to minutter efter indlæsning fjernes traktorer, der ikke findes længere, fra + deres flow. Der kommer en besked på skærmen: *Flow 'Cow Food': 1 traktor(er) findes ikke længere og er + fjernet (1 tilbage)*. Står flowet uden traktorer, er beskeden rød: *Flow 'Cow Food' har ingen traktorer + længere og virker ikke — tildel en i Flows*. + +Kan en traktor ikke starte, står grunden i listen og i statuslinjen: | Grund | Betydning | |---|---| -| ingen vogn | Traktoren har ingen vogn koblet på | +| ingen vogn (kobl en på, eller giv vognens parkering flowets navn) | Traktoren har ingen vogn, og flowet kender ingen vogn til den | | vognen kan ikke bære run'ets varer | Vognen tager ikke nogen af flowets varer | | pallevarer kræver Universal Autoload på vognen | Flowet har paller, men vognen har ikke UAL | +| AutoLoad er slået til på vognen … | Tipvogn med AutoLoad slået til. Slå det fra på vognen | | for langt fra vejnettet | Traktoren står for langt fra AutoDrives vejnet | | intet mål / ingen genkendt kilde | Flowet mangler bygninger | | ingen vare valgt | Udkørsel uden nogen vare sat til Lager eller Salg | | intet Wait-punkt i puljen | Udkørsel kræver mindst ét Wait-punkt | +| lasten på vognen har intet mål … | Vognen har en last, der hverken kan sælges eller lagres nu. Tøm vognen | + +### Flow-vogne + +Et flow **husker, hvilken vogn hver traktor bruger**. Det gør det, når du vælger en vogn i guiden, og mens +flowet kører. + +- **Ved start** henter en solo-traktor selv sin vogn. Den kører til `Connect `, kobler + på og kører videre med flowet. Er vognen lånt ud, venter traktoren og prøver igen. +- Kender flowet ingen vogn, leder moden efter en frakoblet vogn, hvis parkeringsnavn indeholder flowets + navn, helst med samme nummer som traktoren (traktoren *Cow Food 3* får vognen på *P Cow Food vogn 3*). +- **Ved stop** tømmes vognen først: ved flowets mål, og kan målet ikke tage resten (læsset falder ikke i + 45 sekunder), ved en silo eller egen fabrik, der tager varen. Marksiloer bruges aldrig. Moden prøver op + til 3 siloer. Går det ikke, parkeres der med last. Derefter sættes vognen af på **sin egen parkering**, + og traktoren kører til sin. +- Startes flowet igen under tømningen eller hjemturen, kører traktoren bare videre med vognen. +- Kører du selv traktoren til Connect-markøren og kobler vognen på, starter traktoren, hvis flowet kører. +- En flows vogne udlånes aldrig til andet arbejde, heller ikke når flowet er stoppet. Et stoppet flows + traktorer kan derimod lånes som solo-traktorer af maskinpuljen. +- **Efter genindlæsning:** et redskab, der sidder på en traktor uden opgave (fx hentet lige før du + gemte), sættes tilbage på sin parkering efter et par minutter, og traktoren kører hjem. En traktor, der + holder inden for 30 m af sin egen parkering, lades i fred. + +### Maskinpuljen + +Maskinpuljen bruges af markarbejdet og marksiloerne, når der ikke er et færdigt sæt ledigt. + +- **Puljeredskab/-vogn:** frakoblet, gårdens egen, med en AutoDrive-parkering og en Connect-markør til + parkeringen. Redskaber uden Connect-markør er faste sæt og lånes aldrig. +- **Puljetraktor:** en almindelig traktor uden redskab bag, med sin egen AutoDrive-parkering, på + AutoDrives vejnet og ikke kørt af dig. Markredskaber kobles kun bag traktorer. Tømmevogne kan også + trækkes af andre køretøjer. +- **Bedste pasform:** moden vælger den **mindste traktor med hk nok** til redskabet. Traktorer med + mere end 2,5 gange det nødvendige bruges kun, hvis intet andet passer. +- **Forløb:** traktoren kører til Connect-markøren, kobler på, folder redskabet til vejen, kører på + arbejde, sætter bagefter redskabet af på dets parkering og kører hjem til sin egen. +- Mislykkes en kobling, springes den skyldige maskine over i 10 minutter. + +Markflådens visning i fanen **Marker** viser puljetraktorer og puljeredskaber med status (se +[kapitel 10](#10-markarbejde)). --- ## 8. Start, stop og gemning -**Start run** gør følgende på hver godkendt traktor: +**Start flow** gør følgende på hver godkendt traktor: +- Henter vognen, hvis traktoren er solo (se [Flow-vogne](#flow-vogne)). - Sætter AutoDrive i **Pickup & Deliver** med flowets varer og ture. - Slår **Brug mapper** til globalt og sætter rotation til **kun pålæsning**. - Sætter flowets markører. De vælges på ny for hver tur. @@ -484,233 +618,469 @@ Nederst i flowet står gårdens køretøjer med kapacitet. Sæt **Ja** ud for de Det **overskriver** traktorens egne AutoDrive-indstillinger. Traktorer uden for flows kører som før. Et flow starter, selv om én af de valgte bygninger mangler markør. Status nævner så bygningen. -Mangler **alle** bygningerne markør, afvises start med `'' mangler en AD-markør ved -triggeren`. +Mangler **alle** bygningerne markør, afvises start med `'' mangler en AD-markør ved triggeren`. -**Stop run** stopper AutoDrive på flowets traktorer. Traktorerne bliver i flowet, så det kan -startes igen. +**Stop flow** stopper flowets traktorer, folder redskaberne sammen, tømmer vognene og sætter dem på plads +og kører traktorerne hjem. Traktorerne bliver i flowet, så det kan startes igen. -**Gemning.** Flows gemmes i `savegameN/ADSmartPickup_runs.xml`, når spillet gemmes, og ved hver -Start og Stop. Efter indlæsning fortsætter traktorer, som AutoDrive selv har gemt som kørende. -Traktorer, der ventede ved et Wait-punkt, genoptager ventningen af sig selv. Er et flow stoppet -efter indlæsning, så tryk **Start run** igen. +**Gemning.** Moden gemmer i savegame-mappen, når spillet gemmes: -Flows fra ældre versioner indlæses automatisk. Gamle markørvalg oversættes til bygninger. +| Fil | Indhold | +|---|---| +| `ADSmartPickup_runs.xml` | Flows, om de er stoppet, og de huskede vogne | +| `ADSmartPickup_names.xml` | Bygningsnavne | +| `ADSmartPickup_fields.xml` | Markernes opsætning, markflåden, pausen fra "Stop alt" og Courseplay-kurser | +| `ADSmartPickup_fieldsilos.xml` | Opsætningen af marksiloer | +| `ADSmartPickup_cpresume.xml` | Maskiner, som Courseplay kørte, og som skal genstartes | + +**Efter indlæsning** genstarter AutoDrive selv de traktorer, der kørte, og moden overtager dem igen. Et +flow, du ikke har stoppet, og som har kørende traktorer, vises som kørende. Traktorer, der ventede ved et +Wait-punkt, genoptager ventningen. Står et flow stoppet, så tryk **[Start]**. + +Flows fra ældre versioner indlæses automatisk. --- -## 9. Lagerfanerne: beholdning og statistik +## 9. Lagerfanerne: beholdning og "Kræver handling" -Fanerne **Fabrikker**, **Siloer**, **Stalde** og **Palleskure** viser hver én bygningstype. De er -bygget ens. Tallene opdateres hvert sekund, og hver fane husker, hvilken bygning du sidst valgte. +Fanerne **Fabrikker**, **Siloer**, **Stalde** og **Palleskure** viser hver én bygningstype og er bygget +ens. Øverst vælger du **Vis: Varer | Bygninger**. Fanen husker valget. Tallene opdateres hvert sekund. -### Statistik for en bygning +### Visningen Varer -Vælg en bygning i **Vis bygning**. Under vælgeren står en tabel med én række pr. vare og -kolonneoverskrifter øverst: +**Nøgletal** for fanens varer: -| Vare | I bygningen | Værdi nu | Ved toppris | Gården | Rækker til | Forbrug/prod. døgn | -|---|---|---|---|---|---|---| -| Ensilage | 483.5k/935.5k 52 % | 173.921 kr | 193.400 kr | 1.7M | 34,0 døgn | -50.0k | -| Mælk | 1.3k/10.3M 0 % | intet salgssted | | 233.1k | - | +14.4k | -| **Bygningen i alt** | | 425.885 kr | 429.039 kr | | | | +| Nøgletal | Betydning | +|---|---| +| **Lagerværdi nu** | Beholdningens værdi ved den bedste pris lige nu | +| **Ekstra ved toppris** | Hvor meget mere den er værd ved årets højeste pris | +| **Løber tør snart** | Antal varer, der rækker under 3 døgn | +| **Næsten fuldt** | Antal producerede varer, der er mindst 85 % fulde | + +**— Kræver handling —** viser op til fire linjer, de vigtigste først: + +| Linje | Hvornår | +|---|---| +| *Hvede løber tør om … — gården har …, bruger …/døgn* | Gården bruger mere, end den producerer, og varen rækker under 3 døgn (rød under 1 døgn) | +| *Mælk er 92 % fuld — fuld om …* | En produceret vare er mindst 85 % fuld (rød fra 95 %) | +| *Sælg Raps nu: prisen er 94 % af årets top — …* | Prisen er mindst 90 % af årets top, beholdningen er værd mindst 10.000, og gården bruger den ikke op | + +**Klik på en linje** for at handle: + +- **Løber tør:** + - Findes der allerede et forsyningsflow med varen til en af de bygninger, der bruger den, åbnes det + (*→ klik: åbn flow '…'*). + - Har gården nok af varen andre steder, oprettes et forsyningsflow (*→ klik: opret flow*). Guiden + åbner på oversigten med navnet * til *, bygningerne der bruger varen som mål og + varen valgt. Tjek traktorerne, og tryk **Start flow** eller **Gem uden at starte**. + - Hjælper et flow ikke, fordi gården har for lidt i alt, står der *→ producér/køb*. Klik viser *Et flow + hjælper ikke — gården har kun … i alt. Producér eller køb mere.* +- **Sælg nu:** åbner et eksisterende salgsflow, eller opretter et nyt (*→ klik: opret salgsflow*) med + navnet *Sælg *, retning Ud fra bygning, fanens bygninger med varen som kilder og varen på Salg. +- **Næsten fuldt:** kun til orientering. + +Under det står **varelisten** med kolonnerne **Vare**, **Beholdning**, **Værdi nu** og **Gården netto · +rækker** samt en fyldningsbjælke. Klik på en vare for at folde den ud til de bygninger, den ligger i, +med hver bygnings andel (*62 % af varen*). Bjælkens farve: rød/gul ved problemer, grøn når varen bruges +eller produceres, blå for almindeligt lager. + +Varelisten viser fanens bygninger, men forbrug, produktion og "rækker til" regnes altid for hele gården. + +### Visningen Bygninger + +Vælg en bygning i **Vis bygning**. Tabellen har én række pr. vare: | Kolonne | Betydning | |---|---| -| **I bygningen** | Mængde og kapacitet i den valgte bygning samt fyldningsgrad. Palleskure viser paller af ledige pladser, fx `24/4000 paller 1 %` | -| **Værdi nu** | Værdien ved den bedste pris lige nu, blandt alle salgssteder på kortet | +| **I bygningen** | Mængde og kapacitet i bygningen samt fyldningsgrad. Palleskure viser paller af ledige pladser | +| **Værdi nu** | Værdien ved den bedste pris lige nu | | **Ved toppris** | Værdien, hvis du sælger ved årets højeste pris | -| **Gården** | Gårdens samlede beholdning af varen i alle bygninger, også dem på de andre faner | +| **Gården** | Gårdens samlede beholdning af varen i alle bygninger | | **Rækker til** | Hvor mange døgn gårdens beholdning holder ved forbrug minus produktion. *stiger* betyder, at gården producerer mindst lige så meget, som den bruger | | **Forbrug/prod. døgn** | Forbrug pr. døgn med minus og produktion pr. døgn med plus | -Nederst står **Bygningen i alt** med bygningens samlede værdi nu og ved toppris. +Nederst står **Bygningen i alt** og derunder et gitter med alle fanens bygninger og deres indhold. +Fabrikkens outputs er markeret med `*`. -### Oversigt over fanens bygninger - -Under statistikken står fanens bygninger med indhold som et gitter. Bygningens navn står til venstre, -og varerne står med op til to pr. række. Fabrikkens outputs er markeret med `*`, og palleskure -viser antal paller. +Knappen **Omdøb bygning** (kun i visningen Bygninger) giver den valgte bygning et nyt navn. Et tomt navn +giver butiksnavnet tilbage. **Hvad tælles med** -- **Fabrikker:** forbrug og produktion for de produktioner, der kører lige nu. Fabrikker, der står - stille eller mangler input, tæller ikke med. +- **Fabrikker:** forbrug og produktion for de produktioner, der kører lige nu. - **Stalde, forbrug:** foder, halm og vand. Vand tælles ikke, når stalden har automatisk vand. - Foderforbruget fordeles på de fodertyper, der ligger i truget. -- **Stalde, produktion:** hvert dyrs produktion efter alder gange antal dyr. Det dækker mælk, - bøffelmælk, gødning, gylle, æg, uld og gedemælk. Unge dyr under produktionsalderen tæller ikke. - -Varer, der ikke bruges på gården, har en streg under **Rækker til**. Varer uden salgssted står som -*intet salgssted*. +- **Stalde, produktion:** hvert dyrs produktion efter alder gange antal dyr: mælk, gødning, gylle, æg, + uld m.m. Unge dyr under produktionsalderen tæller ikke. --- -## 10. Markarbejde: alle marker +## 10. Markarbejde Fanen **Marker** kører gårdens marker: slåafgrøder (græs, kløver, lucerne), høstafgrøder (korn, raps, -majs, roer, kartofler …), klargøring og såning efter høst, og pleje mens afgrøden vokser. AutoDrive kører -på vejen, Courseplay arbejder på marken, og Smart Pickup bestemmer hvilken mark, hvilket trin og hvilke -maskiner. Kræver **Courseplay** ud over AutoDrive. +majs, roer, kartofler …), klargøring og såning efter høst og pleje, mens afgrøden vokser. AutoDrive kører +maskinerne ad vejen til marken, Courseplay arbejder på marken, og Smart Pickup bestemmer, hvilken mark, +hvilket trin og hvilke maskiner. Kræver **Courseplay** ud over AutoDrive. | Markens art | Kæde | |---|---| | **Slåafgrøde, Ensilage** | Slås → (Rives) → Samles op → gæringssilo/silo | | **Slåafgrøde, Hø** | Slås → Vendes → (Rives) → Samles op → silo | -| **Høstafgrøde** | Høstes (+ aflæsningsvogne) → Efter høst | +| **Høstafgrøde** | Høstes (+ aflæsningsvogne) → (halm hakkes, samles eller presses) → Efter høst | | **Efter høst / bar mark** | (Stub hakkes) → (Kalkes) → Pløjes eller Kultiveres → (Sås) → (Tromles) | -| **Pleje mens afgrøden vokser** | Gødes · Ukrudt bekæmpes · Kalkes — når jorden trænger | +| **Pleje mens afgrøden vokser** | Gødes · Ukrudt bekæmpes · Kalkes — når marken trænger | -### Vælg og glem: afgrøde på marken +Vin og oliven er aldrig slåafgrøder. De høstes, og sprøjter og spredere kører i gangene mellem rækkerne. -Det nemmeste: vælg en afgrøde (fx *Hvede*) i guidens trin **Afgrøde** (Opsæt mark). Så passer moden resten: - -- **Vokser der noget nu**, får det lov at vokse færdig, bliver passet (gødning, ukrudt, kalk) og høstet - eller slået, når det er klart. -- **Bagefter** klargøres marken og tilsås med din afgrøde. Er det ikke såtid, venter marken ("venter på - såtid for …"). -- **Står din afgrøde der allerede** (græs → græs), bliver den bare slået og samlet op, hver gang den er klar. -- **Bar mark:** klargøres og tilsås, så snart det er såtid. -- Derefter kører cyklussen af sig selv: vækst → pleje → høst → klargøring → såning → … - -Med en afgrøde valgt kører marken automatisk. Du kan stadig vælge ensilage/hø, halm, antal maskiner, -jordbehandling og pleje i de næste trin. Vælg *Behold det der gror* for at styre marken som før. - -### Opsætning +### Forberedelse 1. **En markør pr. mark.** Lav en AutoDrive-markør ved markkanten med navnet `F` + marknummeret, fx - `F109`. Maskinerne kører dertil ad vejen, før Courseplay tager over. Højst 400 m fra marken. Mangler - den, står marken med `!` og sendes ikke ud. -2. **Faste sæt.** Redskabet skal sidde på traktoren (eller være selvkørende). Moden kobler aldrig på. -3. **Markflåde.** Knappen **Markflåde** viser alle køretøjer med et markredskab, med rolle og bredde. Med - **Brug alle ledige maskiner** = Ja (standard) finder moden selv maskinerne; med Nej bruges kun dem med - flueben. Køretøjer i et flow, køretøjer AutoDrive/Courseplay allerede kører, - og køretøjer du selv kører, bruges aldrig. En sprøjte/spreder har først en rolle, når den har fyld på - (gødning → gødningsspreder, kalk → kalkspreder, sprøjtemiddel → ukrudtsmaskine). -4. **Parkering.** Sæt en AutoDrive-parkering på hvert sæt (på redskabet). Færdige sæt kører dertil. + `F109`, højst 400 m fra marken. Maskinerne kører dertil ad vejen, før Courseplay tager over. Mangler + den, står marken med `!` og rød, og intet sendes ud. +2. **Maskiner.** Brug faste sæt (redskabet sidder på traktoren, eller maskinen er selvkørende) og/eller + maskinpuljen (frakoblede redskaber med parkering og Connect-markør, se + [kapitel 7](#7-traktorer-vogne-og-maskinpulje)). +3. **Parkering.** Giv hvert sæt, hvert puljeredskab og hver puljetraktor en AutoDrive-parkering. Færdige + maskiner kører dertil. +4. **Påfyldning.** Såmaskiner, sprøjter og spredere fyldes af AutoDrive ved et sted med varen og en + AutoDrive-markør (gårdens eget lager før en købestation). -### Bredde +### Listen over marker -- Courseplay kan højst køre **50 m** bredt. Moden bruger Courseplays egen bredde (den i HUD'en). -- **Vender, river, jordbehandling, såning, pleje og høst** kører marken i deres egen bredde. -- **Læssevognen** skal ramme skårene og kører et kopieret kursus: - - **uden Riv:** slåmaskinens kursus, og vognen skal være mindst lige så bred som slåbredden. - - **med Riv:** rivens kursus, og vognens bredde er ligegyldig. Moden måler, hvor riven lægger skåret - (midt i banen eller ude til siden), og forskyder læssevognen tilsvarende. Målingen står under marken. -- Har du kun smalle standardvogne, så slå **Riv** til. +Fanen er en farvet liste med én række pr. ejet mark, sorteret efter nummer: -### En mark +| Kolonne | Eksempel | +|---|---| +| **Mark** | `F22`, eller `! F22` når markøren mangler | +| **Afgrøde** | *Hvede*, *bar jord* eller *stub (Hvede)* | +| **Plan** | *-> Hvede* (mål-afgrøde), *Ensilage + riv*, *Høst + så*, *Klargøring* | +| **Kørsel** | *Auto* eller *Manuel* | +| **Status** | Trinnet og en kort grund, fx *Klar 93 %*, *Høstes*, *Gødes: venter på maskine* | +| **Kører** | Maskinerne på marken | -Klik på en mark i tabellen. Under tabellen står markens **resumé** — én linje pr. emne: +Yderst til højre står **[Start]** eller **[Stop]**. Farverne betyder det samme som i Flows: + +| Farve | Betyder | +|---|---| +| **Grøn** | Marken arbejder | +| **Gul** | Marken venter, fx på en maskine, på tørvejr, eller på at du flytter en høster | +| **Rød** | Problem: markøren mangler, maskinen er for bred/smal, bredden er ukendt, ingen maskine kan opgaven, eller der mangler en afgrøde at så | +| **Grå** | Stoppet eller på pause | + +- **[Start]** starter marken nu (kræver markøren). Står marken og vokser, startes pleje, hvis den + trænger. Statuslinjen viser *F22 startes, når en maskine er ledig*. +- **[Stop]** stopper maskinerne. Redskaberne foldes til transport, og puljeredskaber sættes på plads. +- Klik et andet sted på rækken for at åbne markens **redigeringsvindue**. +- Står markarbejdet på **pause** efter "Stop alt og parkér", står der øverst: *! Markarbejdet står på pause + siden "Stop alt" (gemmes med savegamet) — tryk Start alle i Oversigt, eller [Start] på en enkelt mark.* + Markerne vises grå med *(pause)*, og **[Start]** genoptager kun den ene mark. +- Står markflåden på "kun med flueben" uden nogen flueben, står der en advarsel øverst, fordi intet kan + sendes ud. + +Nederst står knappen **Markflåde** og statuslinjen *Marker i gang: 3 af 24*. + +### Markens redigeringsvindue + +Vinduet **Mark F22** viser markens resumé, én linje pr. emne med **[Ret]**: | Linje | Eksempel | |---|---| | **Afgrøde** | *Behold det der gror* / *-> Hvede* | | **Afgrødens valg** | *Ensilage, river* / *halm hakkes* | | **Klargøring** | *Automatisk* / *Pløj, kalk* | -| **Pleje** | *gødning, ukrudt* | -| **Maskiner** | *3 faste* / *ledige maskiner*, *1 ad gangen*, *1 aflæsningsvogne* | -| **Lager** | *Marksilo* / *Automatisk* / en valgt silo | +| **Pleje** | *Automatisk* / *gødning, ukrudt* | +| **Maskiner** | *2 faste* / *ledige maskiner*, *1 ad gangen*, *1 aflæsningsvogne* | +| **Lager** | *Marksilo* / *Automatisk* / *2 valgte siloer* | -**Klik på en linje** for at rette netop det (fx lageret): kun det ene trin åbnes, og **Gem** gemmer og går -tilbage. Under resuméet står hele statusteksten og markøren. - -Bundknapperne: **Start nu / Stop mark**, **Opsæt mark** og **Markflåde**. +Klik på en linje for at rette netop det trin, og tryk **Gem**. Under resuméet står hele statusteksten og +markøren (*Markør F22, 35 m fra marken*). Linjen **Opsæt mark** åbner hele guiden. Knapperne er **Luk** +(også ESC) og **Start nu** / **Stop mark**. En mark kan ikke slettes. ### Guiden "Opsæt mark" -**Opsæt mark** sætter marken op med ét spørgsmål ad gangen ("Trin 3 af 7 — …"). Trin, der ikke passer -til marken, springes over; en opsat mark åbner med de nuværende valg. Uden valgt mark vælger du først marken. +Guiden stiller ét spørgsmål ad gangen (*Trin 3 af 7 — Klargøring*). Trin, der ikke passer til marken, +springes over. Knapperne er **Næste**, **Tilbage** og **Annullér**. | Trin | Vises når | Valg | |---|---|---| -| **Afgrøde** | altid | *Behold det der gror* eller en afgrøde at så (mål-afgrøde, se ovenfor). Høst-/bar mark: *Så samme afgrøde igen efter høst* | -| **Afgrødens valg** | slåafgrøde (nu eller som mål): Ensilage/Hø + Riv. Høstafgrøde med halm: Halm hakkes/samles/presses | | -| **Klargøring** | efter høst / bar mark / skift af afgrøde | *Automatisk (anbefalet)* eller *Vælg selv*: jordbehandling, kalk, stubhakning, tromle | -| **Pleje** | afgrøde der gror | Gødning, ukrudt (ikke på slåafgrøder); kalk her, når der ingen klargøring er | -| **Maskiner** | altid | Antal ad gangen (1–5), aflæsningsvogne ved høst (1–3), **Faste maskiner til marken?** + listen | -| **Lager** | høst/slåning | *Brug marksiloen?* (når der er en), ellers *Automatisk* eller *Vælg selv* blandt de 8 nærmeste | -| **Oversigt** | altid | Resuméet; klik på en linje for at rette. **Kør automatisk** (Auto) eller **Gem uden at starte** (Manuel) | +| **Mark** | guiden er åbnet uden valgt mark | Marken, fx *F22 — Hvede — Venter* | +| **Afgrøde** | altid | *Behold det der gror* eller en afgrøde at så (mål-afgrøde). Ved *Behold* på en høstmark: *Så samme afgrøde igen efter høst* | +| **Afgrødens valg** | slåafgrøde eller afgrøde med halm | Slåafgrøde: *Ensilage* eller *Hø* og *Riv skårene sammen før opsamling*. Halm: *Hakkes*, *Samles op til silo* eller *Presses til baller og samles* | +| **Klargøring** | ikke ved en slåmark, der beholder sin afgrøde | *Automatisk (anbefalet)*: pløjer når jorden trænger, ellers kultiverer, og kalker ved lav pH. *Vælg selv*: jordbehandling (Auto/Kultivér/Pløj/Ingen), kalk, stubhakning, tromle efter såning | +| **Pleje** | der gror, eller skal gro, en afgrøde | *Automatisk (anbefalet)*: gødning op til max, ukrudt og kalk ved lav pH. *Vælg selv*: gødning, ukrudt (ikke på slåafgrøder), og kalk når der ikke er noget klargøringstrin | +| **Maskiner** | altid | *Maskiner ad gangen (multi-tool)* 1–5, *Aflæsningsvogne under høst* 1–3, *Faste maskiner til marken?* + listen | +| **Lager** | ikke på bar mark | *Brug marksiloen?* når der er en, ellers *Automatisk* (nærmeste silo med plads, ensilage til gæringssilo) eller *Vælg selv* blandt de 8 nærmeste | +| **Oversigt** | altid | Resuméet. **Kør automatisk** (Auto) eller **Gem uden at starte** (Manuel) | -Knapperne: **Næste**, **Tilbage**, **Annullér**. Intet gemmes før **Kør automatisk** / **Gem uden at starte** -(eller **Gem** ved ret af én linje). Lukkes menuen, eller skifter du fane, kasseres guiden. Med en -mål-afgrøde kører marken altid automatisk. Mangler markøren, kan marken sættes op; arbejdet venter på markøren. +Intet gemmes før **Kør automatisk** / **Gem uden at starte** (eller **Gem**, når du retter én linje). +Lukkes menuen, eller skifter du fane, kasseres guiden. Mangler markøren, kan marken godt sættes op, men +arbejdet venter på markøren. -**Faste maskiner:** en fast maskine bruges kun på denne mark, og marken venter på sin egen hellere end at -låne en anden. Listen viser kun ledige maskiner og dem der allerede er faste her; maskiner der er faste på -andre marker står som "N maskiner er faste på andre marker (F22)". +**Faste maskiner:** en fast maskine bruges kun på denne mark, og marken venter hellere på sin egen end +at låne en anden. Maskiner, der er faste på andre marker, vises ikke: *N maskiner er faste på andre +marker (F22) og vises ikke her*. -**Markflåde** (knap): den fælles markflåde — *Brug alle ledige maskiner* og listen med flueben, "fast på -F22", "i gang på F108" og bredde-advarsler. **Til marker** går tilbage. +**Pleje** sker kun, når marken trænger: gødning op til max, ukrudt kun på høstafgrøder og kun når der er +ukrudt nok, og højst to gange af hver slags pr. vækstsæson. En strigle tager kun småt ukrudt. -Moden spørger aldrig om: scanning, hvornår der høstes/slås/gødes/sprøjtes, påfyldning, tømning ved forkert -vare, ventetid ved regn, bredde-kontrol, valg af nærmeste maskine, ruter og gæringssilo ved ensilage. +### Vælg og glem: afgrøde på marken -En mark er **klar**, når mindst 90 % står i høstvinduet. **Start nu** starter hele kæden (eller pleje, hvis -marken vokser og trænger). På en bar mark starter den klargøring/såning. **Stop mark** stopper maskinerne. +Vælg en afgrøde (fx *Hvede*) i trinnet **Afgrøde**, så passer moden resten, og marken kører automatisk: + +- **Vokser der noget andet nu**, får det lov at vokse færdig og bliver høstet eller slået. Derefter + klargøres marken og tilsås med din afgrøde. +- **Står din afgrøde der allerede** (græs → græs), bliver den slået og samlet op, hver gang den er klar. +- **Bar mark** klargøres med det samme, uanset årstid. Kun såningen venter på såtiden (*venter på såtid + for …*). +- Derefter kører cyklussen af sig selv: vækst → pleje → høst → klargøring → såning → … + +Vælg *Behold det der gror* for at styre marken selv med **Kør automatisk** eller **Gem uden at starte**. + +### Markflåde og maskinpulje + +Knappen **Markflåde** viser den fælles markflåde (**Til marker** går tilbage): + +- **Brug alle ledige maskiner (Nej = kun med flueben)**. Med Ja (standard) finder moden selv maskinerne. + Med Nej bruges kun maskiner med flueben. +- Én række pr. maskine med rolle og bredde, fx *Læssevogn 2 — læssevogn, 40,8 m*, og evt. *frø ok*, + *!! tom for frø*, *!! over 50 m*, *!! bredde ukendt — sæt i Courseplay*, *fast på F22* eller + *i gang på F108*. +- Ved høstere: ** kører selv på vejen (Nej = for bred, du kører den til marken)**. Se *Brede høstere* + nedenfor. +- **Maskinpulje — traktorer** med hk og status: *ledig*, *mangler egen AD-parkering*, *spilleren kører + den*, *opgave F22*, *AutoDrive/Courseplay kører*, *ikke i markflåden (flueben)*, *står uden for + AutoDrive-vejnettet*, *har et redskab på (kobl det af for at bruge den i puljen)* eller *sætter redskab + af og kører hjem*. +- **Maskinpulje — redskaber (parkering "X" + markør "Connect X")** med status: *parkeret ved …*, *på …*, + *reserveret — en traktor er på vej*, *hører til flowet '…'*, *kunne ikke kobles på — prøves igen om … + min*, *ikke i puljen — mangler AD-parkering* eller *ikke i puljen — mangler markøren "Connect …"*. + +Køretøjer i et kørende flow, køretøjer AutoDrive eller Courseplay allerede kører, og køretøjer, du selv +kører, bruges aldrig. En sprøjte eller spreder får sin rolle efter det, den kan tage. + +**Når der ikke er et færdigt sæt ledigt**, sender moden en ledig puljetraktor efter et puljeredskab med +den rigtige rolle (bedste pasform, se [Maskinpuljen](#maskinpuljen)). Status viser *henter redskab*. +Traktoren kobler på, folder redskabet til vejen, arbejder marken, sætter redskabet af på dets parkering +og kører hjem. Det gælder også **aflæsningsvogne ved høst**: en ledig traktor henter en puljevogn, der kan +bære afgrøden, følger høsteren, til høsten er færdig, og sætter vognen på plads. + +Marker, der venter på en maskine, betjenes efter tur, den der har ventet længst først. Der sendes højst én +maskine ud hvert 10. sekund, og intet sendes ud de første 2 minutter efter indlæsning. + +### Bredde + +- Courseplay kan højst køre **50 m** bredt. Moden bruger Courseplays egen bredde. +- Maskiner med en arbejdsbredde under 1,5 m sendes ikke ud (*bredde ukendt — sæt i Courseplay*). +- **Vender, river, jordbehandling, såning, pleje og høst** kører marken i deres egen bredde. +- **Læssevognen** skal ramme skårene: + - **uden Riv** kører den slåmaskinens kursus og skal være mindst lige så bred som slåbredden. + - **med Riv** kører den rivens kursus, og bredden er ligegyldig. Moden måler, hvor riven lægger + skåret, og forskyder læssevognen tilsvarende. +- Har du kun smalle standardvogne, så slå **Riv** til. + +### Brede høstere + +Sætter du en høster til **Nej** under *kører selv på vejen*, kører moden den ikke ad vejen. Når marken +skal høstes, beder moden dig køre høsteren til marken, montere skærebordet og stige ud (med en påmindelse +hvert 5. minut). Når høsteren står på marken med et passende skærebord, og du er steget ud, overtager +moden. **Start nu** overtager med det samme, hvis skærebordet passer. Bagefter beder moden dig afmontere +skærebordet og køre høsteren hjem. + +### Courseplay-kurser og genindlæsning + +- Moden **genbruger Courseplay-kurser**. Passer maskinens eget kursus til marken og bredden, bruges det. + Ellers kopieres et passende kursus fra en anden maskine, og først derefter beregnes et nyt. Store marker + kan tage op til 5 minutter at beregne. Ændres marken, glemmes kurserne. +- **Genstart efter indlæsning:** spillet stopper alle hjælpere, når det gemmer. Moden husker ved hvert gem, + hvilke maskiner Courseplay kørte, og starter netop dem igen fra det nærmeste waypoint efter indlæsning + (efter 2 minutter, og ikke under pause fra "Stop alt"). Står maskinen på en mark, hvor trinnet passer + til dens rolle, meldes den ind på marken igen. ### Vejr, påfyldning og beskeder -- **Regn:** høst, slåning, vending, rivning og hø-opsamling sendes ikke ud, mens det regner ("venter på - tørvejr"). Maskiner, der allerede kører, fortsætter. Jordbehandling, såning og pleje kører i regn. -- **Påfyldning:** når en såmaskine eller sprøjte/spreder bliver tom, kører AutoDrive den selv til nærmeste - sted, der har varen, fylder op og kører tilbage, og Courseplay fortsætter. -- **Såperiode:** en afgrøde, der ikke kan sås i den aktuelle periode, venter med grund. -- **Beskeder:** grøn besked når en mark er færdig, rød ved fejl. -- **Marksilo:** en silo højst 150 m fra marken er et mellemlager. `!` hvis intet *Ud fra bygning*-flow - tømmer den hjem. +- **Regn:** høst, slåning, vending, rivning, hø-opsamling, halmopsamling og presning sendes ikke ud, mens + det regner (*venter på tørvejr*). Maskiner, der allerede kører, fortsætter. Jordbehandling, såning, pleje + og ensilage-opsamling kører i regn. +- **Påfyldning:** når en såmaskine, sprøjte eller spreder er tom, kører AutoDrive den til nærmeste sted + med varen og en AutoDrive-markør, fylder op og kører tilbage, og Courseplay fortsætter. En sprøjte med + en forkert rest tømmes først. +- **Såperiode:** en afgrøde, der ikke kan sås i perioden, venter med grunden *… kan ikke sås i denne periode*. +- **Beskeder:** *Smart Pickup: F22 er færdig* når en mark er færdig, rød besked ved fejl. +- **Høst færdig:** høsten er færdig, når under 5 % af marken står. Har høsteren stadig korn i tanken, + sendes en aflæsningsvogn ud, før marken går videre. +- **Klargøring færdig:** kultivering og pløjning måles på jorden. Er mindst 95 % klargjort, går marken + videre, også efter genindlæsning. +- **Marksilo:** en silo højst 150 m fra marken kan bruges som lager (se [kapitel 12](#12-marksiloer)). ### Status og grunde | Status | Betyder | |---|---| -| **Venter / Klar** | Vokser / klar (Manuel venter på Start nu). Med "— trænger til …" når pleje er nødvendig | +| **Venter / Klar** | Vokser / klar (Manuel venter på [Start]). Med *— trænger til …* når pleje er nødvendig | | **Slås, Vendes, Rives, Samles op, Høstes, Kultiveres, Pløjes, Sås, Tromles, Gødes …** | Trinnet er i gang | | **Færdig** | Kæden er færdig. Marken bliver *Klar* igen, når den er vokset | -| `venter på ledig …` | Alle sæt med rollen er optaget | -| `multi-tool: … kun 2 af 3 ledige` | For få ledige sæt til "Maskiner pr. trin" | -| `ingen … kan tage opgaven` | Fx høster med forkert skærebord eller såmaskine der ikke kan så afgrøden | -| `venter på tørvejr` | Regn | -| `Courseplay kunne ikke lave kursus` | Nyt forsøg efter 5 minutter | +| *venter på maskine* / *venter på ledig …* | Alle sæt med rollen er optaget | +| *venter på traktor* | Et puljeredskab er ledigt, men ingen puljetraktor | +| *henter redskab* | En puljetraktor er på vej efter redskabet | +| *for få ledige* | For få ledige sæt til *Maskiner ad gangen* | +| *ingen kan* | Ingen maskine kan opgaven, fx forkert skærebord eller en såmaskine, der ikke kan så afgrøden | +| *for bred* / *for smal* / *bredde ukendt* | Se *Bredde* ovenfor | +| *vælg afgrøde* | Marken skal sås, men der er ikke valgt afgrøde | +| *ikke såtid nu* | Afgrøden kan ikke sås i perioden | +| *venter på genvækst* | Græsset skal vokse helt ud igen efter en afbrudt slåning | +| *venter på tørvejr* | Regn | -Loglinjerne i `log.txt` begynder med `ADSmartPickup: F109 …`. En samlet testliste står i -`docs/TESTPLAN-markarbejde.md`. +Hele forklaringen står i markens redigeringsvindue. Loglinjerne i `log.txt` begynder med +`ADSmartPickup: F109 …`. -## 11. Opskrifter +--- + +## 11. Fanen Måned + +Fanen **Måned** svarer på spørgsmålet: *kan jeg roligt sove til næste måned?* + +- Øverst står perioden, dagen og klokken, fx * (aug) · dag 2 af 3 · kl. 14:30*. +- Derunder står dommen: *Intet haster — du kan roligt sove til næste måned*, eller *OBS: 2 marker skal nå + det før månedsskiftet*. +- Tabellen viser kun marker med arbejde i gang (ellers *Ingen marker har arbejde i gang*): + +| Kolonne | Betydning | +|---|---| +| **Mark** | Marknummeret | +| **Arbejde** | Trinnet i gang | +| **Afgrøde** | Afgrøden, eller den der skal sås | +| **Færdig** | Fremdrift i procent. Høst og slåning regnes på hele markens areal | +| **Næste** | Næste trin, eller – | +| **Vindue** | *ok*, *OBS: visner snart* (afgrøden visner ved næste periodeskift) eller *OBS: sidste såmåned* (såvinduet lukker efter denne måned) | + +Rækker med OBS står øverst. Under tabellen står **Kan sås nu, ikke gået i gang:** med bare marker, hvis +mål-afgrøde kan sås nu, fx *F14: Hvede — OBS: sidste såmåned* eller *F9: Raps — kan også sås næste måned*. + +--- + +## 12. Marksiloer + +Fanen **Marksiloer** kører varer fra marksiloerne hjem til gården med ledige tømmevogne. En **marksilo** er +en silo højst 150 m fra en af gårdens marker. Siloer, der bruges i et flow, siloer valgt som gårdlager og +siloer tæt ved et gårdlager (samme klynge) er ikke marksiloer. + +**Indstillinger** + +| Indstilling | Betydning | Værdier | +|---|---|---| +| **Hent marksiloer hjem automatisk** | Slår funktionen til | Ja/Nej, standard Nej | +| **Maks. vogne ude** | Højst så mange vogne på tur ad gangen | 1–10, standard 2 | +| **Mindste mængde pr. vare** | En vare hentes først, når siloen har mindst så meget | 5.000–50.000 l, standard 10.000 l | +| **Kør overskud til produktion (foder til staldene først)** | Når gården har foder nok, køres overskuddet til gårdens fabrikker | Ja/Nej, standard Nej | +| **Foderreserve: staldenes forbrug i** | Så mange døgns staldforbrug bliver på gården, før der køres til fabrik | 3, 7, 14 eller 30 døgn, standard 7 | +| **Gårdlagre (hvor varerne køres hjem til)** | Ja ud for de siloer, der skal modtage varerne | Vælg mindst ét | + +Vælger du intet gårdlager, står der *Vælg mindst ét gårdlager nedenfor — ellers køres intet hjem*. + +**Status og tabel** + +Statuslinjen viser fx *1/2 vogne ude · 3 siloer venter*. Tabellen **Marksiloer med varer** har kolonnerne +**Silo**, **Afgrøde**, **Liter**, **På vej** og **Status**: + +| Status | Betyder | +|---|---| +| *ok* | Klar til at blive hentet | +| *mangler markør* | Marksiloen har ingen AutoDrive-markør | +| *ingen gård tager …* | Intet valgt gårdlager tager varen | +| *pause (kom ikke i gang)* | En tur gik i stå. Siloen og varen springes over i 10 minutter | +| *→ fabrik* | Turen går til produktion | + +**Vogne** + +- Moden låner ledige tømmevogne fra markflåden hvert minut. De skal have en AutoDrive-parkering. Vogne i + flows lånes aldrig. Er ingen ledig, forklarer statuslinjen hvorfor, fx *Ingen ledig tømmevogn: 1 uden + AD-parkeringspunkt, 2 optaget, 0 med spiller i, 0 ikke i flåden*. +- Moden bruger også maskinpuljen: en ledig solo-traktor henter en puljevogn ved dens Connect-markør, + kører turen og sætter vognen på plads igen. +- **Høsten først:** så mange tømmevogne, som høstere i gang skal bruge, holdes tilbage (*1 tømmevogn(e) + holdes tilbage til høstere der arbejder*). +- Den største beholdning hentes først med den nærmeste vogn, der kan bære varen. Turen køres med + AutoDrives *Hent og aflever*, hvorefter vognen parkerer. +- Er marksiloen tom, før vognen er fuld, køres resten videre. Er gårdlageret fuldt, køres der videre til + et andet lager. +- Intet planlægges, mens markarbejdet står på pause efter "Stop alt og parkér". + +--- + +## 13. Navne på bygninger og maskiner + +FS25 kan ikke selv omdøbe bygninger, så moden har sine egne navne. De gemmes i +`ADSmartPickup_names.xml` i savegamet og bruges overalt i menuen. + +- **Nye bygninger navngives automatisk:** stalde efter dyretype (*Kostald 1*, *Svinestald 2*, + *Hønsehus 1* …), gårdsiloer (*Gårdsilo 1*), marksiloer efter den nærmeste F-markør (*F118 marksilo*), + andre siloer (*Silo 3*), palleskure (*Palleskur 1*) og fabrikker efter butiksnavnet. Numrene fortsætter + fra det højeste, der findes. Navne, der allerede er givet, ændres aldrig. +- **Omdøb bygning** i lagerfanerne giver en bygning dit eget navn. Tomt navn = butiksnavnet. +- **Markmaskiner**, der stadig har modelnavnet, navngives efter rollen: *Læssevogn 5*, *Såmaskine 2*, + *Mejetærsker 1*, *Roeoptager 2* osv. Navne, du selv har givet, røres ikke. +- **Flow-traktorer** hedder som flowet (se [kapitel 7](#7-traktorer-vogne-og-maskinpulje)). + +### Konsolkommandoer + +Åbn spillets konsol for at bruge dem: + +| Kommando | Funktion | +|---|---| +| `spuNameFleet` | Giver alle traktorer og lastbiler uden for flows butiksnavnet (*Fendt 942 1*, *Fendt 942 2* …) og omdøber deres egen parkering til `P `, hvis ingen anden deler den. Overskriver egne navne på de køretøjer. Gem spillet bagefter. Pas på: en eksisterende `Connect `-markør passer ikke længere | +| `spuConnect` | Kobler det nærmeste redskab (inden for ca. 3 m) på den maskine, du sidder i | +| `spuDetach` | Kobler redskaberne bag den maskine, du sidder i, af | +| `spuTrip A > B > C` | Kører en tur over flere markører: Connect-markører kobler på, Afkobl eller redskabets egen parkering kobler af, og ved andre markører holdes der 10 sekunder. Mest til test | + +--- + +## 14. Opskrifter ### Hold en kostald fodret 1. Wait-mappe *Cow Wait* med 2–4 markører tæt på stalden. -2. Nyt flow, **Ind til bygning**, Til = stalden, Varer = **Auto**. -3. Wait-pulje = *Cow Wait*, Ture = 0. -4. To traktorer med tipvogne, Ja, Start. +2. **Nyt flow**, **Ind til bygning**, Til = stalden, Varer = **Automatisk**. +3. Ture = 0, Vent ved = *Cow Wait*. +4. To traktorer med tipvogne, **Start flow**. Traktorerne fordeler foder, halm og vand efter behov og tager TMR frem for ensilage. +### Solo-traktor med fast vogn + +1. Parkér vognen, og giv den en AutoDrive-parkering, fx `P Cow Food vogn 1`. +2. Lav markøren `Connect P Cow Food vogn 1` lige ved vognens trækøje. +3. Opsæt flowet, og vælg traktoren uden vogn under **Traktorer**. Tjek at **↳ Vogn** viser den rigtige + vogn, og gem. +4. **Start flow**: traktoren henter vognen. Ved **Stop flow** tømmes vognen og sættes tilbage. + ### TMR-fabrik der fodrer flere stalde -1. Flow A: **Ind til bygning**, Til = TMR-fabrikken, Varer = Auto. Traktoren henter det, de tændte - produktioner mangler. -2. Flow B: **Ud fra bygning**, Fra = TMR-fabrikken, TMR = **Lager**. TMR køres til en silo. +1. Flow A: **Ind til bygning**, Til = TMR-fabrikken, Varer = Automatisk. +2. Flow B: **Ud fra bygning**, Fra = TMR-fabrikken, TMR = **Lager**. 3. Flow C: **Ind til bygning**, Til = alle kostalde. Den mest trængende stald får turen. ### Sælg mælk ved høj pris -1. Nyt flow, **Ud fra bygning**, Fra = stald(e) eller mælketanke. +1. **Nyt flow**, **Ud fra bygning**, Fra = stald(e) eller mælketanke. 2. Mælk = **Salg, ellers lager**, Sælg fra = 90 %, Kør til lager over = 80 %. -3. En tankvogn, Ja, Start. +3. En tankvogn, **Start flow**. Tankvognen venter ved Wait, til prisen er høj. Løber tanken fuld før, kører den mælken til lager. ### Tøm et palleskur til salg -1. Nyt flow, **Ud fra bygning**, Fra = objektlageret. +1. **Nyt flow**, **Ud fra bygning**, Fra = objektlageret. 2. Varerne = **Salg**, **Saml op på én tur** = Ja. -3. En UAL-lastbil, Ja, Start. +3. En UAL-lastbil, **Start flow**. + +### En vare løber tør + +1. Åbn lagerfanen, fx **Stalde**, visningen **Varer**. +2. Klik på linjen *… løber tør om …* under **Kræver handling**. +3. Guiden åbner med et færdigt forslag. Vælg traktorer, og tryk **Start flow**. --- -## 12. Fejlfinding +## 15. Fejlfinding Moden skriver alle beslutninger i `log.txt` med forstavelsen `ADSmartPickup:`. Loggen ligger i `Documents/My Games/FarmingSimulator2025/`. @@ -718,38 +1088,63 @@ Moden skriver alle beslutninger i `log.txt` med forstavelsen `ADSmartPickup:`. L | Problem | Løsning | |---|---| | Bygningen står med *INGEN MARKØR* | Sæt en AutoDrive-markør inden for 40 m af triggeren. Wait-markører tæller ikke | -| En stalds gylle- eller mælkepunkt mangler | Punkterne sidder tit i hver sin ende af stalden. Giv hvert punkt sin egen markør | -| Traktoren står låst i listen | Læs grunden ud for den i [afsnit 7](#7-traktorer-og-vogne) | +| En stalds gylle- eller mælkepunkt mangler | Giv hvert læssepunkt sin egen markør | +| Traktoren kan ikke vælges i guiden | Klik på linjen *N traktorer kan ikke bruges her* for at se grunden | +| Solo-traktoren kan ikke vælges | Der skal være en ledig vogn: frakoblet, med AutoDrive-parkering og en `Connect `-markør, og den skal kunne bære flowets varer | +| Traktoren henter ikke vognen | Tjek at Connect-markøren hedder præcis `Connect ` + parkeringens navn, og at den står ved trækøjet med plads til at bakke | | Traktoren holder bare ved Wait | Læs status. Den venter typisk på pris, plads eller behov | | Nabosiloen får læsset | Sæt AutoDrives *Max trigger distance* til 10 m | | *kan ikke nå salgssted* | Forbind salgsstedet til vejnettet i begge retninger | | Palleskuret udleverer ikke | Flyt markøren, så vognens autoload-zone dækker udleveringen | -| Paller falder af | Tjek at vognen har UAL. Stropper spændes efter læsning | | Traktoren fylder ikke ved siloen | Efter 30 sekunder uden fyldning slipper moden, og AutoDrive kører videre | -| Flowet kører ikke efter indlæsning | Tryk **Start run** igen | -| Alle traktorer henter det samme | Tjek at de er i samme flow. Kun traktorer i samme flow fordeler sig | +| Intet markarbejde starter | Er der pause fra "Stop alt"? Tryk **Start alle flows** i Overblik, eller **[Start]** på marken | +| Marken står med `!` | Marken mangler sin `F`-markør | +| Et flow kører ikke efter indlæsning | Tryk **[Start]** på flowet | +| Alle traktorer henter det samme | Kun traktorer i samme flow fordeler sig | **Nyttige loglinjer** ``` ADSmartPickup: 'JCB 1' bytter læs: 2400 l STRAW tilbage i Silo 3, målet mangler FORAGE ADSmartPickup: 'Virtus' holder ved Wait 3: MILK 82 % af top (kræver 90), lager 41 % -ADSmartPickup: 'Fastrac' genoptager ventning ved Cow Wait efter genindlæsning +ADSmartPickup: F109 … ``` --- -## 13. Ordliste +## 16. Test og feedback + +Moden testes løbende, og fejlrapporter er meget velkomne. + +1. Opret et issue i repoet: +2. Beskriv, hvad du gjorde, hvad du forventede, og hvad der skete. Nævn versionen (står i + `log.txt` og i mod-listen). +3. Vedlæg `log.txt` fra `Documents/My Games/FarmingSimulator2025/log.txt`. Er filen for stor, så vedlæg + i det mindste linjerne, der starter med `ADSmartPickup`. +4. Et skærmbillede af menuen Smart Pickup hjælper tit. + +--- + +## 17. Ordliste | Ord | Betydning | |---|---| | **AD** | AutoDrive | +| **CP** | Courseplay | | **Flow / run** | En navngivet opskrift med bygninger, varer, regler og traktorer | -| **Markør** | AutoDrive-destination ved en bygning | +| **Markør** | AutoDrive-destination | | **Trigger** | Det område ved en bygning, hvor der læsses på eller af | | **Wait-punkt** | Markør i en mappe med *Wait* i navnet, hvor traktorer venter | +| **Parkering** | AutoDrives parkeringsdestination for et køretøj eller redskab, fx `P Cow Food vogn 1` | +| **Connect-markør** | Markøren `Connect `, hvor en traktor kobler et redskab på | +| **Afkobl-markør** | Markør, hvor redskaber bag traktoren kobles af | +| **Solo-traktor** | Traktor uden vogn eller redskab bagpå | +| **Fast sæt** | Redskab uden Connect-markør. Det bliver siddende og udlånes aldrig | +| **Maskinpulje** | Frakoblede redskaber/vogne og ledige traktorer, som moden parrer efter behov | +| **Markflåde** | De maskiner, markarbejdet må bruge | | **UAL** | Universal Autoload, mod der læsser paller automatisk | -| **Objektlager** | Palle- og ballelager, fx fra HVF-pakken | +| **Objektlager** | Palle- og ballelager | | **Toppris** | Varens højeste pris i løbet af året ifølge spillets sæsonkurve | | **Reserve** | Det, gårdens egne stalde og fabrikker bruger det næste døgn | | **Tid til tom** | Hvor længe en fabriks lager af en vare holder ved det nuværende forbrug | +| **Marksilo** | En silo ved en mark, der bruges som mellemlager | diff --git a/docs/USER_MANUAL.md b/docs/USER_MANUAL.md index 4aa5dd4..94dee02 100644 --- a/docs/USER_MANUAL.md +++ b/docs/USER_MANUAL.md @@ -1,37 +1,46 @@ # AD Smart Pickup — user manual -Version 1.28.0 · Farming Simulator 25 · add-on for AutoDrive +Version 1.60.11 · Farming Simulator 25 · add-on for AutoDrive *Dansk version: [BRUGERMANUAL.md](BRUGERMANUAL.md)* -AD Smart Pickup makes your AutoDrive tractors think for themselves. You say what should go where, -and the mod decides trip by trip which good to fetch, from which silo, and where to unload it. -Everything is set up in one place in the ESC menu, and all tractors in a flow start and stop together. +AD Smart Pickup makes your AutoDrive tractors think for themselves. You say what goes where, and the +mod decides trip by trip which good to fetch, from which silo, and where to deliver it. It can also run +the farm's fields with Courseplay and bring field silos home. Everything is set up in the **Smart Pickup** +menu in the ESC menu. -The mod does two things: +Main features: -- **Supply (into building):** keeps barns and factories filled. Each trip, the tractor fetches the - good the target needs most, from a silo anywhere on the map. -- **Delivery (out of building):** empties factories, silos, barns and pallet sheds. Goods are taken - to storage or sold when the price is close to the yearly top. +- **Supply (into building):** keeps barns and factories filled. Each trip the tractor fetches the good + the target lacks most, from a silo anywhere on the map. +- **Outbound (out of building):** empties factories, silos, barns and pallet sheds. Goods are taken to + storage or sold when the price is near the yearly top. +- **Field work:** mowing, harvesting, preparation, sowing and crop care. AutoDrive drives the machines to + the field, and Courseplay works the field. +- **Field silos:** goods in field silos are brought home to the farm's storages. +- **Machine pool:** free tractors fetch detached trailers and implements themselves and park them again. --- ## Contents 1. [Requirements and installation](#1-requirements-and-installation) -2. [Key concepts](#2-key-concepts) -3. [Prepare the map: markers and Wait points](#3-prepare-the-map-markers-and-wait-points) +2. [Basic concepts](#2-basic-concepts) +3. [Prepare the map: AutoDrive markers](#3-prepare-the-map-autodrive-markers) 4. [The Smart Pickup menu](#4-the-smart-pickup-menu) 5. [Supply: keep barns and factories filled](#5-supply-keep-barns-and-factories-filled) -6. [Delivery: empty, store and sell](#6-delivery-empty-store-and-sell) -7. [Tractors and trailers](#7-tractors-and-trailers) +6. [Outbound: empty, store and sell](#6-outbound-empty-store-and-sell) +7. [Tractors, trailers and the machine pool](#7-tractors-trailers-and-the-machine-pool) 8. [Start, stop and saving](#8-start-stop-and-saving) -9. [The storage tabs: inventory and statistics](#9-the-storage-tabs-inventory-and-statistics) -10. [Field work: all fields](#10-field-work-all-fields) -11. [Recipes](#11-recipes) -12. [Troubleshooting](#12-troubleshooting) -13. [Glossary](#13-glossary) +9. [The storage tabs: stock and "Needs attention"](#9-the-storage-tabs-stock-and-needs-attention) +10. [Field work](#10-field-work) +11. [The Month tab](#11-the-month-tab) +12. [Field silos](#12-field-silos) +13. [Names of buildings and machines](#13-names-of-buildings-and-machines) +14. [Recipes](#14-recipes) +15. [Troubleshooting](#15-troubleshooting) +16. [Testing and feedback](#16-testing-and-feedback) +17. [Glossary](#17-glossary) --- @@ -39,190 +48,290 @@ The mod does two things: **Required** -- **FS25_AutoDrive.** The mod builds on AutoDrive's Pickup & Deliver and does not change AutoDrive. -- An **AutoDrive road network** connecting silos, barns, factories, selling points and Wait points. +- **FS25_AutoDrive.** The mod builds on AutoDrive and does not change AutoDrive itself. +- An **AutoDrive road network** connecting silos, barns, factories, selling points, fields, parking spots + and Wait points. **Recommended** -- **Universal Autoload (UAL)** on trailers that should carry pallets. Without UAL the mod can only - move bulk goods such as grain, milk, silage and TMR. +- **Courseplay** for field work. Without Courseplay, supply and outbound work, but field work does not. +- **Universal Autoload (UAL)** on the trailers that carry pallets. Without UAL the mod can only haul + bulk goods such as grain, milk, silage and TMR. **Installation** -1. Put `FS25_ADSmartPickup.zip` in the mods folder: +1. Download `FS25_ADSmartPickup.zip` from Releases: + +2. Put the zip file in the mods folder. Do **not** unpack it: `Documents/My Games/FarmingSimulator2025/mods/` -2. Enable the mod together with AutoDrive when you choose your savegame. -3. The AutoDrive setting **"Use folders"** must be allowed on. The mod switches it on when a flow - starts. The setting is global, so it applies to the whole game. +3. Enable the mod together with AutoDrive (and Courseplay) when you choose your savegame. +4. The mod switches on the AutoDrive setting **"Use folders"** itself when a flow starts. The setting is + global, so it applies to the whole game. --- -## 2. Key concepts +## 2. Basic concepts -**Flow.** A flow is a named recipe. It has a direction, buildings, goods, rules and a list of -tractors. Older versions called it a *run*, and the word is still used on some buttons. +**Flow.** A named recipe with a direction, buildings, goods, rules and a list of tractors. All tractors +in a flow are started and stopped together. Older versions called it a *run*, and the word still appears +in a few texts, for example when you delete a flow. -**Building.** A barn, factory, silo, object storage (pallet shed) or selling point. You pick -buildings, not markers. The mod finds the AutoDrive marker that belongs to the building's trigger. -Only the farm's own buildings are listed. Fixed map buildings that come with the land, such as -Dakota's biogas plant, count as the farm's once the land under them is bought. +**Building.** A barn, factory, silo, object storage (pallet shed) or selling point. You choose +buildings, not markers. The mod finds the AutoDrive marker that belongs to the building's trigger by +itself. Only the farm's own buildings are listed. Fixed map facilities tied to the land, such as a +biogas plant, count as the farm's once the land under them is bought. -**Marker.** An AutoDrive destination. Every building needs a marker within 40 m of its loading or -unloading trigger. A barn often has several, such as one at the milk tank and one at the slurry tank. +**Marker.** An AutoDrive destination. Each building needs a marker within 40 m of its loading or +unloading trigger. The mod also uses markers with special names for parking, hitching and fields (see +[chapter 3](#3-prepare-the-map-autodrive-markers)). -**Wait point.** A marker in an AutoDrive folder with the word **Wait** in its name. Tractors park -here while they wait for space, for a good price or for demand. Wait points are one shared pool for -all tractors. +**Wait point.** A marker in an AutoDrive folder with the word **Wait** in its name. Tractors that are +waiting for room, a good price or a need hold here. -**Need.** How much of a good a barn or factory is missing. For factories it is measured as *time -until empty*: the good that runs out first is fetched first. +**Need.** How much of a good a barn or factory lacks. For factories it is calculated as *time to +empty*: the good that runs out first is fetched first. -**Reserve.** What the farm's own barns and factories will use during the next day. The reserve is -never sold. +**Reserve.** What the farm's own barns and factories will use in the next day. The reserve is never sold. + +**Set.** A tractor with an implement or trailer attached, or a self-propelled machine. A **fixed set** is +an implement that has no Connect marker. It stays attached and is never lent out. + +**Machine pool.** Detached implements and trailers with a parking spot and a Connect marker, plus free +tractors without an implement. The mod pairs them up when needed. --- -## 3. Prepare the map: markers and Wait points +## 3. Prepare the map: AutoDrive markers ### Markers at the buildings Place an AutoDrive marker where the **tractor's nose** stops when the trailer is in the trigger. The marker must be at most **40 m** from the building's trigger. -- **Silos in tight rows:** the mod picks the silo whose trigger is *behind* the tractor's nose in - the driving direction. This stops the neighbouring silo from getting the load. -- **Barns with several loading points:** give each point its own marker, such as *Cow 1 Milk* and - *Cow 1 Slurry*. The mod shows all of them next to the barn. +- **Silos in tight rows:** the mod picks the silo whose trigger lies *behind* the tractor's nose in the + driving direction. This stops the neighbouring silo from getting the load. +- **Barns with several loading points:** give each point its own marker, e.g. *Cow 1 Milk* and + *Cow 1 Slurry*. The mod shows them all next to the barn. - **Object storages (pallet sheds):** place the marker so the trailer's autoload zone covers the - storage's output area, just like when you load by hand. + storage's output area, exactly as when you load by hand. - **Separate drop and pickup:** if a factory has both a pickup and a drop marker, drop is used for - unloading, even when pickup is closer to the unloading trigger. The drop marker must be within - 25 m of the trigger. Silos and pallet sheds always use their own nearest marker. -- **Marker names:** names are free. The menu shows the building's own name and the marker's name. + unloading, even when pickup is closer to the unloading trigger. The drop marker must be within 25 m of + the trigger. Silos and pallet sheds always use their own nearest marker. +- **Marker names at buildings** are free. The menu shows the building's name and the marker's name. ### Wait points -1. Create an AutoDrive folder with **Wait** in its name, such as *Cow Wait* or *Wait*. +1. Create an AutoDrive folder with **Wait** in its name, e.g. *Cow Wait* or *Wait*. 2. Put as many markers in the folder as you have room for. One per tractor is plenty. -3. Connect every Wait point to the road network **in both directions**, from the buildings and back. +3. Connect each Wait point to the road network **in both directions**, from the buildings and back. -Wait markers are never used as a source or target, even when they stand close to a building. -A Wait point counts as taken when it is reserved, or when another vehicle physically stands within -6 m of it. -Markers in field folders, such as *F91 Wait*, are left alone, because it is the **folder** name -that counts. +It is the **folder's** name that counts. A marker called *F91 Wait* inside a field folder is not a Wait +point. Wait markers are never used as a source or target. A Wait point counts as occupied when it is +reserved, or when another vehicle stands within 6 m of it. + +### Parking: "P " + +The mod uses AutoDrive's own **park destination** on each vehicle and implement (set in AutoDrive). +Finished machines drive there, and trailers and implements are dropped there. The convention is to name +the parking marker `P `, e.g. `P Cow Food vogn 1`. The console command `spuNameFleet` uses the +same convention (see [chapter 13](#13-names-of-buildings-and-machines)). + +### Hitching: "Connect " + +A **Connect marker** is where the tractor stops to hitch an implement or trailer. + +- The name is `Connect ` followed by **exactly** the name of the implement's parking marker (upper and + lower case do not matter). For a trailer parked at `P Cow Food vogn 1`, the marker is called + `Connect P Cow Food vogn 1`. `Kobl ` also works. +- Place the marker right at the trailer's drawbar, so the tractor can reverse up to it. +- When the tractor has arrived, it hitches within about **3 m**. If the trailer's drawbar is **3–8 m** + behind the tractor and almost in line, the tractor slowly reverses the last bit by itself. +- If you drive a tractor with AutoDrive's "Drive to" to a Connect marker yourself, the mod hitches too. +- If you rename a parking spot, rename the Connect marker as well. + +An implement or trailer **without** a Connect marker is a fixed set and is never lent out. + +### Detaching: "Afkobl" + +A marker called `Afkobl` (or starting with `Afkobl `, `Kobl af`, `Detach` or `Disconnect`) detaches the +implements **behind** the tractor when it drives there with AutoDrive. Front weights and front loaders +stay on. A plough and similar tools are unfolded first if the game requires it. If you drive a tractor +with "Drive to" to a pool implement's own parking spot, the implement is dropped there as well. + +### Fields: "F" + +Every field the mod should work needs a marker at the field edge named `F` + the field number, e.g. +`F109`, at most 400 m from the field. See [chapter 10](#10-field-work). ### Tight silos and AutoDrive's trigger distance AutoDrive tips at the first unloading trigger within its global **"Max trigger distance"**, which is -25 m by default. If your silos stand closer than that, the neighbouring silo can get the load. Set -the option to **10 m** in that case. The mod writes a warning to the log the first time it sees a -storage target with a neighbouring trigger. +25 m by default. If silos are closer together, the neighbouring silo may get the load. In that case set +the option to **10 m**. The mod writes a warning to the log the first time it sees a storage target with +a neighbouring trigger. --- ## 4. The Smart Pickup menu -Press **ESC** and open the **Smart Pickup** tab. It has seven sub-tabs: +Press **ESC**. The **Smart Pickup** menu sits just above the game's **Settings**. It has nine tabs: | Tab | Contents | |---|---| -| **Overview** | A table of all flows and the Wait pools | -| **Flows** | Editing of the selected flow | -| **Fields** | Field work on all fields: mowing, harvest, preparation, sowing, care (chapter 10) | -| **Factories** | Inventory and statistics for the farm's factories | -| **Silos** | Inventory and statistics for the farm's silos | -| **Barns** | Inventory and statistics for the farm's barns | -| **Pallet sheds** | Inventory and statistics for the farm's object storages | +| **Overview** | Table of all flows, the Wait pools, and the buttons that start and stop everything | +| **Flows** | Colour-coded list of flows with Start/Stop per row and an edit window | +| **Fields** | Colour-coded list of fields with Start/Stop per field, the "Set up field" guide and the field fleet | +| **Month** | Field work in progress and whether anything must finish before the month ends | +| **Field silos** | Automatic hauling home from field silos | +| **Factories** | Stock and statistics for the farm's factories | +| **Silos** | Stock and statistics for the farm's silos | +| **Barns** | Stock and statistics for the farm's barns | +| **Pallet sheds** | Stock and statistics for the farm's object storages | ### Overview -The **Overview** tab shows all flows as a table with the columns **Flow**, **Goods**, **From**, **To**, -**Running** and **Status**. The selected flow is marked with `>`. Running shows tractors at work out of -the flow's tractors. Status shows a warning, the reason tractors are waiting, or the flow's rule. +At the top it says **Click a flow to edit it**. The table has the columns **Flow**, **Goods**, **From**, +**To**, **Running** and **Status**, split into **· Into building ·** and **· Out of building ·** and sorted +by name. Click a flow to select it and switch to the **Flows** tab. -**Click a flow** in the table to jump straight to the **Flows** tab with that flow selected. The status -line at the bottom shows how many tractors and flows are running in total. +- **Goods** shows *by need* when the flow chooses the goods itself, otherwise the chosen goods. +- **From** shows *all silos* for supply. A `!` after a building name means the building has no marker. +- **Running** shows tractors at work out of the flow's tractors, e.g. `2/3`. +- **Status** shows a warning (`!!`), the reason the tractors are holding, or the flow's rule, e.g. + `by need — lowest first`, `price >= 90 %, storage > 80 %`, or just `storage > 80 %` for a pure storage + flow. -Earlier the board was one long line per flow: +Below the table is **Wait pools**: each Wait folder with its number of points, how many are occupied, and +by whom. The status line at the bottom shows e.g. `Running: 3 of 5 tractors · 2 of 4 flows active`. + +**Buttons on Overview** + +| Button | Function | +|---|---| +| **Start all flows** | Lifts a pause from "Stop all and park" and starts every flow that has tractors. The tractors start **one at a time, every 10 seconds**. Flows already running are left alone | +| **Stop all flows** | Stops all flows. The trailers are emptied and parked, and the tractors drive home | +| **Stop all and park** | Stops everything and pauses, even after reloading (see below) | +| **New flow** | Opens the "Set up flow" guide for a new flow | + +Afterwards the status line shows what happened, e.g. `Start all: 6 tractors start one at a time (every +10 seconds), 1 flows already running, 1 skipped`, and up to three reasons for skipped tractors. While +the queue runs it shows `Starting tractors: 2 of 6 …`. + +### Stop all and park + +**Stop all and park** is for when you want the farm to go quiet, e.g. before you save and take a break: + +- All flows are stopped. Flow tractors empty their trailer, drop it at its parking spot and drive home. +- All field work is stopped. Implements are switched off, raised and **folded for transport**. Pool + implements are dropped at their parking spot and the tractor drives home. Field progress is kept. +- Field silo loans are stopped. +- Other vehicles drive to their AutoDrive parking spot. +- Harvesters you have to drive to the field yourself (too wide) are not moved. They are listed as + `fetch yourself (too wide): …`. Vehicles without a parking spot are listed as `no park destination: …`. +- The mod **pauses**. The pause is saved in the savegame, so no field work or field silo loan starts by + itself after reloading. The status line shows `Paused — press Start all to continue`, and the + **Fields** tab shows a line about the pause at the top. + +**Start all flows** lifts the pause and starts the flows again, one tractor at a time. A single field can +be resumed with **[Start]** on its row without lifting the pause for the others. + +### Flows + +The **Flows** tab is a colour-coded list with one row per flow: ``` -> Milk sale: Milk · Cow Barn 1 + Cow Barn 2 → Sell · price >= 90 %, storage > 80 % · Virtus · Running (1/1) - Barn feed: by need · all silos → Cow Barn 1 · need · JCB 1 + JCB 2 · Stopped (2 tractors) +● Cow Food · by need · 2/2 · by need — lowest first [Stop] +● Milk Sale · Milk · 1/1 · MILK 78 % af top (kræver 90) [Stop] +● Egg Store · Eggs · 0/1 [Start] ``` -Read the line as **name: goods · from → to · rule · tractors · status**. The board is split into -**Into building** and **Out of building**, and each group is sorted by name. The flow selector follows -the same order. +Each row shows a coloured dot, the name, the goods, tractors running/total, the status and **[Start]** or +**[Stop]** on the far right. The list is split into *Into building* and *Out of building*. -- A `!` after a building name means the building has no marker. -- `!!` in the status is a warning, such as a selling point that cannot be reached. -- The status also says why a tractor is waiting, such as `SUGAR 78 % of top (needs 90)`. - -### Buttons - -The **Flows** tab shows the board (one line per flow) and below it the selected flow's **summary**: Name, -Direction, From/To, Goods, (Storage), Rules, Wait at, Tractors and Status. **Click a flow** on the board to -select it, and **click a summary line** to change just that step (**Save** saves and returns). Click -**Name** to rename the flow. - -| Button | What it does | +| Colour | Meaning | |---|---| -| **Start flow / Stop flow** | Starts or stops all tractors in the flow | -| **Set up flow** | The guide for the selected flow with its current choices | -| **New flow** | The guide for a new flow. Nothing is created before you press **Start flow** or **Save without starting** | -| **Delete flow** | Deletes the flow and stops its running tractors. Cannot be undone | +| **Green** | The flow is running without problems | +| **Yellow** | The flow is started but waiting, e.g. at a Wait point, for a trailer or for a price | +| **Red** | Problem: a warning (`!!`), or the last start rejected every tractor | +| **Grey** | Stopped or never started | -On the **Overview** tab the buttons are instead: +*By need* means that each trip fetches the good the target is lowest on. -| Button | What it does | +- Click **[Start]/[Stop]** on the far right to start or stop the flow directly. If tractors are skipped, + the reason is also shown as a message on the right of the screen (red if none started). +- Click anywhere else on the row to open the **edit window**. +- The **New flow** button at the bottom opens the guide. The status line shows `Flows running: 2 of 4`. + +### The edit window + +The window **Edit flow: ** opens on top of the list. Under the title is the flow's status in the +same colour as in the list. Below that is the flow's **summary**, one line per step with **[Edit]** at the +end, e.g. *Direction: Into building [Edit]*: + +- Click a line to change just that step. **Save** saves without starting the flow. +- Click **Name** to rename the flow. +- The line **Set up flow** opens the whole guide inside the window. + +| Button | Function | |---|---| -| **Start all flows** | Starts every flow that has tractors. Flows already running are left alone, so no trip is interrupted | -| **Stop all flows** | Stops all active tractors in all flows | -| **New flow** | Jumps to the **Flows** tab and opens the guide for a new flow | +| **Close** (also ESC) | Closes the window. If a step or the guide is open, the first press closes it and the second press closes the window | +| **Start flow / Stop flow** | Starts or stops the flow | +| **Delete flow** | Deletes the flow after confirmation. Running tractors are stopped. Cannot be undone | -Afterwards the status line shows how many flows and tractors were started, plus up to three reasons for -tractors that were skipped. All reasons are in `log.txt`. +If you switch tab or close the menu, unsaved changes are discarded. ### The "Set up flow" guide -Same step screen and buttons as the field guide (**Next**, **Back**, **Cancel**; one question at a time, -steps that do not apply are skipped): +The guide asks one question at a time: *Step 3 of 8 — Goods*. Steps that do not apply are skipped, so a +flow has up to 9 steps. The buttons are **Next**, **Back** and **Cancel**. Nothing is created until you +press **Start flow** or **Save without starting** on the last step. | Step | Shown when | Choices | |---|---|---| -| **Name** | new flow | *Change name …* opens the text field | -| **Direction** | always | *Into building* (supply) / *Out of building* (delivery) | +| **Name** | new flow | *Change name …* opens the text field. Tractors are named after the flow | +| **Direction** | always | *Into building* (supply) or *Out of building* (outbound) | | **To** / **From** | always | The buildings (see *The building list* below) | -| **Goods** | always | Supply: *Automatic (what the building needs)* or *Choose myself*. Delivery: per good Off / Store / Sell / Sell, else store | -| **Storage** | delivery with a good on Store | *Automatic (nearest with room)* or *Choose myself* among the stores | -| **Rules** | always | Delivery: sell from %, store above %, collect in one trip. Supply: trips, leave Wait below % | -| **Wait at** | always | The Wait pool | -| **Tractors** | always | Free tractors and the flow's own. Tractors in other flows (and those whose trailer does not fit) are hidden with a line | -| **Summary** | always | The summary; click a line to change it. **Start flow** or **Save without starting** | +| **Goods** | always | Supply: *Automatic (what the building needs)* or *Choose myself*. Outbound: per good *Off*, *Store*, *Sell* or *Sell, else store* | +| **Storage** | outbound with a good on Store | *Automatic (nearest with room)* or *Choose myself* among the storages | +| **Rules** | always | Supply: loops and *Return from Wait below*. Outbound: *Sell from*, *Drive to storage above*, *Always sell when source is above* and *Collect in one trip*, but only the rules the goods' policies use (see [chapter 6](#outbound-rules)) | +| **Wait at** | always | *All (nearest free)* or a specific Wait folder | +| **Tractors** | always | See below | +| **Summary** | always | The summary. Click a line to change it. **Start flow** or **Save without starting** | + +**The Tractors step** + +- The list shows the flow's own tractors first and then the free ones, with capacity and what the + trailer can carry: *JCB 1 — 32,000 l — can carry: … — OK*. +- **Solo tractors** (no trailer attached) can be chosen when there is a **free trailer**. The row reads + * — no trailer attached: fetches a free trailer*. A free trailer is detached, has an + AutoDrive parking spot with a Connect marker, does not belong to another flow, and can carry the + flow's goods. +- When you choose a solo tractor, the **guide suggests a trailer**. First trailers whose parking name + contains the flow's name, then trailers whose parking name contains *Disponibel* (Danish for + "available"; only this word is recognised), then the rest alphabetically. +- Below the tractor is the line **↳ Trailer**, where you can switch to another free trailer. If there is + none, it reads *↳ no free trailer (detached, with a Connect marker, able to carry the goods)*. +- The flow **remembers the pair** tractor → trailer when you save. The trailer's parking spot therefore + does not need to be named after the flow. +- Tractors in other flows are hidden: *N tractors run in other flows and are hidden*. +- Tractors whose trailer does not fit are folded into the line *N tractors cannot be used here (trailer + does not fit) — click to see why*. Click to see the name and reason for each. The mod never asks about the marker at the building, route checks, best feed first, load swap, source -choice, spreading over several targets, resting empty sources or tractor names. - -### Direction - -The **Direction** field switches between two kinds of flow: - -- **Into building** is supply. See [section 5](#5-supply-keep-barns-and-factories-filled). -- **Out of building** is delivery. See [section 6](#6-delivery-empty-store-and-sell). +choice, distribution across several targets, resting empty sources, or tractor names. ### The building list Each building is shown on one line with its markers and their distance to the trigger: ``` -Cow Barn (large) — Cow 1 Milk 6 m · Cow 1 Slurry 4 m -Silo 7 (silo) — NO MARKER within 40 m — place an AD marker at the trigger +Kostald 1 — Cow 1 Milk 6 m · Cow 1 Slurry 4 m +Silo 7 — NO MARKER within 40 m — place an AD marker at the trigger ``` -Set **Yes** on the buildings the flow should use. The chosen ones are at the top. Buildings without a -marker are hidden until you switch on **Show all buildings**. Otherwise the list is sorted by name, so *Silo 9* comes -before *Silo 10*. A building you have sold shows as *building no longer exists*. +Set **Yes** for the buildings the flow should use. Buildings without a marker are hidden until you turn +on **Show all buildings**. The list is sorted by name, so *Silo 9* comes before *Silo 10*. A building you +have sold appears as *Removed building (no longer exists) — set NO*. --- @@ -232,536 +341,840 @@ A supply flow keeps one or more buildings filled with everything they use. ### Setup -1. **New flow** (the guide), and leave Direction on **Into building**. -2. Under **To**: set Yes on the barns and factories to fill. The list also shows silos that can only - be filled and not emptied, such as the Pumps & Hoses drive-on bunkers (DOB 115) that feed a biogas - fermenter. For those, **Select** with the goods the fermenter needs works best. -3. Under **Goods**: choose **Auto** or **Select**. - - **Auto** fetches everything the building accepts. For factories, that is the inputs of the +1. **New flow**, and choose Direction **Into building**. +2. Under **To**: set Yes for the barns and factories that should be filled. The list also shows silos + that can only be filled and not emptied, e.g. drive-on bunkers feeding a biogas fermenter. For those, + **Choose myself** with the goods the fermenter needs works best. +3. Under **Goods**: choose **Automatic** or **Choose myself**. + - **Automatic** fetches everything the building accepts. For factories that is the inputs of the productions that are switched on. - - **Select** lets you tick specific goods. -4. Set **Loops**, **Return from Wait below** and **Wait pool**. See the rules below. -5. Set **Yes** on the tractors that should drive. -6. Press **Start run**. + - **Choose myself** lets you tick specific goods. +4. Set **Loops** and **Return from Wait below** under Rules, and pick a Wait folder under **Wait at**. +5. Choose the tractors and press **Start flow**. -**From** always shows *all silos*. The tractor fetches from any silo on the map. +**From** always reads *all silos*. The tractor fetches from any silo on the map. ### How each trip is chosen -Before each loading, the mod looks at the targets and picks: +Before each loading, the mod looks at the targets and chooses: -1. **The neediest good.** For factories, that is the good that runs out first. For barns, it is the - lowest fill level compared with capacity. -2. **Full loads first.** Goods where a whole load fits come before goods where only part fits. -3. **The barn that needs it most.** With several targets, the neediest one gets the trip. -4. **Which silo.** Your own silos are used before borrowing from neighbours. The least-filled silo - is emptied first, so leftovers get cleared. Milk, slurry and digestate are taken from the - *fullest* source, so production never stops. +1. **Neediest good.** For factories it is the good that runs out first. For barns it is the lowest fill + level relative to capacity. +2. **Full load first.** Goods where a whole load can be unloaded go before goods where only part fits. +3. **The target that needs it most.** If the flow has several targets, the neediest gets the trip. + Targets with the fewest other trailers on the way go first. +4. **Which silo.** Own silos are used before borrowing from neighbours. Among silos with plenty of the + good (at least 5,000 l or a quarter of a load), the least filled one is emptied first, so leftovers + are cleared. If no silo has plenty, the fullest is used. Milk, slurry and digestate are always fetched + from the *fullest* source, so production does not stop. -A factory's own **inputs** are never taken from the factory itself. Straw in a TMR factory stays -where it is. A barn's loading points are only used for the barn's own products: milk, slurry, -manure, eggs and wool. Straw and feed are never collected at a barn. +A factory's own **inputs** are never fetched from the factory itself. Straw in a TMR factory stays where +it is. A barn's loading points are only used for the barn's own production: milk, slurry, manure, eggs +and wool. -**Factories follow their productions.** Switch TMR on in a factory, and the tractor starts fetching -silage, hay, straw and mineral feed by itself. Switch it off, and the tractor stops. Productions -the map switched off because an input ran out still count as wanted, because those are exactly the -ones that need filling. +**Factories follow their productions.** If you switch on TMR in a factory, the tractor starts fetching +silage, hay, straw and mineral feed by itself. Switch it off and the tractor stops. Productions the map +has switched off because of missing input count as wanted. -### Wrong cargo on the trailer +### Wrong load on the trailer -If a tractor has a good on the trailer that is not one of the flow's goods, it first takes it to a -silo that accepts it. It is not unloaded at the flow's target, even when the target accepts the good. -With **Select**, only the ticked goods count. With **Auto**, everything the target accepts counts. +If a tractor has a good on its trailer that is not one of the flow's goods, it is first taken to a silo +that accepts it. It is not delivered to the flow's target. With **Choose myself** only the ticked goods +count. With **Automatic** everything the target accepts counts. ### Best feed first -Feed in a barn trough shares space. If better feed such as **TMR** is on the list, lower feed such -as silage and hay is only fetched when the trough is **at least 75 % empty**. That way silage does -not fill the trough while TMR is available. +Feed in a barn trough shares space. If better feed such as **TMR** is on the list, lower feed such as +silage and hay is only fetched when the trough is **at least 75 % empty**. -Animals that eat from several food groups **at the same time**, such as chickens with grain and root -crops, do not follow that rule. Each group gets its share of the trough by how much the animals eat of -it. For chickens that is grain 80 % and root crops 20 %. Both groups must be included under **Select** -for the chickens to reach 100 %. +Animals that eat from several feed groups **at the same time**, such as chickens with grain and beet +pulp, do not follow that rule. Each group gets its share of the trough according to how much the animals +eat from it. Both groups must be ticked under **Choose myself** for the chickens to reach 100 %. -### Several tractors on the same barn +### Several tractors for the same barn -The mod remembers what is already **on the way** to each barn. With four trailers on the same barn -they spread out. One fetches TMR, another straw, and a third drives to the next barn, instead of all -of them fetching the same thing. +The mod remembers what is already **on the way** to each barn. If you have four trailers on the same +barn, they spread across goods and barns instead of fetching the same thing. ### Leftover loads and Wait -When the target cannot take the whole load, this happens: +If the target cannot take the whole load: 1. The tractor unloads what fits. -2. If the flow has several targets, the rest goes to the other target with the most room for the - good, at least 1,000 l free. Large trailers therefore spread over all the barns. -3. If none of the targets has room, the rest is taken to the **nearest free Wait point**, so the trigger is not blocked for the next - tractors. -4. It drives back when the target can take **the whole rest**, or has dropped below **Return from - Wait below**. +2. If the flow has several targets, the rest goes to the other target with the most room for the good + (at least 1,000 l free). +3. If none of the targets has room, the rest is taken to the **nearest free Wait point**, so the trigger + is not blocked. +4. It drives back when the target can take **the whole rest**, or has dropped below **Return from Wait + below**. -A rest of less than 100 l that the target cannot take counts as empty. The tractor drives on instead -of blocking the trigger. +A leftover of less than 100 l that the target cannot take counts as empty. ### Load swap -When a tractor waits with a good the target is full of, while the target needs another good on the -list, it swaps loads: - -1. The rest is unloaded in an ordinary storage silo that accepts the good and has room. -2. The tractor then fetches the good the target is missing. - -This only happens when the target is missing at least a quarter of its capacity of the other good, -and there is a road to the silo and on to the target. With no suitable silo, the tractor stays at Wait. +If a tractor is waiting with a good the target is full of, while the target lacks another good on the +list, it swaps loads: the rest is unloaded in an ordinary storage silo with room, and the tractor fetches +the good the target lacks. This only happens when the target lacks at least a quarter of its capacity of +the other good, and there is a road to the silo and on to the target. If no suitable silo exists, the +tractor stays at Wait. ### Supply rules | Rule | Meaning | Values | |---|---|---| -| **Loops** | Number of trips per tractor before it parks | 0 = endless, otherwise 1–99 | -| **Return from Wait below** | A waiting tractor returns when the target is below this fill level | 10–90 %, default 50 % | -| **Wait pool** | Which Wait folder the tractors wait in | *All (nearest free)* or a folder | - -Below the rules, **To fetch** lists the goods the flow is fetching now, neediest first. +| **Loops** | Trips per tractor, after which it parks | 0 = endless, otherwise 1–99 | +| **Return from Wait below** | A waiting tractor drives back when the target is below this fill level | 10–90 %, default 50 % | +| **Wait at** | Which Wait folder the tractors wait in | *All (nearest free)* or a folder | --- -## 6. Delivery: empty, store and sell +## 6. Outbound: empty, store and sell -A delivery flow takes goods out of buildings and drives them to storage or to a selling point. +An outbound flow takes goods out of buildings and hauls them to storage or to a selling point. ### Sources -Under **From** you can pick: +Under **From** you can choose: -| Source | What is taken | +| Source | What is fetched | |---|---| | **Factory** | The factory's outputs, both bulk and pallets from the pallet spawner | | **Silo** | The silo's contents | -| **Barn** | Milk, slurry and manure from the barn's loading points, including attached extension tanks such as Milk Tank Extension. Eggs and wool are collected as pallets at the barn's pallet spawner, such as the chicken coop's. Place a marker at the spawner | +| **Barn** | Milk, slurry and manure from the barn's loading points, including attached extension tanks. Eggs and wool are fetched as pallets at the barn's pallet spawner. Place a marker at the spawner | | **Object storage** | Pallets and bales. They are taken out one at a time | -| **Storage** | Other buildings with a loading station, such as the Pumps & Hoses separator hall with digestate. The goods are read from the loading station | +| **Storage** | Other buildings with a loading station, e.g. a separator hall with digestate | -**Sources with shared storage:** some storages are extensions that share their stock with everything -within a set distance, such as a row of milk tanks. Loading at one empties them all. The mod detects -this and treats them as one stop, so the tractor does not drive between the tanks. The first one in -the list is used, and the log says which sources were merged. Choosing a single tank as the source -is enough. +**Sources with shared storage:** some storages share their stock with their neighbours, e.g. milk tanks +in a row. The mod detects this and treats them as one stop. Choosing one tank as the source is enough. ### Policy per good -Every good in the sources is listed with its amount and current price. Pick a policy: +Each good the sources hold is shown with its amount and current price. Choose a policy: | Policy | Meaning | |---|---| | **Off** | The good is left alone | -| **Store** | Taken to a silo, a pallet shed or one of the farm's own factories that uses the good, such as slurry for a biogas plant. This happens when there is a full load, or the source is nearly full | +| **Store** | Taken to a silo, a pallet shed or one of the farm's own factories that uses the good, when there is a full load or the source is getting full | | **Sell** | Sold when the price is close enough to the yearly top | -| **Sell, else store** | Sold at a good price. Otherwise taken to storage when the source is nearly full | +| **Sell, else store** | Sold at a good price. Otherwise taken to storage when the source is getting full | -Bulk goods need a tipper or tank. Pallet goods need a trailer with Universal Autoload. +Bulk goods need a tipper or tank. Pallet goods need a trailer with Universal Autoload. Liquids (slurry, +digestate, milk, water and more) are never tipped into a factory's intake automatically, only into silos +and tanks, unless you choose the factory yourself under **Storage**. -### Delivery rules +### Outbound rules | Rule | Meaning | Values | |---|---|---| -| **Sell from** | Goods are sold when the price is at least this share of the yearly top price | 50–100 %, default 90 % | -| **Drive to storage above** | Store goods are moved when the source is filled above this share | 50–95 %, default 80 % | +| **Sell from** | Sell when the price is at least this share of the good's top price of the year | 50–100 %, default 90 % | +| **Drive to storage above** | Store goods are hauled away when the source is filled above this share | 50–95 %, default 80 % | +| **Always sell when source is above** | Sells regardless of price when the fullest source is above this share. The reserve is still not touched | *Off* or 50–100 %, default *Off* | | **Collect in one trip** | Collection round, see below | Yes/No | -### Store to: forced drop-off +The rules are only shown when a good uses them. **Sell from** and **Always sell when source is above** are +shown when at least one good is set to *Sell* or *Sell, else store*. **Drive to storage above** is shown +when at least one good is set to *Store* or *Sell, else store*. If no good has Store or Sell yet, all rules +are shown. The same applies to the summary and the status in Overview: a pure storage flow shows e.g. +just `storage > 80 %`. -Below the rules there is a **Store to** section. It only lists the silos, own factories and pallet -sheds that can take at least one of the flow's storage goods. Egg pallets therefore only show pallet -sheds that take eggs, and no silos. If no good is set to Store yet, all goods at the sources count. -Chosen buildings are always shown. If you -pick one or more, storage trips only go there. The first one in the list that accepts the good, has -room and can be reached gets the load. An example is slurry that must only go to the biogas plant and -never to the AIO factory. If none of the chosen buildings can take the load, the tractor waits at -Wait, and the log says why, such as *valgt lager: BGA500kw: fuld*. If you pick none, the mod finds the -nearest silo or own factory that uses the good by itself. Pallet goods go to the first chosen pallet shed that accepts the good, has room and can be reached. -If no pallet shed is chosen, they go to the nearest one. +### Storage: forced unloading place -With **Store to** chosen, the flow counts as **feeding**: the tractor drives as soon as the source has -at least 10,000 l of the good. It does not wait for a full load or *Drive to storage above*, because a -plant such as a biogas fermenter stalls when it only gets a load now and then. +The **Storage** step only shows the silos, own factories and pallet sheds that can take at least one of +the flow's store goods. If you choose *Automatic (nearest with room)*, the mod finds the nearest silo or +own factory that uses the good. If you choose one or more storages yourself, storage trips only go +there. The first in the list that accepts the good, has room and can be reached gets the load. If none +of the chosen ones can take the load, the tractor waits at Wait, and the status says why. + +With a storage chosen, the flow counts as **feeding**: the tractor leaves as soon as the source has at +least 10,000 l of the good, without waiting for a full load. That way a plant such as a biogas fermenter +does not run dry. ### How each trip is chosen -Before each loading, and every five seconds while the tractor waits, the mod checks: +Before each loading, and every five seconds while the tractor is holding, the mod evaluates: 1. **Sell.** If a Sell good's best *reachable* selling point pays at least the threshold, the tractor - drives to sell **regardless of amount**. This makes sure you get the money when the price peaks. - The highest price share goes first. -2. **Store.** If a Store good has a full load, or a source is above its threshold, it is taken to the - nearest silo with room for the whole load. The fullest source goes first. Markers another delivery - flow loads from are only used for unloading when nothing else fits. That way a storage trip does - not unload where a sale trip needs to load. -3. **No trip.** The tractor parks at a Wait point and tries again. The status says why, such as - `holding at Wait 3: SUGAR 78 % of top (needs 90), storage 41 %`. + goes to sell **regardless of amount**. The highest price % goes first. +2. **Store.** If a Store good has a full load, or a source is above the threshold, it is taken to the + nearest silo with room for the whole load. The fullest source goes first. +3. **No trip.** The tractor holds at a Wait point and tries again. With *Wait at: All* the free Wait point + nearest the flow's sources is chosen. The status shows why, e.g. + `SUGAR 78 % af top (kræver 90), lager 41 %` (SUGAR at 78 % of top, 90 required, source 41 % full). + These reason texts are currently shown in Danish only. ### The price -Selling points are the map's real selling points and factories the farm does not own, such as the -map's dairy. Deliveries to the farm's own factories and barns do not count as sales. The price share -is the good's current price compared with the yearly high. The mod uses the same -seasonal curve as the game's price graph. Goods with a flat curve always count as 100 %. The selling -point with the best price wins, as long as the road network reaches it. +Selling points are the map's real selling points and factories the farm does not own, such as the map's +dairy. Deliveries to the farm's own factories and barns do not count as sales. Price % is the good's +current price compared to the highest of the year according to the game's seasonal curve (the same as in +the price graph). Goods with a flat curve count as 100 %. The selling point with the best price wins, as +long as the road network reaches it. -### Reserve: never sell what the farm needs +### Reserve: never sell what the farm needs itself -Before selling, the mod subtracts what the farm's own factories and barns will use during the next -day. It only sells when a whole load can be taken without touching the reserve. The status shows, -for example, `SUGARBEET: 196.0k reserved for TMR factory`. The Store policy does not touch the -reserve, because the good stays on the farm. +Before selling, the mod subtracts what the farm's own factories and barns will use in the next day. It +only sells when a whole load can be taken without touching the reserve. The status shows e.g. +`SUGARBEET: 196.0k reserveret til TMR-fabrik` (reserved for the TMR factory; shown in Danish only). The Store policy does not touch the reserve. ### Collection round With **Collect in one trip** switched on: -- **Tipper:** the same good is collected from several sources until the trailer is full. The next - source is only visited when at least 10 % of the space is left. -- **Autoload trailer:** several pallet goods with the same destination go on one trip. +- **Tipper:** the same good is collected from several sources until the trailer is full. The next source + is only visited if at least 10 % of space is left. +- **Autoload trailer:** several pallet goods with the same destination are taken in one trip. ### Pallets and Universal Autoload -- The mod switches AutoDrive's **AL unload** on for the trailer when the flow starts. -- **Straps** are tightened after loading and released **25 m before** the unloading trigger. +- The mod switches on AutoDrive's **AL unload** on the trailer when the flow starts. +- **Straps** are tightened after loading and released **25 m before** the unloading target. - A full load of pallets is at least four pallets. - Pallets for storage go to the nearest pallet shed that accepts the good and has room. -- From an object storage, pallets are taken out **one at a time**, so none are left on the ground. -- If the storage gets stuck, loading ends after 30 seconds with what is on board. If an autoload - source makes no progress for 15 seconds, the tractor leaves with what it has. +- From an object storage, **one pallet at a time** is taken out. If the storage gets stuck, loading ends + after 30 seconds with what has been loaded. +- A tipper with **AutoLoad switched on** is rejected in a supply flow, because AutoDrive then treats it as + a pallet/bale trailer only. Switch AutoLoad off on the trailer. -### On-screen warnings +### Warnings on screen -When a selling point cannot be reached, or no silo has room, the mod shows a red AutoDrive message, -for example: - -``` -'MT635' cannot reach selling point 'Grain Elevator' for SUGAR – check the road network -``` - -The message also goes to AutoDrive's message history, to `log.txt` and to the flow's status. The -tractor waits at Wait and drives by itself once the road is connected. The warning is only repeated -when the tractor, station or good changes. +If a selling point cannot be reached, or there is no silo with room, the mod shows a red AutoDrive +message, e.g. `'MT635' kan ikke nå salgssted 'Grain Elevator' for SUGAR – tjek vejnettet` ('MT635' +cannot reach selling point 'Grain Elevator' for SUGAR – check the road network; shown in Danish only). +The message also appears in AutoDrive's message history, in `log.txt` and in the flow's status. The +tractor waits at Wait and continues by itself once the road is connected. --- -## 7. Tractors and trailers +## 7. Tractors, trailers and the machine pool -At the bottom of the flow, the farm's vehicles are listed with their capacity. Set **Yes** on the -ones that should drive. +### Tractors in a flow -- Capacity is shown in litres for bulk trailers and as *autoload (pallets)* for UAL trailers. -- **Vehicles that cannot be used are locked** and show the reason. The reasons are in the table. -- By default the flow's own tractors and the free usable ones are shown. Tractors in other flows and - locked tractors appear with **Show all tractors**. -- A vehicle can only be in one flow. If it is moved, it shows *moved from 'other flow'*. +- A vehicle can only be in one flow. If you choose it in another flow, it is moved. - If you remove a running tractor from a flow, it is stopped. -- **Names:** tractors automatically get an AutoDrive driver name after their flow, such as - *Milk Collect 1* and *Milk Collect 2*. A tractor that is alone in its flow gets the flow's name. - The name is used in AutoDrive, in the menu and in the log, and the menu shows the model name in - brackets. When a tractor leaves its flow, it gets its model name back. Names you set yourself in - AutoDrive are only changed while the tractor is in a flow. +- **Names:** the tractors get an AutoDrive driver name after their flow, e.g. *Milk Collect 1* and + *Milk Collect 2*. If the tractor is alone in the flow, it is named just like the flow. When it leaves + the flow, it gets its model name back. Names you have given yourself are not touched when the tractor + leaves the flow. +- **Sold tractors:** about two minutes after loading, tractors that no longer exist are removed from + their flow. A message appears on screen: *Flow 'Cow Food': 1 tractor(s) no longer exist and were + removed (1 left)*. If the flow is left without tractors, the message is red: *Flow 'Cow Food' has no + tractors left and won't run — assign one in Flows*. + +If a tractor cannot start, the reason is shown in the list and in the status line: | Reason | Meaning | |---|---| -| no trailer | The tractor has no trailer attached | +| no trailer (attach one, or name the trailer's parking after the flow) | The tractor has no trailer, and the flow knows of no trailer for it | | trailer cannot carry the run's goods | The trailer accepts none of the flow's goods | | pallet goods need Universal Autoload on the trailer | The flow has pallets, but the trailer has no UAL | -| too far from the road network | The tractor is too far from AutoDrive's network | +| AutoLoad is on for this trailer … | Tipper with AutoLoad switched on. Switch it off on the trailer | +| too far from the road network | The tractor is too far from AutoDrive's road network | | no target / no recognised source | The flow has no buildings | -| no good selected | A delivery flow with no good set to Store or Sell | -| no Wait point in the pool | Delivery needs at least one Wait point | +| no good selected | Outbound with no good set to Store or Sell | +| no Wait point in the pool | Outbound needs at least one Wait point | +| the load on the trailer has no destination … | The trailer carries a load that can neither be sold nor stored right now. Empty the trailer | + +### Flow trailers + +A flow **remembers which trailer each tractor uses**. It does so when you choose a trailer in the guide, +and while the flow is running. + +- **On start**, a solo tractor fetches its trailer itself. It drives to `Connect `, + hitches and carries on with the flow. If the trailer is lent out, the tractor waits and tries again. +- If the flow knows of no trailer, the mod looks for a detached trailer whose parking name contains the + flow's name, preferably with the same number as the tractor (the tractor *Cow Food 3* gets the trailer + at *P Cow Food vogn 3*). +- **On stop**, the trailer is emptied first: at the flow's target, and if the target cannot take the rest + (the load does not drop for 45 seconds), at a silo or own factory that accepts the good. Field silos are + never used. The mod tries up to 3 silos. If that fails, it parks with the load. Then the trailer is + dropped at **its own parking spot**, and the tractor drives to its own. +- If the flow is started again during emptying or the trip home, the tractor simply carries on with the + trailer. +- If you drive the tractor to the Connect marker yourself and hitch the trailer, the tractor starts if + the flow is running. +- A flow's trailers are never lent out for other work, not even when the flow is stopped. A stopped + flow's tractors, on the other hand, can be borrowed as solo tractors by the machine pool. +- **After reloading:** an implement attached to a tractor with no job (e.g. fetched just before you + saved) is taken back to its parking spot after a few minutes, and the tractor drives home. A tractor + standing within 30 m of its own parking spot is left alone. + +### The machine pool + +The machine pool is used by field work and field silos when no ready-made set is free. + +- **Pool implement/trailer:** detached, owned by the farm, with an AutoDrive parking spot and a Connect + marker for that parking spot. Implements without a Connect marker are fixed sets and are never lent. +- **Pool tractor:** an ordinary tractor with nothing attached at the rear, with its own AutoDrive parking + spot, on AutoDrive's road network and not driven by you. Field implements are only hitched behind + tractors. Unloading trailers can also be pulled by other vehicles. +- **Best fit:** the mod chooses the **smallest tractor with enough hp** for the implement. Tractors with + more than 2.5 times the required power are only used if nothing else fits. +- **Sequence:** the tractor drives to the Connect marker, hitches, folds the implement for the road, + goes to work, afterwards drops the implement at its parking spot and drives home to its own. +- If hitching fails, the machine at fault is skipped for 10 minutes. + +The field fleet view in the **Fields** tab shows pool tractors and pool implements with their status (see +[chapter 10](#10-field-work)). --- ## 8. Start, stop and saving -**Start run** does this on every approved tractor: +**Start flow** does the following for each approved tractor: -- Puts AutoDrive in **Pickup & Deliver** with the flow's goods and loops. -- Switches **Use folders** on globally and sets rotation to **loading only**. -- Sets the flow's markers. They are picked again for every trip. +- Fetches the trailer if the tractor is solo (see [Flow trailers](#flow-trailers)). +- Sets AutoDrive to **Pickup & Deliver** with the flow's goods and loops. +- Switches on **Use folders** globally and sets rotation to **pickup only**. +- Sets the flow's markers. They are chosen anew for each trip. -This **overwrites** the tractor's own AutoDrive settings. Tractors outside flows drive as before. +This **overwrites** the tractor's own AutoDrive settings. Tractors outside flows run as before. -A flow starts even if one of the chosen buildings has no marker. The status then names the -building. If **none** of the buildings has a marker, start is refused with `'' has no AD -marker at its trigger`. +A flow starts even if one of the chosen buildings has no marker. The status then names the building. If +**all** buildings lack a marker, the start is refused with `'' has no AD marker at its trigger`. -**Stop run** stops AutoDrive on the flow's tractors. The tractors stay in the flow, so it can be -started again. +**Stop flow** stops the flow's tractors, folds the implements, empties and parks the trailers and drives +the tractors home. The tractors stay in the flow, so it can be started again. -**Saving.** Flows are saved in `savegameN/ADSmartPickup_runs.xml` when the game is saved, and on -every Start and Stop. After loading, tractors that AutoDrive saved as running carry on. Tractors that -were waiting at a Wait point resume waiting by themselves. If a flow is stopped after loading, press -**Start run** again. +**Saving.** The mod saves to the savegame folder when the game is saved: -Flows from older versions load automatically. Old marker choices are translated into buildings. +| File | Contents | +|---|---| +| `ADSmartPickup_runs.xml` | Flows, whether they are stopped, and the remembered trailers | +| `ADSmartPickup_names.xml` | Building names | +| `ADSmartPickup_fields.xml` | Field setup, the field fleet, the pause from "Stop all" and Courseplay courses | +| `ADSmartPickup_fieldsilos.xml` | Field silo setup | +| `ADSmartPickup_cpresume.xml` | Machines Courseplay was running, to be restarted | + +**After loading**, AutoDrive itself restarts the tractors that were running, and the mod takes them over +again. A flow you have not stopped and that has running tractors is shown as running. Tractors that were +waiting at a Wait point resume waiting. If a flow is stopped, press **[Start]**. + +Flows from older versions are loaded automatically. --- -## 9. The storage tabs: inventory and statistics +## 9. The storage tabs: stock and "Needs attention" -The **Factories**, **Silos**, **Barns** and **Pallet sheds** tabs each show one type of building. -They work the same way. Figures update every second, and each tab remembers the building you picked last. +The **Factories**, **Silos**, **Barns** and **Pallet sheds** tabs each show one building type and work the +same way. At the top you choose **Show: Goods | Buildings**. The tab remembers the choice. Figures update +every second. -### Statistics for a building +### The Goods view -Pick a building in **Show building**. Below the selector there is a table with column headings and -one row per good: +**Key figures** for the tab's goods: -| Item | In building | Value now | At top price | Farm | Lasts | Use/prod. per day | -|---|---|---|---|---|---|---| -| Silage | 483.5k/935.5k 52 % | € 173,921 | € 193,400 | 1.7M | 34.0 days | -50.0k | -| Milk | 1.3k/10.3M 0 % | no selling point | | 233.1k | - | +14.4k | -| **Building total** | | € 425,885 | € 429,039 | | | | +| Key figure | Meaning | +|---|---| +| **Stock value now** | The stock's value at the best price right now | +| **Extra at top price** | How much more it is worth at the year's highest price | +| **Running out soon** | Number of goods that last less than 3 days | +| **Almost full** | Number of produced goods that are at least 85 % full | + +**— Needs attention —** shows up to four lines, most important first: + +| Line | When | +|---|---| +| *Wheat runs out in … — farm has …, uses …/day* | The farm uses more than it produces, and the good lasts less than 3 days (red below 1 day) | +| *Milk is 92 % full — full in …* | A produced good is at least 85 % full (red from 95 %) | +| *Sell Canola now: price is 94 % of the yearly top — …* | The price is at least 90 % of the yearly top, the stock is worth at least 10,000, and the farm does not use it up | + +**Click a line** to act on it: + +- **Runs out:** + - If a supply flow already brings the good to one of the buildings that use it, it opens + (*→ click: open flow '…'*). + - If the farm has enough of the good elsewhere, a supply flow is created (*→ click: create flow*). + The guide opens on the summary with the name * to *, the buildings that use the good + as targets and the good selected. Check the tractors and press **Start flow** or **Save without + starting**. + - If a flow will not help because the farm has too little in total, it says *→ produce/buy*. Clicking + shows *A flow won't help — the farm only has … in total. Produce or buy more.* +- **Sell now:** opens an existing sell flow, or creates a new one (*→ click: create sell flow*) named + *Sell *, with direction Out of building, the tab's buildings holding the good as sources and the + good set to Sell. +- **Almost full:** for information only. + +Below that is the **goods list** with the columns **Item**, **Stock**, **Value now** and **Farm net · +lasts**, plus a fill bar. Click a good to expand it into the buildings that hold it, with each building's +share (*62 % of the good*). Bar colours: red/yellow for problems, green when the good is used or +produced, blue for plain storage. + +The goods list shows the tab's buildings, but consumption, production and "lasts" are always calculated +for the whole farm. + +### The Buildings view + +Choose a building in **Show building**. The table has one row per good: | Column | Meaning | |---|---| -| **In building** | Amount and capacity in the selected building, plus fill level. Pallet sheds show pallets out of free slots, such as `24/4000 pallets 1 %` | -| **Value now** | The value at the best price right now, across all selling points on the map | +| **In building** | Amount and capacity in the building plus fill level. Pallet sheds show pallets out of free slots | +| **Value now** | The value at the best price right now | | **At top price** | The value if you sell at the year's highest price | -| **Farm** | The farm's total amount of the good across all buildings, including those on the other tabs | -| **Lasts** | How many days the farm's stock lasts at use minus production. *rising* means the farm produces at least as much as it uses | -| **Use/prod. per day** | Daily use with a minus sign and daily production with a plus sign | +| **Farm** | The farm's total stock of the good in all buildings | +| **Lasts** | How many days the farm's stock lasts at consumption minus production. *rising* means the farm produces at least as much as it uses | +| **Use/prod. per day** | Consumption per day with minus and production per day with plus | -At the bottom, **Building total** shows the building's total value now and at top price. +At the bottom is **Building total**, and below that a grid of all the tab's buildings and their contents. +Factory outputs are marked with `*`. -### Overview of the tab's buildings - -Below the statistics, the tab's buildings with contents are shown as a grid. The building name is on -the left, with up to two goods per row. Factory outputs are marked with `*`, and pallet sheds show the -number of pallets. +The **Rename building** button (only in the Buildings view) gives the selected building a new name. An +empty name brings back the shop name. **What is counted** -- **Factories:** use and production of the productions that are running right now. Factories that - are idle or missing inputs are not counted. -- **Barns, use:** feed, straw and water. Water is not counted when the barn has automatic water. - Feed use is split across the feed types in the trough. -- **Barns, production:** each animal's output by age times the number of animals. This covers milk, - buffalo milk, manure, slurry, eggs, wool and goat milk. Young animals below production age do not count. - -Goods the farm does not use show a dash under **Lasts**. Goods with no selling point show *no -selling point*. +- **Factories:** consumption and production of the productions running right now. +- **Barns, consumption:** feed, straw and water. Water is not counted when the barn has automatic water. +- **Barns, production:** each animal's production by age times the number of animals: milk, manure, + slurry, eggs, wool and more. Young animals below production age do not count. --- -## 10. Field work: all fields +## 10. Field work -The **Fields** tab runs the farm's fields: mowable crops (grass, clover, alfalfa), harvest crops (grain, -canola, maize, beets, potatoes …), preparation and sowing after harvest, and care while the crop grows. -AutoDrive drives on the road, Courseplay works the field, and Smart Pickup decides which field, which step -and which machines. Requires **Courseplay** in addition to AutoDrive. +The **Fields** tab runs the farm's fields: mowing crops (grass, clover, alfalfa), harvest crops (grain, +canola, maize, beets, potatoes …), preparation and sowing after harvest, and crop care while the crop +grows. AutoDrive drives the machines by road to the field, Courseplay works the field, and Smart Pickup +decides which field, which step and which machines. Requires **Courseplay** in addition to AutoDrive. | Field type | Chain | |---|---| -| **Mowable, Silage** | Mow → (Rake) → Collect → fermenting silo/silo | -| **Mowable, Hay** | Mow → Ted → (Rake) → Collect → silo | -| **Harvest crop** | Harvest (+ unloading trailers) → After harvest | -| **After harvest / bare field** | (Mulch) → (Lime) → Plow or Cultivate → (Sow) → (Roll) | -| **Care while the crop grows** | Fertilize · Control weeds · Lime — when the soil needs it | +| **Mowing crop, Silage** | Mowed → (Raked) → Collected → fermenting silo/silo | +| **Mowing crop, Hay** | Mowed → Tedded → (Raked) → Collected → silo | +| **Harvest crop** | Harvested (+ unloading trailers) → (straw chopped, collected or baled) → After harvest | +| **After harvest / bare field** | (Mulching) → (Liming) → Plowing or Cultivating → (Sowing) → (Rolling) | +| **Care while the crop grows** | Fertilizing · Weeding · Liming — when the field needs it | -### Select and forget: crop on the field +Vines and olives are never mowing crops. They are harvested, and sprayers and spreaders drive in the +aisles between the rows. -The easiest way: pick a crop (such as *Wheat*) in the guide step **Crop** (Set up field). The mod does the rest: - -- **Whatever grows now** is left to finish, cared for (fertilizer, weeds, lime) and harvested or mowed when - ready. -- **Afterwards** the field is prepared and sown with your crop. If it is not sowing time, the field waits - ("waiting for sowing time for …"). -- **If your crop is already there** (grass → grass), it is simply mowed and collected every time it is ready. -- **Bare field:** prepared and sown as soon as it is sowing time. -- After that the cycle runs by itself: growth → care → harvest → preparation → sowing → … - -With a crop chosen, the field runs automatically. You can still choose silage/hay, straw, number of -machines, soil work and care in the following steps. Choose *Keep what grows* to run the field as before. - -### Setup +### Preparation 1. **One marker per field.** Create an AutoDrive marker at the field edge named `F` + the field number, - such as `F109`. Machines drive there on the road before Courseplay takes over. At most 400 m from the - field. Without it, the field shows `!` and nothing is sent. -2. **Fixed rigs.** The implement must be attached (or self-propelled). The mod never attaches. -3. **Field fleet.** The **Field fleet** button shows all vehicles with a field implement, with role and width. With - **Use all free machines** = Yes (default) the mod finds the machines itself; with No only ticked ones - are used. Vehicles in a flow, vehicles AutoDrive/Courseplay are already driving, and - vehicles you drive are never used. A sprayer/spreader only has a role once it holds product - (fertilizer → fertilizer spreader, lime → lime spreader, herbicide → weeding machine). -4. **Parking.** Set an AutoDrive parking spot on each rig (on the implement). Finished rigs drive there. + e.g. `F109`, at most 400 m from the field. The machines drive there by road before Courseplay takes + over. If it is missing, the field shows `!` in red, and nothing is sent out. +2. **Machines.** Use fixed sets (the implement stays on the tractor, or the machine is self-propelled) + and/or the machine pool (detached implements with a parking spot and a Connect marker, see + [chapter 7](#7-tractors-trailers-and-the-machine-pool)). +3. **Parking.** Give every set, pool implement and pool tractor an AutoDrive parking spot. Finished + machines drive there. +4. **Refilling.** Seeders, sprayers and spreaders are refilled by AutoDrive at a place that has the + product and an AutoDrive marker (the farm's own storage before a buying station). -### Width +### The field list -- Courseplay works at most **50 m** wide. The mod uses Courseplay's own width (the one in its HUD). -- **Tedder, rake, soil work, sowing, care and harvest** work the field at their own width. -- **The loading wagon** must hit the swaths and drives a copied course: - - **without Rake:** the mower's course, and the wagon must be at least as wide as the mowing width. - - **with Rake:** the rake's course, and the wagon's width does not matter. The mod measures where the - rake drops the swath (centre or to the side) and offsets the wagon to match. Shown under the field. -- If you only have narrow standard wagons, turn **Rake** on. +The tab is a colour-coded list with one row per owned field, sorted by number: -### A field +| Column | Example | +|---|---| +| **Field** | `F22`, or `! F22` when the marker is missing | +| **Crop** | *Wheat*, *bare soil* or *stubble (Wheat)* | +| **Plan** | *-> Wheat* (target crop), *Silage + rake*, *Harvest + sow*, *Preparation* | +| **Mode** | *Auto* or *Manual* | +| **Status** | The step and a short reason, e.g. *Ready 93 %*, *Harvesting*, *Fertilizing: waiting for machine* | +| **Running** | The machines on the field | -Click a field in the table. Below the table is the field's **summary** — one line per topic: +**[Start]** or **[Stop]** is on the far right. The colours mean the same as in Flows: + +| Colour | Meaning | +|---|---| +| **Green** | The field is being worked | +| **Yellow** | The field is waiting, e.g. for a machine, for dry weather, or for you to move a harvester | +| **Red** | Problem: the marker is missing, the machine is too wide/narrow, the width is unknown, no machine can do the job, or no crop to sow is chosen | +| **Grey** | Stopped or paused | + +- **[Start]** starts the field now (requires the marker). If the field is growing, crop care starts if + it is needed. The status line shows *F22 starts when a machine is free*. +- **[Stop]** stops the machines. Implements are folded for transport, and pool implements are parked. +- Click anywhere else on the row to open the field's **edit window**. +- If field work is **paused** after "Stop all and park", the top reads: *! Field work is paused since + "Stop all" (saved with the savegame) — press Start all in Overview, or [Start] on a single field.* The + fields are grey with *(paused)*, and **[Start]** resumes only that one field. +- If the field fleet is set to "only ticked" with no machine ticked, a warning is shown at the top, + because nothing can be sent out. + +At the bottom are the **Field fleet** button and the status line *Fields in progress: 3 of 24*. + +### The field's edit window + +The window **Field F22** shows the field's summary, one line per topic with **[Edit]**: | Line | Example | |---|---| | **Crop** | *Keep what grows* / *-> Wheat* | | **Crop options** | *Silage, rake* / *straw chopped* | | **Preparation** | *Automatic* / *Plow, lime* | -| **Crop care** | *fertilizer, weeds* | -| **Machines** | *3 dedicated* / *free machines*, *1 at a time*, *1 unloaders* | -| **Storage** | *Field silo* / *Automatic* / a chosen silo | +| **Crop care** | *Automatic* / *fertilizer, weeds* | +| **Machines** | *2 dedicated* / *free machines*, *1 at a time*, *1 unloaders* | +| **Storage** | *Field silo* / *Automatic* / *2 chosen silos* | -**Click a line** to change just that (e.g. storage): only that step opens, and **Save** saves and returns. -Below the summary are the full status and the marker. - -Buttons: **Start now / Stop field**, **Set up field** and **Field fleet**. +Click a line to change just that step, and press **Save**. Below the summary are the full status text and +the marker (*Marker F22, 35 m from the field*). The line **Set up field** opens the whole guide. The +buttons are **Close** (also ESC) and **Start now** / **Stop field**. A field cannot be deleted. ### The "Set up field" guide -**Set up field** sets the field up one question at a time ("Step 3 of 7 — …"). Steps that do not fit the -field are skipped; a field already set up opens with its current choices. Without a selected field you pick -the field first. +The guide asks one question at a time (*Step 3 of 7 — Preparation*). Steps that do not apply to the field +are skipped. The buttons are **Next**, **Back** and **Cancel**. | Step | Shown when | Choices | |---|---|---| -| **Crop** | always | *Keep what grows* or a crop to sow (target crop, see above). Harvest/bare field: *Sow the same crop again after harvest* | -| **Crop options** | mowable (now or as target): Silage/Hay + Rake. Harvest crop with straw: straw chopped/collected/baled | | -| **Preparation** | after harvest / bare field / crop change | *Automatic (recommended)* or *Choose myself*: soil work, lime, mulch, roll | -| **Crop care** | a growing crop | Fertilizer, weeds (not on mowables); lime here when there is no preparation | -| **Machines** | always | At a time (1–5), unloaders when harvesting (1–3), **Dedicated machines for this field?** + the list | -| **Storage** | harvest/mowing | *Use the field silo?* (when there is one), else *Automatic* or *Choose myself* among the 8 nearest | -| **Summary** | always | The summary; click a line to change it. **Run automatically** (Auto) or **Save without starting** (Manual) | +| **Field** | the guide is opened with no field selected | The field, e.g. *F22 — Wheat — Waiting* | +| **Crop** | always | *Keep what grows* or a crop to sow (target crop). With *Keep* on a harvest field: *Sow the same crop again after harvest* | +| **Crop options** | mowing crop or crop with straw | Mowing crop: *Silage* or *Hay* and *Rake the swaths before collecting*. Straw: *Chopped (spread on the field)*, *Collected to a silo* or *Baled and collected* | +| **Preparation** | not for a mowing field that keeps its crop | *Automatic (recommended)*: plows when the soil needs it, otherwise cultivates, and limes at low pH. *Choose myself*: soil work (Auto/Cultivate/Plow/None), lime, mulching, rolling after sowing | +| **Crop care** | a crop grows, or is going to grow | *Automatic (recommended)*: fertilizer up to max, weeds, and lime at low pH. *Choose myself*: fertilizer, weeds (not on mowing crops), and lime when there is no preparation step | +| **Machines** | always | *Machines at a time (multi-tool)* 1–5, *Unloading trailers during harvest* 1–3, *Dedicated machines for this field?* + the list | +| **Storage** | not on a bare field | *Use the field silo?* when there is one, otherwise *Automatic* (nearest silo with room, silage to a fermenting silo) or *Choose myself* among the 8 nearest | +| **Summary** | always | The summary. **Run automatically** (Auto) or **Save without starting** (Manual) | -Buttons: **Next**, **Back**, **Cancel**. Nothing is saved before **Run automatically** / **Save without -starting** (or **Save** when editing one line). Closing the menu or switching tab discards the guide. With a -target crop the field always runs automatically. Without a marker the field can be set up; work waits for -the marker. +Nothing is saved until **Run automatically** / **Save without starting** (or **Save** when you change a +single line). If the menu is closed or you switch tab, the guide is discarded. If the marker is missing, +the field can still be set up, but work waits for the marker. -**Dedicated machines:** a dedicated machine only works this field, and the field waits for its own rather -than borrowing another. The list only shows free machines and those already dedicated here; machines -dedicated to other fields show as "N machines are dedicated to other fields (F22)". +**Dedicated machines:** a dedicated machine is only used on this field, and the field would rather wait +for its own than borrow another. Machines dedicated to other fields are not shown: *N machines are +dedicated to other fields (F22) and not shown here*. -**Field fleet** (button): the shared fleet — *Use all free machines* and the ticked list, "dedicated to -F22", "working on F108" and width warnings. **Back to fields** returns. +**Crop care** only happens when the field needs it: fertilizer up to max, weeds only on harvest crops and +only when there are enough weeds, and at most twice of each kind per growing season. A weeder only +handles small weeds. -The mod never asks about: scanning, when to harvest/mow/fertilize/spray, refilling, emptying wrong cargo, -waiting for rain, width checks, choosing the nearest machine, routes, and fermenting silo for silage. +### Pick and forget: a crop on the field -A field is **ready** when at least 90 % is in the harvest window. **Start now** starts the whole chain (or -care, when the field grows and needs it). On a bare field it starts preparation/sowing. **Stop field** stops -the machines. +Choose a crop (e.g. *Wheat*) in the **Crop** step, and the mod takes care of the rest; the field runs +automatically: -### Weather, refilling and notifications +- **If something else is growing now**, it is left to finish growing and is harvested or mowed. Then the + field is prepared and sown with your crop. +- **If your crop is already there** (grass → grass), it is mowed and collected every time it is ready. +- **A bare field** is prepared right away, whatever the season. Only sowing waits for sowing time + (*waiting for sowing time for …*). +- After that the cycle runs by itself: growth → care → harvest → preparation → sowing → … -- **Rain:** harvesting, mowing, tedding, raking and hay collecting are not sent out while it rains - ("waiting for dry weather"). Machines already running continue. Soil work, sowing and care run in rain. -- **Refilling:** when a seeder or sprayer/spreader runs empty, AutoDrive drives it to the nearest place - with the product, refills, drives back, and Courseplay continues. -- **Sowing period:** a crop that cannot be sown in the current period waits with a reason. -- **Notifications:** green when a field is done, red on errors. -- **Field silo:** a silo within 150 m of the field is an intermediate store. `!` if no *Out of building* - flow empties it home. +Choose *Keep what grows* to run the field yourself with **Run automatically** or **Save without starting**. + +### Field fleet and machine pool + +The **Field fleet** button shows the shared field fleet (**Back to fields** returns): + +- **Use all free machines (No = only ticked ones)**. With Yes (default) the mod finds the machines + itself. With No, only ticked machines are used. +- One row per machine with role and width, e.g. *Læssevogn 2 — loading wagon, 40.8 m*, and possibly + *seeds ok*, *!! out of seeds*, *!! over 50 m*, *!! width unknown — set in Courseplay*, *dedicated to + F22* or *working on F108*. +- For harvesters: ** drives itself on the road (No = too wide, you drive it to the field)**. See + *Wide harvesters* below. +- **Machine pool — tractors** with hp and status: *free*, *needs its own AD park destination*, *player is + driving*, *job F22*, *AutoDrive/Courseplay active*, *not in field fleet (tick)*, *off the AutoDrive + network*, *has an implement attached (detach it to use the pool)* or *dropping implement and driving + home*. +- **Machine pool — implements (park "X" + marker "Connect X")** with status: *parked at …*, *on …*, + *reserved — a tractor is on its way*, *belongs to flow '…'*, *could not attach — retry in … min*, + *not in pool — needs an AD park destination* or *not in pool — needs marker "Connect …"*. + +Vehicles in a running flow, vehicles AutoDrive or Courseplay is already driving, and vehicles you are +driving yourself are never used. A sprayer or spreader gets its role from what it can take. + +**When no ready-made set is free**, the mod sends a free pool tractor to fetch a pool implement with the +right role (best fit, see [The machine pool](#the-machine-pool)). The status shows *fetching implement*. +The tractor hitches, folds the implement for the road, works the field, drops the implement at its +parking spot and drives home. This also applies to **unloading trailers at harvest**: a free tractor +fetches a pool trailer that can carry the crop, follows the harvester until the harvest is done, and +parks the trailer. + +Fields waiting for a machine are served in turn, longest-waiting first. At most one machine is sent out +every 10 seconds, and nothing is sent out during the first 2 minutes after loading. + +### Width + +- Courseplay can work at most **50 m** wide. The mod uses Courseplay's own width. +- Machines with a working width below 1.5 m are not sent out (*width unknown — set in Courseplay*). +- **Tedders, rakes, soil work, sowing, care and harvesting** work the field at their own width. +- The **loading wagon** must hit the swaths: + - **without Rake** it drives the mower's course and must be at least as wide as the mowing width. + - **with Rake** it drives the rake's course, and its width does not matter. The mod measures where the + rake drops the swath and offsets the loading wagon to match. +- If you only have narrow standard wagons, switch **Rake** on. + +### Wide harvesters + +If you set a harvester to **No** under *drives itself on the road*, the mod does not drive it by road. +When the field is due for harvest, the mod asks you to drive the harvester to the field, mount the header +and get out (with a reminder every 5 minutes). When the harvester is on the field with a suitable header +and you have got out, the mod takes over. **Start now** takes over immediately if the header fits. +Afterwards the mod asks you to unmount the header and drive the harvester home. These messages are +currently shown in Danish only. + +### Courseplay courses and reloading + +- The mod **reuses Courseplay courses**. If the machine's own course fits the field and the width, it is + used. Otherwise a matching course is copied from another machine, and only then is a new one + calculated. Large fields can take up to 5 minutes to calculate. If the field changes, its courses are + forgotten. +- **Restart after loading:** the game stops all helpers when it saves. The mod remembers on every save + which machines Courseplay was running, and restarts exactly those from the nearest waypoint after + loading (after 2 minutes, and not while paused from "Stop all"). If the machine stands on a field whose + step matches its role, it is signed back onto the field. + +### Weather, refilling and messages + +- **Rain:** harvesting, mowing, tedding, raking, hay collecting, straw collecting and baling are not sent + out while it rains (*waiting for dry weather*). Machines already working carry on. Soil work, sowing, + care and silage collecting run in the rain. +- **Refilling:** when a seeder, sprayer or spreader is empty, AutoDrive drives it to the nearest place + with the product and an AutoDrive marker, refills and drives back, and Courseplay continues. A sprayer + with a wrong leftover is emptied first. +- **Sowing period:** a crop that cannot be sown in the current period waits with the reason *… cannot be + sown in this period*. +- **Messages:** *Smart Pickup: F22 is done* when a field is finished, a red message on errors. +- **Harvest done:** the harvest is done when less than 5 % of the field is standing. If the harvester + still has grain in its tank, an unloading trailer is sent out before the field moves on. +- **Preparation done:** cultivating and plowing are measured on the ground. When at least 95 % is + prepared, the field moves on, also after reloading. +- **Field silo:** a silo within 150 m of the field can be used as storage (see + [chapter 12](#12-field-silos)). ### Status and reasons | Status | Meaning | |---|---| -| **Waiting / Ready** | Growing / ready (Manual waits for Start now). With "— needs …" when care is due | -| **Mowing, Tedding, Raking, Collecting, Harvesting, Cultivating, Plowing, Sowing, Rolling, Fertilizing …** | The step is running | -| **Done** | The chain is done. The field becomes *Ready* again once it has grown | -| `waiting for a free …` | All rigs with the role are busy | -| `multi-tool: … only 2 of 3 free` | Too few free rigs for "Machines per step" | -| `no … can do the job` | Such as a harvester with the wrong header, or a seeder that cannot sow the crop | -| `waiting for dry weather` | Rain | -| `Courseplay could not create a course` | Retried after 5 minutes | +| **Waiting / Ready** | Growing / ready (Manual waits for [Start]). With *— needs …* when crop care is needed | +| **Mowing, Tedding, Raking, Collecting, Harvesting, Cultivating, Plowing, Sowing, Rolling, Fertilizing …** | The step is in progress | +| **Done** | The chain is finished. The field becomes *Ready* again once it has grown | +| *waiting for machine* / *waiting for a free …* | All sets with the role are busy | +| *waiting for tractor* | A pool implement is free, but no pool tractor | +| *fetching implement* | A pool tractor is on its way to fetch the implement | +| *too few free* | Too few free sets for *Machines at a time* | +| *none can do it* | No machine can do the job, e.g. wrong header or a seeder that cannot sow the crop | +| *too wide* / *too narrow* / *width unknown* | See *Width* above | +| *choose crop* | The field is to be sown, but no crop is chosen | +| *not sowing time* | The crop cannot be sown in this period | +| *waiting for regrowth* | The grass must grow back to full height after an interrupted mowing | +| *waiting for dry weather* | Rain | -Log lines in `log.txt` start with `ADSmartPickup: F109 …`. A full test list is in -`docs/TESTPLAN-markarbejde.md`. +The full explanation is in the field's edit window. Log lines in `log.txt` start with +`ADSmartPickup: F109 …`. -## 11. Recipes +--- + +## 11. The Month tab + +The **Month** tab answers the question: *can I safely sleep to next month?* + +- The top shows the period, the day and the time, e.g. * (Aug) · day 2 of 3 · 14:30*. +- Below that is the verdict: *Nothing urgent — safe to sleep to next month*, or *NOTE: 2 fields must + finish before the month ends*. +- The table only shows fields with work in progress (otherwise *No fields have work in progress*): + +| Column | Meaning | +|---|---| +| **Field** | The field number | +| **Work** | The step in progress | +| **Crop** | The crop, or the one to be sown | +| **Done** | Progress in percent. Harvesting and mowing are measured over the whole field area | +| **Next** | The next step, or – | +| **Window** | *ok*, *NOTE: withers soon* (the crop withers at the next period change) or *NOTE: last sow month* (the sowing window closes after this month) | + +Rows with a NOTE come first. Below the table is **Can be sown now, not started:** with bare fields whose +target crop can be sown now, e.g. *F14: Wheat — NOTE: last sowing month* or *F9: Canola — can also be +sown next month*. + +--- + +## 12. Field silos + +The **Field silos** tab hauls goods from field silos home to the farm with free unloading trailers. A +**field silo** is a silo within 150 m of one of the farm's fields. Silos used in a flow, silos chosen as +farm storage and silos close to a farm storage (the same cluster) are not field silos. + +**Settings** + +| Setting | Meaning | Values | +|---|---|---| +| **Bring field silos home automatically** | Switches the feature on | Yes/No, default No | +| **Max. vehicles out** | At most this many trailers on a trip at once | 1–10, default 2 | +| **Minimum amount per product** | A good is only fetched when the silo has at least this much | 5,000–50,000 l, default 10,000 l | +| **Send surplus to production (barn feed first)** | Once the farm has enough feed, the surplus goes to the farm's factories | Yes/No, default No | +| **Feed reserve: barn consumption for** | This many days of barn consumption stay on the farm before anything goes to a factory | 3, 7, 14 or 30 days, default 7 | +| **Farm storages (where products are brought home to)** | Yes for the silos that should receive the goods | Choose at least one | + +If you choose no farm storage, it says *Select at least one farm storage below — otherwise nothing is +brought home*. + +**Status and table** + +The status line shows e.g. *1/2 vehicles out · 3 silos waiting*. The table **Field silos with products** +has the columns **Silo**, **Crop**, **Liters**, **En route** and **Status**: + +| Status | Meaning | +|---|---| +| *ok* | Ready to be fetched | +| *missing marker* | The field silo has no AutoDrive marker | +| *no farm storage takes …* | No chosen farm storage accepts the good | +| *paused (did not get going)* | A trip got stuck. The silo and good are skipped for 10 minutes | +| *→ factory* | The trip goes to production | + +**Trailers** + +- The mod borrows free unloading trailers from the field fleet every minute. They must have an + AutoDrive parking spot. Trailers in flows are never borrowed. If none is free, the status line explains + why, e.g. *No free unloading trailer: 1 without AD park destination, 2 busy, 0 with a player in it, + 0 not in the fleet*. +- The mod also uses the machine pool: a free solo tractor fetches a pool trailer at its Connect marker, + makes the trip and parks the trailer again. +- **Harvest first:** as many unloading trailers as working harvesters need are held back (*1 unloading + trailer(s) held back for working harvesters*). +- The largest stock is fetched first with the nearest trailer that can carry the good. The trip is driven + with AutoDrive's *Pickup and Deliver*, after which the trailer parks. +- If the field silo is empty before the trailer is full, the rest is driven on. If the farm storage is + full, the trailer drives on to another storage. +- Nothing is planned while field work is paused after "Stop all and park". + +--- + +## 13. Names of buildings and machines + +FS25 cannot rename buildings itself, so the mod keeps its own names. They are saved in +`ADSmartPickup_names.xml` in the savegame and used everywhere in the menu. + +- **New buildings are named automatically** (in Danish): barns by animal type (*Kostald 1*, + *Svinestald 2*, *Hønsehus 1* …), farm silos (*Gårdsilo 1*), field silos after the nearest F marker + (*F118 marksilo*), other silos (*Silo 3*), pallet sheds (*Palleskur 1*) and factories by their shop name. + Numbers continue from the highest that exists. Names already given are never changed. +- **Rename building** in the storage tabs gives a building your own name. Empty name = the shop name. +- **Field machines** that still have their model name are named after their role (in Danish): + *Læssevogn 5*, *Såmaskine 2*, *Mejetærsker 1*, *Roeoptager 2* etc. Names you have given yourself are + not touched. +- **Flow tractors** are named after the flow (see + [chapter 7](#7-tractors-trailers-and-the-machine-pool)). + +### Console commands + +Open the game's console to use them: + +| Command | Function | +|---|---| +| `spuNameFleet` | Gives all tractors and trucks outside flows their shop name (*Fendt 942 1*, *Fendt 942 2* …) and renames their own parking spot to `P ` if nobody else shares it. Overwrites custom names on those vehicles. Save the game afterwards. Note: an existing `Connect ` marker no longer matches | +| `spuConnect` | Hitches the nearest implement (within about 3 m) to the machine you are sitting in | +| `spuDetach` | Detaches the implements behind the machine you are sitting in | +| `spuTrip A > B > C` | Drives a trip over several markers: Connect markers hitch, Afkobl or the implement's own parking detach, and at other markers it stops for 10 seconds. Mostly for testing | + +--- + +## 14. Recipes ### Keep a cow barn fed 1. Wait folder *Cow Wait* with 2–4 markers close to the barn. -2. New flow, **Into building**, To = the barn, Goods = **Auto**. -3. Wait pool = *Cow Wait*, Loops = 0. -4. Two tractors with tippers, Yes, Start. +2. **New flow**, **Into building**, To = the barn, Goods = **Automatic**. +3. Loops = 0, Wait at = *Cow Wait*. +4. Two tractors with tippers, **Start flow**. -The tractors share feed, straw and water by need and pick TMR over silage. +The tractors spread feed, straw and water by need and prefer TMR to silage. -### A TMR factory feeding several barns +### Solo tractor with its own trailer -1. Flow A: **Into building**, To = the TMR factory, Goods = Auto. The tractor fetches what the - switched-on productions are missing. -2. Flow B: **Out of building**, From = the TMR factory, TMR = **Store**. TMR goes to a silo. +1. Park the trailer and give it an AutoDrive parking spot, e.g. `P Cow Food vogn 1`. +2. Create the marker `Connect P Cow Food vogn 1` right at the trailer's drawbar. +3. Set up the flow and choose the tractor without a trailer under **Tractors**. Check that **↳ Trailer** + shows the right trailer, and save. +4. **Start flow**: the tractor fetches the trailer. On **Stop flow** the trailer is emptied and parked + again. + +### TMR factory feeding several barns + +1. Flow A: **Into building**, To = the TMR factory, Goods = Automatic. +2. Flow B: **Out of building**, From = the TMR factory, TMR = **Store**. 3. Flow C: **Into building**, To = all cow barns. The neediest barn gets the trip. ### Sell milk at a high price -1. New flow, **Out of building**, From = barn(s) or milk tanks. +1. **New flow**, **Out of building**, From = barn(s) or milk tanks. 2. Milk = **Sell, else store**, Sell from = 90 %, Drive to storage above = 80 %. -3. One tanker, Yes, Start. +3. One tanker, **Start flow**. -The tanker waits at Wait until the price is high. If the tank fills up first, the milk goes to storage. +The tanker waits at Wait until the price is high. If the tank fills up first, it takes the milk to storage. ### Empty a pallet shed for sale -1. New flow, **Out of building**, From = the object storage. -2. Goods = **Sell**, **Collect in one trip** = Yes. -3. One UAL truck, Yes, Start. +1. **New flow**, **Out of building**, From = the object storage. +2. The goods = **Sell**, **Collect in one trip** = Yes. +3. One UAL truck, **Start flow**. + +### A good is running out + +1. Open the storage tab, e.g. **Barns**, view **Goods**. +2. Click the line *… runs out in …* under **Needs attention**. +3. The guide opens with a ready-made suggestion. Choose tractors and press **Start flow**. --- -## 12. Troubleshooting +## 15. Troubleshooting -The mod writes every decision to `log.txt` with the prefix `ADSmartPickup:`. The log is in +The mod writes all its decisions to `log.txt` with the prefix `ADSmartPickup:`. The log is in `Documents/My Games/FarmingSimulator2025/`. -| Problem | Fix | +| Problem | Solution | |---|---| | The building shows *NO MARKER* | Place an AutoDrive marker within 40 m of the trigger. Wait markers do not count | -| A barn's slurry or milk point is missing | The points are often at opposite ends of the barn. Give each point its own marker | -| The tractor is locked in the list | Read the reason next to it in [section 7](#7-tractors-and-trailers) | -| The tractor just sits at Wait | Read the status. It is usually waiting for price, space or demand | +| A barn's slurry or milk point is missing | Give each loading point its own marker | +| The tractor cannot be chosen in the guide | Click the line *N tractors cannot be used here* to see the reason | +| The solo tractor cannot be chosen | There must be a free trailer: detached, with an AutoDrive parking spot and a `Connect ` marker, and able to carry the flow's goods | +| The tractor does not fetch the trailer | Check that the Connect marker is named exactly `Connect ` + the parking's name, and that it sits at the drawbar with room to reverse | +| The tractor just holds at Wait | Read the status. It is usually waiting for a price, room or a need | | The neighbouring silo gets the load | Set AutoDrive's *Max trigger distance* to 10 m | -| *cannot reach selling point* | Connect the selling point to the network in both directions | -| The pallet shed does not hand out pallets | Move the marker so the trailer's autoload zone covers the output | -| Pallets fall off | Check that the trailer has UAL. Straps are tightened after loading | +| *cannot reach selling point* | Connect the selling point to the road network in both directions | +| The pallet shed does not hand out pallets | Move the marker so the trailer's autoload zone covers the output area | | The tractor does not fill at the silo | After 30 seconds without filling, the mod lets go and AutoDrive drives on | -| The flow does not run after loading | Press **Start run** again | -| All tractors fetch the same good | Check that they are in the same flow. Only tractors in one flow share the work | +| No field work starts | Is there a pause from "Stop all"? Press **Start all flows** in Overview, or **[Start]** on the field | +| The field shows `!` | The field is missing its `F` marker | +| A flow does not run after loading | Press **[Start]** on the flow | +| All tractors fetch the same thing | Only tractors in the same flow spread out | -The log lines are written in Danish. Typical examples: +**Useful log lines** (the log text is in Danish) ``` ADSmartPickup: 'JCB 1' bytter læs: 2400 l STRAW tilbage i Silo 3, målet mangler FORAGE ADSmartPickup: 'Virtus' holder ved Wait 3: MILK 82 % af top (kræver 90), lager 41 % -ADSmartPickup: 'Fastrac' genoptager ventning ved Cow Wait efter genindlæsning +ADSmartPickup: F109 … ``` -These mean: a load swap, a tractor holding for a better price, and a tractor resuming its wait -after the savegame was loaded. - --- -## 13. Glossary +## 16. Testing and feedback + +The mod is being tested continuously, and bug reports are very welcome. + +1. Open an issue in the repository: +2. Describe what you did, what you expected, and what happened. Mention the version (shown in `log.txt` + and in the mod list). +3. Attach `log.txt` from `Documents/My Games/FarmingSimulator2025/log.txt`. If the file is too big, + attach at least the lines starting with `ADSmartPickup`. +4. A screenshot of the Smart Pickup menu often helps. + +--- + +## 17. Glossary | Term | Meaning | |---|---| | **AD** | AutoDrive | +| **CP** | Courseplay | | **Flow / run** | A named recipe with buildings, goods, rules and tractors | -| **Marker** | AutoDrive destination at a building | -| **Trigger** | The area at a building where goods are loaded or unloaded | -| **Wait point** | A marker in a folder with *Wait* in its name, where tractors wait | +| **Marker** | AutoDrive destination | +| **Trigger** | The area at a building where loading or unloading happens | +| **Wait point** | Marker in a folder with *Wait* in its name, where tractors wait | +| **Parking spot** | AutoDrive's park destination for a vehicle or implement, e.g. `P Cow Food vogn 1` | +| **Connect marker** | The marker `Connect `, where a tractor hitches an implement | +| **Afkobl marker** | Marker where implements behind the tractor are detached | +| **Solo tractor** | Tractor with no trailer or implement attached at the rear | +| **Fixed set** | Implement without a Connect marker. It stays attached and is never lent out | +| **Machine pool** | Detached implements/trailers and free tractors that the mod pairs up as needed | +| **Field fleet** | The machines field work is allowed to use | | **UAL** | Universal Autoload, a mod that loads pallets automatically | -| **Object storage** | Pallet and bale storage, such as the one in the HVF pack | +| **Object storage** | Pallet and bale storage | | **Top price** | The good's highest price during the year according to the game's seasonal curve | -| **Reserve** | What the farm's own barns and factories use during the next day | -| **Time until empty** | How long a factory's stock of a good lasts at the current use | +| **Reserve** | What the farm's own barns and factories use in the next day | +| **Time to empty** | How long a factory's stock of a good lasts at the current consumption | +| **Field silo** | A silo near a field used as intermediate storage |