From d871cf1267301893b64f3ac2e0eb06c37717876c Mon Sep 17 00:00:00 2001 From: Lemmi Date: Fri, 28 Aug 2026 19:32:57 +0200 Subject: [PATCH] Add files via upload - New texts translated into German - little Fix --- Language/localization_Overthrow.st | 2334 +++++++++++++++++++--------- 1 file changed, 1629 insertions(+), 705 deletions(-) diff --git a/Language/localization_Overthrow.st b/Language/localization_Overthrow.st index 966c1d09..f2953fdf 100644 --- a/Language/localization_Overthrow.st +++ b/Language/localization_Overthrow.st @@ -72,6 +72,7 @@ StringTable { CustomStringTableItem "{6B1C3D00000000BF}" { Id "OVT-Barracks" Target_en_us "Barracks" + Target_de_de "Kaserne" Comment "Map POI name for a High Command barracks (OVT_MapMarkerComponent on OVT_Barracks.et and the three same-GUID vanilla overrides). Referenced by the user's prefab authoring since before this key existed." DevNote "" Repro "" @@ -80,8 +81,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781871200 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -230,6 +232,7 @@ StringTable { CustomStringTableItem "{6B8C3F5D000000C7}" { Id "OVT-BattleStartsInMinutes" Target_en_us "Battle Starts In (min)" + Target_de_de "Der Kampf beginnt in (Min.)" Comment "HUD battle panel, the countdown label used when MORE than two minutes remain - the counter-attack muster window, which is FIFTEEN real minutes since 2026-08-20 (was thirty). The number appended after it is whole minutes rounded UP (OVT_QRFSiege.MusterMinutesRemaining), ⚠ NO LONGER USED BY THE HUD as of 2026-08-20 - the battle panel now renders one M:SS clock via OVT-QRFScoringBeginsIn. Kept because removing a shipped key breaks any translation memory keyed on it. Keep the unit marker: the same panel shows a bare seconds count below two minutes and the two must not be confusable. A player-initiated battle never shows this string - its countdown starts at exactly two minutes and renders in seconds from its first frame." DevNote "" Repro "" @@ -238,7 +241,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781871644 Author "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -267,6 +272,7 @@ StringTable { CustomStringTableItem "{6B1C3D00000000C0}" { Id "OVT-Build_Barracks" Target_en_us "Barracks" + Target_de_de "Kaserne" Comment "Build menu title for the Barracks buildable, Configs/Resistance/buildables.conf. The most expensive buildable in the resistance's build list." DevNote "" Repro "" @@ -275,14 +281,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781871222 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000C1}" { Id "OVT-Build_Barracks_Description" Target_en_us "Raises High Command groups you can command from the map. The costliest structure the resistance can build." + Target_de_de "Errichtet Oberkommando Gruppen, die du von der Karte aus befehligen kannst. Das kostspieligste Gebäude, das der Widerstand errichten kann." Comment "Build menu description for the Barracks buildable, Configs/Resistance/buildables.conf." DevNote "" Repro "" @@ -291,8 +299,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781871702 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -317,6 +326,7 @@ StringTable { CustomStringTableItem "{6B4E1F3000000001}" { Id "OVT-Build_FuelDepot" Target_en_us "Fuel Depot" + Target_de_de "Treibstofflager" Comment "Build-menu title of the Fuel Depot buildable (Configs/Resistance/buildables.conf) and the Game Master name of Prefabs/Structures/Military/FOB/OVT_FuelDepot.et. Two words, title case, sits in the same list as Guard Tower / Medical Tent / Vehicle Maintenance Ramp." DevNote "" Repro "" @@ -325,15 +335,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781871282 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B4E1F3000000002}" { Id "OVT-Build_FuelDepot_Description" Target_en_us "Stores and delivers fuel" + Target_de_de "Lagert und liefert Kraftstoff" Comment "Build-menu description of the Fuel Depot. SHORTENED BY THE USER 2026-08-18 from a two-sentence version to this four-word one - do not restore the long form without asking; the build menu's description panel is narrow. Keep it capacity- and mechanism-free so it cannot go stale: the numbers now live only in #OVT-FieldManual_Fuel_Text4 and #OVT-Tutorial_FuelDepotBuilt_Body, which are the two places a claim about the depot has to be fact-checked. For reference, the prefab facts as of amendment A2.3: SCR_FuelNode MaxFuel 10000 (up from 5000, two full truck loads), m_fInitialFuelTankState 0 (LITRES, not a fraction, so it starts empty), station m_fRange 7, OVT_FuelSourceComponent m_bFree 1 read by OVT_FuelUtils.IsFreeFuelSource. Deliberately says nothing about where it can be built - the build menu only offers it where it is allowed. Renders in the build menu's description panel and in the Game Master entity info." DevNote "" Repro "" @@ -342,9 +353,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1780769721 + Modified 1781871301 Author "Claude" - LastChanged "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -573,6 +584,7 @@ StringTable { CustomStringTableItem "{6A8E2E2000000038}" { Id "OVT-Build_Warehouse" Target_en_us "Warehouse" + Target_de_de "Lager" Comment "Build-menu title of the Warehouse buildable (Configs/Resistance/buildables.conf). One word, title case, sits in the same list as Guard Tower / Garage / Fuel Depot. Keep it consistent with #OVT-Warehouse, which names the same building on its storage screens and in the map layer filter." DevNote "" Repro "" @@ -581,15 +593,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781871322 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000039}" { Id "OVT-Build_Warehouse_Description" Target_en_us "Stores items and resources" + Target_de_de "Lagert Artikel und Ressourcen" Comment "Build-menu description of the Warehouse. Four words, matching the shortened #OVT-Build_FuelDepot_Description - the description panel is narrow, so do not restore a longer form without asking. FACT-CHECKED 2026-08-21 against Prefabs/Structures/Industrial/Houses/Warehouse_01/Warehouse_01_Base.et: the building carries OVT_StorageComponent UNLIMITED (items) and OVT_ResourceStoreComponent m_fCargoVolume -1 (resources), which is what 'items and resources' means. Deliberately silent about ownership, access and where it may be built - the build menu only offers it where it is allowed, and the access rule lives in OVT_RealEstateManagerComponent.PlayerMayUseWarehouse. Renders in the build menu's description panel." DevNote "" Repro "" @@ -598,9 +611,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781871345 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -636,7 +649,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1780506115 + Modified 1781871724 Author "Claude" LastChanged "lemmi" ImageLink "" @@ -762,7 +775,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1780506126 + Modified 1781871688 Author "Aaron Static" LastChanged "lemmi" ImageLink "" @@ -817,6 +830,7 @@ StringTable { CustomStringTableItem "{6A8E2E200000003A}" { Id "OVT-CannotBuildUncontrolledTown" Target_en_us "You can only build that in a town the resistance controls" + Target_de_de "Das kannst du nur in einer Stadt bauen, die von der Widerstandsbewegung kontrolliert wird." Comment "Refusal hint in the build menu when a town-buildable is placed inside a town the occupying faction still holds. Shown by OVT_BuildContext.CanBuild; the server re-checks the same rule in OVT_ResistanceFactionManager.BuildItem and refuses silently, so this is the only wording the player ever reads for it. Sits beside #OVT-CannotBuildVillage and #OVT-CannotBuildTown and should read like them - one sentence, no markup, no place name." DevNote "" Repro "" @@ -825,9 +839,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781871365 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -1070,6 +1084,60 @@ StringTable { ImageLink "" Hidden 0 } + CustomStringTableItem "{6BB4000000000210}" { + Id "OVT-CaptureTower" + Target_en_us "Capture Radio Tower" + Target_de_de "Funkturm einnehmen" + Comment "Hold action on occupying radio towers, beside Sabotage Radio Tower" + DevNote "" + Repro "" + ActorGender NONE + Terminology NONE + Status DEVELOPMENT_PENDING + NonTranslatable 0 + MaxLength 0 + Modified 1781871401 + Author "Claude" + LastChanged "lemmi" + ImageLink "" + Hidden 0 + } + CustomStringTableItem "{6BB4000000000212}" { + Id "OVT-CaptureTower_Defended" + Target_en_us "Enemy soldiers are still defending this tower" + Target_de_de "Feindliche Soldaten verteidigen diesen Turm weiterhin." + Comment "Disabled reason on the Capture Radio Tower action" + DevNote "" + Repro "" + ActorGender NONE + Terminology NONE + Status DEVELOPMENT_PENDING + NonTranslatable 0 + MaxLength 0 + Modified 1781871437 + Author "Claude" + LastChanged "lemmi" + ImageLink "" + Hidden 0 + } + CustomStringTableItem "{6BB4000000000211}" { + Id "OVT-CaptureTower_Wanted" + Target_en_us "You cannot capture a tower while wanted" + Target_de_de "Du kannst keinen Turm erobern, während du gesucht wirst." + Comment "Disabled reason on the Capture Radio Tower action" + DevNote "" + Repro "" + ActorGender NONE + Terminology NONE + Status DEVELOPMENT_PENDING + NonTranslatable 0 + MaxLength 0 + Modified 1781871467 + Author "Claude" + LastChanged "lemmi" + ImageLink "" + Hidden 0 + } CustomStringTableItem "{6A8E2E2000000043}" { Id "OVT-Cargo_Line" Target_en_us "%1 x %2" @@ -1090,6 +1158,7 @@ StringTable { CustomStringTableItem "{6A8E2E2000000044}" { Id "OVT-Cargo_More" Target_en_us "+%1 more" + Target_de_de "+%1 mehr" Comment "Overflow line on the truck cargo HUD, replacing the last resource line when the truck holds more kinds of resource than the panel has rows. %1 is how many kinds are not listed, including the one the row displaced." DevNote "" Repro "" @@ -1098,15 +1167,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781871496 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000040}" { Id "OVT-Cargo_Title" Target_en_us "Cargo" + Target_de_de "Ladung" Comment "Header of the cargo panel on a truck's HUD, shown only while the local player occupies a truck that carries a resource store. One word, title case; the volume and the resource lines are drawn underneath it." DevNote "" Repro "" @@ -1115,9 +1185,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781871520 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -1471,6 +1541,7 @@ StringTable { CustomStringTableItem "{6B8C3F5D00000065}" { Id "OVT-DismantleEnemyFOB" Target_en_us "Dismantle Forward Base" + Target_de_de "Vorgeschobene Basis abbauen" Comment "Held user action (15 s, authored on Prefabs/Bases/OVT_OccupyingFOB.et) shown on the flag of the occupying faction's forward operating base. Performing it tears the base down, takes objectiveFOBCost back out of the enemy's deployment pool and ends the current objective. Wording is an imperative verb phrase like the other flag actions (OVT-CaptureBase)." DevNote "" Repro "" @@ -1479,13 +1550,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781871557 Author "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D00000066}" { Id "OVT-DismantleEnemyFOB_Defended" Target_en_us "Enemy soldiers are still defending this position" + Target_de_de "Feindliche Soldaten verteidigen diese Stellung weiterhin" Comment "Refusal reason shown on the Dismantle Forward Base action (SetCannotPerformReason) while at least one living occupying-faction soldier is within 150 m of the flag. The site has to be CLEARED, not merely reached - this is the whole challenge of removing a forward base." DevNote "" Repro "" @@ -1494,13 +1568,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781871589 Author "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D00000068}" { Id "OVT-DismantleEnemyFOB_None" Target_en_us "There is no enemy forward base here any more" + Target_de_de "Hier gibt es keine feindliche vorgeschobene Basis mehr" Comment "Refusal reason shown on the Dismantle Forward Base action when the occupying faction no longer has a forward base at all - it starved, the objective ended, or another player pulled it down first. The structure is a persisted world entity and can briefly outlive the campaign's record of it, which is when a player sees this." DevNote "" Repro "" @@ -1509,13 +1586,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781871847 Author "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D00000067}" { Id "OVT-DismantleEnemyFOB_TooFar" Target_en_us "You are too far from the forward base" + Target_de_de "Du bist zu weit von der vorgeschobenen Basis entfernt" Comment "Refusal reason shown on the Dismantle Forward Base action when the caller is further than 30 m from the recorded forward-base position. In practice only reachable when the flag and the enemy's recorded base position have drifted apart, so the wording explains the distance rather than blaming the player." DevNote "" Repro "" @@ -1524,7 +1604,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781871851 Author "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -1600,6 +1682,7 @@ StringTable { CustomStringTableItem "{6A8E2D200000001D}" { Id "OVT-Export" Target_en_us "Export" + Target_de_de "Export" Comment "Transfer screen mode label for the port Export list, where a vehicle's storage is sold." DevNote "" Repro "" @@ -1608,15 +1691,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787529600 + Modified 1781871885 Author "Claude" - LastChanged "Lemmi" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2D200000001E}" { Id "OVT-Export_Body" Target_en_us "The port pays less than any shop charges for the same item." + Target_de_de "Der Hafen zahlt weniger, als jedes Geschäft für denselben Artikel verlangt." Comment "Details pane body on every sellable row of the port Export list." DevNote "" Repro "" @@ -1625,15 +1709,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787529600 + Modified 1781871916 Author "Claude" - LastChanged "Lemmi" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2D200000001F}" { Id "OVT-Export_NotSellable" Target_en_us "The port will not buy this" + Target_de_de "Der Hafen wird das nicht kaufen." Comment "Port Export row disabled - the item is unregistered, or illegal and the player lacks the import permission at a port the resistance does not hold." DevNote "" Repro "" @@ -1642,9 +1727,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787529600 + Modified 1781871944 Author "Claude" - LastChanged "Lemmi" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -2215,6 +2300,7 @@ StringTable { CustomStringTableItem "{6B8C3F5D00000201}" { Id "OVT-FieldManual_CounterAttacks_Head" Target_en_us "The Build-Up" + Target_de_de "Der Aufbau" Comment "Field Manual - section header inside the Counter Attacks page, drawn above the paragraph about the harassment phase. Two to four words, no markup. Added 2026-08-19 by occupying/counter-attacks Phase 10." DevNote "" Repro "" @@ -2223,15 +2309,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786838400 + Modified 1781871961 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D00000202}" { Id "OVT-FieldManual_CounterAttacks_Head2" Target_en_us "What Sabotage Costs" + Target_de_de "Was die Sabotage kostet" Comment "Field Manual - section header inside the Counter Attacks page, drawn above the paragraph about structures being permanently destroyed at a base. Two to four words, no markup. Added 2026-08-19 by occupying/counter-attacks Phase 10." DevNote "" Repro "" @@ -2240,15 +2327,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786838400 + Modified 1781872000 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D00000203}" { Id "OVT-FieldManual_CounterAttacks_Head3" Target_en_us "A Base of Their Own" + Target_de_de "Eine eigene Basis" Comment "Field Manual - section header inside the Counter Attacks page, drawn above the paragraph about the occupying faction's forward base. Three to five words, no markup. Added 2026-08-19 by occupying/counter-attacks Phase 10." DevNote "" Repro "" @@ -2257,15 +2345,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786838400 + Modified 1781872020 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D00000204}" { Id "OVT-FieldManual_CounterAttacks_Head4" Target_en_us "The Encirclement" + Target_de_de "Die Einkesselung" Comment "Field Manual - section header inside the Counter Attacks page, drawn above the two paragraphs about how the counter attack itself is fought. Two to four words, no markup. Added 2026-08-19 by occupying/counter-attacks Phase 10." DevNote "" Repro "" @@ -2274,15 +2363,22 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786838400 + Modified 1781872142 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D00000205}" { Id "OVT-FieldManual_CounterAttacks_Text" Target_en_us "The occupying faction works toward one place at a time. It picks a single base, town or city the resistance holds and spends the following hours building up against it, and the choice is not a lottery: bigger towns, ground close to the bases it still holds, places its radio towers still reach, and towns whose support has already slipped are what draw it. Villages, radio towers and resistance FOBs are never the target themselves. The target can change while the build-up is still in its early stage; once the occupiers have committed to it they see it through unless the build-up is broken." + Target_de_de "Die Besatzungskräfte konzentrieren ihre Kräfte jeweils auf ein einzelnes Ziel. Dazu wählen sie einen von den Widerstandskräften gehaltenen Stützpunkt, eine Ortschaft oder eine Stadt aus und führen in den folgenden Stunden Kräfte und Mittel für einen Angriff zusammen."\ + ""\ + "Die Zielauswahl erfolgt nicht zufällig. Bevorzugt werden größere Ortschaften, Ziele in der Nähe noch gehaltener eigener Stützpunkte, Bereiche innerhalb der Reichweite eigener Funkturm sowie Orte, in denen die Unterstützung für den Widerstand bereits nachgelassen hat."\ + ""\ + "Dörfer, Funkmtürme und FOBs des Widerstands werden dabei nicht unmittelbar als Angriffsziele ausgewählt."\ + ""\ + "Solange sich der Kräfteaufmarsch noch in einer frühen Phase befindet, kann das Ziel gewechselt werden. Nach erfolgter Festlegung auf ein Ziel wird der Angriff jedoch konsequent weitergeführt, sofern der Aufmarsch nicht vorher unterbunden wird." Comment "Field Manual - opening paragraph of the Counter Attacks page. Reference voice: describes the system, never instructs, and implies no order of play. Four sentences, no rich-text markup. ADDED 2026-08-19 by occupying/counter-attacks Phase 10. FACT-CHECKED against the shipped code: one objective at a time is OVT_ObjectiveDirectorComponent.c (m_Objective, a single record; SelectObjective runs only from the IDLE and HARASSMENT branches of DirectorTick). The scoring inputs are OVT_ObjectiveSelection.ScoreTown/ScoreBase - population, distance to the nearest occupying-held base, radio-tower coverage, and town support - with no randomness anywhere in the pick (the file has no RandInt/RandFloat call). Candidates are resistance-held BASE, TOWN and CITY only; OVT_TownSize.VILLAGE, radio towers and FOBs are excluded. 'Committed' is the phase lock: re-selection is refused once the phase is past HARASSMENT (see the reselect guard in DirectorTick), and 'unless the build-up is broken' is the starvation and teardown path in OVT_ObjectivePhaseRules.IsFOBStarved. No numbers are quoted: every weight is an internal constant and every threshold is either a constant or a difficulty setting. RE-FACT-CHECKED 2026-08-21 by occupying/objectives Phase 8. EVERY SENTENCE STILL HOLDS, but two citations above are now dead. (1) \"SelectObjective runs only from the IDLE and HARASSMENT branches of DirectorTick\" describes a phase switch that no longer exists: DirectorTick runs the live instances and then selects on the free-slot path (OVT_ObjectiveDirectorComponent.c:640-690), and the \"target can change early, then it is committed\" rule is now ConsumeReselectRequest:1120-1137, which refuses once the objective is past its FIRST phase. Same boundary, expressed against the plan instead of the enum. (2) The scoring inputs are no longer read from OVT_ObjectiveSelection by the director: they are authored weights on each plan selector (Objective_TownOffensive.conf:7-14 population 40 / support collapse 30 / proximity 25 / tower coverage 10; Objective_BaseOffensive.conf:7-13 prize 45 / threat 25 / proximity 25 / tower coverage 10), whose defaults ARE those constants - OVT_ObjectiveSelection.c is byte-unchanged. Still no randomness in the pick: both plans author m_fChance 100 and the roll short-circuits at 100. The excluded set (villages, radio towers, forward bases) is now the candidate collection, OVT_ObjectiveCandidateSet." DevNote "" Repro "" @@ -2291,15 +2387,25 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786838400 + Modified 1781872315 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D00000206}" { Id "OVT-FieldManual_CounterAttacks_Text2" Target_en_us "The first sign is traffic. Groups are driven out from a base the occupiers still hold, dropped at a road short of the target and left to walk the rest of the way, and the truck turns round and goes home. In a town they make for the centre, and a group that holds it with nobody there to contest it drives the town's support for the resistance down a step; the next one drives it down again. A radio tower the resistance holds nearby draws a team of its own, which has to reach the tower and stand on it for a long stretch before it flips back. At a base they infiltrate and start pulling down what was built there. Standing in any of those places pauses the clock the group is working against, and killing the group ends the attempt outright." + Target_de_de "Das erste Anzeichen ist verstärkter Fahrzeugverkehr. Trupps rücken von einem noch durch die Besatzungskräfte gehaltenen Stützpunkt aus, werden auf einer Straße kurz vor dem Ziel abgesetzt und legen den restlichen Weg zu Fuß zurück. Das Transportfahrzeug kehrt anschließend zum Ausgangspunkt zurück."\ + ""\ + "In Ortschaften stoßen die Trupps zum Ortszentrum vor. Hält ein Trupp dieses unangefochten, sinkt die Unterstützung der Bevölkerung für den Widerstand um eine Stufe; ein weiterer erfolgreicher Trupp senkt sie erneut."\ + ""\ + "Ein nahe gelegener, vom Widerstand gehaltener Funkturm zieht einen eigenen Trupp auf sich. Dieser muss den Mast erreichen und die Stellung dort über längere Zeit halten, bevor die Anlage wieder unter Kontrolle der Besatzungskräfte fällt."\ + ""\ + "Bei Stützpunkten dringen die Kräfte ein und beginnen, die dort errichteten Einrichtungen abzubauen beziehungsweise zu zerstören."\ + ""\ + "Solange sich Verteidiger an einem dieser Orte aufhalten, wird der laufende Fortschritt des angreifenden Trupps angehalten. Wird der Trupp vollständig ausgeschaltet, ist der jeweilige Versuch sofort beendet."\ + "" Comment "Field Manual - Counter Attacks page, body paragraph under 'The Build-Up'. Reference voice: describes, never instructs. Six sentences, no rich-text markup. ADDED 2026-08-19 by occupying/counter-attacks Phase 10. FACT-CHECKED against: OVT_InsertionSpawningDeploymentModule.c (source base -> truck + registered crew -> drive -> drop at a road landing zone m_fLZStandoffDistance short of the target -> return and despawn; m_fWalkThresholdDistance 400 means a close enough source walks instead), authored on Deployment_ObjectiveHarassment.conf, Deployment_ObjectiveTowerRecapture.conf and Deployment_ObjectiveSabotage.conf. Town harassment: OVT_TownHarassmentBehaviorDeploymentModule.c:91-94 counts living registered members inside m_fHoldRadius (120, Deployment_ObjectiveHarassment.conf:33) and pauses on a player inside the same circle (EvaluateHold, :114-130), then stacks the 'ObjectiveHarassment' support modifier authored in Configs/Modifiers/supportModifiers.conf:125-134 (baseEffect -20, stackLimit 4) - which is why 'a step' and 'again' are both true. Tower recapture: OVT_TowerRecaptureBehaviorDeploymentModule.c:100-106, m_fHoldRadius 80 and m_iHoldSeconds 600 in Deployment_ObjectiveTowerRecapture.conf:34-35, with objectiveTowerRecaptureHoldSeconds overriding it per difficulty (300 on Insane, 900 on Easy) - 'a long stretch' rather than a number for that reason. Base sabotage: OVT_BaseSabotageBehaviorDeploymentModule.c:132-135, m_fClearRadius 150. The pause-not-reset behaviour is explicit in all three EvaluateX methods (ticksLeft is left alone, never re-armed). Deliberately quotes no distances or timings: all three are difficulty-scaled or config-authored and are expected to be tuned. RE-FACT-CHECKED 2026-08-21 by occupying/objectives Phase 8. Values re-verified unchanged: m_fHoldRadius 120 at Deployment_ObjectiveHarassment.conf:33, m_fHoldRadius 80 and m_iHoldSeconds 600 at Deployment_ObjectiveTowerRecapture.conf:34-35 (still deliberately OFF the -1 difficulty convention, so objectiveTowerRecaptureHoldSeconds still overrides it, 600 on Normal / 300 on Insane / 900 on Easy), m_fClearRadius 150 at Deployment_ObjectiveSabotage.conf:33, m_fLZStandoffDistance 300 and m_fWalkThresholdDistance 400 in all three. What changed is only where the sending is decided: the three senders are now authored OVT_SendDeploymentObjectiveOperation modules on each plan phase rather than director code, and the harassment ramp is the four-rung m_aLadder keyed on harassment.successes. ⚠ ONE THING A FUTURE EDITOR SHOULD KNOW: the three deployment configs now span TWO phases (m_sFromPhase \"Harassment\", m_sThroughPhase \"ForwardBase\"), so the traffic this paragraph describes carries on while the forward base is going up. The paragraph never said it stopped, so no sentence changed." DevNote "" Repro "" @@ -2308,15 +2414,23 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786838400 + Modified 1781872362 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D00000207}" { Id "OVT-FieldManual_CounterAttacks_Text3" Target_en_us "What saboteurs pull down at a base stays where it stood. The structure is wrecked rather than taken away, with an explosion and smoke to mark it, and the ruin can be put back for a share of what it cost to build; a campaign saved and loaded again brings it back as a ruin. Gear stored inside survives the demolition, though nothing about the place works until it is repaired. They take the cheapest thing standing first and work upward, so bunkers and tents go before the garage does, and only what belongs to that base is ever at risk. A single player inside the base stops the demolitions where they are, and one message goes out per mission, on the first thing destroyed." + Target_de_de "Was Saboteure in einem Stützpunkt zerstören, bleibt an Ort und Stelle. Die jeweilige Anlage wird nicht abtransportiert, sondern gesprengt und als beschädigte Ruine zurückgelassen; Explosion und Rauch kennzeichnen die Zerstörung. Die Ruine kann anschließend für einen Teil der ursprünglichen Baukosten wieder instand gesetzt werden. Wird eine Kampagne gespeichert und später neu geladen, bleibt die Anlage als Ruine bestehen."\ + ""\ + "Im Inneren gelagerte Ausrüstung übersteht die Zerstörung. Die betroffene Einrichtung bleibt jedoch vollständig außer Funktion, bis sie repariert wurde."\ + ""\ + "Die Saboteure beginnen mit den günstigsten vorhandenen Bauten und arbeiten sich zu den wertvolleren vor. Entsprechend werden beispielsweise Bunker und Zelte vor einer Garage angegriffen. Gefährdet sind ausschließlich Objekte, die dem jeweiligen Stützpunkt zugeordnet sind."\ + ""\ + "Befindet sich auch nur ein Spieler innerhalb des Stützpunkts, werden die laufenden Sprengungen an ihrem aktuellen Stand angehalten. Pro Mission wird nur eine Meldung ausgegeben, und zwar beim ersten zerstörten Objekt."\ + "" Comment "Field Manual - Counter Attacks page, body paragraph under 'What Sabotage Costs'. Reference voice: describes, never instructs. Five sentences, no rich-text markup. ADDED 2026-08-19 by occupying/counter-attacks Phase 10; REWRITTEN 2026-08-20 by core/damage Phase 8 - the old text said losses were permanent with no rubble and no repair, which core/damage replaced. FACT-CHECKED against OVT_BaseSabotageBehaviorDeploymentModule.DemolishNextStructure():325, which now calls OVT_StructureDamage.Ruin(target) and only falls back to OVT_ResistanceFactionManager.DestroyPlacedItem() for a structure with no destruction component - all eight shipped buildables carry one after the core/damage retrofit, so on shipped data a demolished structure always becomes a ruin. The entity is never deleted, so it stays in the world and its persistence record survives; the phase round-trips through OVT_BuildableComponentSerializer version 2. The explosion particle, smoke particle and positional sound are OVT_StructureDestructionComponent.RaiseEffects():291-301. Repair is OVT_RepairStructureAction priced by OVT_RepairPricing.RepairCost(baseCost, buildableCostMultiplier, repairCostMultiplier) - see OVT-FieldManual_Ruins_Text4 for the difficulty numbers, which are deliberately not repeated here. Gear survival: a phase change swaps the mesh and touches nothing else (implementation.md §3.8); only the storage ACTIONS are gated, at OVT_OpenStorageAction.c:37 and Modded/SCR_OpenStorageAction.c:13. Cheapest first is the ordering by OVT_ResistanceFactionManager.GetStructureCost(), joined BY PREFAB RESOURCE NAME against Configs/Resistance/buildables.conf (an unpriced prefab answers UNKNOWN_STRUCTURE_COST 1000000 and therefore sorts LAST). Shipped buildable prices, in the order they go: Bunkers 750, Recruitment Tent 1000, Medical Tent 1000, Guard Tower 1200, Vehicle Maintenance Ramp 1500, Helipad 1500, Fuel Depot 2000, Garage 8000. Scope: the enumerator matches on association id AND type, so only structures associated with THAT base are candidates. The player block is m_fClearRadius 150 in Deployment_ObjectiveSabotage.conf and it PAUSES rather than resets. The notification is NotifyOnce() behind the m_bNotified latch, once per mission on the first structure. How many go per mission and how long between them are difficulty settings and are deliberately not quoted." DevNote "" Repro "" @@ -2325,15 +2439,23 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786838400 + Modified 1781872413 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D00000208}" { Id "OVT-FieldManual_CounterAttacks_Text4" Target_en_us "Once the build-up has told, the occupiers put a forward base of their own on the ground between their nearest holding and the target. A supply truck drives out to raise it, so it can be ambushed on the road, and nothing announces the base once it is standing: it is found, not reported. From then on it is where their groups come from, and it is also the shortest way to stop the whole thing. Take or empty the base supplying it, or stay close to the forward base itself, and after a while it is pulled down and the occupiers start looking elsewhere. With the site clear of their soldiers, a held action on its flag takes it down on the spot, and that costs them more than starving it does." + Target_de_de "Sobald der Kräfteaufmarsch Wirkung zeigt, errichten die Besatzungskräfte einen eigenen vorgeschobenen Stützpunkt zwischen ihrer nächstgelegenen gehaltenen Stellung und dem Angriffsziel."\ + ""\ + "Ein Versorgungslastwagen rückt aus, um diesen Stützpunkt aufzubauen, und kann daher bereits auf dem Anmarsch abgefangen werden. Ist der vorgeschobene Stützpunkt erst einmal eingerichtet, erfolgt darüber keine Meldung: Er muss aufgeklärt und gefunden werden."\ + ""\ + "Von diesem Zeitpunkt an dient er als Ausgangspunkt für die eingesetzten Trupps und zugleich als wirksamster Ansatzpunkt, um den gesamten Angriffsvorgang zu unterbrechen. Wird der Stützpunkt, der ihn versorgt, eingenommen oder vollständig geräumt, oder halten sich Widerstandskräfte über längere Zeit in unmittelbarer Nähe des vorgeschobenen Stützpunkts auf, wird dieser schließlich aufgegeben und abgebaut. Anschließend suchen die Besatzungskräfte nach einem neuen Ziel."\ + ""\ + "Ist das Gelände frei von feindlichen Soldaten, kann der vorgeschobene Stützpunkt durch eine länger gehaltene Aktion an seiner Flagge unmittelbar beseitigt werden. Diese direkte Zerstörung verursacht den Besatzungskräften höhere Verluste als eine Aufgabe infolge unterbrochener Versorgung."\ + "" Comment "Field Manual - Counter Attacks page, body paragraph under 'A Base of Their Own'. Reference voice: describes, never instructs. Five sentences, no rich-text markup. ADDED 2026-08-19 by occupying/counter-attacks Phase 10. FACT-CHECKED against OVT_ObjectiveDirectorComponent.c: siting runs in a band between the nearest occupying-held base and the objective (FOB_BAND_MIN_FRACTION 0.35 / FOB_BAND_MAX_FRACTION 0.75 with FOB_MIN_STANDOFF 350 and FOB_MAX_STANDOFF 2500), preferring an authored OVT_FOBPosition marker and falling back to a generated clear/flat/elevated point. The raise is OVT_FOBRaiseSpawningDeploymentModule on Deployment_ObjectiveFOB.conf, which is an OVT_InsertionSpawningDeploymentModule subclass and therefore a live truck on real roads - hence 'ambushed on the road'. NO NOTIFICATION is deliberate (the feature's D12 and G12): nothing in the tree sends a broadcast, a text notification or an RplProp for the forward base, and none of the director's state replicates at all. Starvation is OVT_ObjectivePhaseRules.IsFOBStarved(sourceHeld, aliveGroups, playerPresent) driven from OVT_ObjectiveDirectorComponent.c:2200 - three independent causes: the supplying base is no longer occupying-held (IsFOBSourceBaseHeld), its garrison is dead (CountAliveFOBGroups), or a player is inside baseCloseRange OF THE FORWARD BASE ITSELF (IsPlayerAtFOB, :2325-2332). ⚠ NOTE the presence test is at the forward base, not at the supplying base - the requirements' wording says otherwise and the shipped code is what this sentence follows. It has to hold for objectiveStarvationMinutes (a difficulty setting, 30 on Normal) and any good tick zeroes the count. The hand teardown is OVT_DismantleEnemyFOBAction with Duration 15 authored in Prefabs/Bases/OVT_OccupyingFOB.et, gated server-side by OVT_ObjectiveDirectorComponent.CanDismantleFOBAt:2567-2584 - within FOB_DISMANTLE_RANGE (30 m) of the flag and zero living occupying soldiers within FOB_DEFENDER_CLEAR_RADIUS (150 m). 'Costs them more' is the resource penalty applied only on the player-dismantle exit of the teardown (OnFOBDismantledByPlayer); starvation and a resolved battle carry no penalty. Distances and minutes are deliberately not quoted: two are internal constants and the starvation window is a difficulty setting. RE-FACT-CHECKED 2026-08-21 by occupying/objectives Phase 8. The BEHAVIOUR is unchanged and every claim above still holds, but the code moved: the whole forward-base block is now the authored operation module OVT_RaiseForwardBaseObjectiveOperation, and the siting band is authored on both plans rather than being director constants (m_fBandMinFraction 0.35, m_fBandMaxFraction 0.75, m_fMinStandoff 350, m_fMaxStandoff 2500 in Configs/Objective/Objective_TownOffensive.conf:105-111 and Objective_BaseOffensive.conf). Starvation is now the authored abort OVT_AssetStarvedObjectiveAbort (m_iStarvationMinutes -1 = objectiveStarvationMinutes, still 30 on Normal per Configs/Difficulty/Difficulty_Normal.conf:20); its presence input is still measured AT THE FORWARD BASE with difficulty.baseCloseRange (OVT_AssetStarvedObjectiveAbort.IsPlayerAtAsset:255-262), so C4 stands. The dismantle constants kept their values and lost their FOB_ prefix: OVT_RaiseForwardBaseObjectiveOperation.DISMANTLE_RANGE 30 (:167) and DEFENDER_CLEAR_RADIUS 150 (:173), reached through the director facade CanDismantleFOBAt:1467. CORRECTED IN THE BODY 2026-08-21: the fourth sentence read \"or stay in strength on the forward base itself\", which overstates the rule - OVT_WorldUtils.PlayerInRange is satisfied by a SINGLE player inside baseCloseRange (220 m by default, OVT_DifficultySettings.c:70), so it now reads \"or stay close to the forward base itself\". Translations of this string carry the old clause and need re-checking." DevNote "" Repro "" @@ -2342,15 +2464,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786838400 + Modified 1781872468 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D00000209}" { Id "OVT-FieldManual_CounterAttacks_Text5" Target_en_us "The counter attack itself arrives without a word. Nothing is announced, no battle panel appears and no circle is drawn on the map; the whole force is put down at once at the usual landing distances and walks in to form a ring roughly a hundred to a hundred and fifty metres out from the centre. The one thing that gives it away early is that no battle of your own can be started while it is forming, so a capture or an uprising that was available a minute ago is quietly not on offer. Counter attacks only ever begin in daylight, between roughly 05:00 and 15:00, and the waves come in from the side the occupying faction actually holds, including from its forward base." + Target_de_de "Der Gegenangriff selbst setzt ohne jede Vorwarnung ein. Es erfolgt keine Meldung, kein Gefechtsfenster erscheint und auf der Karte wird kein Einsatzradius angezeigt. Die gesamte Angriffskraft wird gleichzeitig in der üblichen Entfernung zum Ziel eingesetzt und rückt anschließend zu Fuß vor, um in etwa 100 bis 150 Metern Abstand zum Zentrum einen geschlossenen Ring zu bilden."\ + ""\ + "Der einzige frühzeitige Hinweis besteht darin, dass während der Formierung kein eigenes Gefecht begonnen werden kann. Eine zuvor noch verfügbare Einnahmeaktion oder ein Aufstand steht dann ohne weitere Meldung vorübergehend nicht mehr zur Verfügung."\ + ""\ + "Gegenangriffe beginnen ausschließlich bei Tageslicht, ungefähr zwischen 05:00 und 15:00 Uhr. Die Angriffswellen rücken aus der Richtung an, in der die Besatzungskräfte tatsächlich eigene Stellungen halten; dazu zählt auch ein vorhandener vorgeschobener Stützpunkt."\ + "" Comment "Field Manual - Counter Attacks page, first body paragraph under 'The Encirclement'. Reference voice: describes, never instructs. Four sentences, no rich-text markup. ADDED 2026-08-19 by occupying/counter-attacks Phase 10. FACT-CHECKED against OVT_QRFControllerComponent.c: the COUNTER_ATTACK mode's SILENT_DEPLOY stage sends no notification and leaves m_bQRFRevealed false, which is the conjunct the four client surfaces read (OVT_EconomyInfo.c:83 the HUD panel, OVT_MapRestrictedAreas.c:332 the circle, OVT_FastTravelService.c:115, OVT_RespawnService.c:226). The single-pass spend and the ring are BuildSiegeRing(), called at the end of SendTroops() after SendWave() has filled the queue: slot i takes bearing 360/N*i (OVT_QRFSiege.RingSlotBearing) at a radius rolled per slot in [OVT_QRFSiege.SIEGE_RING_MIN 100, SIEGE_RING_MAX 150] - the two numbers this sentence quotes, and the only two it does. Groups still spawn at the ordinary landing zones and walk to their slot, so nothing appears next to a player standing in the objective. The tell is m_bQRFActive, which is true from the moment the battle object exists in BOTH modes and is read unchanged by OVT_CaptureBaseAction.c:7,:25, OVT_StartUprisingAction.c:6,:21, OVT_CampaignRequestComponent.c:172 and OVT_UprisingRequestComponent.c:48 - the actions hide rather than refuse, which is why 'quietly not on offer'. The daylight window is OVT_ObjectivePhaseRules.IsCounterAttackWindow with COUNTER_ATTACK_HOUR_START 5 and COUNTER_ATTACK_HOUR_END 15 on the director (half-open, so the last minute one may START is 14:59; a battle already begun runs on past 15:00, which is why the sentence says BEGIN). Wave direction is the forward base joining the wave-source list in SendTroops() plus OVT_QRFBearing deriving each wave's landing-zone bearing from the source that sent it. RE-FACT-CHECKED 2026-08-21 by occupying/objectives Phase 8. Unchanged and re-verified: OVT_QRFSiege.SIEGE_RING_MIN 100 / SIEGE_RING_MAX 150 (OVT_QRFSiege.c:54-55). The daylight window is no longer a pair of director constants: it is the authored condition OVT_DaylightWindowObjectiveCondition with m_iStartHour 5 and m_iEndHour 15 on BOTH shipped plans (Objective_TownOffensive.conf and Objective_BaseOffensive.conf:189-192), still half-open through OVT_ObjectivePhaseRules.IsCounterAttackWindow, so 05:00 to 15:00 remains correct. ⚠ A MOD MAY NOW AUTHOR A DIFFERENT WINDOW, so the two hours in this sentence are shipped-campaign facts rather than engine facts." DevNote "" Repro "" @@ -2359,15 +2487,25 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786838400 + Modified 1781872561 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D0000020A}" { Id "OVT-FieldManual_CounterAttacks_Text6" Target_en_us "The word comes when the last of them is in place, and with it fifteen real minutes in which nothing at all is scored. That time belongs to the resistance: it is long enough to drive in, gather recruits, dig in on the ground that matters, or decide the place is not worth the fight and leave. The battle panel names the place being fought over and counts down to the moment scoring begins. If every attacker on the ring is killed before it runs out the battle ends there and then in the resistance's favour, with no assault at all. Otherwise the clock reaches zero, the ring closes in and the ground is counted exactly as it is in any other battle. Whatever the outcome, their forward base comes down afterwards and the occupiers begin choosing again." + Target_de_de "Die Meldung erfolgt erst, sobald sämtliche angreifenden Kräfte ihre Ausgangsstellungen bezogen haben. Ab diesem Zeitpunkt beginnt eine fünfzehnminütige Vorbereitungsphase in Echtzeit, während der keinerlei Wertung erfolgt."\ + ""\ + "Dieses Zeitfenster gehört dem Widerstand. Es kann genutzt werden, um Verstärkungen heranzuführen, Rekruten zu sammeln, entscheidendes Gelände auszubauen oder die Lage als nicht verteidigungswürdig einzustufen und den Raum aufzugeben."\ + ""\ + "Das Gefechtsfenster weist den umkämpften Ort aus und zeigt den Countdown bis zum Beginn der Wertungsphase. Werden sämtliche Angreifer im Bereitstellungsring vor Ablauf dieser Frist ausgeschaltet, endet das Gefecht sofort mit einem Sieg des Widerstands; ein eigentlicher Sturmangriff findet dann nicht statt."\ + ""\ + "Verbleiben nach Ablauf der Frist noch Angreifer, beginnt die Kampfphase. Der Einschließungsring zieht sich zusammen, und die Geländekontrolle wird nach denselben Regeln gewertet wie in jedem anderen Gefecht."\ + ""\ + "Unabhängig vom Ausgang des Kampfes wird der vorgeschobene Stützpunkt der Besatzungskräfte anschließend aufgegeben und abgebaut. Danach beginnt die Besatzungsfraktion erneut mit der Auswahl eines Angriffsziels."\ + "" Comment "Field Manual - Counter Attacks page, second body paragraph under 'The Encirclement'. Reference voice: describes, never instructs, and offers options rather than a course of action. Six sentences, no rich-text markup. ADDED 2026-08-19 by occupying/counter-attacks Phase 10. FACT-CHECKED against OVT_QRFControllerComponent.c: EnterMuster() fires at the SILENT_DEPLOY -> MUSTER transition, i.e. when the spawn queue is empty, sends the CounterAttackBase/CounterAttackTown broadcast through the manager's RevealQRF() and sets m_iTimer to OVT_QRFSiege.MUSTER_TIME_MS = 1800000 ms. THIRTY REAL MINUTES, NOT IN-GAME ONES: the countdown is driven by the 1000 ms CheckUpdateTimer callqueue, which timeMul does not scale. Nothing is scored during it because CheckUpdatePoints' whole body is behind 'if(m_iTimer <= 0)', which MUSTER cannot satisfy until it transitions. The minutes-then-seconds display is OVT_QRFSiege.MusterMinutesRemaining with the crossover at PUBLISH_THRESHOLD_MS 120000 (see OVT-BattleStartsInMinutes); a player-initiated battle never reaches the minutes form because its clock starts at exactly 120000. The early end is CheckSiegeWipedOut on CheckUpdatePoints' 10 s cadence, in MUSTER only, through OVT_QRFSiege.GroupNeutralised / AllNeutralised behind the m_bSiegeForceSeenAlive arming latch; it transitions to BATTLE, where the unmodified scoring loop awards the resistance the objective quickly with no enemy inside QRF_RANGE - hence 'ends there and then in the resistance's favour' rather than 'is cancelled'. ⚠ DO NOT write that the siege is called off: it is not, the battle is resolved by scoring against an empty ring. The assault order change at the BATTLE transition is IssueAssaultOrders(), which removes each group's held waypoint and gives it SearchAndDestroy - 'the ring closes in'. The teardown-and-reselect on every outcome is the director polling m_CurrentQRF going null and calling its one ResetObjective() path. RE-FACT-CHECKED 2026-08-21 by occupying/objectives Phase 8. 🔴 CORRECTION TO THIS COMMENT, NOT TO THE BODY: the note above said \"MUSTER_TIME_MS = 1800000 ms. THIRTY REAL MINUTES\". The shipped constant is 900000 ms (OVT_QRFSiege.c:49), which is FIFTEEN real minutes, and \"fifteen real minutes\" is what the body has always said. The body was right and the fact-check note was wrong; do not \"fix\" the body to thirty. Everything else re-verified: PUBLISH_THRESHOLD_MS 120000 (:63), the early end still resolves the battle by scoring against an empty ring rather than cancelling it, and the battle is now started by the authored terminal operation OVT_StartBattleObjectiveOperation with the runner POLLING m_CurrentQRF (never subscribing to the finish invoker), which is the same teardown-and-reselect path this note describes." DevNote "" Repro "" @@ -2376,15 +2514,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786838400 + Modified 1781872627 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D0000020B}" { Id "OVT-FieldManual_CounterAttacks_Title" Target_en_us "Counter Attacks" + Target_de_de "Gegenangriff" Comment "Field Manual - title of the Counter Attacks page, shown on its tile in The Resistance category grid and as the heading at the top of the page. Two or three words. Also usable as a deep-link id from a tutorial popup, so it must never be renamed. Added 2026-08-19 by occupying/counter-attacks Phase 10." DevNote "" Repro "" @@ -2393,9 +2532,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786838400 + Modified 1781872654 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -2615,6 +2754,7 @@ StringTable { CustomStringTableItem "{6B4E1F3000000003}" { Id "OVT-FieldManual_Fuel_Head" Target_en_us "When the Money Runs Out" + Target_de_de "Wenn das Geld ausgeht" Comment "Field Manual - Fuel page, header above the can't-afford paragraph. Three to five words, title case, matches the header style of the other pages. No markup." DevNote "" Repro "" @@ -2623,15 +2763,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781872778 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B4E1F3000000004}" { Id "OVT-FieldManual_Fuel_Head2" Target_en_us "Fuel That Costs Nothing" + Target_de_de "Kostenloser Treibstoff" Comment "Field Manual - Fuel page, header above the free-transfer paragraph. Three to five words, title case. No markup." DevNote "" Repro "" @@ -2640,15 +2781,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781872798 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B4E1F3000000005}" { Id "OVT-FieldManual_Fuel_Head3" Target_en_us "The Fuel Depot" + Target_de_de "Das Treibstoffdepot" Comment "Field Manual - Fuel page, header above the depot paragraph. 'Fuel Depot' must match the build-menu name in #OVT-Build_FuelDepot. No markup." DevNote "" Repro "" @@ -2657,15 +2799,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781872875 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B4E1F3000000006}" { Id "OVT-FieldManual_Fuel_Text" Target_en_us "Fuel is something the resistance buys. Refuelling at a fuel pump or a static fuel tank costs money for every litre actually delivered, taken while the fuel flows. The Refuel action shows the rate next to the tank reading, for example ($1/L). That rate is a difficulty setting: half a dollar a litre at the easiest end, four dollars at the hardest, and a server can set it to zero so fuel costs nothing anywhere. Vehicles and the Fuel Depot also carry a Fill Tank action: one five-second hold that fills the tank you are standing at in a single go, shows the exact price before you start, and sells you as much fuel as your money buys when you cannot afford a full load." + Target_de_de "Treibstoff muss vom Widerstand bezahlt werden. Das Betanken an einer Zapfsäule oder einem stationären Kraftstofftank kostet für jeden tatsächlich abgegebenen Liter Geld; der Betrag wird während des Tankvorgangs fortlaufend abgezogen."\ + ""\ + "Die Aktion **„Betanken“** zeigt den Preis pro Liter direkt neben der Tankanzeige an, zum Beispiel **($1/L)**. Dieser Preis ist von der gewählten Schwierigkeit abhängig: Auf der einfachsten Stufe beträgt er **0,50 $ pro Liter**, auf der höchsten **4 $ pro Liter**. Ein Server kann den Wert außerdem auf null setzen; in diesem Fall ist Treibstoff überall kostenlos."\ + ""\ + "Fahrzeuge und das **Treibstoffdepot** verfügen zusätzlich über die Aktion **„Tank füllen“**. Dabei wird die Aktion fünf Sekunden lang gehalten und der betreffende Tank anschließend in einem einzigen Vorgang aufgefüllt. Vor Beginn wird der genaue Preis angezeigt. Reicht das vorhandene Geld nicht für eine vollständige Füllung, wird nur so viel Treibstoff abgegeben, wie mit dem verfügbaren Betrag bezahlt werden kann."\ + "" Comment "Field Manual - Fuel page, opening paragraph. Five sentences, no rich-text markup. FACT-CHECKED 2026-08-18 for economy/fuel Phase 5, and again for amendment A1 (the Fill Tank sentence). Per-litre charging on delivery: the modded SCR_FuelSupportStationComponent charges inside OnFuelAddedToVehicleServer, which receives the exact litres delivered (Scripts/Game/Components/SupportStation/Modded/). Which stations are paid: OVT_FuelUtils.IsFreeFuelSource - anything static that is not the depot, i.e. world pumps, FuelSupportStation_Zone and static fuel tanks. Label: modded SCR_RefuelAtSupportStationAction appends #OVT-Refuel_PriceFormat after super, so the fill percentage is kept. Rates: OVT_DifficultySettings.fuelPricePerLitre with Configs/Difficulty/*.conf - Easy 0.5, Normal 1, Hard 1.5, Extreme 2.5, Insane 4; 0 disables charging entirely (implementation.md D9). The example ($1/L) is the Normal preset. FILL TANK SENTENCE, every clause cited: 'Vehicles and the Fuel Depot also carry' = OVT_FillFuelAction authored on Prefabs/Vehicles/Core/Vehicle_Base.et (fuel_cap context), Prefabs/Vehicles/Core/Vehicle_Fuel_Tank_Base.et (supportStation_fuel context, amendment A2.2) and Prefabs/Structures/Military/FOB/OVT_FuelDepot.et (default context); 'five-second hold' = Duration 5 on all three; 'the tank you are standing at' = amendment A2.1 - OVT_FuelUtils.GetOwnFuelManager scopes the fill to the action owner's OWN fuel manager exactly as SCR_RefuelAtSupportStationAction.Init does, so a truck's fuel cap fills the ~360 L chassis tanks and the cargo nozzle fills the ~4,500 L cargo tank, never both; 'in a single go' = OVT_FuelRequestComponent.AddFuelToManager walks that manager's CAN_RECEIVE_FUEL nodes with no flow cap; 'shows the exact price before you start' = OVT_FillFuelAction.GetActionNameScript draws the CLAMPED cost from OVT_FuelPricing.ComputeFillPlan; 'as much fuel as your money buys' = that same plan takes the minimum of need, source stock and balance. Do NOT say the fast fill is free or instant at a pump - it costs the same per litre as the trickle. Do NOT add a claim that pumps run dry or restock - stock is finite but out of scope and unquantified in player terms." DevNote "" Repro "" @@ -2674,15 +2822,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781872903 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B4E1F3000000007}" { Id "OVT-FieldManual_Fuel_Text2" Target_en_us "If you cannot cover the next moment of flow, the Refuel action is greyed out and reads that you cannot afford fuel here. If the money runs out while fuel is already moving, the flow stops, every litre already delivered stays in the tank, and you are told once. A few dollars can be left unspendable that way, because refuelling only starts when you can pay for a whole moment of flow." + Target_de_de "Kann der Widerstand nicht einmal den nächsten Moment des Tankvorgangs bezahlen, wird die Aktion **„Betanken“** ausgegraut und weist darauf hin, dass der Treibstoff an dieser Stelle nicht bezahlt werden kann."\ + ""\ + "Geht das Geld während eines bereits laufenden Tankvorgangs aus, wird die Kraftstoffzufuhr sofort gestoppt. Jeder bis dahin abgegebene Liter verbleibt im Tank, und es erfolgt einmalig eine entsprechende Meldung."\ + ""\ + "Dadurch können einige wenige Dollar unverwendbar übrig bleiben, da ein Tankvorgang nur dann begonnen wird, wenn mindestens ein vollständiger Abrechnungsabschnitt bezahlt werden kann."\ + "" Comment "Field Manual - Fuel page, body paragraph under 'When the Money Runs Out'. Three sentences, no rich-text markup. FACT-CHECKED 2026-08-18 for economy/fuel Phase 5. Greyed action + reason: the affordability gate lives in the modded SCR_FuelSupportStationComponent.IsValid and maps to #OVT-Refuel_CannotAfford ('You cannot afford fuel here') via the modded SCR_RefuelAtSupportStationAction.GetInvalidPerformReasonString. Stop-and-keep + single toast: #OVT-Msg-CannotAffordFuel is sent once from OnExecutedServer, and the charge only ever happens after the fuel has moved. The unspendable remainder is DELIBERATE (implementation.md R10): the gate estimates one full tick at the station's output rate, so a player can be refused with a few dollars left. Do NOT reword this into 'you ran out of money' - the same wording rule as #OVT-Msg-CannotAffordFuel, and it would be a shipped lie." DevNote "" Repro "" @@ -2691,15 +2845,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781872925 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B4E1F3000000008}" { Id "OVT-FieldManual_Fuel_Text3" Target_en_us "Moving fuel from a fuel truck into a vehicle costs nothing, and neither does pouring a jerrycan. What costs is filling them: a jerrycan or a truck's own cargo tank topped up at a pump is charged at the usual rate. Fuel carried in a truck has already been paid for." + Target_de_de "Das Umfüllen von Treibstoff aus einem Tanklastwagen in ein Fahrzeug ist kostenlos. Gleiches gilt für das Betanken aus einem Kanister."\ + ""\ + "Kosten entstehen erst beim Befüllen dieser Vorräte: Wird ein Kanister oder der eigene Ladetank eines Tankfahrzeugs an einer Zapfsäule aufgefüllt, gilt dafür der reguläre Treibstoffpreis."\ + ""\ + "Treibstoff, der bereits in einem Tankfahrzeug mitgeführt wird, gilt somit als bereits bezahlt."\ + "" Comment "Field Manual - Fuel page, body paragraph under 'Fuel That Costs Nothing'. Three sentences, no rich-text markup. FACT-CHECKED 2026-08-18 for economy/fuel Phase 5. OVT_FuelUtils.IsFreeFuelSource treats a station on a vehicle (fuel trucks) and a station with no range (held jerrycans) as free, so only the static source charges - which is why filling the truck or the can at a pump is charged and emptying either of them is not (implementation.md D5, DoD F5/F6)." DevNote "" Repro "" @@ -2708,15 +2868,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781872939 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B4E1F3000000009}" { Id "OVT-FieldManual_Fuel_Text4" Target_en_us "The resistance can build a Fuel Depot at a base it holds. It stores 10,000 litres - two full truck loads - and arrives empty, so it has no fuel to give until it is filled: park a fuel truck alongside and drain it into the depot from the depot's own actions. After that it refuels vehicles parked beside it for nothing, and whatever is left in it is kept in the campaign save." + Target_de_de "Der Widerstand kann an einem gehaltenen Stützpunkt ein **Treibstoffdepot** errichten. Es fasst **10.000 Liter** – entsprechend zwei vollständigen Tanklastwagenladungen – und wird leer aufgebaut. Solange es nicht befüllt wurde, kann es daher keinen Treibstoff ausgeben."\ + ""\ + "Zum Befüllen wird ein Tanklastwagen direkt neben dem Depot abgestellt. Anschließend wird dessen Ladung über die Aktionen des Treibstoffdepots in den Vorratstank umgefüllt."\ + ""\ + "Sobald Treibstoff eingelagert ist, können Fahrzeuge in unmittelbarer Nähe des Depots **kostenlos betankt** werden. Die verbleibende Treibstoffmenge wird im Kampagnenspeicher gesichert und steht nach dem Laden weiterhin zur Verfügung."\ + "" Comment "Field Manual - Fuel page, body paragraph under 'The Fuel Depot'. Three sentences, no rich-text markup. FACT-CHECKED 2026-08-18 for economy/fuel Phase 5 against Prefabs/Structures/Military/FOB/OVT_FuelDepot.et and Configs/Resistance/buildables.conf: m_bBuildAtBase 1 only (with OVT_FuelDepotHandler as the server-side backstop), SCR_FuelNode MaxFuel 10000 (amendment A2.3, up from 5000; 'two full truck loads' is 2 x the ~4,500 L cargo tank authored on Ural4320_fuel_tank.et / M923A1_fuel_tank.et), m_fInitialFuelTankState 0 (LITRES, not a fraction, so it starts empty and reports NO_FUEL_TO_GIVE), station m_fRange 7 ('alongside' / 'beside it'), OVT_FuelSourceComponent m_bFree 1 for the free dispense, and SCR_FuelManagerComponentSerializer on the buildable group in Configs/Systems/Persistence/Overthrow.conf for the saved level. The build price is deliberately NOT quoted: m_iCost 2000 is multiplied by the difficulty's buildableCostMultiplier, the same reason no other build text quotes a price. The fill sentence names no single action on purpose: BOTH the depot's vanilla SCR_RefuelAtSupportStationAction and the fast OVT_FillFuelAction do it, and both are on the depot rather than on the truck - which is the fact players get wrong." DevNote "" Repro "" @@ -2725,15 +2891,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781872967 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B4E1F300000000A}" { Id "OVT-FieldManual_Fuel_Title" Target_en_us "Fuel" + Target_de_de "Treibstoff" Comment "Field Manual - title of the Fuel page, shown on its tile in the Money and Trade category grid and as the heading at the top of the page. One word. This key is also the deep-link id the 'fuel-depot-built' tutorial popup uses to open this page, so it must never be renamed." DevNote "" Repro "" @@ -2742,9 +2909,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781872978 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -2903,6 +3070,7 @@ StringTable { CustomStringTableItem "{6B1C3D0000007202}" { Id "OVT-FieldManual_HighCommand_Head" Target_en_us "Barracks" + Target_de_de "Kaserne" Comment "Field Manual - The Resistance category, High Command page. Section header, one word. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -2911,14 +3079,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781872992 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007204}" { Id "OVT-FieldManual_HighCommand_Head2" Target_en_us "Buying a Group" + Target_de_de "Eine Gruppe kaufen" Comment "Field Manual - The Resistance category, High Command page. Section header, three words. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -2927,14 +3097,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873009 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007206}" { Id "OVT-FieldManual_HighCommand_Head3" Target_en_us "Orders and Stances" + Target_de_de "Befehle und Verhaltensweisen" Comment "Field Manual - The Resistance category, High Command page. Section header, three words. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -2943,14 +3115,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873027 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007208}" { Id "OVT-FieldManual_HighCommand_Head4" Target_en_us "Manage Groups" + Target_de_de "Gruppen verwalten" Comment "Field Manual - The Resistance category, High Command page. Section header, two words. Must match the main-menu button label #OVT-MainMenu_ManageGroups. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -2959,14 +3133,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873043 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000720A}" { Id "OVT-FieldManual_HighCommand_Head5" Target_en_us "Ammunition and Fuel" + Target_de_de "Munition und Treibstoff" Comment "Field Manual - The Resistance category, High Command page. Section header, three words. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -2975,14 +3151,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873059 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000720C}" { Id "OVT-FieldManual_HighCommand_Head6" Target_en_us "Turning Recruits Over" + Target_de_de "Rekruten übergeben" Comment "Field Manual - The Resistance category, High Command page. Section header, three words. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -2991,14 +3169,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873073 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000720E}" { Id "OVT-FieldManual_HighCommand_Head7" Target_en_us "Holding Ground" + Target_de_de "Stellungen halten" Comment "Field Manual - The Resistance category, High Command page. Section header, two words. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -3007,14 +3187,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873092 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007201}" { Id "OVT-FieldManual_HighCommand_Text" Target_en_us "High Command is how the resistance fields soldiers of its own rather than an escort. A player buys a whole group at a barracks, owns it outright, and moves it anywhere on the island from the map. The group is really there: it walks or drives to where it is sent, fights what it meets on the way, and holds its ground whether or not anybody is nearby to watch." + Target_de_de "Das Obere Kommando ermöglicht es dem Widerstand, eigene Soldaten als selbstständige Kampfverbände einzusetzen, anstatt sie lediglich als Begleitschutz mitzuführen."\ + ""\ + "Ein Spieler kauft an einer Kaserne eine vollständige Gruppe, übernimmt sie vollständig und kann sie über die Karte an jeden beliebigen Ort der Insel befehlen."\ + ""\ + "Die Gruppe ist tatsächlich in der Spielwelt vorhanden: Sie marschiert oder fährt selbstständig zum befohlenen Ziel, bekämpft unterwegs angetroffene Feindkräfte und hält anschließend ihre Stellung – unabhängig davon, ob sich ein Spieler in der Nähe befindet."\ + "" Comment "Field Manual - The Resistance category, High Command page. Opening paragraph, three sentences. Ownership is by persistent id and orders from anyone else are refused: OVT_HighCommandRequestComponent.c RpcAsk_OrderGroup / RESULT_NOT_OWNER. 'Really there' is D1 in docs/features/resistance/high-command/implementation.md section 5: the group is an always-live SCR_AIGroup that carries its own virtualization AI observer (OVT_HighCommandGroupComponent.c:50-67), so nothing depends on a player being nearby and nothing despawns it when its owner disconnects (no disconnect path exists on OVT_HighCommandManagerComponent). FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -3023,14 +3210,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873633 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007203}" { Id "OVT-FieldManual_HighCommand_Text2" Target_en_us "Groups are bought at a barracks standing on a base the resistance holds. Some bases already have military barracks on them, and a barracks can also be built at a base like any other structure, at the highest price on the build list: $20000 along with timber, cement, steel and hardware. The action sits on the radio set inside the barracks, the same kind of radio a recruitment tent carries, and any player at that base can use it. A barracks reduced to a ruin offers nothing until it is repaired." + Target_de_de "Gruppen werden an einer Kaserne gekauft, die sich auf einem vom Widerstand gehaltenen Stützpunkt befindet. Einige Stützpunkte verfügen bereits über militärische Kasernen. Eine Kaserne kann jedoch auch wie jedes andere Bauwerk an einem Stützpunkt errichtet werden. Mit 20.000 $ sowie dem erforderlichen Holz, Zement, Stahl und Baumaterial ist sie das teuerste Bauwerk auf der Bauliste."\ + ""\ + "Die entsprechende Aktion befindet sich am Funkgerät innerhalb der Kaserne – demselben Funkgerätetyp, der auch in Rekrutierungszelten verwendet wird. Jeder Spieler am betreffenden Stützpunkt kann diese Aktion nutzen."\ + ""\ + "Wurde die Kaserne zu einer Ruine zerstört, stehen ihre Funktionen erst nach vollständiger Instandsetzung wieder zur Verfügung."\ + "" Comment "Field Manual - The Resistance category, High Command page. Four sentences. Price and resources: Configs/Resistance/buildables.conf:165-193 (m_iCost 20000, timber 170, cement 280, steel 170, hardware 70, m_bBuildAtBase 1); 20000 is the highest m_iCost in that file. Three vanilla barracks families carry OVT_BarracksComponent: Prefabs/Structures/Military/Houses/Barracks_01/Barracks_01_military_base.et:4, Barracks_USSR_01_military_base.et:4, Barracks_E_02/Barracks_E_02_base.et. The action is authored on a RadioStation_R123M_01 child inside the barracks furniture (Barracks_01_military_furniture_01.et:4-18), the same prefab OVT_RecruitmentTent.et uses. Friendly-base and any-player gating plus the ruin gate: OVT_ManageHighCommandAction.c:52-85 (OVT_StructureDamage.IsUsable, OVT_BarracksComponent.FindNearest at BARRACKS_USE_RADIUS 5 m, IsAtFriendlyBase). FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -3039,14 +3233,25 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873311 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007205}" { Id "OVT-FieldManual_HighCommand_Text3" Target_en_us "The screen lists eleven groups, from small teams up to a rifle squad, three of which arrive with a vehicle. Picking one asks the server for a price and shows what it is made of: the recruit cost of every man in it, the gear each of them needs, and, where there is a vehicle, that vehicle at the full price a shop would charge. Gear already stocked in a registered warehouse within 150 metres is taken off the shelves rather than bought, and the quote shows how much that covered. A purchase also draws supporters out of the nearest town, so a town with no support left cannot raise a group. Each player has a cap on how many High Command soldiers they can hold at once, and a purchase that would pass it is refused before any money moves." + Target_de_de "Der Bildschirm führt elf verfügbare Gruppen auf, von kleinen Trupps bis hin zur Schützengruppe. Drei dieser Gruppen werden zusammen mit einem Fahrzeug bereitgestellt."\ + ""\ + "Nach Auswahl einer Gruppe fordert das System vom Server den aktuellen Preis an und zeigt zugleich deren vollständige Zusammensetzung an: die Rekrutierungskosten jedes einzelnen Soldaten, die für ihn benötigte Ausrüstung sowie – sofern vorgesehen – das zugehörige Fahrzeug zum vollen regulären Händlerpreis."\ + ""\ + "Befindet sich innerhalb eines Radius von 150 Metern ein registriertes Lagerhaus mit bereits eingelagerter Ausrüstung, wird diese direkt aus dem Bestand entnommen und nicht erneut gekauft. Das Preisangebot weist aus, welcher Anteil dadurch bereits gedeckt ist."\ + ""\ + "Mit jedem Gruppenkauf werden außerdem Unterstützer aus der nächstgelegenen Ortschaft herangezogen. Verfügt diese über keinerlei Unterstützung mehr, kann dort keine neue Gruppe aufgestellt werden."\ + ""\ + "Für jeden Spieler gilt zudem eine Obergrenze für die Anzahl gleichzeitig unterstellter High-Command-Soldaten. Würde ein Kauf dieses Limit überschreiten, wird er abgelehnt, bevor Geld oder Material abgezogen werden."\ + "" Comment "Field Manual - The Resistance category, High Command page. Five sentences. Eleven authored entries, three with m_sVehiclePrefab: Configs/Factions/FIA_OverthrowData.conf:5-88. Pricing is made in one place, server side: OVT_HighCommandManagerComponent.QuoteEntry:458-500 (baseRecruitCost x members, the gear manifest, OVT_RecruitPurchaseRules.TotalPrice, then OVT_HighCommandRules.PurchaseTotal adds the vehicle at its full shop buy price outside the fee multiplier, PriceVehicle / OVT_HighCommandRules.c:114-126). Warehouse coverage: OVT_HighCommandRules.WAREHOUSE_RANGE = 150.0 (OVT_HighCommandRules.c:10) with OVT_WarehouseStockUtils.CollectStores and OVT_ItemSourcingRules.SplitCoverage at QuoteEntry:485-493; the covered figure renders as #OVT-HC_QuoteCovered. Supporters: OVT_HighCommandRules.SupportersRequired with GetHighCommandSupportersPerMember (default 1, OVT_OverthrowConfigComponent.c:144) and the gate-8 refusal #OVT-Msg-HCPurchaseNoSupporters. Cap: OVT_HighCommandRules.DEFAULT_MEMBER_CAP = 48 (OVT_HighCommandRules.c:15), server-configurable via highCommandMemberCap, enforced server-side; the cap NUMBER is deliberately not quoted here because a server may change it. The funds check is last in the ladder, so a refusal costs nothing. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -3055,14 +3260,25 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873331 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007207}" { Id "OVT-FieldManual_HighCommand_Text4" Target_en_us "Every player's map draws every High Command group as a green symbol, your own at full strength and other players' dimmed, and the map's layer panel can switch them off again. Selecting one shows who owns it, its stance, how far it is from its destination, how far it is from you, and how many of its men are still alive. A group you own can be ordered to the spot under the map cursor, and its stance cycled between Defend, which holds the ground it was sent to, Patrol, which walks a ring around it, and Attack, which sweeps it for the enemy. A group on the move draws a dashed line to where it is going. A mark appears on the symbol while it is in contact with the enemy, and an ammunition badge when it has run dry. Ordering a group another player owns is refused." + Target_de_de "Auf der Karte jedes Spielers werden sämtliche High-Command-Gruppen als grüne Symbole dargestellt. Eigene Gruppen erscheinen in voller Stärke, die Gruppen anderer Spieler hingegen abgeblendet. Über die Ebenensteuerung der Karte können diese Markierungen bei Bedarf vollständig ausgeblendet werden."\ + ""\ + "Wird eine Gruppe ausgewählt, zeigt die Karte ihren Besitzer, ihre aktuelle Verhaltensweise, die Entfernung zu ihrem Zielpunkt, die Entfernung zum eigenen Spieler sowie die Anzahl der noch lebenden Soldaten an."\ + ""\ + "Eigene Gruppen können direkt zu der Position unter dem Kartenzeiger befohlen werden. Ihre Verhaltensweise lässt sich zwischen drei Modi umschalten: Defend hält das zugewiesene Gelände, Patrol führt die Gruppe auf einer Patrouillenroute um diesen Punkt und Attack lässt sie das Gebiet nach Feindkräften absuchen."\ + ""\ + "Befindet sich eine Gruppe auf dem Marsch, wird eine gestrichelte Linie zu ihrem Ziel angezeigt. Bei Feindkontakt erscheint eine entsprechende Markierung am Gruppensymbol. Ist die Munition aufgebraucht, wird zusätzlich ein Munitionssymbol eingeblendet."\ + ""\ + "Der Versuch, einer Gruppe eines anderen Spielers Befehle zu erteilen, wird abgewiesen."\ + "" Comment "Field Manual - The Resistance category, High Command page. Six sentences. Markers, opacity and the layer filter: OVT_MapHighCommandLayer.c:21 (OTHER_OWNER_OPACITY 0.45), :26 (QUAD_NORMAL Friend_Land_Bcg), :329; OVT_MapLayersUI.c:64-74 and BuildHighCommandRow:789. Panel lines: OVT_MapHighCommandLayer.c:1012-1041 (#OVT-HC_Map_StanceLine / DestinationLine / DistanceLine / StatusLine, the last carrying alive and total). Order to cursor: OnOrderPressed:1078-1099. Stance cycle DEFEND -> PATROL -> ATTACK: OnStancePressed:1105-1126 with OVT_EHighCommandStance (OVT_HighCommandRecord.c:6-10). What each stance does: OVT_HighCommandManagerComponent.ApplyStance:1044-1077 (ATTACK = SpawnSearchAndDestroyWaypoint, PATROL = move plus a ring at OVT_HighCommandRules.PATROL_RADIUS 150 m, DEFEND = move plus SpawnDefendWaypoint). Dashed destination line: OVT_MapHighCommandLineLayer.c, drawn only while OVT_HighCommandRules.IsMoving. Contact and ammo tags: OVT_HighCommandStatus TAG_CONTACT / TAG_NO_AMMO, OVT_MapHighCommandLayer.c:584. Non-owner refusal: #OVT-HC_Map_NotOwner client-side and RESULT_NOT_OWNER server-side. KEYBINDS ARE DELIBERATELY NOT NAMED: the order and stance verbs are bound actions (OverthrowHCOrder, OverthrowHCStance) with both keyboard and gamepad sources and the panel buttons carry their own labels. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -3071,14 +3287,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873361 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007209}" { Id "OVT-FieldManual_HighCommand_Text5" Target_en_us "Manage Groups, on the Overthrow main menu, lists the groups you own with their status and how many of your soldier slots are in use. From there a group can be shown on the map, or dismissed after a confirmation, which takes it, its vehicle and its orders out of the world for good." + Target_de_de "Gruppen verwalten im Overthrow-Hauptmenü zeigt alle Gruppen an, die dem Spieler unterstehen, einschließlich ihres aktuellen Status und der Anzahl belegter Soldatenplätze."\ + ""\ + "Von dort aus kann eine Gruppe auf der Karte angezeigt oder nach einer Bestätigung aufgelöst werden. Beim Auflösen werden die Gruppe selbst, ihr Fahrzeug und sämtliche zugewiesenen Befehle dauerhaft aus der Spielwelt entfernt."\ + "" Comment "Field Manual - The Resistance category, High Command page. Two sentences. Main-menu button: UI/Layouts/Menu/MainMenu.layout:412 with OVT_MainMenuContext.c:160 and ManageGroups():263. Roster contents: OVT_HighCommandRosterContext.c:343 (#OVT-HC_Roster_Capacity, count and cap) and :440 (alive over total); Show on Map and Dismiss buttons at UI/Layouts/Menu/HighCommandRoster.layout:228 and :240, dismissal confirmed by the server (OVT_HighCommandManagerComponent.DismissGroup:911-949, which deletes members, vehicle, group entity, waypoints and observer). FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -3087,14 +3308,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873375 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000720B}" { Id "OVT-FieldManual_HighCommand_Text6" Target_en_us "A group left near a registered warehouse tops its magazines back up out of the stock held there, by itself, every so often. A group with a vehicle parked near a fuel source fills its tank the same way, and the fuel is charged to the group's owner at the same price a player filling up by hand would pay; a fuel depot the resistance built is free." + Target_de_de "Eine Gruppe, die sich in der Nähe eines registrierten Lagerhauses aufhält, ergänzt in regelmäßigen Abständen selbstständig ihre Magazine aus den dort eingelagerten Beständen."\ + ""\ + "Verfügt die Gruppe über ein Fahrzeug und steht dieses in der Nähe einer Treibstoffquelle, wird dessen Tank auf dieselbe Weise automatisch aufgefüllt. Die Kosten werden dem Besitzer der Gruppe zum gleichen Preis berechnet, den auch ein Spieler beim manuellen Betanken zahlen würde."\ + ""\ + "Ein vom Widerstand errichtetes Treibstoffdepot stellt den Kraftstoff dagegen kostenlos bereit."\ + "" Comment "Field Manual - The Resistance category, High Command page. Two sentences. Rearm: OVT_HighCommandManagerComponent.RearmTick / RearmGroup:2969-3046, which collects registered warehouse stores at OVT_HighCommandRules.WAREHOUSE_RANGE (150 m) around the group and refills deficient magazines; interval m_iRearmIntervalMs, default 60000 ms (:31-33). Refuel: RefuelTick / RefuelGroup:3136 onward, m_iRefuelIntervalMs default 60000 ms (:35-37), using the player fill's own call path (OVT_FuelUtils.GetFuelCostPerLitre, OVT_FuelPricing.ComputeFillPlan) and charging the owner for the litres that actually arrived. Free source: OVT_FuelSourceComponent.IsFree:29-32, authored m_bFree 1 on Prefabs/Structures/Military/FOB/OVT_FuelDepot.et:14. INTERVALS ARE DELIBERATELY NOT QUOTED - they are configurable attributes on the manager. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -3103,14 +3331,23 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873394 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000720D}" { Id "OVT-FieldManual_HighCommand_Text7" Target_en_us "Recruits that are holding position can be handed to High Command instead of being managed one by one. The Manage Recruits screen shows the ones holding position grouped by where they are standing, and each of those groups carries a Convert to High Command action. The change is one way. Those recruits leave your recruit roster and give their slots back, and their names, experience and skill tracking end with their records, but the same bodies carry on in the new group with the gear they were already wearing." + Target_de_de "Rekruten, die eine Stellung halten, können an das Obere Kommando übergeben werden, anstatt weiterhin einzeln verwaltet zu werden."\ + ""\ + "Im Menü Rekruten verwalten werden alle Rekruten mit Haltebefehl nach ihrem jeweiligen Standort zusammengefasst. Für jede dieser Gruppen steht die Aktion In Oberes Kommando umwandeln zur Verfügung."\ + ""\ + "Die Umwandlung ist endgültig. Die betreffenden Rekruten werden aus der persönlichen Rekrutenliste entfernt und geben ihre belegten Rekrutenplätze wieder frei. Ihre Namen sowie die Erfassung von Erfahrung und Fähigkeiten werden mit ihren bisherigen Einträgen beendet."\ + ""\ + "Die Soldaten selbst bleiben jedoch erhalten und werden als neue Gruppe des Oberen Kommandos weitergeführt. Ihre bereits getragene Ausrüstung behalten sie vollständig bei."\ + "" Comment "Field Manual - The Resistance category, High Command page. Four sentences. Split roster and the button: OVT_RecruitsContext.c:371 (#OVT-Recruits_GroupHeader per cluster), :444 (OVT_RecruitInactiveGrouping.SelectClusterCandidates), :664-695 (UpdateConvertButton, disabled with a reason for an active or bodiless selection), :748 (RequestConvertRecruitGroup); label #OVT-Recruits_ConvertToHC at UI/Layouts/Menu/RecruitsMenu.layout:317. Server side: OVT_HighCommandManagerComponent.ConvertRecruitGroup:2487-2511 spawns a group under the reserved key hc_converted from the EXISTING bodies, then DropConvertedRecruitRecords:2513-2526 clears each body id and calls the shipped RemoveRecruit, which frees the recruit cap. One way: no reverse path exists on the seam (OVT_HighCommandRequestComponent.c has only RpcAsk_ConvertRecruitGroup:412). Cap refusal: RESULT_CONVERT_AT_CAP (:50), shown as #OVT-Recruits_ConvertAtCap. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -3119,14 +3356,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873529 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000720F}" { Id "OVT-FieldManual_HighCommand_Text8" Target_en_us "Bases, camps and FOBs no longer take a bought garrison, and the menus that sold one are gone. Ground is held by parking a High Command group on it in Defend stance, which unlike a garrison can be picked up and sent somewhere else at any time. A campaign saved before the change loads without its old garrisons." + Target_de_de "Stützpunkte, Lager und FOBs erhalten keine separat gekaufte Garnison mehr. Die entsprechenden Menüs zum Erwerb einer Garnison wurden entfernt."\ + ""\ + "Gelände wird stattdessen gehalten, indem eine Gruppe des Oberen Kommandos dort in der Verhaltensweise Verteidigen stationiert wird. Im Gegensatz zu einer Garnison kann eine solche Gruppe jederzeit wieder abgezogen und an einen anderen Ort befohlen werden."\ + ""\ + "Wird eine Kampagne geladen, die noch vor dieser Änderung gespeichert wurde, werden die früheren Garnisonen nicht übernommen."\ + "" Comment "Field Manual - The Resistance category, High Command page. Three sentences, written for returning players. The purchase paths, spawn helpers and menu copy were removed in Phase 11 of resistance/high-command: no AddToGarrison remains on OVT_BaseMenuContext or OVT_FOBMenuContext, no AddGarrison/AddGarrisonFOB/AddGarrisonCamp/SpawnGarrisons on OVT_ResistanceFactionManager, and the map's Garrison row and GARRISON_COUNT key are gone. Old saves: OVT_ResistanceManagerSerializer went 1 to 2 and OVT_OccupyingFactionManagerSerializer 2 to 3, each reading the persisted garrison list and discarding it (no field was deleted, the record shape is unchanged); see docs/features/resistance/high-command/context.md, Phase 11. Defend stance: OVT_HighCommandManagerComponent.ApplyStance:1044-1077, re-orderable at any time through OrderGroup:875-898. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -3135,14 +3379,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873559 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007200}" { Id "OVT-FieldManual_HighCommand_Title" Target_en_us "High Command" + Target_de_de "Obere Kommando" Comment "Field Manual - The Resistance category, High Command page. Tile and page title, two words. Matches the Manage Groups main-menu wording (#OVT-MainMenu_ManageGroups) and the purchase screen title (#OVT-HC_MenuTitle). FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -3151,8 +3397,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873569 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -3552,6 +3799,7 @@ StringTable { CustomStringTableItem "{6B5A11C000000103}" { Id "OVT-FieldManual_OccupyingForces_Head" Target_en_us "Losses Stay Lost" + Target_de_de "Verluste bleiben verloren" Comment "Field Manual - section header inside the Patrols and Garrisons page, drawn above the paragraph about casualties persisting. Two to four words, no markup. Added 2026-08-17 by virtualization/integration Phase 8." DevNote "" Repro "" @@ -3560,15 +3808,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786665600 + Modified 1781873606 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C000000105}" { Id "OVT-FieldManual_OccupyingForces_Head2" Target_en_us "Patrols Keep Moving" + Target_de_de "Patrouillen bleiben in Bewegung"\ + "" Comment "Field Manual - section header inside the Patrols and Garrisons page, drawn above the paragraph about patrols walking their route unobserved. Two to four words, no markup. Added 2026-08-17 by virtualization/integration Phase 8." DevNote "" Repro "" @@ -3577,15 +3827,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786665600 + Modified 1781873658 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C000000107}" { Id "OVT-FieldManual_OccupyingForces_Head3" Target_en_us "Radio Towers" + Target_de_de "Funktürme" Comment "Field Manual - section header inside the Patrols and Garrisons page, drawn above the two paragraphs about how a radio tower changes hands. Two to four words, no markup. Added 2026-08-17 by virtualization/integration Phase 8." DevNote "" Repro "" @@ -3594,15 +3845,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786665600 + Modified 1781873675 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C00000010A}" { Id "OVT-FieldManual_OccupyingForces_Head4" Target_en_us "Defending a Base" + Target_de_de "Verteidigung eines Stützpunkts"\ + "" Comment "Field Manual - section header inside the Patrols and Garrisons page, drawn above the two paragraphs about how a military base is defended. Two to four words, no markup. Added 2026-08-18 by virtualization/base-defense-migration Phase 8." DevNote "" Repro "" @@ -3611,15 +3864,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786752000 + Modified 1781873687 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C00000010D}" { Id "OVT-FieldManual_OccupyingForces_Head5" Target_en_us "Armour and Checkpoints" + Target_de_de "Panzerung und Kontrollpunkte"\ + "" Comment "Field Manual - section header inside the Patrols and Garrisons page, drawn above the three paragraphs about the occupying faction's armed vehicles. Two to four words, no markup. Added 2026-08-23 by occupying/vehicles Phase 7." DevNote "" Repro "" @@ -3628,15 +3883,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787443200 + Modified 1781873712 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C000000102}" { Id "OVT-FieldManual_OccupyingForces_Text" Target_en_us "The occupying faction keeps standing forces in the field: defences at the military bases it holds, foot patrols working the towns it still controls, vehicle patrols on the roads, and a garrison at each radio tower it holds. Base defences, vehicle patrols and tower garrisons are all bought out of one and the same pool of resources, so a faction that is short of them fields fewer of every kind; foot patrols in a town cost it nothing." + Target_de_de "Die Besatzungsfraktion hält ständig Kräfte im Einsatz: Sicherungskräfte an den von ihr gehaltenen Militärbasen, Fußpatrouillen in den weiterhin kontrollierten Ortschaften, Fahrzeugpatrouillen auf den Straßen sowie eine Garnison an jedem von ihr besetzten Funkturm."\ + ""\ + "Basissicherung, Fahrzeugpatrouillen und Turmgarnisonen werden aus demselben Ressourcenpool finanziert. Verfügt eine Fraktion nur über begrenzte Mittel, kann sie entsprechend weniger Kräfte jeder dieser Kategorien einsetzen. Fußpatrouillen innerhalb einer Ortschaft verursachen hingegen keine Ressourcenkosten."\ + "" Comment "Field Manual - Patrols and Garrisons page, opening paragraph. Two sentences, no rich-text markup. Reference voice: describes, never instructs. FACT-CHECKED 2026-08-17 against Configs/Deployment/Deployment_TownPatrol.conf (m_iAllowedLocationTypes TOWN, m_iBaseCost 0, m_iCostPerGroup 0), Deployment_VehiclePatrol_Light.conf:21 (m_iBaseCost 25) and Deployment_VehiclePatrol_Heavy.conf:20 (m_iBaseCost 50), Deployment_TowerGarrison.conf (m_iAllowedLocationTypes RADIO_TOWER, m_iBaseCost 20, m_iCostPerGroup 10), and the affordability gate in OVT_DeploymentManager.c:386-391 with FindBestDeploymentConfig:750-752. Deliberately quotes no resource numbers - the authored costs are a starting point per the feature's T4.5 note and are expected to be tuned. UPDATED 2026-08-18 by virtualization/base-defense-migration Phase 8: base defence joined this list because it is now nine deployment configs of its own (Configs/Deployment/Deployment_BaseGarrisonPatrol/_BaseHeavyPatrol/_BaseATSection/_BaseDefensePositions/_BaseTowerGuards/_BaseSniperPositions/_BaseCheckpoints/_BaseFortifications/_BaseParkedVehicles.conf, every one m_iAllowedLocationTypes BASE, m_iAllowedFactionTypes OCCUPYING_FACTION, m_bFreeAtGameStart 0). 'One and the same pool' is literal and is the feature's G2: the legacy per-base spender is deleted and 80 % of every resource tick is credited to the deployment pool unconditionally (OVT_OccupyingFactionManager.c:1399-1413 TransferDefenseShareToPool at :1413), which is the same pool the affordability gate reads for every other config. grep -rn 'SpendResources' Scripts/ returns nothing." DevNote "" Repro "" @@ -3645,15 +3904,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786665600 + Modified 1781873826 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C000000110}" { Id "OVT-FieldManual_OccupyingForces_Text10" Target_en_us "Armed vehicles are also driven to battles. When a base or a town is being fought over, the faction can send as many as two of them by road from a holding of its own; they take the time the drive takes, arriving behind the men who came in on foot, and the road they come down is a road somebody could be waiting on. Stopping one does not end the force it carried: the men get out and carry on walking. A vehicle lost in the open marks that ground as somewhere worth looking at, and another may be sent to work the area over for a while before it leaves again. An anti-tank launcher starts paying for the weight it costs around the middle of a campaign." + Target_de_de "Bewaffnete Fahrzeuge werden ebenfalls in Gefechte verlegt. Wird um eine Basis oder eine Ortschaft gekämpft, kann die Fraktion bis zu zwei Fahrzeuge über die Straße aus einem eigenen Stützpunkt beziehungsweise einem selbst gehaltenen Gebiet heranführen. Ihre Ankunft richtet sich nach der tatsächlichen Fahrzeit; dadurch treffen sie erst nach den zu Fuß vorgerückten Kräften ein. Zudem kann die Anmarschstraße vom Gegner überwacht oder für einen Hinterhalt genutzt werden."\ + ""\ + "Wird ein Fahrzeug aufgehalten oder ausgeschaltet, bedeutet dies nicht automatisch den Verlust der transportierten Kräfte: Die Soldaten sitzen ab und setzen den Marsch zu Fuß fort. Der Verlust eines Fahrzeugs im offenen Gelände macht den betreffenden Raum zudem zu einem möglichen Schwerpunkt für weitere Aufklärung oder Sicherungsmaßnahmen; ein weiteres Fahrzeug kann dorthin entsandt werden, um das Gebiet für eine gewisse Zeit abzusuchen, bevor es wieder abzieht."\ + ""\ + "Ein Panzerabwehrwerfer beginnt sich hinsichtlich seines Gewichts beziehungsweise seiner Belastung etwa ab der Mitte einer Kampagne zu lohnen."\ + "" Comment "Field Manual - Patrols and Garrisons page, third body paragraph under the 'Armour and Checkpoints' header. Four sentences, no rich-text markup. Reference voice: describes, never instructs; the anti-tank sentence is deliberately a statement about the weapon and not an instruction to carry one. FACT-CHECKED 2026-08-23 for occupying/vehicles Phase 7. 'As many as two': OVT_QRFControllerComponent.c:118 ECHELON_CAP_PER_BATTLE = 2, enforced at :1031. 'From a holding of its own' and 'by road': SendMountedEchelon refuses a land-isolated source and refuses when OVT_WorldUtils.FindNearestRoadSpawn finds no road within ECHELON_ROAD_SEARCH_M (:127, 200 m) of the source or of the standoff point (:1163, :1244); the echelon really drives, which is the whole point of the feature (Configs/Deployment/Deployment_QRFMountedEchelon.conf). The standoff ring is ECHELON_STANDOFF_M (:123, 450 m) and is NOT quoted here - it is an internal constant. 'Arriving behind the men who came in on foot' is the consequence of the drive, not an authored delay. 'The men get out and carry on walking' is OVT_MountedForceSpawningDeploymentModule.c:333 DismountAndWalk(\"its vehicle was destroyed\") and :339 for a dead crew - the documented walk fallback (feature goals G4/F8). The sweep: OVT_OccupyingFactionManager.ReportVehicleLoss inserts the loss position as a known target (deduplicated against the nearest existing one), and TickHunterKiller() on the manager's existing 60 s tick (OF_UPDATE_FREQUENCY at :289, called at :1834, defined at :2321) may buy Configs/Deployment/Deployment_HunterKillerSweep.conf - m_iMinimumThreatLevel 300, m_iBaseCost 60, and an OVT_ArmouredSweepBehaviorDeploymentModule authoring m_fSweepRadius 400 / m_iSweepMinutes 12, which is 'for a while before it leaves again'. 'MAY be sent' is load-bearing and must not become 'is sent': the dispatcher has four refusal gates (one live sweep at a time, no battle engaged, a threat-score floor, and the deployment pool affording the config's total cost). The anti-tank sentence is the one interpretive gloss on this page: it renders m_iMinThreat 400 (the mid rung, against a top rung at 900) as 'around the middle of a campaign' rather than quoting a threat number, and claims nothing about damage models or launcher availability." DevNote "" Repro "" @@ -3662,15 +3927,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787443200 + Modified 1781873851 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C000000104}" { Id "OVT-FieldManual_OccupyingForces_Text2" Target_en_us "Soldiers killed out of a patrol, a base defence or a tower garrison are gone for good. When that group stops being watched and later comes back into view it returns with only the men who lived through the last fight, and a campaign saved and loaded again brings back the same survivors rather than a fresh full-strength unit. A base is left in the state you left it in, then. A force wiped out to the last man can be replaced later, at a cost to the faction that fielded it." + Target_de_de "Soldaten, die aus einer Patrouille, einer Basissicherung oder einer Turmgarnison heraus getötet werden, sind dauerhaft verloren. Wird die betreffende Einheit nicht mehr beobachtet und später erneut aufgeklärt, kehrt sie nur mit den Soldaten zurück, die das letzte Gefecht überlebt haben. Auch das Speichern und erneute Laden einer Kampagne stellt keine Einheit in voller Sollstärke wieder her; es erscheinen dieselben Überlebenden wie zuvor."\ + ""\ + "Eine Basis verbleibt damit in genau dem Zustand, in dem sie zurückgelassen wurde. Wird eine Einheit bis auf den letzten Mann aufgerieben, kann sie zu einem späteren Zeitpunkt ersetzt werden. Die Kosten dafür trägt die Fraktion, die sie eingesetzt hat."\ + "" Comment "Field Manual - Patrols and Garrisons page, body paragraph under the 'Losses Stay Lost' header. Three sentences, no rich-text markup. FACT-CHECKED 2026-08-17 against the virtualization core survivor mask: OVT_VirtualizationManagerComponent.c:1813-1828 GetMemberAlive and :1886-1900 ReportMemberKilled (per-slot death, idempotent), :731 SetOVTSlotMask (the mask decides which roster slots materialise), :1029-1033 (the mask is written into the save payload) and :1180 ApplyPersistedMask (it is read back on restore). Replacement: OVT_ReinforcementBehaviorDeploymentModule.c:123-128 ShouldReinforceModule/TryReinforceModule, which fires only for a FULLY eliminated module, spending m_iReinforcementCost through OVT_InfantrySpawningDeploymentModule.Reinforce:479-495. NOTE the last sentence deliberately says 'a force' and not 'a garrison': a fully wiped TOWER garrison is not rebought, because the tower has already changed hands by then (see OccupyingForces_Text4). UPDATED 2026-08-18 by virtualization/base-defense-migration Phase 8: base defence is now registered with the same virtualization core as patrols and tower garrisons, so the survivor mask cited above covers it too - every base config's groups are held by OVT_InfantrySpawningDeploymentModule or a subclass of it (OVT_PlacedInfantrySpawningDeploymentModule, OVT_CompositionSpawningDeploymentModule). The legacy base-upgrade system this replaced banked a despawned patrol as an integer and brought back a different, full-strength set of men; that code is deleted (grep -rn 'OVT_BaseUpgrade' Scripts/ hits only the legacy SAVE PAYLOAD classes). The 'left in the state you left it in' sentence is that change stated the way a player meets it. Every base config authors m_bAllowReinforcement 1 except Deployment_BaseParkedVehicles.conf, which holds no men." DevNote "" Repro "" @@ -3679,15 +3948,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786665600 + Modified 1781873882 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C000000106}" { Id "OVT-FieldManual_OccupyingForces_Text3" Target_en_us "A town patrol walks its round whether or not anybody is there to see it. With nobody nearby it keeps covering the same circuit, so it will not be waiting on the corner it was last seen standing on; it turns up wherever along that route it had got to. A patrol working a base perimeter behaves the same way. A garrison posted at a radio tower is a different matter and holds the ground it was put on, and so do the men in a base's fighting positions, on its towers and at its checkpoints." + Target_de_de "Eine Ortsstreife setzt ihren Streifengang unabhängig davon fort, ob sich jemand in ihrer Nähe befindet. Ist kein Beobachter vor Ort, läuft sie weiterhin dieselbe Route ab. Sie wartet daher nicht zwangsläufig an der Stelle, an der sie zuletzt gesehen wurde, sondern befindet sich beim erneuten Antreffen an dem Punkt der Strecke, den sie inzwischen erreicht hat."\ + ""\ + "Streifen entlang des Sicherungsbereichs einer Basis verhalten sich ebenso. Anders verhält es sich mit einer Garnison an einem Funkturm: Sie hält die ihr zugewiesene Stellung. Gleiches gilt für die Kräfte in den Kampfstellungen einer Basis, auf deren Türmen sowie an ihren Kontrollpunkten."\ + "" Comment "Field Manual - Patrols and Garrisons page, body paragraph under the 'Patrols Keep Moving' header. Three sentences, no rich-text markup. FACT-CHECKED 2026-08-17 against OVT_VirtualMovementManagerComponent.c:355 (the tick advances a handle ONLY while it is not spawned) and :658 (SetPosition is the only mutation), plus OVT_PatrolBehaviorDeploymentModule.c:16-18 and :28 (a PERIMETER plan cycles and IS walked while dormant, a DEFEND plan is never walked) and :78-85. Deployment_TownPatrol.conf authors no m_ePatrolType, so it takes the attribute default of PERIMETER; Deployment_TowerGarrison.conf authors m_ePatrolType DEFEND, which is the last sentence. UPDATED 2026-08-18 by virtualization/base-defense-migration Phase 8: Deployment_BaseGarrisonPatrol.conf:21, Deployment_BaseHeavyPatrol.conf:21 and Deployment_BaseATSection.conf:21 all author PERIMETER with m_fPatrolRadius 280, so a base's roving patrol is walked while dormant exactly as a town patrol is; Deployment_BaseDefensePositions.conf:24 and Deployment_BaseCheckpoints.conf:42 author DEFEND, and Deployment_BaseTowerGuards.conf / _BaseSniperPositions.conf author NO behaviour module at all (deliberate legacy parity - an idle group keeps full threat and attack reactions), so none of those three is ever walked." DevNote "" Repro "" @@ -3696,15 +3969,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786665600 + Modified 1781873906 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C000000108}" { Id "OVT-FieldManual_OccupyingForces_Text4" Target_en_us "A radio tower the occupying faction holds changes hands when the men garrisoning it are all dead, and only then. Standing next to a tower does nothing on its own, and walking away and coming back neither resets the fight nor finishes it: the garrison is still short by everyone who fell, and the tower stays occupied until the last of them does. It can go back the other way as well: a tower the resistance holds close to whatever the occupiers are working toward draws a team of their own, and the tower is theirs again only if that team is still standing on it when its hold time is up. Being there yourself pauses their clock." + Target_de_de "Ein von der Besatzungsfraktion gehaltener Funkturm wechselt erst dann den Besitzer, wenn seine gesamte Garnison gefallen ist – und nicht vorher. Die bloße Anwesenheit am Turm bewirkt nichts. Auch ein Rückzug und späteres Zurückkehren setzt das Gefecht weder zurück noch beendet es: Die Verluste der Garnison bleiben bestehen, und der Turm gilt so lange als besetzt, bis auch der letzte Verteidiger ausgeschaltet ist."\ + ""\ + "Der Vorgang funktioniert auch in umgekehrter Richtung. Befindet sich ein von der Widerstandsfraktion gehaltener Funkturm in der Nähe eines aktuellen Operationsziels der Besatzer, können diese ein eigenes Kommando zur Rückeroberung entsenden. Der Turm fällt jedoch erst dann wieder an die Besatzer, wenn sich dieses Kommando nach Ablauf der erforderlichen Haltezeit noch am Turm befindet. Die eigene Anwesenheit vor Ort unterbricht den laufenden Einnahmezeitgeber."\ + "" Comment "Field Manual - Patrols and Garrisons page, first body paragraph under the 'Radio Towers' header. Two sentences, no rich-text markup. FACT-CHECKED 2026-08-17 against OVT_RadioTowerCaptureBehaviorDeploymentModule.c:89 (no eliminated flag, no capture - the gate a proximity despawn can never satisfy), :91 (the fired-once latch), :103-114 (nearest tower within m_fMaxDistance, authored 300 in Deployment_TowerGarrison.conf, and the tower must still belong to the deployment's faction) and :122-124 (ChangeRadioTowerControl). The eliminated flag is set only from the virtualization core's group-wiped bookkeeping, which requires every roster slot dead (OVT_VirtualizationManagerComponent.c:1886-1900). Survivors persisting across a despawn is the same survivor mask cited in OccupyingForces_Text2. EXTENDED 2026-08-19 by occupying/counter-attacks Phase 10 with the two recapture sentences. The claim that no code path returned a tower to the occupying faction, recorded on BaseCapture_Text5 in August, is NO LONGER TRUE: OVT_TowerRecaptureBehaviorDeploymentModule.c:100-106 calls OVT_OccupyingFactionManager.ChangeRadioTowerControl with the deployment's own controlling faction once CountAliveRegisteredMembersWithin(tower.location, m_fHoldRadius) has held for the whole hold window, and Configs/Deployment/Deployment_ObjectiveTowerRecapture.conf authors that module with m_fHoldRadius 80 and m_iHoldSeconds 600 (overridden per campaign by the difficulty setting objectiveTowerRecaptureHoldSeconds - 300 on Insane, 900 on Easy, which is why 'its hold time' is not a number here). 'Close to whatever the occupiers are working toward' is the OVT_ObjectiveConditionDeploymentModule on that config (m_iRequiredPhase 1, m_fMaxDistanceFromObjective) - a tower nowhere near the current objective is never contested. 'Being there yourself pauses their clock' is EvaluateRecapture at :127-140, which is fed enemyPresent from NearestPlayerDistance(tower.location) <= m_fHoldRadius and leaves ticksLeft untouched on that path: it PAUSES, it does not reset. The full build-up this belongs to is the Counter Attacks page." DevNote "" Repro "" @@ -3713,15 +3990,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786665600 + Modified 1781873939 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C000000109}" { Id "OVT-FieldManual_OccupyingForces_Text5" Target_en_us "A tower may also be found with nobody on it. The garrison is paid for out of the faction's reserves, so a faction that is stretched leaves towers bare, and one that recovers can post a garrison at a tower you walked past unguarded days earlier. While a battle is actually being fought anywhere on the island, and while nobody at all is connected, no new force of any kind is put out; the ones already in the field carry on as they were." + Target_de_de "Ein Funkturm kann auch völlig unbesetzt vorgefunden werden. Die Garnison wird aus den Reserven der jeweiligen Fraktion gestellt. Ist eine Fraktion personell oder materiell stark gebunden, bleiben daher einzelne Türme ungesichert. Erholt sich ihre Ressourcenlage, kann sie später auch an einem Funkturm wieder eine Garnison stationieren, der noch Tage zuvor unbewacht war."\ + ""\ + "Solange irgendwo auf der Insel ein Gefecht im Gange ist, werden keine neuen Kräfte aufgestellt. Dasselbe gilt, wenn überhaupt kein Spieler verbunden ist. Bereits eingesetzte Kräfte bleiben jedoch bestehen und führen ihren bisherigen Auftrag unverändert fort."\ + "" Comment "Field Manual - Patrols and Garrisons page, second body paragraph under the 'Radio Towers' header. Three sentences, no rich-text markup. FACT-CHECKED 2026-08-17, CITATIONS RE-POINTED 2026-08-18 (base-defense-migration moved the line numbers, the claims are unchanged) against OVT_DeploymentManager.c:652-657 (a deployment is created only when the faction pool covers GetTotalResourceCost) and :1069-1071 (a config too expensive is filtered out of the candidate list entirely), with the evaluator's two early returns at :573 (GetPlayerCount() == 0) and :577 (m_CurrentQRF) - both deliberately kept, see the feature's D9. 'A battle' is the player-facing word this manual already uses for a QRF (see BaseCapture_Text2); m_CurrentQRF covers base and town QRFs alike. The last clause is the D9 consequence: existing deployments' groups live on the engine lifecycle and neither guard touches them. CORRECTED 2026-08-19 by occupying/counter-attacks Phase 10: 'while a battle is RUNNING' became 'while a battle is actually being FOUGHT', which is now a real distinction. The evaluator's guard is no longer m_CurrentQRF but OVT_OccupyingFactionManager.IsQRFEngaged(), which is true from creation for a player-initiated battle but true only in the BATTLE stage of a counter attack (its D15: m_bQRFActive = a battle exists, m_bQRFRevealed = the client knows, IsQRFEngaged = the shooting has started). During the silent and muster stages of a counter attack the world deliberately keeps living - deployments are still created, the occupying economy still ticks and the objective town's civilians are not suppressed - because suppressing them would empty the target half an hour before anyone was told. The old wording would have had a player expecting a lull that no longer happens. ⚠ Target_de_de and Target_uk_ua predate the change of wording." DevNote "" Repro "" @@ -3730,15 +4011,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786665600 + Modified 1781873969 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C00000010B}" { Id "OVT-FieldManual_OccupyingForces_Text6" Target_en_us "A military base is held by whatever its owners have managed to put there. A patrol works the perimeter, men hold prepared fighting positions, guards stand on the towers, marksmen take marked ground, checkpoints go up on the roads in, sandbagged positions and ammunition caches are built inside the wire, and trucks are parked in the yard. Each of those is bought and paid for on its own, roughly in that order, so a base thickens up over a campaign rather than arriving finished. Heavier infantry and an anti-tank section are only added once the faction is under enough pressure to want them." + Target_de_de "Eine Militärbasis wird mit den Kräften und Mitteln gehalten, die ihre Besitzer dort tatsächlich aufbringen konnten. Eine Patrouille sichert den äußeren Bereich, Soldaten besetzen vorbereitete Kampfstellungen, Wachposten stehen auf den Türmen, Scharfschützen beziehen vorgesehene Positionen, an den Zufahrtsstraßen werden Kontrollpunkte eingerichtet, innerhalb der Umzäunung entstehen Sandsackstellungen und Munitionslager, und Fahrzeuge werden im Basishof abgestellt."\ + ""\ + "Jedes dieser Elemente wird einzeln aus den verfügbaren Ressourcen finanziert, ungefähr in dieser Reihenfolge. Eine Basis erreicht ihre volle Stärke daher erst nach und nach im Verlauf einer Kampagne, anstatt von Beginn an vollständig ausgebaut zu sein. Schwerer ausgerüstete Infanterie sowie ein Panzerabwehrtrupp kommen erst hinzu, wenn der Druck auf die Fraktion groß genug ist, um ihren Einsatz erforderlich zu machen."\ + "" Comment "Field Manual - Patrols and Garrisons page, first body paragraph under the 'Defending a Base' header. Four sentences, no rich-text markup. Reference voice: describes, never instructs. FACT-CHECKED 2026-08-18 against the nine shipped configs in Configs/Deployment/, listed in the order the sentence gives them, which is their authored m_iPriority: _BaseGarrisonPatrol.conf:43 (1), _BaseDefensePositions.conf:46 (2), _BaseTowerGuards.conf:40 (2), _BaseSniperPositions.conf:40 (2), _BaseCheckpoints.conf:64 (3), _BaseFortifications.conf:76 (4), _BaseParkedVehicles.conf:23 (10), with _BaseHeavyPatrol.conf:44 (5) and _BaseATSection.conf:44 (6) as the last sentence. 'Roughly in that order' is deliberate hedging and is honest: the evaluator buys the lowest-priority config a base is still missing (OVT_DeploymentManager.FindBestDeploymentConfig:1069-1097 through OVT_DeploymentSelection.SelectNextConfigIndex), but ties at priority 2 are broken by registry order and every purchase is also gated by cost and by the config's condition modules, so the sequence a given campaign sees is not fixed. 'Under enough pressure' is m_iMinimumThreatLevel 25 and 50 on the two escalation configs, gated in OVT_DeploymentComponent.c; the numbers are not quoted because threat is a campaign-wide scale explained elsewhere. 'Marked ground' rather than 'any high ground': OVT_SniperMarkerPlacementProvider resolves posts from OVT_SniperPositionComponent markers a designer placed, and filters them by each marker's own minimum threat." DevNote "" Repro "" @@ -3747,15 +4032,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786752000 + Modified 1781873993 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C00000010C}" { Id "OVT-FieldManual_OccupyingForces_Text7" Target_en_us "Nothing new is put into a base while somebody is standing in it, so a base does not fortify in front of you. One that has just changed hands, or one whose owners are short of resources, can be found lightly held and thicker again weeks later. Losses there last the way patrol losses do, though a post does not stay empty for good: the men who lived are back on their towers and in their firing positions the next time the place is looked at, and a position wiped out to the last man can be bought again later. Clearing a post is settled only when the base itself changes hands." + Target_de_de "Solange sich jemand innerhalb einer Basis befindet, werden dort keine neuen Kräfte oder Befestigungen aufgestellt. Eine Basis verstärkt sich also nicht unmittelbar vor den Augen des Spielers. Eine gerade erst eroberte Basis oder eine Basis, deren Besitzer nur über geringe Ressourcen verfügen, kann daher zunächst schwach besetzt sein und Wochen später deutlich stärker ausgebaut erscheinen."\ + ""\ + "Verluste innerhalb der Basis bleiben ebenso dauerhaft bestehen wie Verluste bei Patrouillen. Ein einmal geräumter Posten bleibt jedoch nicht zwangsläufig für immer unbesetzt: Überlebende kehren bei der nächsten Beobachtung auf ihre Türme und in ihre Feuerstellungen zurück. Wurde eine Stellung bis auf den letzten Mann vernichtet, kann sie zu einem späteren Zeitpunkt auf Kosten der Fraktion erneut besetzt werden."\ + ""\ + "Eine einzelne Stellung gilt daher nicht dauerhaft als gesäubert. Endgültig entschieden ist die Räumung erst dann, wenn die Basis selbst den Besitzer wechselt."\ + "" Comment "Field Manual - Patrols and Garrisons page, second body paragraph under the 'Defending a Base' header. Four sentences, no rich-text markup. FACT-CHECKED 2026-08-18. Sentence 1: OVT_NoPlayersNearbyConditionDeploymentModule.c:42-55 - a static CREATION gate at m_fMinPlayerDistance (defvalue 320 = the legacy baseCloseRange 220 + 100), authored on all nine base configs; the runtime condition deliberately returns true, so a player walking in never deletes a base's defence. Sentence 2: every base config authors m_bFreeAtGameStart 0 and OVT_BaseControlConditionDeploymentModule m_bRequireControl 1, so a base the occupying faction has just retaken starts with nothing and re-buys from the pool over following evaluation passes, paced by MAX_DEPLOYMENTS_PER_EVALUATION (OVT_DeploymentManager.c:49) and by what the pool can afford (:652-657). Sentence 3: the survivor mask cited on OccupyingForces_Text2, plus OVT_PlacedInfantrySpawningDeploymentModule.c:462-463 (the placement subscription is kept for the group's whole registered life, unlike the legacy one-shot) and :517-547 (each arriving member is teleported onto its post on EVERY materialisation), with the rebuy in OVT_ReinforcementBehaviorDeploymentModule.c:179-182, which fires only for a FULLY eliminated module. DO NOT write that a killed guard comes back: he does not, only the survivors are re-placed and only a wholly wiped position is repurchased." DevNote "" Repro "" @@ -3764,15 +4055,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786752000 + Modified 1781874006 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C00000010E}" { Id "OVT-FieldManual_OccupyingForces_Text8" Target_en_us "The armed vehicles the occupying faction puts on the road get heavier as the campaign turns against it. Early on an armed jeep is the worst of it. Later a gun truck or a scout car, and late on a wheeled armoured carrier with a cannon or a heavy machine gun on it. Each rung up costs the faction several times what the one below it does, and a mounted force only fields what its own budget covers, so a stretched faction keeps sending the cheap one. Campaign difficulty moves the whole scale: on the harder settings the heavier vehicles turn up far earlier than they would otherwise." + Target_de_de "Die bewaffneten Fahrzeuge, die die Besatzungsfraktion auf den Straßen einsetzt, werden mit zunehmendem Verlauf der Kampagne schwerer, insbesondere wenn sich die Lage gegen sie entwickelt. Zu Beginn stellt ein bewaffneter Geländewagen meist die stärkste Bedrohung dar. Später kommen bewaffnete Lastwagen oder Spähfahrzeuge hinzu, und in der späten Kampagne schließlich radgestützte gepanzerte Mannschaftstransporter mit Maschinenkanone oder schwerem Maschinengewehr."\ + ""\ + "Jede höhere Fahrzeugklasse kostet die Fraktion ein Mehrfaches der jeweils darunterliegenden. Eine motorisierte Einheit setzt daher nur Fahrzeuge ein, die ihr eigenes Budget zulässt. Ist die Fraktion stark unter Druck oder knapp an Ressourcen, greift sie weiterhin auf die günstigeren Fahrzeuge zurück."\ + ""\ + "Der Schwierigkeitsgrad der Kampagne verschiebt diese gesamte Entwicklung: Auf höheren Schwierigkeitsstufen erscheinen die schwereren Fahrzeuge deutlich früher, als es unter normalen Bedingungen der Fall wäre."\ + "" Comment "Field Manual - Patrols and Garrisons page, first body paragraph under the 'Armour and Checkpoints' header. Five sentences, no rich-text markup. Reference voice: describes, never instructs; no imperative and no implied sequence. FACT-CHECKED 2026-08-23 for occupying/vehicles Phase 7. The three rungs are the role 'armed' ladder authored in Configs/Factions/USSR_OverthrowData.conf:67-92 (light_armed UAZ469_PKM m_iMinThreat 0 m_iCost 25; medium_armed BRDM2 m_iMinThreat 400 m_iCost 70; heavy_armed BTR70 m_iMinThreat 900 m_iCost 120) and Configs/Factions/US_OverthrowData.conf:66-95 (light_armed M151A2_M2HB 0/25; heavy_armed M1025_armed_M2HB 400/70; heavy_armor LAV25 900/120). 'Gun truck or a scout car' covers the two mid rungs honestly because they differ by faction (an armed M1025 and a BRDM-2 are not the same kind of thing); 'a cannon or a heavy machine gun' is the LAV-25 and the BTR-70 respectively. 'Several times what the one below it does' is 25 -> 70 -> 120 and is deliberately not quoted as numbers, matching this page's existing rule for resource figures (see OccupyingForces_Text). NO THREAT NUMBER IS QUOTED, for the same reason OccupyingForces_Text6 quotes none: threat is a campaign-wide scale the manual explains elsewhere. The budget clause is OVT_VehicleLadderRules.RungAffordable plus decision D4 (the authored m_iTruckCostOverride on each mounted config is a ceiling, and any rung dearer than it is refused): Configs/Deployment/Deployment_ObjectiveHarassment_Mounted.conf:27 authors 70 and Deployment_HunterKillerSweep.conf authors 90. Difficulty is the vehicleThresholdScale field, authored in all six presets: Configs/Difficulty/Difficulty_Easy.conf:26 (2.0), Difficulty_Normal.conf:22 (1.0), Difficulty_Hard.conf:27 (0.5), Difficulty_Extreme.conf:27 (0.35), Difficulty_Insane.conf:27 (0.25), Difficulty_TestWorld.conf:12 (1.0) - a smaller scale means a lower effective threshold, hence 'far earlier'." DevNote "" Repro "" @@ -3781,15 +4078,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787443200 + Modified 1781874049 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C00000010F}" { Id "OVT-FieldManual_OccupyingForces_Text9" Target_en_us "An armed vehicle standing inside a base compound is not scenery. It belongs to that base, it sits there unmanned while the place is quiet, and when fighting starts at that base a crew takes it out to a firing position short of the shooting rather than driving into it. A vehicle parked on a road into a town the faction is currently working against is put there on purpose too: the men who rode in spread out around it while its gun stays manned, and it moves to a different approach every few minutes instead of holding one road all day." + Target_de_de "Ein bewaffnetes Fahrzeug innerhalb des Geländes einer Militärbasis ist keine bloße Dekoration. Es gehört zur dortigen Garnison und steht in ruhigen Phasen unbemannt abgestellt. Beginnt an der Basis ein Gefecht, wird es von einer Besatzung übernommen und in eine Feuerstellung verlegt, die etwas abseits des unmittelbaren Schusswechsels liegt, anstatt direkt in das Gefecht hineinzufahren."\ + ""\ + "Auch ein Fahrzeug, das auf einer Zufahrtsstraße zu einer Ortschaft steht, gegen die die Fraktion derzeit operiert, befindet sich dort mit Absicht. Die mitgeführten Soldaten sitzen ab und verteilen sich im Umfeld, während die Fahrzeugwaffe besetzt bleibt. Das Fahrzeug hält dabei nicht den ganzen Tag dieselbe Zufahrt, sondern verlegt im Abstand von einigen Minuten auf einen anderen Anmarschweg."\ + "" Comment "Field Manual - Patrols and Garrisons page, second body paragraph under the 'Armour and Checkpoints' header. Two sentences, no rich-text markup. Reference voice: describes, never instructs. FACT-CHECKED 2026-08-23 for occupying/vehicles Phase 7. Parked armour: the 'Base Parked Armour' registry delta at Configs/Deployment/overthrowDeployments.conf:48-67 - one vehicle (m_iVehicleCount 1), role 'armed', m_iCostPerVehicle 120, m_iMinimumThreatLevel 400, m_fChance 60, and it carries no crew of its own, which is why 'unmanned' is literal. Crew-up: OVT_CrewUpOnAlarmBehaviorDeploymentModule authored on that same delta with m_fAlarmRadius 750, so it answers ONLY a battle at its own base and not one elsewhere on the island. 'Short of the shooting': Configs/Deployment/Deployment_BaseArmourSortie.conf:38-41 authors m_fApproachMinDistance 150 / m_fApproachMaxDistance 250 and m_iRelocateMinutes 0 (park, do not roam). Checkpoint: Configs/Deployment/Deployment_ObjectiveHarassment_Mounted.conf:44-47 authors m_fApproachMinDistance 150, m_fApproachMaxDistance 300, m_fRoadSearchRadius 120 and m_iRelocateMinutes 4, and its OVT_ObjectiveConditionDeploymentModule (:57-61) restricts it to the CURRENT objective from the Harassment phase through the ForwardBase phase, which is what 'currently working against' means. 'The men who rode in spread out around it while its gun stays manned' is OVT_MobileCheckpointBehaviorDeploymentModule.c:333 and :366 - every member of the force dismounts, the crew does not. NO DISTANCES ARE QUOTED: they are authored per config and differ between the sortie (150-250) and the checkpoint (150-300)." DevNote "" Repro "" @@ -3798,15 +4099,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787443200 + Modified 1781874064 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A11C000000101}" { Id "OVT-FieldManual_OccupyingForces_Title" Target_en_us "Patrols and Garrisons" + Target_de_de "Patrouillen und Garnisonen"\ + "" Comment "Field Manual - title of the Patrols and Garrisons page, shown on its tile in The Resistance category grid and as the heading at the top of the page. Two to four words. Also usable as a deep-link id from a tutorial popup, so it must never be renamed. Added 2026-08-17 by virtualization/integration Phase 8." DevNote "" Repro "" @@ -3815,23 +4118,27 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786665600 + Modified 1781874092 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5D0000000000A0}" { Id "OVT-FieldManual_Placing_Cot_Text" Target_en_us "A cot is one of the items on that list, at a cost of thirty, and it carries the same sleeping action a bed does, so a camp or a FOB can be given somewhere to sleep." + Target_de_de "Ein Feldbett gehört ebenfalls zu dieser Liste und kostet 30. Es bietet dieselbe Schlafmöglichkeit wie ein normales Bett, sodass auch ein Lager oder eine vorgeschobene Operationsbasis (FOB) mit einem Schlafplatz ausgestattet werden kann."\ + "" Comment "Field Manual - Camps and Placing page, closing sentence under the 'Where Placing Works' header. One sentence, no rich-text markup. FACT-CHECKED 2026-08-19 against Configs/Resistance/placeables.conf:148-157 (the OVT_Placeable 'Cot' entry: m_sName 'Cot' :149, m_iCost 30 :156, one prefab :152-154) and Prefabs/Props/Military/Furniture/OVT_Cot_Placed.et:19-39 (ActionsManagerComponent carrying OVT_SleepAction :30). Written as a new item rather than appended to OVT-FieldManual_Camps_Text2 so the existing de/uk translations of that paragraph stay valid." - Modified 1780876800 + Modified 1781874116 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" } CustomStringTableItem "{6B5A2E0100000001}" { Id "OVT-FieldManual_Ports_Head" Target_en_us "Importing" + Target_de_de "Importieren"\ + "" Comment "Field Manual - Ports page, section header above the import paragraph. No rich-text markup." DevNote "" Repro "" @@ -3840,15 +4147,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781874131 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000002}" { Id "OVT-FieldManual_Ports_Head2" Target_en_us "Exporting" + Target_de_de "Exportieren"\ + "" Comment "Field Manual - Ports page, section header above the export paragraph. No rich-text markup." DevNote "" Repro "" @@ -3857,15 +4166,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781874142 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E20000000AC}" { Id "OVT-FieldManual_Ports_Head3" Target_en_us "Resources" + Target_de_de "Ressourcen"\ + "" Comment "Field Manual - Ports page, section header above the resources paragraph. One word, no rich-text markup. Matches the port screen's tab label (#OVT-ShopCategory_Resources)." DevNote "" Repro "" @@ -3874,15 +4185,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781874152 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000003}" { Id "OVT-FieldManual_Ports_Text" Target_en_us "A port trades in bulk with the vehicle you are sitting in, and both you and the vehicle have to be within thirty metres of it. The vehicle needs storage of its own, so an illegal or armed one cannot trade there at all. The port screen has an Import side and an Export side." + Target_de_de "Ein Hafen wickelt den Handel in größeren Mengen über das Fahrzeug ab, in dem du dich befindest. Sowohl du als auch das Fahrzeug müssen sich dabei innerhalb von 30 Metern um den Hafen befinden. Das Fahrzeug muss über eigenen Stauraum verfügen; illegale oder bewaffnete Fahrzeuge können dort daher überhaupt keinen Handel durchführen."\ + ""\ + "Das Hafenmenü ist in die Bereiche **Import** und **Export** unterteilt."\ + "" Comment "Field Manual - Ports page, opening paragraph. Three sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/storage Phase 10. Occupied vehicle: OVT_PortContext.c:263-268 (GetOccupiedVehicle) and :410-416 (ResolveExportHolder). Thirty metres on both ends: OVT_VehicleRequestComponent.c:60 IMPORT_MAX_PORT_DISTANCE with the caller check at :55-59 and the vehicle check at :64-68, and OVT_StorageRequestComponent.c:173 EXPORT_MAX_PORT_DISTANCE set to the same number. Storage required: OVT_VehicleRequestComponent.c:70-75 refuses a vehicle whose capacity is NO_CAPACITY, which OVT_StorageRules.c:35-36 returns for an illegal or armed vehicle. Two sides: OVT_PortContext.c:117-120 inserts the Import and Export mode labels." DevNote "" Repro "" @@ -3891,15 +4206,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781874182 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000004}" { Id "OVT-FieldManual_Ports_Text2" Target_en_us "Importing needs the first level of Trade. What you import is credited to the vehicle's storage rather than spawned into it, and you are charged only for what fitted, so a car with room for fifty more items pays for fifty. Goods no ordinary shop stocks are offered only at the fifth level of Trade, or at a port whose nearest ground the resistance controls." + Target_de_de "Für den Import ist die erste Stufe von Handel erforderlich. Importierte Waren werden dem Stauraum des Fahrzeugs gutgeschrieben, anstatt unmittelbar darin zu erscheinen. Bezahlt wird nur die Menge, die tatsächlich in den verfügbaren Stauraum passt. Hat ein Fahrzeug beispielsweise noch Platz für 50 Gegenstände, werden auch nur 50 berechnet."\ + ""\ + "Waren, die in gewöhnlichen Geschäften nicht erhältlich sind, werden erst ab der fünften Stufe von Handel angeboten oder an einem Hafen, dessen nächstgelegenes Landgebiet vom Widerstand kontrolliert wird."\ + "" Comment "Field Manual - Ports page, body paragraph under 'Importing'. Three sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/storage Phase 10. Trade level 1: OVT_VehicleRequestComponent.c:29-33 requires the 'Import' permission, which #OVT-CannotImport already states as trade level 1. Credit instead of spawn, and charging for what fitted: OVT_VehicleRequestComponent.c:94-98 - ledger.Add clamped by the holder's capacity, then DoTakePlayerMoney for the clamped count only. Extended catalogue: OVT_VehicleRequestComponent.c:48-53 - an item no non-vehicle shop sells needs the 'IllegalImports' permission (trade level 5, as #OVT-FieldManual_Skills_Text4 already states) or economy.ResistanceControlsNearestPort." DevNote "" Repro "" @@ -3908,15 +4227,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781874700 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000005}" { Id "OVT-FieldManual_Ports_Text3" Target_en_us "Export sells out of that same vehicle's storage. What a port pays for an item is a fraction of what importing one costs, held under what buying one there would cost, so carrying shop stock back out to a port does not pay. Goods no ordinary shop stocks carry the same condition they do on the way in, and anything the economy does not price cannot be exported at all." + Target_de_de "Der Export erfolgt aus demselben Fahrzeugstauraum. Für einen Gegenstand zahlt der Hafen nur einen Bruchteil dessen, was sein Import kostet, und der Ausfuhrpreis liegt stets unter dem Preis, zu dem derselbe Gegenstand dort eingekauft werden könnte. Es lohnt sich daher nicht, gewöhnliche Handelswaren aus Geschäften zu kaufen und anschließend wieder zum Hafen zu bringen."\ + ""\ + "Waren, die in normalen Geschäften nicht geführt werden, unterliegen beim Export denselben Voraussetzungen wie beim Import. Gegenstände, für die das Wirtschaftssystem keinen Preis festlegt, können überhaupt nicht exportiert werden."\ + "" Comment "Field Manual - Ports page, body paragraph under 'Exporting'. Three sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/storage Phase 10. Sells from the vehicle's ledger: OVT_PortContext.c:363-406 builds the export list from the occupied vehicle's storage snapshot and :474-482 commits it as an EXPORT batch. Pricing: OVT_StorageRules.c:91-106 - the import price times the export ratio (0.5 by default, OVT_StorageRequestComponent.c:211-212), then clamped to one dollar under the shop buy price read at the port position, which is what stops a shop-buy/port-sell loop (the rule stated at OVT_StorageRules.c:83-86). Same illegal condition: OVT_StorageRequestComponent.c:2644-2662. Unpriced items: :2639-2640 returns 0 for a resource the economy does not know, and a unit price of 0 disables the line (OVT_PortContext.c:401)." DevNote "" Repro "" @@ -3925,15 +4248,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781874218 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E20000000AD}" { Id "OVT-FieldManual_Ports_Text4" Target_en_us "Both sides of the port screen carry a Resources tab as well, trading bulk construction materials into and out of the cargo store of the truck you are sitting in. Those are priced separately from everything else here, and their price moves over the campaign instead of holding still. The Resources page covers them in full." + Target_de_de "Beide Seiten des Hafenmenüs verfügen zusätzlich über einen Reiter **Ressourcen**. Darüber werden Baumaterialien in größeren Mengen in den Frachtraum des Lastwagens ein- beziehungsweise ausgelagert, in dem du dich befindest."\ + ""\ + "Diese Materialien werden getrennt von allen anderen Waren bepreist, und ihre Preise verändern sich im Verlauf der Kampagne, anstatt konstant zu bleiben. Eine vollständige Übersicht dazu bietet die Seite **Ressourcen**."\ + "" Comment "Field Manual - Ports page, body paragraph under 'Resources'. Three sentences, no rich-text markup. Deliberately short: it exists to point at the Resources page, which owns the detail, so nothing here is repeated there. FACT-CHECKED 2026-08-21 for logistics/resources. Tab on both sides: OVT_PortContext.c:31 CATEGORY_RESOURCES, appended in Import at :773 and in Export at :835, labelled at :209. Cargo store of the occupied vehicle, not its item storage: OVT_PortContext.c:750 resolves OVT_ResourceUtils.GetStore(GetOccupiedVehicle()), which is the OVT_ResourceStoreComponent authored on Prefabs/Vehicles/Core/Wheeled_Truck_Base.et:4-6. Live price rather than the fixed catalogue one: :778 reads resources.GetPrice(i), drifted by OVT_ResourceManagerComponent.CheckPrices:320-340." DevNote "" Repro "" @@ -3942,15 +4269,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781874233 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000006}" { Id "OVT-FieldManual_Ports_Title" Target_en_us "Ports" + Target_de_de "Häfen"\ + "" Comment "Field Manual - Ports page title, shown on the entry tile in the Money and Trade category. One word, no rich-text markup." DevNote "" Repro "" @@ -3959,15 +4288,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781874249 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F4000000003}" { Id "OVT-FieldManual_ProductionSites_Head" Target_en_us "Buying What a Site Has Made" + Target_de_de "Kauf vor Ort produzierter Waren"\ + "" Comment "Field Manual - Production Sites page, section header above the unowned-sale paragraph. No rich-text markup." DevNote "" Repro "" @@ -3976,14 +4307,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781874261 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F4000000005}" { Id "OVT-FieldManual_ProductionSites_Head2" Target_en_us "Owning a Site" + Target_de_de "Besitz eines Standorts"\ + "" Comment "Field Manual - Production Sites page, section header above the purchase paragraph. No rich-text markup." DevNote "" Repro "" @@ -3992,14 +4326,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781874277 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F4000000007}" { Id "OVT-FieldManual_ProductionSites_Head3" Target_en_us "Public and Private" + Target_de_de "Öffentlich und privat"\ + "" Comment "Field Manual - Production Sites page, section header above the access paragraph. No rich-text markup." DevNote "" Repro "" @@ -4008,14 +4345,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781874287 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F4000000009}" { Id "OVT-FieldManual_ProductionSites_Head4" Target_en_us "On the Map" + Target_de_de "Auf der Karte"\ + "" Comment "Field Manual - Production Sites page, section header above the map paragraph. No rich-text markup." DevNote "" Repro "" @@ -4024,14 +4364,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781874297 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F4000000002}" { Id "OVT-FieldManual_ProductionSites_Text" Target_en_us "A sawmill, a steel mill or a cement plant can be a production site, marked by a large sign standing at it. Each one makes a single construction resource and nothing else, dripping a set number of units into a cargo store of its own once every in-game hour, whether anybody owns it or not. That store is the throttle: twenty cubic metres on the shipped sites, and a site whose store is full pauses until room is made in it. A rate below one unit an hour still adds up, because the part unit is carried rather than lost, and hours slept through are produced as well." + Target_de_de "Ein Sägewerk, ein Stahlwerk oder ein Zementwerk kann als Produktionsstandort dienen und ist vor Ort durch ein großes Schild gekennzeichnet. Jeder Standort stellt genau eine Bauressource her und nichts anderes. Einmal pro Spielstunde wird eine festgelegte Menge dieser Ressource dem eigenen Frachtspeicher des Standorts gutgeschrieben – unabhängig davon, ob der Standort jemandem gehört."\ + ""\ + "Die Kapazität dieses Speichers begrenzt die Produktion: Bei den mitgelieferten Standorten beträgt sie **20 Kubikmeter**. Ist der Speicher voll, wird die Produktion angehalten, bis wieder Platz geschaffen wurde."\ + ""\ + "Auch Produktionsraten von weniger als einer Einheit pro Stunde gehen nicht verloren. Bruchteile einer Einheit werden angesammelt und in die nächste Stunde übernommen. Ebenso wird während übersprungener beziehungsweise verschlafener Spielstunden weiterproduziert."\ + "" Comment "Field Manual - Production Sites page, opening paragraph. Four sentences, no rich-text markup. FACT-CHECKED 2026-08-22 for logistics/resource-production Phase 8. KEYBINDS DELIBERATELY NOT NAMED - the verbs are rebindable actions with keyboard and gamepad sources. The three shipped variants: Prefabs/Production/OVT_ProductionSite_Sawmill.et, _SteelMill.et and _CementPlant.et. The large sign: Prefabs/Production/OVT_ProductionSite_Base.et:1 inherits {48C842DD171DE304}Prefabs/Structures/Signs/Large/SignLarge_01_base.et, whose mesh is Assets/Structures/Signs/Large/SignLarge_01_poles.xob. One resource per site: OVT_ResourceProductionComponent.c:26-27 (a single m_sResourceId) and the single-row screen built from it at OVT_ProductionSiteBuyContext.c:123-171. Once per in-game hour: OVT_ResourceProductionManagerComponent.CheckProduction:531-551 with OVT_ResourceProductionRules.ShouldProduce:106-109 (every hour, unlike price drift's four windows). Regardless of ownership: ProduceForHours:556-573 walks every record with no owner test anywhere in it. Twenty cubic metres: OVT_ProductionSite_Base.et:6-9 authors m_fCargoVolume 20; 'on the shipped sites' rather than a flat rule because a map author overrides it per placed instance. Pauses when full: OVT_ResourceProductionRules.FitProduction:151-161 fits whole units into the free litres and ProduceForSite:610-612 returns when nothing fits (whole units that do not fit are discarded, not banked - D7). Sub-1 rates and the carry: OVT_ResourceProductionRules.Produce:119-142, carry bounded to [0,1) at :135-139, and the carry is persisted in OVT_PersistedProductionSite. Sleep: OVT_ResourceProductionManagerComponent.HandleTimeSkip:632-651, called from OVT_SleepService.c:377-379 before the clock is advanced. Rates and prices are NOT quoted: every one of the four numbers is authored per placed instance (OVT_ResourceProductionComponent.c:23-33)." DevNote "" Repro "" @@ -4040,14 +4387,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781874320 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F4000000004}" { Id "OVT-FieldManual_ProductionSites_Text2" Target_en_us "While nobody owns it, a site sells what it has accumulated. Its Buy stock action carries the amount on hand and opens a one row screen quoting eighty per cent of what a port charges to import that resource at that moment, so a site undercuts the port it competes with. It sells only what it has actually produced, and the load has to go into another cargo store standing within twenty five metres of it, which the screen says plainly when there is none. A cart that will not fit, is not stocked or cannot be paid for is refused whole, so nothing is ever part bought." + Target_de_de "Solange ein Produktionsstandort niemandem gehört, verkauft er die bis dahin angesammelten Ressourcen. Die Aktion „Bestand kaufen“ zeigt die aktuell verfügbare Menge an und öffnet eine einzeilige Handelsansicht. Der dort verlangte Preis beträgt 80 % des aktuellen Importpreises, den ein Hafen zu diesem Zeitpunkt für dieselbe Ressource berechnet. Damit unterbietet der Produktionsstandort den Hafen."\ + ""\ + "Verkauft wird ausschließlich die Menge, die der Standort tatsächlich produziert und eingelagert hat. Die gekaufte Ladung muss in einen anderen Frachtspeicher übernommen werden, der sich innerhalb von 25 Metern um den Standort befindet. Ist kein geeigneter Frachtspeicher in Reichweite, weist die Anzeige ausdrücklich darauf hin."\ + ""\ + "Kann eine Bestellung nicht vollständig verstaut werden, ist die gewünschte Menge nicht auf Lager oder reichen die verfügbaren Mittel nicht aus, wird der gesamte Kauf abgelehnt. Teilkäufe finden nicht statt."\ + "" Comment "Field Manual - Production Sites page, body paragraph under 'Buying What a Site Has Made'. Four sentences, no rich-text markup. FACT-CHECKED 2026-08-22 for logistics/resource-production Phase 8. KEYBINDS DELIBERATELY NOT NAMED - the verbs are rebindable actions with keyboard and gamepad sources. Unowned only, on both sides: OVT_BuySiteStockAction.CanBeShownScript:193-200 calls OVT_ResourceProductionRules.MayBuyStock:95-98, and the server refuses an owned site in exactly one place, OVT_ResourceRequestComponent.MayBuyFromSite:1039+ with #OVT-ProdSite_Owned. The action label carries the stock count: OVT_BuySiteStockAction.c:231 (#OVT-ProdSite_BuyStock, one %1). One row: OVT_ProductionSiteBuyContext.BuildEntries:123-171 emits exactly one entry, the site's own resource. Eighty per cent of the LIVE import price: :159 SitePrice(resources.GetPrice(defIndex), SITE_SELL_RATIO) with SITE_SELL_RATIO 0.8 at OVT_ResourceProductionRules.c:10, floored at 1 by :21-24. It is NOT the port's 0.5 export ratio (D10), and the server re-derives the same figure at commit so a client cannot supply a price. Capped by real stock: :160 m_iMaxQuantity = Math.Min(stock, MAX_BUY_QUANTITY 1000), and the server's own refusal on the ledger count at OVT_ResourceRequestComponent.c:641 (#OVT-Resource_NotEnough). Twenty five metres: OVT_ProductionSiteBuyContext.c:23 DESTINATION_RADIUS 25, used by BuildDestinations:184-223, which excludes the site itself. 'Another cargo store' rather than 'a truck' because a crate pile or warehouse in range is equally a destination. No destination is stated rather than silent: ValidateCart:278-286 returns #OVT-Resource_NeedTruck. Refused whole, never clamped: OVT_ResourceRequestComponent.c:715 (#OVT-Resource_NoSpace, whole cart) and :719 (PlayerHasMoney on the whole cart, #OVT-Resource_NoMoney)." DevNote "" Repro "" @@ -4056,14 +4410,23 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781874395 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F4000000006}" { Id "OVT-FieldManual_ProductionSites_Text3" Target_en_us "Buying the site itself is an action on it, priced from what that site was set up to cost and scaled by the difficulty's real estate multiplier; the price on the label is the price that is charged. An officer can buy one out of resistance funds instead, which puts it in the resistance's name. Buying empties the store in the same moment it takes the money, so a site is never worth buying for the stock it was sitting on. A site is never sold back, costs nothing to keep, and is not something the occupying faction comes after." + Target_de_de "Der Standort selbst kann über eine entsprechende Aktion gekauft werden. Der Preis richtet sich nach dem für diesen Standort festgelegten Grundwert und wird mit dem Immobilienmultiplikator des gewählten Schwierigkeitsgrads skaliert. Der auf der Anzeige angegebene Preis ist zugleich der tatsächlich berechnete Kaufpreis."\ + ""\ + "Ein Offizier kann den Standort stattdessen aus Mitteln des Widerstands erwerben. In diesem Fall geht er in den Besitz des Widerstands über."\ + ""\ + "Mit dem Kauf wird der vorhandene Lagerbestand im selben Moment geleert, in dem der Kaufpreis abgezogen wird. Es lohnt sich daher nicht, einen Standort nur wegen der dort eingelagerten Waren zu erwerben."\ + ""\ + "Ein einmal gekaufter Standort kann nicht wieder verkauft werden, verursacht keine laufenden Kosten und wird von der Besatzungsfraktion nicht angegriffen oder zurückerobert."\ + "" Comment "Field Manual - Production Sites page, body paragraph under 'Owning a Site'. Four sentences, no rich-text markup. FACT-CHECKED 2026-08-22 for logistics/resource-production Phase 8. KEYBINDS DELIBERATELY NOT NAMED - the verbs are rebindable actions with keyboard and gamepad sources. The action: OVT_BuySiteAction on Prefabs/Production/OVT_ProductionSite_Base.et:21-30 (Sort Priority 1), shown only while unowned via MayBuySite (OVT_BuySiteAction.c:49-56). One price, two evaluations of the same static: OVT_BuySiteAction.GetCost:166-177 for the label and OVT_ResourceProductionRequestComponent.RpcAsk_BuySite:153 for the charge, both OVT_ResourceProductionRules.BuyCost(authored base cost, config.GetRealEstateCostMultiplier()). realEstateCostMultiplier is a difficulty setting (OVT_DifficultySettings.c:123), which is why no figure is quoted here; this feature is its first reader. Resistance funds are officer-only: OVT_BuySiteResistanceAction.CanBeShownScript:21-31 (IsLocalPlayerOfficer, UX) and the authority at RpcAsk_BuySite:166-170 (resistance.IsOfficer(playerId) resolved from the request entity, never from anything the client says). Owner becomes the literal 'resistance' at :179. Stock destroyed in the same call as the charge: RpcAsk_BuySite:207-209 - SetSiteOwner, SetSitePrivacy(true), then manager.ClearSiteStock (OVT_ResourceProductionManagerComponent.c:343-360, ledger.Clear() then PublishContents()). Requirement section 19. No sell-back: MayBuySite (OVT_ResourceProductionRules.c:85-88) is true only while owner is empty, and no refund path exists anywhere in the mod. No upkeep and not a target: grep of Scripts/Game/GameMode/Managers/Factions/ and OVT_OccupyingFactionManager.c for OVT_ResourceProductionComponent or OVT_Global.GetProduction() returns 0 hits (2026-08-22), and nothing in the feature charges a recurring cost. Requirements sections 23 and 26." DevNote "" Repro "" @@ -4072,14 +4435,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781874410 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F4000000008}" { Id "OVT-FieldManual_ProductionSites_Text4" Target_en_us "A site bought by a player starts private, and a private one opens its storage to that player alone. The owner can flip it to public, an officer can do the same on a resistance owned site, and a public or resistance owned site opens to anyone in the resistance. Anyone who may not open it still sees the site's Cargo action, blocked with a reason rather than hidden. An owned site stops selling altogether: what it makes goes into building, into a trade agreed with another player, or out to a port for export." + Target_de_de "Ein von einem Spieler gekaufter Produktionsstandort ist zunächst privat. Bei einem privaten Standort kann nur der Besitzer auf den Lagerbestand zugreifen. Der Besitzer kann den Standort auf öffentlich umstellen; bei einem Standort im Besitz des Widerstands kann dies auch ein Offizier tun. Auf einen öffentlichen oder dem Widerstand gehörenden Standort kann jeder Angehörige des Widerstands zugreifen."\ + ""\ + "Wer keine Zugriffsberechtigung hat, sieht die Aktion „Fracht“ des Standorts weiterhin, sie ist jedoch gesperrt und zeigt den Grund dafür an, anstatt vollständig ausgeblendet zu werden."\ + ""\ + "Ein Standort im Besitz eines Spielers oder des Widerstands stellt den Verkauf vollständig ein. Seine Produktion wird stattdessen für Bauvorhaben verwendet, im Rahmen eines vereinbarten Handels an einen anderen Spieler weitergegeben oder zu einem Hafen gebracht und dort exportiert."\ + "" Comment "Field Manual - Production Sites page, body paragraph under 'Public and Private'. Four sentences, no rich-text markup. FACT-CHECKED 2026-08-22 for logistics/resource-production Phase 8. KEYBINDS DELIBERATELY NOT NAMED - the verbs are rebindable actions with keyboard and gamepad sources. Private on purchase: OVT_ResourceProductionRequestComponent.RpcAsk_BuySite:208 SetSitePrivacy(rec.location, true). Who may open it, ONE predicate with two callers: OVT_ResourceProductionRules.MayAccessStore:44-59 - unowned opens to nobody, 'resistance' opens to everybody, public opens to everybody, private opens to the owner alone. Server caller: OVT_ResourceRequestComponent.SiteIsAccessible:1143-1150 feeding the holder ladder at :1020-1024 (#OVT-Resource_NoAccess). Client caller: OVT_OpenResourceStoreAction.SiteIsOpenTo:191-203 with the reason set at :97-99. Visible-and-blocked rather than hidden: OVT_OpenResourceStoreAction.c:97-99 calls SetCannotPerformReason, the shipped gate policy of that file. NAMED 'Cargo' RATHER THAN 'Storage' ON PURPOSE: a site's store has a bounded capacity (20 m3), so OVT_OpenResourceStoreAction.RefreshLabel:153 takes the #OVT-Resource_Cargo branch and the action reads 'Cargo (0.0 / 20.0 m3)'. #OVT-ProdSite_Storage ('Site Storage') is only the prefab's static UIInfo fallback and the name the destination picker draws; the UNLIMITED branch at :149 that would show it as the action label is never taken on a shipped site. The toggle: OVT_ToggleSitePrivacyAction on OVT_ProductionSite_Base.et:51-60, gated by OVT_ResourceProductionRules.MayTogglePrivacy:67-79 (owner, or an officer on a resistance-owned site) on the client at :103-118 and re-checked by RpcAsk_SetSitePrivacy. Labels flip between #OVT-ProdSite_MakePublic and #OVT-ProdSite_MakePrivate at :124-141. An owned site sells nothing: OVT_BuySiteStockAction.CanBeShownScript:193-200 hides the shop action the moment the site has an owner. Requirement section 23. Building, player-to-player trade and export are named as the uses because requirement section 26 states them and the mechanisms already exist (the Resources page covers construction sites and port export); no new mechanism is implied." DevNote "" Repro "" @@ -4088,14 +4458,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781874725 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F400000000A}" { Id "OVT-FieldManual_ProductionSites_Text5" Target_en_us "Production sites draw at the same zoom as towns and bases. The icon is white while the site is unowned, green when it is yours, public or the resistance's, and half faded white when somebody else is keeping it private. Its info panel gives the status, the owner once it has one, what is in the store against how much room there is, its output per hour, and, while it is unowned, what buying it would cost." + Target_de_de "Produktionsstandorte werden auf der Karte ab derselben Zoomstufe angezeigt wie Ortschaften und Militärbasen. Das Symbol ist weiß, solange der Standort niemandem gehört, grün, wenn er dir selbst gehört, öffentlich ist oder sich im Besitz des Widerstands befindet, und halbtransparent weiß, wenn ein anderer Spieler ihn privat hält."\ + ""\ + "Das Informationsfeld zeigt den aktuellen Status, nach dem Kauf auch den Besitzer, den vorhandenen Lagerbestand im Verhältnis zur Gesamtkapazität, die Produktion pro Stunde und, solange der Standort unbesetzt ist, den Kaufpreis."\ + "" Comment "Field Manual - Production Sites page, body paragraph under 'On the Map'. Three sentences, no rich-text markup. FACT-CHECKED 2026-08-22 for logistics/resource-production Phase 8. KEYBINDS DELIBERATELY NOT NAMED - the verbs are rebindable actions with keyboard and gamepad sources. Same zoom as towns and bases: Configs/Map/OverthrowMap.conf:180 gives OVT_MapLocationProductionSite m_fVisibilityZoom 0, the same value OVT_MapLocationTown (:7) and OVT_MapLocationBase (:25) carry. Requirement section 21. The three colours: OVT_MapLocationProductionSite.c:19-26 authors them as [Attribute] ColorPicker defaults (1 1 1 1 white unowned, 0 1 0 1 green accessible, 1 1 1 0.5 half-alpha white private-not-yours) - CORRECTED 2026-08-22 after the user changed unowned and private from black/half-green to white; implementation.md F12 was updated to match and context.md records the change. GetIconColor (:74-93) never compares owner or isPrivate itself, it hands them to OVT_ResourceProductionRules.ColourState (:169-178), the same function the storage gate uses. Info panel rows: BuildInfoRows (:99-121)." DevNote "" Repro "" @@ -4104,14 +4479,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781874743 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F4000000001}" { Id "OVT-FieldManual_ProductionSites_Title" Target_en_us "Production Sites" + Target_de_de "Produktionsstandorte"\ + "" Comment "Field Manual - Production Sites page title, shown on the entry tile in the Money and Trade category, beside Resources. Two words, no rich-text markup. The page covers OVT_ResourceProductionComponent sites (Prefabs/Production/), which the Resources page deliberately only points at." DevNote "" Repro "" @@ -4120,8 +4498,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781874757 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -4280,6 +4659,8 @@ StringTable { CustomStringTableItem "{6B1C3D0000007210}" { Id "OVT-FieldManual_Recruits_Head9" Target_en_us "Handing Recruits to High Command" + Target_de_de "Übergabe von Rekruten an das Obere Kommando"\ + "" Comment "Field Manual - The Resistance category, Recruits page. Ninth section header, five words. Added 2026-08-22 by resistance/high-command Phase 13; points at the High Command page rather than repeating it. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -4288,8 +4669,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781874769 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -4315,6 +4697,12 @@ StringTable { CustomStringTableItem "{6B1C3D0000007211}" { Id "OVT-FieldManual_Recruits_Text10" Target_en_us "Recruits that are holding position can also be handed over to High Command, which fields whole groups a player orders from the map. The Holding Position section is split by where the recruits are standing, and each of those groups carries a Convert to High Command action. It is one way: the recruits leave your roster and free their slots, and their names, experience and skills stop being tracked, while the same bodies and their gear carry on in the new group." + Target_de_de "Rekruten, die ihre Stellung halten, können ebenfalls an das Obere Kommando übergeben werden. Das Obere Kommando setzt vollständige Gruppen ein, die ein Spieler über die Karte befehligt."\ + ""\ + "Der Abschnitt „Stellung halten“ ist danach unterteilt, wo sich die jeweiligen Rekruten befinden. Jede dieser Gruppen verfügt über die Aktion „An das Obere Kommando übergeben“."\ + ""\ + "Die Übergabe ist endgültig: Die Rekruten werden aus deinem Kader entfernt und ihre Plätze werden frei. Namen, Erfahrung und Fähigkeiten werden anschließend nicht mehr einzeln erfasst. Die betreffenden Soldaten selbst sowie ihre Ausrüstung bleiben jedoch erhalten und dienen in der neu gebildeten Gruppe weiter."\ + "" Comment "Field Manual - The Resistance category, Recruits page, body paragraph under the 'Handing Recruits to High Command' header. Three sentences. Same citations as #OVT-FieldManual_HighCommand_Text7: OVT_RecruitsContext.c:371, :444, :664-695, :748; UI/Layouts/Menu/RecruitsMenu.layout:317; OVT_HighCommandManagerComponent.ConvertRecruitGroup:2487-2511 and DropConvertedRecruitRecords:2513-2526 (RemoveRecruit frees the recruit cap). FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -4323,8 +4711,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781874785 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -4525,6 +4914,8 @@ StringTable { CustomStringTableItem "{6A8E2E20000000A2}" { Id "OVT-FieldManual_Resources_Head" Target_en_us "Buying and Selling at a Port" + Target_de_de "Kaufen und Verkaufen an einem Hafen"\ + "" Comment "Field Manual - Resources page, section header above the port paragraph. No rich-text markup." DevNote "" Repro "" @@ -4533,15 +4924,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781874811 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E20000000A4}" { Id "OVT-FieldManual_Resources_Head2" Target_en_us "Hauling" + Target_de_de "Transportwesen" Comment "Field Manual - Resources page, section header above the truck paragraph. No rich-text markup." DevNote "" Repro "" @@ -4550,15 +4942,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781874987 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E20000000A6}" { Id "OVT-FieldManual_Resources_Head3" Target_en_us "Crate Piles" + Target_de_de "Kistenstapel" Comment "Field Manual - Resources page, section header above the crate pile paragraph. No rich-text markup." DevNote "" Repro "" @@ -4567,15 +4960,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781874992 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E20000000A8}" { Id "OVT-FieldManual_Resources_Head4" Target_en_us "Building With Resources" + Target_de_de "Bauen mit Ressourcen" Comment "Field Manual - Resources page, section header above the construction site paragraph. No rich-text markup." DevNote "" Repro "" @@ -4584,15 +4978,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781874997 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E20000000AA}" { Id "OVT-FieldManual_Resources_Head5" Target_en_us "Warehouses" + Target_de_de "Lagerhäuser" Comment "Field Manual - Resources page, section header above the warehouse paragraph. No rich-text markup." DevNote "" Repro "" @@ -4601,15 +4996,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781875002 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E20000000A1}" { Id "OVT-FieldManual_Resources_Text" Target_en_us "Timber, cement, steel and hardware are bulk construction materials. They are not items in an inventory: a truck, a crate pile or a warehouse holds them as a quantity, and measures what it is holding in cubic metres. The four differ in how much space and weight a unit takes, with timber the bulkiest and cheapest and hardware the most compact and dearest. Ports sell them, production sites on the island make them, trucks carry them, crate piles hold them on the ground, warehouses keep them, and some structures cannot go up without them." + Target_de_de "Holz, Zement, Stahl und Eisenwaren sind Baumaterialien, die in großen Mengen gelagert und transportiert werden. Sie sind keine Gegenstände im Inventar: Ein Lastwagen, ein Kistenstapel oder ein Lagerhaus führt sie als Mengenbestand, gemessen in Kubikmetern."\ + ""\ + "Die vier Ressourcen unterscheiden sich darin, wie viel Platz und Gewicht eine Einheit beansprucht. Holz ist dabei am sperrigsten und günstigsten, Eisenwaren am kompaktesten und teuersten."\ + ""\ + "Häfen verkaufen diese Materialien, Produktionsstandorte auf der Insel stellen sie her, Lastwagen transportieren sie, Kistenstapel lagern sie im Gelände, Lagerhäuser bewahren sie auf, und bestimmte Bauwerke können ohne sie nicht errichtet werden."\ + "" Comment "Field Manual - Resources page, opening paragraph. Four sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/resources. The four resources and their per-unit figures: Configs/Resistance/resources.conf:3-42 - timber 0.1 cubic metres and 40 dollars base, cement 0.05 and 60, steel 0.04 and 120, hardware 0.02 and 200. Held as a quantity rather than as entities: Scripts/Game/Data/OVT_ResourceLedger.c (id to quantity, no entity anywhere). Cubic metres as the unit of capacity: OVT_ResourceStoreComponent.c:285 converts the authored m_fCargoVolume to integer litres. Holders: Prefabs/Vehicles/Core/Wheeled_Truck_Base.et:4-6, Prefabs/Props/Resources/OVT_ResourcePile.et:4-7, Prefabs/Structures/Industrial/Houses/Warehouse_01/Warehouse_01_Base.et:8-11. Structures that require them: Configs/Resistance/buildables.conf:77, :107, :145, :175. REVISED 2026-08-22 for logistics/resource-production: 'production sites on the island make them' added to the last sentence, and the buildables.conf line references above were re-derived (the Guard Tower requirement at :15 no longer exists). Production sites: OVT_ResourceProductionManagerComponent.ProduceForHours:556-573 drips into each site's own OVT_ResourceStoreComponent once an in-game hour; the Production Sites page owns the detail so nothing is repeated here." DevNote "" Repro "" @@ -4618,15 +5019,23 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781874881 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E20000000A3}" { Id "OVT-FieldManual_Resources_Text2" Target_en_us "The port screen carries a Resources tab on both the Import and the Export side. What a resource costs there is a live price that moves over the campaign rather than the fixed one a shop uses: it changes at most once in each six-hour window of game time, stays inside a band around its base price, and the details panel says whether it currently sits below, near or above that base. Occupying pressure pushes prices up and resistance control of the ports pushes them down. A port pays half the going price to take a resource back off you. Either way the trade runs through the store of the truck you are sitting in, so a resource is listed disabled with a reason when there is no truck under you or no room left in it. Difficulty scales both the price and how far it swings." + Target_de_de "Das Hafenmenü verfügt sowohl auf der Import- als auch auf der Exportseite über einen Reiter „Ressourcen“. Der Preis einer Ressource ist dort nicht fest wie in einem Geschäft, sondern verändert sich im Verlauf der Kampagne. Er kann sich höchstens einmal innerhalb eines Zeitfensters von sechs Spielstunden ändern und bleibt dabei innerhalb einer festgelegten Spanne um seinen Grundpreis. Im Detailfeld wird angezeigt, ob der aktuelle Preis unter, nahe oder über diesem Grundpreis liegt."\ + ""\ + "Steigender Druck durch die Besatzungsfraktion treibt die Preise nach oben, während die Kontrolle der Häfen durch den Widerstand sie senkt. Beim Export zahlt ein Hafen die Hälfte des jeweils aktuellen Marktpreises für eine Ressource."\ + ""\ + "Sowohl Import als auch Export werden über den Frachtspeicher des Lastwagens abgewickelt, in dem du sitzt. Sitzt du in keinem Lastwagen oder ist dessen Frachtraum voll, wird die betreffende Ressource in der Liste deaktiviert angezeigt und der Grund dafür angegeben."\ + ""\ + "Der Schwierigkeitsgrad beeinflusst sowohl das allgemeine Preisniveau als auch die Stärke der Preisschwankungen."\ + "" Comment "Field Manual - Resources page, body paragraph under 'Buying and Selling at a Port'. Six sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/resources. Tab on both sides: OVT_PortContext.c:31 CATEGORY_RESOURCES, appended in Import at :773 and in Export at :835, labelled at :209. Live price: OVT_PortContext.c:778 reads resources.GetPrice(i), never the config base. Six-hour window: OVT_ResourceRules.c:54-83 (IsDriftWindowHour plus the one-drift-per-window latch) driven by OVT_ResourceManagerComponent.CheckPrices:320-340. Band: OVT_ResourceManagerComponent.c:36-40 m_fPriceBandMin 0.5 and m_fPriceBandMax 2.0, clamped inside OVT_ResourceRules.DriftStep. Below/near/above line: OVT_PortContext.c:905-908. Direction of the pressure term: OVT_ResourceRules.WarPressure:113-120 - the threat term is positive and the controlled-port fraction is subtracted. Half: OVT_ResourceManagerComponent.c:45-46 m_fSellRatio default 0.5, applied at :227. Trade runs through the occupied vehicle's store: OVT_PortContext.c:750. Disabled with a reason: :776-786 (#OVT-Resource_NeedTruck and #OVT-Resource_NoCargoSpace). Difficulty: OVT_DifficultySettings.c resourcePriceMultiplier and resourcePriceVolatility, set per level in Configs/Difficulty/Difficulty_Easy.conf, _Hard.conf, _Extreme.conf and _Insane.conf. Numbers are not quoted because all three are difficulty settings." DevNote "" Repro "" @@ -4635,15 +5044,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781874910 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E20000000A5}" { Id "OVT-FieldManual_Resources_Text3" Target_en_us "Trucks are the only vehicles with a cargo store, so no car, armoured carrier or helicopter shows a cargo action at all. An ordinary truck takes fifteen cubic metres, the transport variants of the M923A1 and the Ural take twenty, and the Mobile FOB truck takes eight because it is already carrying a base. Sitting in a truck puts a panel on the screen listing what is aboard and how much of the space is gone. A load that will not fit is refused whole, with the space left over named in the message, so nothing is ever part-bought or half-moved." + Target_de_de "Lastwagen sind die einzigen Fahrzeuge mit einem Frachtspeicher. Pkw, gepanzerte Transportfahrzeuge und Hubschrauber verfügen daher über keinerlei Frachtaktion."\ + ""\ + "Ein gewöhnlicher Lastwagen fasst 15 Kubikmeter. Die Transportvarianten des M923A1 und des Ural verfügen über 20 Kubikmeter Frachtraum. Der Mobile-FOB-Lastwagen fasst 8 Kubikmeter, da er bereits eine Basis mitführt."\ + ""\ + "Sobald du in einem Lastwagen sitzt, erscheint eine Anzeige mit dem aktuellen Ladebestand und dem bereits belegten Frachtraum. Passt eine Ladung nicht vollständig hinein, wird der gesamte Vorgang abgelehnt. Die Meldung nennt dabei den noch verfügbaren Platz. Teilkäufe oder nur teilweise durchgeführte Umlagerungen finden nicht statt."\ + "" Comment "Field Manual - Resources page, body paragraph under 'Hauling'. Four sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/resources. Trucks only: OVT_ResourceStoreComponent and OVT_OpenResourceStoreAction are authored on Prefabs/Vehicles/Core/Wheeled_Truck_Base.et:4-21, which only ArmaReforger Prefabs/Vehicles/Wheeled/M923A1/M923A1.et and Prefabs/Vehicles/Wheeled/Ural4320/Ural4320.et inherit (grep of the vanilla tree, 2026-08-21); cars and helicopters inherit Wheeled_Base.et or another base and therefore have neither component nor action. Capacities: Wheeled_Truck_Base.et:5 is 15, M923A1_transport.et:5 and Ural4320_transport.et:5 are 20, OverthrowMobileFOB.et:5 and OverthrowMobileFOBDeployed.et:5 are 8. HUD panel: OVT_CargoInfo.c, declared on Wheeled_Truck_Base.et:32-35; it lists up to six resource lines (MAX_LINES, :20) and the used-of-total volume. Whole-cart refusal with the remaining volume: OVT_ResourceTransferContext.ValidateCart:306-320 (#OVT-Resource_NoSpaceVolume) and the server's re-check in OVT_ResourceRequestComponent. Deliberately NOT written: any claim that weight affects handling. Physics.SetMass is never called; weight is display only (OVT_ResourceLedger.TotalWeightKg)." DevNote "" Repro "" @@ -4652,15 +5067,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781874935 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E20000000A7}" { Id "OVT-FieldManual_Resources_Text4" Target_en_us "A cargo store opens a screen with a Take side and a Put side, and a list of everywhere nearby the load could go, nearest first. In Take, one of those destinations is the ground. Sending a load there drops a crate pile in front of you, and dropping a second load within a few metres of that pile adds to it rather than starting another. A pile has no capacity limit of its own, shows on the map with its contents and its volume, opens like any other store, and disappears once it has been emptied." + Target_de_de "Ein Frachtspeicher öffnet eine Ansicht mit den Bereichen „Entnehmen“ und „Einlagern“ sowie einer Liste aller nahegelegenen Ziele, zu denen die Ladung bewegt werden kann, sortiert nach Entfernung."\ + ""\ + "Unter „Entnehmen“ steht auch der Boden als Ziel zur Verfügung. Wird eine Ladung dort abgelegt, erscheint vor dir ein Kistenstapel. Wird eine weitere Ladung innerhalb weniger Meter davon abgelegt, wird sie dem bestehenden Stapel hinzugefügt, anstatt einen neuen zu erzeugen."\ + ""\ + "Ein Kistenstapel besitzt keine eigene Kapazitätsgrenze. Er wird auf der Karte mit seinem Inhalt und seinem Volumen angezeigt, lässt sich wie jeder andere Frachtspeicher öffnen und verschwindet, sobald er vollständig geleert wurde."\ + "" Comment "Field Manual - Resources page, body paragraph under 'Crate Piles'. Four sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/resources. Take and Put: OVT_ResourceTransferContext.BuildModes:131-134. Nearby destinations sorted nearest-first, within m_fHolderRadius (default 25 m, OVT_ResourceRequestComponent.c:166-167, unoverridden on Prefabs/GameMode/OVT_OverthrowController.et:48-49): OVT_ResourceTransferContext.BuildDestinations:225-241. Ground offered in Take only: :243-255. Dropped in front of the player: m_fUnloadOffset default 4 m, OVT_ResourceRequestComponent.c:178-179. Merging: OVT_ResourceManagerComponent.c:48-49 m_fMergeRadius default 6 m, selected by OVT_ResourceRules.SelectMergeTarget at :579 - 'a few metres' rather than the number because the radius is a prefab attribute. Unlimited: Prefabs/Props/Resources/OVT_ResourcePile.et:5 authors m_fCargoVolume -1. Map: OVT_MapLocationResourcePile.c:86-92 draws the contents and volume rows; the marker is the OVT_MapMarkerComponent with category RESOURCE_PILE on OVT_ResourcePile.et:11-13. Deleted when emptied: OVT_ResourceManagerComponent.DeletePileIfEmpty:629-648." DevNote "" Repro "" @@ -4669,15 +5090,23 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781874953 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E20000000A9}" { Id "OVT-FieldManual_Resources_Text5" Target_en_us "Most structures still cost money alone and appear the moment they are placed. The Helipad, the Garage, the Warehouse and the Barracks want resources as well, and placing one of those raises a construction site instead. The money is taken at that point and the site then stands until the materials reach it. Two actions sit on a site: Requirements lists what it needs against what is within reach of it, and Build finishes it, drawing on crate piles standing within thirty metres and emptying the nearest of them first. Only piles count towards a site, so a load still aboard a truck or sitting in a warehouse is not in reach. Nothing is refunded if a site is removed, and difficulty scales what a structure asks for." + Target_de_de "Die meisten Bauwerke kosten weiterhin ausschließlich Geld und erscheinen unmittelbar nach ihrer Platzierung. Der Hubschrauberlandeplatz, die Garage, das Lagerhaus und die Kaserne benötigen zusätzlich Ressourcen. Wird eines dieser Bauwerke platziert, entsteht stattdessen zunächst eine Baustelle."\ + ""\ + "Das Geld wird bereits bei der Platzierung abgezogen. Die Baustelle bleibt anschließend bestehen, bis die benötigten Materialien zu ihr gebracht wurden. An einer Baustelle stehen zwei Aktionen zur Verfügung: „Anforderungen“ zeigt an, welche Materialien benötigt werden und welche davon sich in Reichweite befinden. Mit „Bauen“ wird das Bauwerk fertiggestellt. Dabei werden Kistenstapel innerhalb eines Radius von 30 Metern verwendet, wobei die nächstgelegenen zuerst geleert werden."\ + ""\ + "Für eine Baustelle zählen ausschließlich Kistenstapel als verfügbare Ressourcen. Eine Ladung, die sich noch auf einem Lastwagen oder in einem Lagerhaus befindet, gilt daher nicht als in Reichweite."\ + ""\ + "Wird eine Baustelle entfernt, werden weder Geld noch Materialien zurückerstattet. Der Schwierigkeitsgrad beeinflusst außerdem die für ein Bauwerk benötigte Ressourcenmenge."\ + "" Comment "Field Manual - Resources page, body paragraph under 'Building With Resources'. Six sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/resources. Money-only buildables are byte-identical to before: OVT_ResistanceFactionManager.BuildItem:896-899 branches to PlaceConstructionSite only when HasResourceRequirements() is true, otherwise straight to FinishBuild. Which four: Garage (buildables.conf:77), Helipad (:107), Warehouse (:145) and Barracks (:175); no other entry authors m_aResourceRequirements. CORRECTED 2026-08-22 for logistics/resource-production: the sentence still named the Guard Tower and omitted the Barracks, which the 2026-08-21 comment had already flagged as re-checked but never applied to the English text. The Guard Tower entry (buildables.conf:5-17) authors no m_aResourceRequirements at all. Money charged at placement: OVT_ResistanceFactionManager.PlaceConstructionSite:1057-1106, TakePlayerMoney at :1106. The two actions: OVT_SiteRequirementsAction.c:60 (#OVT-Resource_SiteRequirements) and OVT_BuildFromSiteAction.c:124-129, both on Prefabs/Structures/OVT_ConstructionSite.et. Thirty metres: OVT_ResourceManagerComponent.c:51-52 m_fSupplyRadius default 30, read by OVT_ResourceRequirements.CollectPiles:281. Nearest first: OVT_ResourceRequirements.Consume:173 through OVT_ResourceRules.SortPilesForConsumption. Piles only: CollectPiles runs an OVT_ResourcePileQuery, so a truck store or a warehouse store is never counted (requirements section D). No refund: OVT_ResistanceFactionManager.c:1091-1106 states it and no refund path exists anywhere in the mod. Difficulty: OVT_DifficultySettings.c:151-152 buildableResourceCostMultiplier, applied by OVT_ResourceRequirements.ScaleForDifficulty:33 - which is why no requirement quantity is quoted here." DevNote "" Repro "" @@ -4686,15 +5115,23 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781874972 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E20000000AB}" { Id "OVT-FieldManual_Resources_Text6" Target_en_us "A warehouse building holds resources beside the items it already stores, under an action of its own, and neither side of it has a limit. A warehouse is also something the resistance can build, for money and all four resources. It can go up at a base the resistance holds, and inside a town the resistance controls, which is the only place the build list reaches beyond bases, FOBs and camps; a town the occupying faction still holds refuses it, and so does a village. Once it is up it is a warehouse like any other, on the map, in who owns it and in what it will hold." + Target_de_de "Ein Lagerhaus bewahrt neben den bereits darin gelagerten Gegenständen auch Ressourcen auf, die über eine eigene Aktion verwaltet werden. Weder für die Gegenstände noch für die Ressourcen besteht eine Kapazitätsgrenze."\ + ""\ + "Auch der Widerstand kann ein Lagerhaus errichten. Dafür werden Geld sowie alle vier Ressourcen benötigt. Es kann auf einer vom Widerstand gehaltenen Militärbasis und innerhalb einer vom Widerstand kontrollierten Ortschaft gebaut werden. Damit ist das Lagerhaus das einzige Bauwerk, dessen Bauliste über Militärbasen, FOBs und Lager hinaus auch Ortschaften umfasst."\ + ""\ + "In einer noch von der Besatzungsfraktion gehaltenen Ortschaft kann kein Lagerhaus gebaut werden. Dasselbe gilt für Dörfer."\ + ""\ + "Nach seiner Fertigstellung funktioniert es wie jedes andere Lagerhaus: Es wird auf der Karte angezeigt, besitzt eine entsprechende Eigentumszuordnung und kann dieselben Gegenstände und Ressourcen lagern."\ + "" Comment "Field Manual - Resources page, body paragraph under 'Warehouses'. Four sentences, no rich-text markup. Cross-references the Storage page rather than restating the item side. FACT-CHECKED 2026-08-21 for logistics/resources. The resource store and its own action at Sort Priority 3: Prefabs/Structures/Industrial/Houses/Warehouse_01/Warehouse_01_Base.et:8-11 and :43-52. Both unlimited: m_eCapacityMode UNLIMITED on the item store (:4-7) and m_fCargoVolume -1 on the resource store (:9). Buildable entry: Configs/Resistance/buildables.conf:142-172 - m_iCost 12000 (not quoted, buildableCostMultiplier is a difficulty setting), m_bBuildAtBase 1, m_bBuildInTown 1, and all four resources at :153-172. Town control: OVT_BuildContext.CanBuild:330-348 refuses an uncontrolled town with #OVT-CannotBuildUncontrolledTown and a village with #OVT-CannotBuildVillage, and the server re-checks through the same pure predicate in OVT_ResistanceFactionManager.TownControlAllowsBuild:1031-1046. Warehouse is the only shipped buildable that sets m_bBuildInTown (grep of buildables.conf, 2026-08-21). Indistinguishable afterwards: OVT_ResistanceFactionManager.RegisterBuiltWarehouse:1002-1016 registers it through OVT_RealEstateManagerComponent.SetOwnerPersistentId, which is the same record a bought warehouse carries." DevNote "" Repro "" @@ -4703,15 +5140,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781875013 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E20000000A0}" { Id "OVT-FieldManual_Resources_Title" Target_en_us "Resources" + Target_de_de "Ressourcen" Comment "Field Manual - Resources page title, shown on the entry tile in the Money and Trade category. One word, no rich-text markup. Matches the port screen's Resources tab label (#OVT-ShopCategory_Resources)." DevNote "" Repro "" @@ -4720,15 +5158,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1781875027 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B70D00000000049}" { Id "OVT-FieldManual_Ruins_Head" Target_en_us "A Ruin Does Nothing" + Target_de_de "Eine Ruine hat keine Funktion"\ + "" Comment "Field Manual - Ruins and Repair page, section header. No rich-text markup. ADDED 2026-08-20 by core/damage Phase 8." DevNote "" Repro "" @@ -4737,15 +5177,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786924800 + Modified 1781875039 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B70D0000000004A}" { Id "OVT-FieldManual_Ruins_Head2" Target_en_us "The Gear Inside Survives" + Target_de_de "Die Ausrüstung im Inneren bleibt erhalten."\ + "" Comment "Field Manual - Ruins and Repair page, section header. No rich-text markup. ADDED 2026-08-20 by core/damage Phase 8." DevNote "" Repro "" @@ -4754,15 +5196,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786924800 + Modified 1781875049 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B70D0000000004B}" { Id "OVT-FieldManual_Ruins_Head3" Target_en_us "Putting It Back" + Target_de_de "Wiederaufbau" Comment "Field Manual - Ruins and Repair page, section header. No rich-text markup. ADDED 2026-08-20 by core/damage Phase 8." DevNote "" Repro "" @@ -4771,15 +5214,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786924800 + Modified 1781875062 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B70D0000000004C}" { Id "OVT-FieldManual_Ruins_Head4" Target_en_us "The Other Side Repairs Too" + Target_de_de "Auch die Gegenseite repariert" Comment "Field Manual - Ruins and Repair page, section header. No rich-text markup. ADDED 2026-08-20 by core/damage Phase 8." DevNote "" Repro "" @@ -4788,15 +5232,18 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786924800 + Modified 1781875080 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B70D0000000004D}" { Id "OVT-FieldManual_Ruins_Text" Target_en_us "A structure the occupying faction wrecks at one of your bases does not vanish. It goes up with an explosion and a column of smoke, and what is left stands where it stood, on the same ground, as a ruin. A campaign saved and loaded again brings a ruin back as a ruin, and a structure that has been put back comes back repaired." + Target_de_de "Ein Bauwerk, das von der Besatzungsfraktion auf einer deiner Basen zerstört wird, verschwindet nicht. Es wird durch eine Explosion zerstört, eine Rauchsäule steigt auf, und die Überreste bleiben an derselben Stelle als Ruine stehen."\ + ""\ + "Wird die Kampagne gespeichert und später erneut geladen, bleibt die Ruine als Ruine erhalten. Ein bereits wiederhergestelltes Bauwerk erscheint nach dem Laden hingegen weiterhin repariert." Comment "Field Manual - Ruins and Repair page, opening paragraph. Reference voice: describes, never instructs. Three sentences, no rich-text markup. ADDED 2026-08-20 by core/damage Phase 8. FACT-CHECKED: sabotage ruins instead of deleting at OVT_BaseSabotageBehaviorDeploymentModule.c:325 (Ruin first, DestroyPlacedItem only as the fallback for a structure with no destruction component - all eight shipped buildables carry one). The entity is never deleted, so it stays in place; the explosion particle, the smoke particle and the positional one-shot sound are OVT_StructureDestructionComponent.RaiseEffects():291-301 and RaiseSound():309, raised on every machine by the broadcast RpcDo_ApplyPhase. Save/load is OVT_BuildableComponentSerializer version 2, which appends the damage phase and restores it through RestorePhase()." DevNote "" Repro "" @@ -4805,15 +5252,18 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786924800 + Modified 1781875097 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B70D0000000004E}" { Id "OVT-FieldManual_Ruins_Text2" Target_en_us "A ruin is inert. There is no refuelling at a wrecked fuel depot, no recruiting from a collapsed tent, no treatment at a flattened medical tent, no shop at a ruined garage, no parking, and no reaching into the rubble for what was stored there. Pumps and repair bays stop answering from a vehicle's side as well, so nothing about the place works while it is wreckage." + Target_de_de "Eine Ruine ist vollständig funktionslos. An einem zerstörten Treibstoffdepot kann nicht mehr aufgetankt werden, aus einem eingestürzten Zelt können keine Rekruten mehr angeworben werden, in einem zerstörten Sanitätszelt ist keine Behandlung mehr möglich, und eine ruinierte Garage bietet weder einen Shop noch Parkmöglichkeiten. Auch auf die zuvor dort gelagerten Gegenstände kann nicht mehr zugegriffen werden."\ + ""\ + "Zapfsäulen und Reparaturbereiche reagieren zudem nicht mehr auf entsprechende Fahrzeugaktionen. Solange das Bauwerk nur noch eine Ruine ist, funktioniert dort überhaupt nichts." Comment "Field Manual - Ruins and Repair page, body paragraph under 'A Ruin Does Nothing'. Three sentences, no rich-text markup. ADDED 2026-08-20 by core/damage Phase 8. FACT-CHECKED against the phase-0 gates (core/damage D15), each of which asks OVT_StructureDamage.IsUsable(): OVT_FillFuelAction.c:127 (refuel), OVT_RecruitFromTentAction.c:80 (recruiting), OVT_HealAction.c:28 (treatment), OVT_OpenStorageAction.c:37 and Modded/SCR_OpenStorageAction.c:13 (storage), OVT_ParkingComponent.c:23 (parking), plus the shop/menu gates on OVT_ShopTransactionComponent, OVT_MainMenuContext and OVT_MainMenuContextOverrideComponent. The vehicle-side half is OVT_StructureDestructionComponent.ApplySupportStationState():185, which switches every SCR_BaseSupportStationComponent on the structure and its children off with the ruin and back on with the repair. NOTE: contents are untouched - only the ACTIONS are hidden (see Ruins_Text3)." DevNote "" Repro "" @@ -4822,15 +5272,18 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786924800 + Modified 1781875115 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B70D0000000004F}" { Id "OVT-FieldManual_Ruins_Text3" Target_en_us "Nothing stored in a structure is lost when it is wrecked. Containers and their contents come through the destruction untouched, and only the way in is closed. Putting the structure back opens them again with everything where it was left." + Target_de_de "Nichts, was in einem Bauwerk gelagert ist, geht bei dessen Zerstörung verloren. Behälter und ihr Inhalt überstehen die Zerstörung unbeschädigt; lediglich der Zugriff darauf ist nicht mehr möglich."\ + ""\ + "Wird das Bauwerk wiederhergestellt, sind die Lager wieder zugänglich und enthalten weiterhin alles genau dort, wo es zuvor zurückgelassen wurde." Comment "Field Manual - Ruins and Repair page, body paragraph under 'The Gear Inside Survives'. Three sentences, no rich-text markup. ADDED 2026-08-20 by core/damage Phase 8. FACT-CHECKED: a multi-phase change swaps the mesh and touches nothing else, so the entity, its BaseInventoryStorageComponent and its contents survive (implementation.md §3.8). The closed way in is the storage gate at OVT_OpenStorageAction.c:37 and Modded/SCR_OpenStorageAction.c:13. Proven automatically by OVT_TEST_Init_StructureDamage case D, which parents an ammo box to a built Guard Tower, ruins it, repairs it and asserts the contents are unchanged." DevNote "" Repro "" @@ -4839,15 +5292,20 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786924800 + Modified 1781875128 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B70D00000000050}" { Id "OVT-FieldManual_Ruins_Text4" Target_en_us "A ruin carries a repair action, held for twenty seconds, and the action itself shows the price. Repair costs a share of what the structure cost to build, scaled by the same difficulty that priced the build: half on Easy and Normal, three quarters on Hard, and the full build price at Extreme and Insane. The money is checked before the work counts and taken when it finishes, so a repair beyond your means is turned down rather than left half done." + Target_de_de "Eine Ruine verfügt über eine Reparaturaktion, die 20 Sekunden lang ausgeführt werden muss. Die Kosten werden direkt bei der Aktion angezeigt."\ + ""\ + "Die Reparatur kostet einen Anteil der ursprünglichen Baukosten und wird nach demselben Schwierigkeitsgrad skaliert wie der Baupreis: Auf Leicht und Normal werden 50 % der Baukosten fällig, auf Schwer 75 % und auf Extrem sowie Wahnsinnig der volle Baupreis."\ + ""\ + "Vor Beginn wird geprüft, ob genügend Geld vorhanden ist. Der Betrag wird erst nach Abschluss der Reparatur abgezogen. Reichen die Mittel nicht aus, wird die Reparatur abgelehnt, anstatt nur teilweise durchgeführt zu werden." Comment "Field Manual - Ruins and Repair page, body paragraph under 'Putting It Back'. Three sentences, no rich-text markup. ADDED 2026-08-20 by core/damage Phase 8. FACT-CHECKED: the action is OVT_RepairStructureAction, shown only on a ruin, with Duration 20 authored on all eight buildable prefabs (OVT_GuardTower_01.et:32, OVT_RecruitmentTent.et:49, OVT_MedicalTent.et:39, OVT_VehicleMaintenanceRamp.et:48, OVT_FuelDepot.et:73, Garage_E_02.et:80, E_Sandbag_01_bunker_plastic_foundation_camonet.et:33, Helipad.et:80). The label is GetActionNameScript at OVT_RepairStructureAction.c:102 ('#OVT-RepairStructure ($N)'). The price is OVT_RepairPricing.RepairCost = Math.Round(baseCost * buildableCostMultiplier * repairCostMultiplier), called from OVT_ResistanceFactionManager.c:1046. repairCostMultiplier: Difficulty_Easy.conf:31 0.5, Difficulty_Normal.conf:25 0.5, Difficulty_Hard.conf:31 0.75, Difficulty_Extreme.conf:32 1, Difficulty_Insane.conf:32 1. Charge order is OVT_ResistanceFactionManager.RepairStructure(): PlayerHasMoney check (CannotAfford notification and refusal when short), then repair, then TakePlayerMoney. Exact dollar figures are deliberately not quoted because they depend on the difficulty preset." DevNote "" Repro "" @@ -4856,15 +5314,18 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786924800 + Modified 1781875149 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B70D00000000051}" { Id "OVT-FieldManual_Ruins_Text5" Target_en_us "The occupying faction does the same on ground it holds. A repair detail is sent to a base of theirs where something stands wrecked, and it puts structures back one at a time, cheapest first, without announcing anything. The work only goes on while nobody is close: a player within about a hundred and fifty metres of the base centre pauses it where it is." + Target_de_de "Die Besatzungsfraktion verfährt auf von ihr gehaltenem Gebiet ebenso. Steht auf einer ihrer Basen ein Bauwerk als Ruine, wird ein Reparaturtrupp dorthin entsandt. Dieser stellt die zerstörten Bauwerke nacheinander wieder her, beginnend mit dem günstigsten. Eine besondere Meldung darüber erfolgt nicht."\ + ""\ + "Die Reparaturarbeiten werden jedoch nur fortgesetzt, solange sich niemand in unmittelbarer Nähe befindet. Befindet sich ein Spieler innerhalb von etwa 150 Metern um das Zentrum der Basis, werden die Arbeiten an ihrem aktuellen Stand unterbrochen." Comment "Field Manual - Ruins and Repair page, body paragraph under 'The Other Side Repairs Too'. Three sentences, no rich-text markup. ADDED 2026-08-20 by core/damage Phase 8. FACT-CHECKED against OVT_BaseRepairBehaviorDeploymentModule and Configs/Deployment/Deployment_BaseRepair.conf ('Base Repair Detail'): m_bRequireControl 1 (:50) so it only deploys at a base the occupying faction holds; targets are RUINED buildables associated with that base (IsRepairTarget), cheapest first via OVT_ObjectiveSelection.NextTargetIndex at :166; one per interval (m_iHoldSeconds 120, m_iStructuresPerMission 2 in the conf, both overridden by difficulty when loaded). The pause is EvaluateRepair():111 returning false on enemyPresent, where enemyPresent is NearestPlayerDistance(base.location) <= m_fClearRadius and m_fClearRadius is 150 (conf :33); it PAUSES rather than resets. No notification is sent by this module at all, unlike sabotage. Interval seconds and structures-per-mission are deliberately not quoted." DevNote "" Repro "" @@ -4873,15 +5334,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786924800 + Modified 1781875169 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B70D00000000052}" { Id "OVT-FieldManual_Ruins_Title" Target_en_us "Ruins and Repair" + Target_de_de "Ruinen und Reparaturen" Comment "Field Manual - page title for the Ruins and Repair entry in the Overthrow category, sitting between 'FOBs and Building' and 'Capturing a Base'. No rich-text markup. ADDED 2026-08-20 by core/damage Phase 8." DevNote "" Repro "" @@ -4890,9 +5352,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786924800 + Modified 1781875182 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -5383,6 +5845,7 @@ StringTable { CustomStringTableItem "{6B5A2E0100000010}" { Id "OVT-FieldManual_Storage_Head" Target_en_us "What Has Storage" + Target_de_de "Was über Stauraum verfügt" Comment "Field Manual - Storage page, section header. No rich-text markup." DevNote "" Repro "" @@ -5391,15 +5854,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781875206 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000011}" { Id "OVT-FieldManual_Storage_Head2" Target_en_us "Taking Things Out" + Target_de_de "Gegenstände entnehmen" Comment "Field Manual - Storage page, section header. No rich-text markup." DevNote "" Repro "" @@ -5408,15 +5872,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781875219 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000012}" { Id "OVT-FieldManual_Storage_Head3" Target_en_us "Putting Things In" + Target_de_de "Gegenstände einlagern" Comment "Field Manual - Storage page, section header. No rich-text markup." DevNote "" Repro "" @@ -5425,15 +5890,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781875231 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000013}" { Id "OVT-FieldManual_Storage_Head4" Target_en_us "Loading and Unloading" + Target_de_de "Be- und Entladen" Comment "Field Manual - Storage page, section header. No rich-text markup." DevNote "" Repro "" @@ -5442,15 +5908,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781875243 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000014}" { Id "OVT-FieldManual_Storage_Head5" Target_en_us "Warehouses" + Target_de_de "Lagerhäuser" Comment "Field Manual - Storage page, section header. No rich-text markup." DevNote "" Repro "" @@ -5459,15 +5926,18 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781875266 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000015}" { Id "OVT-FieldManual_Storage_Text" Target_en_us "Ammo boxes, warehouse buildings and most legal wheeled vehicles keep storage of their own: a list of goods the container holds, kept in the campaign save rather than sitting loose inside it. The Storage action on the container carries the number of items on that list, and opening it shows the list, a cart to fill from it, and a destination to send the cart to." + Target_de_de "Munitionskisten, Lagerhäuser und die meisten legalen Radfahrzeuge verfügen über eigenen Stauraum. Dieser besteht aus einer Liste der darin gelagerten Gegenstände, die im Kampagnenstand gespeichert werden, anstatt lose im Inneren des Behälters oder Fahrzeugs zu liegen."\ + ""\ + "Die Aktion „Stauraum“ zeigt an, wie viele Gegenstände sich auf dieser Liste befinden. Beim Öffnen erscheint die Bestandsliste, ein Warenkorb zum Zusammenstellen der gewünschten Gegenstände sowie eine Auswahl des Ziels, an das der Warenkorb übertragen werden soll." Comment "Field Manual - Storage page, opening paragraph. Two sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/storage Phase 10. Holders: the component sits on Prefabs/Props/Military/AmmoBoxes/OVT_AmmoBox_Base.et, Prefabs/Structures/Industrial/Houses/Warehouse_01/Warehouse_01_Base.et and Prefabs/Vehicles/Core/Wheeled_Base.et:8-11. A list rather than entities: OVT_StorageLedger.c. Saved: OVT_StorageComponentSerializer.c with its bindings in Configs/Systems/Persistence/Overthrow.conf. Count on the action label: OVT_OpenStorageMenuAction.c:38-51 appends the item count in brackets. Screen shape: OVT_StorageContext.c:130 (the Take list) and :184-232 (the destination picker)." DevNote "" Repro "" @@ -5476,15 +5946,18 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781875284 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000016}" { Id "OVT-FieldManual_Storage_Text2" Target_en_us "A truck's storage has no limit and an ordinary car holds three hundred items, while an ammo box or a warehouse building holds as much as it is given. An illegal or armed vehicle has none at all, and neither does a helicopter, so no Storage action appears on them." + Target_de_de "Der Stauraum eines Lastwagens ist unbegrenzt, während ein gewöhnlicher Pkw bis zu 300 Gegenstände aufnehmen kann. Auch Munitionskisten und Lagerhäuser besitzen keine feste Kapazitätsgrenze und nehmen so viele Gegenstände auf, wie darin eingelagert werden."\ + ""\ + "Illegale oder bewaffnete Fahrzeuge verfügen über keinen Stauraum. Gleiches gilt für Hubschrauber. Entsprechend erscheint bei ihnen auch keine Aktion „Stauraum“" Comment "Field Manual - Storage page, body paragraph under 'What Has Storage'. Two sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/storage Phase 10. Capacities: OVT_StorageRules.c:27-42 - a truck parking type returns unlimited, a registered legal vehicle returns the authored default, and an illegal or armed one returns 0; the default is 300 on Prefabs/Vehicles/Core/Wheeled_Base.et:10. Boxes and warehouses are unlimited (the non-vehicle branch, OVT_StorageRules.c:29-30, plus the UNLIMITED mode on those two prefabs). Helicopters: the component is authored on Wheeled_Base.et, which no helicopter inherits from, so GetStorage returns null and the action hides at OVT_StorageActionBase.c:37-52 - the same place a zero capacity hides it." DevNote "" Repro "" @@ -5493,15 +5966,20 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781875304 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000017}" { Id "OVT-FieldManual_Storage_Text3" Target_en_us "The cart goes to one of two sorts of destination. This container spawns the goods into the container's own inventory, where they can be picked up by hand. Any other storage standing within twenty five metres takes them straight onto its own list instead, with nothing spawned in between. A warehouse building has no inventory of its own, so it only offers the second." + Target_de_de "Der Warenkorb kann an eine von zwei Arten von Zielen übertragen werden. Mit „Dieser Behälter“ werden die Gegenstände in das eigene Inventar des Behälters gelegt, wo sie anschließend von Hand aufgenommen werden können."\ + ""\ + "Jeder andere Stauraum innerhalb von 25 Metern übernimmt die Gegenstände dagegen direkt in seine eigene Bestandsliste, ohne dass sie zwischendurch als Gegenstände erscheinen."\ + ""\ + "Ein Lagerhaus besitzt kein eigenes Inventar. Dort steht daher nur die zweite Möglichkeit zur Verfügung." Comment "Field Manual - Storage page, body paragraph under 'Taking Things Out'. Four sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/storage Phase 10. Destinations: OVT_StorageContext.c:184-232. 'This container' is #OVT-Storage_DestinationInventory and resolves to the holder itself (:191-199), which the job engine services as TO_INVENTORY by spawning into the vanilla inventory (OVT_StorageRequestComponent.c:1811 and the spawn-then-debit ordering note at :1088). Twenty five metres: the picker searches m_fHolderRadius, whose attribute default is 25 (OVT_StorageRequestComponent.c:205) and which Prefabs/GameMode/OVT_OverthrowController.et does not override. Ledger-to-ledger with no spawn: OVT_StorageRules.c:129-162. Warehouse exception: OVT_StorageContext.c:190-191." DevNote "" Repro "" @@ -5510,15 +5988,20 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781875320 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000018}" { Id "OVT-FieldManual_Storage_Text4" Target_en_us "Transfer all to storage converts everything the container is carrying into list entries in one go, a truck's bed included. Attachments and full magazines go on as items in their own right, while a part-used magazine stays where it is. An ammo box also carries an officers-only Clear inventory action for discarding what a transfer left behind, and Rename storage gives the container a name of its own, which is what the destination picker on every other container nearby shows." + Target_de_de "Mit „Alles in den Stauraum übertragen“ wird der gesamte Inhalt, den der Behälter mitführt, in einem Schritt in Einträge der Lagerliste umgewandelt. Bei einem Lastwagen zählt dazu auch die Ladefläche."\ + ""\ + "Anbauteile und volle Magazine werden dabei als eigenständige Gegenstände eingelagert. Ein bereits angebrochenes Magazin bleibt dagegen an seinem bisherigen Platz."\ + ""\ + "Eine Munitionskiste verfügt außerdem über die nur für Offiziere verfügbare Aktion „Inventar leeren“, mit der alles verworfen werden kann, was nach einer Übertragung zurückgeblieben ist. Mit „Stauraum umbenennen“ erhält der Behälter einen eigenen Namen. Dieser Name wird anschließend in der Zielauswahl aller anderen Behälter in der Nähe angezeigt." Comment "Field Manual - Storage page, body paragraph under 'Putting Things In'. Three sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/storage Phase 10. Transfer all: OVT_TransferAllToStorageAction.c, serviced by the sweep at OVT_StorageRequestComponent.c:1875-1881. Truck beds: OVT_StorageUtils.c:43-53 asks for SCR_VehicleInventoryStorageManagerComponent first, which is the only manager that registers a truck's child storages. Weapon parts detached and queued as items: OVT_StorageRequestComponent.c:2287-2305. Part-used magazines left behind: OVT_StorageRules.c:53-56, strict equality. Clear inventory is officer-only and lives on the ammo box: OVT_ClearVanillaInventoryAction.c:32-41 and OVT_AmmoBox_Base.et:88-93 (deliberately NOT on Vehicle_Base.et, so the text says ammo box). Rename: OVT_RenameStorageAction.c; the name is what the picker draws, OVT_StorageContext.c:227." DevNote "" Repro "" @@ -5527,15 +6010,19 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781875350 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000019}" { Id "OVT-FieldManual_Storage_Text5" Target_en_us "An ammo box carries two more actions that work with the nearest vehicle. Unload vehicle into storage converts whatever that vehicle is carrying loose and then moves its whole list into the box, so a truck brought back from a battlefield empties in one action. Load storage into vehicle moves only the box's list and leaves the box's own inventory alone, so a weapon parked in a box stays there." + Target_de_de "Eine Munitionskiste verfügt über zwei weitere Aktionen, die mit dem nächstgelegenen Fahrzeug arbeiten. Mit „Fahrzeug in Stauraum entladen“ werden zunächst alle lose im Fahrzeug mitgeführten Gegenstände in Lagereinträge umgewandelt und anschließend der gesamte Lagerbestand des Fahrzeugs in die Munitionskiste übertragen. So kann beispielsweise ein vom Gefechtsfeld zurückkehrender Lastwagen mit nur einer Aktion vollständig entladen werden."\ + ""\ + "Mit „Stauraum in Fahrzeug laden“ wird dagegen ausschließlich die Lagerliste der Munitionskiste in das Fahrzeug übertragen. Das eigentliche Inventar der Kiste bleibt unberührt. Eine Waffe, die direkt in der Munitionskiste liegt, bleibt daher auch dort."\ + "" Comment "Field Manual - Storage page, body paragraph under 'Loading and Unloading'. Three sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/storage Phase 10. Both actions are on OVT_AmmoBox_Base.et:98-113 and resolve the nearest vehicle through OVT_StorageVehicleActionBase.c. Unload sweeps first: OVT_UnloadStorageAction.c:29 passes sweepFirst true, and its header states the asymmetry. Load does not sweep: OVT_LoadStorageAction.c:32 passes false, header at :4-6. Labels are the shipped values of #OVT-UnloadStorage and #OVT-LoadStorage." DevNote "" Repro "" @@ -5544,15 +6031,21 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781875369 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E010000001A}" { Id "OVT-FieldManual_Storage_Text6" Target_en_us "A warehouse building shows the same Storage action as anything else, and a vehicle parked at one can reach it from the vehicle menu as well: Take from warehouse opens the same screen, and Put in warehouse converts what the vehicle is carrying and moves its whole list into the building. A warehouse nobody has bought opens to nobody, a private one opens only to its owner, and a rented one only to the player renting it. A warehouse also holds construction resources, on an action and a list of their own, which the Resources page covers." + Target_de_de "Ein Lagerhaus verfügt über dieselbe Aktion „Stauraum“ wie andere Lagerorte. Ein dort abgestelltes Fahrzeug kann außerdem über sein Fahrzeugmenü darauf zugreifen: „Aus Lagerhaus entnehmen“ öffnet dieselbe Ansicht, während „In Lagerhaus einlagern“ zunächst die vom Fahrzeug mitgeführten Gegenstände in Lagereinträge umwandelt und anschließend dessen gesamte Lagerliste in das Gebäude überträgt."\ + ""\ + "Ein Lagerhaus, das niemand gekauft hat, ist für niemanden zugänglich. Ein privates Lagerhaus kann nur von seinem Besitzer geöffnet werden, ein gemietetes nur von dem Spieler, der es gemietet hat."\ + ""\ + "Ein Lagerhaus kann außerdem Baumaterialien lagern. Dafür besitzt es eine eigene Aktion und eine separate Bestandsliste. Weitere Einzelheiten dazu behandelt die Seite „Ressourcen“."\ + "" Comment "Field Manual - Storage page, body paragraph under 'Warehouses'. Two sentences, no rich-text markup. FACT-CHECKED 2026-08-21 for logistics/storage Phase 10. The building is an action host with Storage and Rename on it: Prefabs/Structures/Industrial/Houses/Warehouse_01/Warehouse_01_Base.et:19-34. Vehicle menu: OVT_VehicleMenuContext.TakeFromWarehouse now shows OVT_StorageContext on the building, and PutInWarehouse calls RequestMoveAllToHolder(vehicle, building, true) - the true is the sweep (OVT_StorageRequestComponent.c:639-656). Accessibility: OVT_RealEstateManagerComponent.PlayerMayUseWarehouse:624-659 - unowned returns false, rented returns renter-only (a 'resistance' rental returns true for everybody, cut for length), private returns owner-only, public owned returns true. The old warehouse-only screen no longer exists (OVT_WarehouseContext.c deleted). REVISED 2026-08-21 for logistics/resources: the final sentence was appended to point at the Resources page. The resource store and its own action at Sort Priority 3 are on Warehouse_01_Base.et:8-11 and :43-52, and are a separate component and a separate ledger from the item storage above them (OVT_ResourceStoreComponent vs OVT_StorageComponent)." DevNote "" Repro "" @@ -5561,15 +6054,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781875387 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E010000001B}" { Id "OVT-FieldManual_Storage_Title" Target_en_us "Storage" + Target_de_de "Lagerung" Comment "Field Manual - Storage page title, shown on the entry tile in the Money and Trade category. One word, matches the in-game action label #OVT-Storage_Open. No rich-text markup." DevNote "" Repro "" @@ -5578,9 +6072,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781875421 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -5815,6 +6309,7 @@ StringTable { CustomStringTableItem "{6B4E000000000001}" { Id "OVT-FieldManual_Welcome_Head3" Target_en_us "Life in the Towns" + Target_de_de "Leben in den Ortschaften" Comment "Field Manual - section header inside the Welcome to Overthrow page, above the two paragraphs describing a town's ambient civilians and its parked civilian cars. Two to four words, title case. No rich-text markup. ADDED 2026-08-17 by virtualization/civilians Phase 6." DevNote "" Repro "" @@ -5823,9 +6318,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755388800 + Modified 1781988545 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -5889,6 +6384,7 @@ StringTable { CustomStringTableItem "{6B4E000000000002}" { Id "OVT-FieldManual_Welcome_Text4" Target_en_us "Towns are inhabited. People come out as you approach a town and are gone once you are well away from it, and the crowd is put together again from scratch on your next visit, so it is never quite the same gathering twice. How many are about follows the town's population, and which sorts of people appear differs from place to place, so a port city and an inland hamlet are not populated alike. Some walk a route between two points, some drift around several spots, and some stand in one place for minutes at a time. They can be hired as recruits, won over as supporters or sold to as before, and a civilian you have hired leaves the crowd for good and stays with you." + Target_de_de "Ortschaften sind bewohnt. Wenn du dich einer Ortschaft näherst, kommen die Einwohner heraus, und sobald du dich weit genug entfernst, verschwinden sie wieder. Bei deinem nächsten Besuch wird die Bevölkerung vollständig neu zusammengestellt, sodass du nie zweimal genau derselben Gruppe begegnest. Wie viele Personen unterwegs sind, richtet sich nach der Einwohnerzahl der Ortschaft, und welche Arten von Bewohnern erscheinen, unterscheidet sich von Ort zu Ort. Eine Hafenstadt und ein Weiler im Landesinneren sind daher unterschiedlich bevölkert. Manche laufen auf einer festen Strecke zwischen zwei Punkten, andere bewegen sich zwischen mehreren Orten, und wieder andere bleiben minutenlang an derselben Stelle stehen. Sie können wie bisher als Rekruten angeworben, als Unterstützer gewonnen oder als Kunden bedient werden. Ein Zivilist, den du rekrutiert hast, verschwindet dauerhaft aus der Bevölkerung und bleibt bei dir." Comment "Field Manual - body paragraph on the Welcome to Overthrow page, under the 'Life in the Towns' header. Reference voice: describes, never instructs, and implies no order of play. Four to five sentences, no rich-text markup. ADDED 2026-08-17 by virtualization/civilians Phase 6. FACT-CHECKED against the shipped code: crowds are spawned and despawned by proximity through the virtualization ambient tick, with the count rolled per approach from the town's LIVE population (OVT_TownCivilianSourceConfig.c:259-281 RollCount, which reads town.population and the operator multiplier/cap) and each civilian's type re-rolled per spawn (RollPrefab, :297); despawn removes the members and their waypoints (OnEntityDespawning, :412). Which types a town may show is the type's minimum town size combined with the town's own authored list (OVT_CivilianAmbienceManagerComponent.c:520-560 ResolveAllowedTypes, OVT_TownController.c:30 m_aCivilianTypes). The three behaviours are PINGPONG/WANDER/LOITER (OVT_CivilianAmbienceConfig.c:10-20), authored 50/30/20 with loiter pauses of 90-240 s in Configs/Civilians/CivilianAmbience.conf. The three player interactions are the user actions on Prefabs/Characters/Factions/CIV/Character_CIV.et:15 (sell drugs), :24 (recruit), :32 (convert supporter); a hired civilian is handed out of ambient ownership at OVT_RecruitManagerComponent.c:1031 -> OVT_CivilianAmbienceManagerComponent.c:787 ReleaseRecruitedCivilian -> OVT_TownCivilianSourceConfig.c:489-505 ReleaseCivilian. NOTHING is said about QRFs: with the shipped default (despawnCiviliansDuringQRF false, OVT_OverthrowConfigComponent.c:113) a crowd stays put during a QRF, and the opt-in is a server setting, not a player-facing rule." DevNote "" Repro "" @@ -5897,15 +6393,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755388800 + Modified 1781988576 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B4E000000000003}" { Id "OVT-FieldManual_Welcome_Text5" Target_en_us "Civilian cars stand parked along the kerbs and roadsides of a town, in ones and twos in a village and rather more in a city. One nobody has touched is scenery like the crowd, and a later visit finds a different set of them. One somebody gets into stops being scenery: it stays where it is left and is kept with the rest of the campaign between sessions." + Target_de_de "Zivile Fahrzeuge stehen entlang der Bordsteine und Straßenränder einer Ortschaft geparkt, in Dörfern meist einzeln oder zu zweit und in Städten in größerer Zahl. Ein Fahrzeug, das noch niemand benutzt hat, gehört wie die Menschenmenge lediglich zur Umgebung, und bei einem späteren Besuch steht dort eine andere Auswahl. Sobald jemand in ein solches Fahrzeug einsteigt, gehört es nicht mehr zur Umgebung: Es bleibt dort stehen, wo es zurückgelassen wurde, und wird zusammen mit dem übrigen Kampagnenstand zwischen den Spielsitzungen gespeichert." Comment "Field Manual - body paragraph on the Welcome to Overthrow page, under the 'Life in the Towns' header, following OVT-FieldManual_Welcome_Text4. Reference voice: describes, never instructs. Three sentences, no rich-text markup. ADDED 2026-08-17 by virtualization/civilians Phase 6. FACT-CHECKED against the shipped code: placement is kerb-first with a road-derived fallback (OVT_TownVehicleSourceConfig.c:276 RollPosition, :590-615 the kerb path through OVT_VehicleManagerComponent.FindNearestKerbParking); counts are scaled by town size and authored 0-1 village / 2-4 town / 4-8 city in Configs/Civilians/CivilianAmbience.conf (RollCount, :229). An untouched car is untracked for persistence the moment it spawns and is deleted with the rest of the ambient set on despawn (:344 UntrackTransient), so it writes no save record and the next approach re-rolls; an occupied car is claimed instead of deleted (:369-380 OnEntityDespawning -> ClaimVehicle, :458) and is re-tracked for persistence and handed to the vehicle manager (:483-505 AdoptClaimedVehicle). The text deliberately says 'kept with the campaign' and not 'becomes yours': ownership is stamped by the separate claim user action, not by sitting in the seat." DevNote "" Repro "" @@ -5914,9 +6411,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755388800 + Modified 1781988597 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -6075,6 +6572,7 @@ StringTable { CustomStringTableItem "{6B4E1F300000000D}" { Id "OVT-FillFuel" Target_en_us "Fill Tank" + Target_de_de "Tank füllen" Comment "Name of the fast fuel-fill user action (OVT_FillFuelAction), a five-second hold that fills one tank in a single go instead of the vanilla Refuel's trickle. SINGULAR IS LOAD-BEARING (amendment A2.1): a press fills only the tank whose action you are holding - a truck's fuel cap fills its chassis tanks, its cargo nozzle fills its cargo tank. It is drawn TWO WAYS: on its own as the prefab UIInfo fallback, and with the live price appended by GetActionNameScript as '#OVT-FillFuel ($37)' - so this string must read correctly with a bracketed dollar amount after it and must NOT end in punctuation. Two words, title case, sits in the same interaction list as vanilla's 'Refuel'. LENGTH BUDGET: short - it shares a line with the price. The free variant is #OVT-FillFuel_Free; keep the two in step." DevNote "" Repro "" @@ -6083,15 +6581,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781988616 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B4E1F300000000E}" { Id "OVT-FillFuel_Free" Target_en_us "Fill Tank (Free)" + Target_de_de "Tank füllen (Kostenlos)" Comment "The fast fuel-fill action's label when the source costs nothing - a fuel truck, a Fuel Depot, or any server running fuelPricePerLitre 0 (OVT_FuelUtils.IsFreeFuelSource decides). '(Free)' is worth saying because the SAME action on the SAME vehicle shows a dollar amount at a pump fifty metres away, and a player needs to be able to tell those apart at a glance. Must stay a variant of #OVT-FillFuel - if that name is retranslated, this one follows." DevNote "" Repro "" @@ -6100,15 +6599,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781988637 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B4E1F300000000F}" { Id "OVT-FillFuel_SourceEmpty" Target_en_us "The fuel source here is empty" + Target_de_de "Die Treibstoffquelle hier ist leer" Comment "Reason shown under the greyed-out Fill Tank action when a fuel source covers this spot but has nothing left to give - an emptied Fuel Depot, a drained fuel truck, an exhausted pump. Set by OVT_FillFuelAction.CanBePerformedScript. The action deliberately stays VISIBLE for this case (an empty depot must not look like no depot at all) and HIDES only when there is no source in range whatsoever. LENGTH BUDGET: one short line - it renders in the same slot as vanilla's #AR-SupportStation_ActionInvalid_* reasons and must not wrap. TONE: states the fact, gives no instruction." DevNote "" Repro "" @@ -6117,15 +6617,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781988654 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B4E1F3000000010}" { Id "OVT-FillFuel_TankFull" Target_en_us "Tanks are already full" + Target_de_de "Die Tanks sind bereits voll" Comment "Reason shown under the greyed-out Fill Tank action when the target has no room left in any fuel tank that can receive fuel. Set by OVT_FillFuelAction.CanBePerformedScript. PLURAL ON PURPOSE, but scoped: the action fills every receiving node of ONE fuel manager - a Ural-4320's chassis manager is its 300 L main tank plus its 60 L reserve - and this reason is shown when all the nodes of THAT manager are full. It says nothing about the truck's separate cargo tank, which has its own action and its own reason. LENGTH BUDGET: one short line, must not wrap. TONE: states the fact, gives no instruction." DevNote "" Repro "" @@ -6134,9 +6635,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781988675 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -6288,6 +6789,7 @@ StringTable { CustomStringTableItem "{6B09A1C0E4D50102}" { Id "OVT-GMIcon_Base" Target_en_us "Base %1" + Target_de_de "Basis %1" Comment "Game Master icon and tooltip name for an occupying-faction base. %1 is the base index the campaign files it under, so a GM can match the icon to the base rows in the Overthrow panel. Keep it short" DevNote "" Repro "" @@ -6296,14 +6798,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786860000 + Modified 1781988687 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B09A1C0E4D50103}" { Id "OVT-GMIcon_BaseGeneric" Target_en_us "Base" + Target_de_de "Basis" Comment "Game Master icon name for a base whose index is not known yet (campaign data has not reached this machine). Same word as OVT-GMIcon_Base without the number" DevNote "" Repro "" @@ -6312,14 +6816,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786860000 + Modified 1781988692 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B09A1C0E4D50101}" { Id "OVT-GMIcon_RadioTower" Target_en_us "Radio Tower" + Target_de_de "Funkturm" Comment "Game Master icon and tooltip name for an Overthrow radio tower. One or two words - it is drawn under a 48px icon in the editor viewport" DevNote "" Repro "" @@ -6328,14 +6834,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786860000 + Modified 1781988699 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B09A1C0E4D5011E}" { Id "OVT-GMIcon_Tooltip_Base" Target_en_us "%1 Resources - %2 Garrison Groups" + Target_de_de "%1 Ressourcen - %2 Garnisonsgruppen" Comment "Game Master hover tooltip for a base icon. %1 is the base's resource total, %2 the number of AI groups garrisoned there (both from the gm-state store). No faction here - the vanilla tooltip already shows it below. One line, tooltip is 276px wide" DevNote "" Repro "" @@ -6344,14 +6852,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786880000 + Modified 1781988716 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B09A1C0E4D50121}" { Id "OVT-GMIcon_Tooltip_NoData" Target_en_us "No campaign data yet" + Target_de_de "Noch keine Kampagnendaten vorhanden" Comment "Game Master hover tooltip shown when a town, base or radio tower record cannot be resolved yet - world still loading, or a client that has not received campaign state. Must never be empty: an empty tooltip description removes the widget" DevNote "" Repro "" @@ -6360,14 +6870,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786880000 + Modified 1781988736 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B09A1C0E4D5011F}" { Id "OVT-GMIcon_Tooltip_TowerOnline" Target_en_us "Online" + Target_de_de "Online" Comment "Game Master hover tooltip for a radio tower that is working normally - it is broadcasting, so the occupying faction gets its detection bonus from it" DevNote "" Repro "" @@ -6376,14 +6888,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786880000 + Modified 1781988743 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B09A1C0E4D50120}" { Id "OVT-GMIcon_Tooltip_TowerSabotaged" Target_en_us "Sabotaged - %1" + Target_de_de "Sabotiert - %1" Comment "Game Master hover tooltip for a sabotaged radio tower. %1 is the downtime left as a clock string (eg 4:12). One line, tooltip is 276px wide" DevNote "" Repro "" @@ -6392,14 +6906,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786880000 + Modified 1781988766 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B09A1C0E4D5011D}" { Id "OVT-GMIcon_Tooltip_Town" Target_en_us "Support %1 - Stability %2" + Target_de_de "Unterstützung %1 - Stabilität %2" Comment "Game Master hover tooltip for a town icon. %1 is support as an already-formatted percentage (eg 62%), %2 stability the same way - neither is a bare number, so do not add a percent sign. One line, tooltip is 276px wide" DevNote "" Repro "" @@ -6408,14 +6924,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786880000 + Modified 1781988785 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B09A1C0E4D50104}" { Id "OVT-GMIcon_Town" Target_en_us "Town" + Target_de_de "Stadt" Comment "Game Master icon name for a town whose own name is not known yet (world still loading). The generic word for a settlement, not a specific town" DevNote "" Repro "" @@ -6424,14 +6942,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786860000 + Modified 1781988773 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B1006}" { Id "OVT-GMPanel_Funds" Target_en_us "Resistance Funds" + Target_de_de "Widerstandsmittel" Comment "GM panel row label - money currently held by the resistance" DevNote "" Repro "" @@ -6440,14 +6960,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781988840 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B1004}" { Id "OVT-GMPanel_NextDistribution" Target_en_us "Next Distribution" + Target_de_de "Nächste Verteilung" Comment "GM panel row label - the next occupying-faction resource distribution: amount and countdown" DevNote "" Repro "" @@ -6456,14 +6978,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781988867 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B1005}" { Id "OVT-GMPanel_NextPayout" Target_en_us "Next Payout" + Target_de_de "Nächste Auszahlung" Comment "GM panel row label - the next player payout: amount and countdown" DevNote "" Repro "" @@ -6472,14 +6996,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781988875 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B1008}" { Id "OVT-GMPanel_NoData" Target_en_us "Waiting for campaign data..." + Target_de_de "Warte auf Kampagnendaten..." Comment "GM panel - shown in place of the campaign numbers until the first data snapshot arrives. Reads as waiting, not as broken" DevNote "" Repro "" @@ -6488,14 +7014,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781988891 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B100E}" { Id "OVT-GMPanel_Objective" Target_en_us "Objective" + Target_de_de "Ziel" Comment "GM panel row label - the base, town or city the occupying faction has decided to take back. Keep short, it shares a 380px row" DevNote "" Repro "" @@ -6504,14 +7032,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781988946 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B100F}" { Id "OVT-GMPanel_ObjectiveNone" Target_en_us "None" + Target_de_de "Keines" Comment "GM panel objective row value - the occupying faction has no current objective. A normal state early in a campaign, not an error" DevNote "" Repro "" @@ -6520,14 +7050,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781988966 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B1010}" { Id "OVT-GMPanel_ObjectivePhase" Target_en_us "Phase" + Target_de_de "Phase" Comment "GM panel row label - which phase of its plan the occupying faction's campaign against its current objective is in. The value beside it is the plan and phase NAMES as a mod author wrote them, so it is not itself translated. Keep short, it shares a 380px row" DevNote "" Repro "" @@ -6536,8 +7068,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781988957 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -6560,6 +7093,7 @@ StringTable { CustomStringTableItem "{6B08D3A17C4B1015}" { Id "OVT-GMPanel_ObjectivePhaseUnknown" Target_en_us "Unknown" + Target_de_de "Unbekannt" Comment "GM panel phase row value - the occupying faction is running a plan but the server named no phase for it, which means the client and server builds differ or the plan did not resolve. Deliberately not the dash, which would say the campaign has no target while it is being attacked" DevNote "" Repro "" @@ -6568,14 +7102,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781988974 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B1003}" { Id "OVT-GMPanel_OFDeployment" Target_en_us "Deployment Pool" + Target_de_de "Einsatzreserve" Comment "GM panel row label - the occupying faction's resources set aside for deploying new units" DevNote "" Repro "" @@ -6584,14 +7120,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781988914 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B1002}" { Id "OVT-GMPanel_OFResources" Target_en_us "OF Resources" + Target_de_de "Besatzungsfr. Ressourcen" Comment "GM panel row label - the occupying faction's reserve resource pool" DevNote "" Repro "" @@ -6600,14 +7138,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781989462 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B1007}" { Id "OVT-GMPanel_QRF" Target_en_us "QRF" + Target_de_de "QRF" Comment "GM panel row label - status of the occupying faction's quick reaction force" DevNote "" Repro "" @@ -6616,14 +7156,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781989489 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B100C}" { Id "OVT-GMPanel_QRFActive" Target_en_us "%1 pts - %2" + Target_de_de "%1 Pkt - %2" Comment "GM panel QRF row value - an active quick reaction force with no named target. %1 is its strength in points, %2 is the time remaining as a clock (mm:ss). Keep short, it shares a 380px row" DevNote "" Repro "" @@ -6632,14 +7174,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781989380 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B100D}" { Id "OVT-GMPanel_QRFActiveTown" Target_en_us "%1 pts - %2 - %3" + Target_de_de "%1 Pkt - %2 - %3" Comment "GM panel QRF row value - an active quick reaction force attacking a town. %1 is its strength in points, %2 is the time remaining as a clock (mm:ss), %3 is the town name. Keep short, it shares a 380px row" DevNote "" Repro "" @@ -6648,14 +7192,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781989387 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B1009}" { Id "OVT-GMPanel_QRFNone" Target_en_us "None" + Target_de_de "Keines" Comment "GM panel QRF row value - no quick reaction force is currently active" DevNote "" Repro "" @@ -6664,14 +7210,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781989065 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B100B}" { Id "OVT-GMPanel_SuppressedNoPlayers" Target_en_us "paused - no players" + Target_de_de "pausiert - keine Spieler" Comment "GM panel countdown status - the payout countdown will not fire because no players are connected. Keep short, it shares a 380px row" DevNote "" Repro "" @@ -6680,14 +7228,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781989403 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B100A}" { Id "OVT-GMPanel_SuppressedQRF" Target_en_us "paused - QRF active" + Target_de_de "pausiert - QRF aktiv" Comment "GM panel countdown status - the distribution countdown will not fire because a QRF is running. Keep short, it shares a 380px row" DevNote "" Repro "" @@ -6696,14 +7246,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781989505 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B08D3A17C4B1001}" { Id "OVT-GMPanel_Threat" Target_en_us "Threat" + Target_de_de "Bedrohung" Comment "GM panel row label - the occupying faction's current threat level, one decimal place" DevNote "" Repro "" @@ -6712,8 +7264,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1786800000 + Modified 1781989520 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -6743,6 +7296,7 @@ StringTable { CustomStringTableItem "{6B1C3D00000000C3}" { Id "OVT-HC_AtCap" Target_en_us "Your High Command groups are at capacity" + Target_de_de "Deine Gruppen des Oberen Kommandos haben die Kapazitätsgrenze erreicht" Comment "OVT_ManageHighCommandAction.CanBePerformedScript SetCannotPerformReason - shown when the player's member count already meets or exceeds their High Command cap." DevNote "" Repro "" @@ -6751,14 +7305,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989606 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000CE}" { Id "OVT-HC_BuyButton" Target_en_us "Buy ($%1)" + Target_de_de "Kaufen ($%1)" Comment "Barracks purchase screen Buy button label once an OK quote has arrived. %1 is the quoted total." DevNote "" Repro "" @@ -6767,14 +7323,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989621 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000CF}" { Id "OVT-HC_BuyButtonPlain" Target_en_us "Buy" + Target_de_de "Kaufen" Comment "Barracks purchase screen Buy button label before a quote has arrived, while none is pending, or after a refusal." DevNote "" Repro "" @@ -6783,14 +7341,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989625 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000D0}" { Id "OVT-HC_Buying" Target_en_us "Raising group..." + Target_de_de "Gruppe wird aufgestellt..." Comment "Barracks purchase screen status line and Buy button label between pressing Buy and the server's RpcDo_HCResult answer." DevNote "" Repro "" @@ -6799,14 +7359,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989651 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000005201}" { Id "OVT-HC_ConvertedGroupDesc" Target_en_us "Recruits promoted into High Command. They keep the gear they were carrying." + Target_de_de "Rekruten wurden ins Obere Kommando überführt. Sie behalten die Ausrüstung, die sie bei sich trugen." Comment "Description of a converted High Command group (OVT_HighCommandManagerComponent.GetConvertedEntry). Never shown in the barracks purchase list - a converted group cannot be bought." DevNote "" Repro "" @@ -6815,14 +7377,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989681 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000005200}" { Id "OVT-HC_ConvertedGroupName" Target_en_us "Converted Squad" + Target_de_de "Überführter Trupp" Comment "Name shown on the map and in the Manage Groups roster for a High Command group made by converting a parked recruit squad. It names no purchasable catalog entry, so this is its only title (OVT_HighCommandManagerComponent.GetConvertedEntry)." DevNote "" Repro "" @@ -6831,14 +7395,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989701 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000B3}" { Id "OVT-HC_Group_AntiTankTeam" Target_en_us "Anti-Tank Team" + Target_de_de "Panzerabwehrtrupp" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'at_team'. Display name shown in the barracks purchase screen row and details panel, and reused as the group's name on the map." DevNote "" Repro "" @@ -6847,14 +7413,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989718 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000B4}" { Id "OVT-HC_Group_AntiTankTeamDesc" Target_en_us "Four fighters carrying anti-armour weapons." + Target_de_de "Vier Kämpfer mit Panzerabwehrwaffen." Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'at_team'. Description shown in the barracks purchase screen's details panel." DevNote "" Repro "" @@ -6863,14 +7431,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989744 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000B5}" { Id "OVT-HC_Group_FireTeam" Target_en_us "Fire Team" + Target_de_de "Schützentrupp" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'fireteam'. Display name shown in the barracks purchase screen row and details panel, and reused as the group's name on the map." DevNote "" Repro "" @@ -6879,14 +7449,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989985 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000B6}" { Id "OVT-HC_Group_FireTeamDesc" Target_en_us "Five riflemen with a designated marksman." + Target_de_de "Fünf Gewehrschützen mit einem Präzisionsschützen" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'fireteam'. Description shown in the barracks purchase screen's details panel." DevNote "" Repro "" @@ -6895,14 +7467,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990218 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000B1}" { Id "OVT-HC_Group_LightFireTeam" Target_en_us "Light Fire Team" + Target_de_de "Leichter Schützentrupp" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'light_fireteam'. Display name shown in the barracks purchase screen row and details panel, and reused as the group's name on the map." DevNote "" Repro "" @@ -6911,14 +7485,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989997 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000B2}" { Id "OVT-HC_Group_LightFireTeamDesc" Target_en_us "Four riflemen, fast to raise and easy to keep supplied." + Target_de_de "Vier Gewehrschützen, schnell aufzustellen und leicht zu versorgen." Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'light_fireteam'. Description shown in the barracks purchase screen's details panel." DevNote "" Repro "" @@ -6927,14 +7503,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989819 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000AB}" { Id "OVT-HC_Group_MachineGunTeam" Target_en_us "Machine Gun Team" + Target_de_de "Maschinengewehrtrupp" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'mg_team'. Display name shown in the barracks purchase screen row and details panel, and reused as the group's name on the map." DevNote "" Repro "" @@ -6943,14 +7521,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989841 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000AC}" { Id "OVT-HC_Group_MachineGunTeamDesc" Target_en_us "A gunner and loader built to hold a line under fire." + Target_de_de "Ein MG-Schütze und ein Ladeschütze, ausgelegt darauf, eine Stellung unter Beschuss zu halten." Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'mg_team'. Description shown in the barracks purchase screen's details panel." DevNote "" Repro "" @@ -6959,14 +7539,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989848 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000BB}" { Id "OVT-HC_Group_MotorFireTeam" Target_en_us "Motorised Fire Team" + Target_de_de "Motorisierter Schützentrupp" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'motor_fireteam'. Display name shown in the barracks purchase screen row and details panel, and reused as the group's name on the map." DevNote "" Repro "" @@ -6975,14 +7557,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990011 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000BC}" { Id "OVT-HC_Group_MotorFireTeamDesc" Target_en_us "A light fire team riding a jeep for a fast response." + Target_de_de "Ein leichter Schützentrupp in einem Jeep für schnelle Reaktionen." Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'motor_fireteam'. Description shown in the barracks purchase screen's details panel." DevNote "" Repro "" @@ -6991,14 +7575,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990028 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000AF}" { Id "OVT-HC_Group_ReconTeam" Target_en_us "Recon Team" + Target_de_de "Aufklärungstrupp" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'recon_team'. Display name shown in the barracks purchase screen row and details panel, and reused as the group's name on the map." DevNote "" Repro "" @@ -7007,14 +7593,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781989926 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000B0}" { Id "OVT-HC_Group_ReconTeamDesc" Target_en_us "Two fighters built for scouting, not sustained combat." + Target_de_de "Zwei Kämpfer für die Aufklärung, nicht für längere Gefechte ausgelegt" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'recon_team'. Description shown in the barracks purchase screen's details panel." DevNote "" Repro "" @@ -7023,14 +7611,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990060 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000B7}" { Id "OVT-HC_Group_RifleSquad" Target_en_us "Rifle Squad" + Target_de_de "Schützengruppe" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'rifle_squad'. Display name shown in the barracks purchase screen row and details panel, and reused as the group's name on the map." DevNote "" Repro "" @@ -7039,14 +7629,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990084 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000B8}" { Id "OVT-HC_Group_RifleSquadDesc" Target_en_us "A full seven-man squad, the backbone of a defence." + Target_de_de "Eine vollständige siebenköpfige Schützengruppe, das Rückgrat der Verteidigung" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'rifle_squad'. Description shown in the barracks purchase screen's details panel." DevNote "" Repro "" @@ -7055,14 +7647,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990104 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000A9}" { Id "OVT-HC_Group_SentryTeam" Target_en_us "Sentry Team" + Target_de_de "Sicherungstrupp" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'sentry_team'. Display name shown in the barracks purchase screen row and details panel, and reused as the group's name on the map." DevNote "" Repro "" @@ -7071,14 +7665,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990130 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000AA}" { Id "OVT-HC_Group_SentryTeamDesc" Target_en_us "Two riflemen who hold a position and watch for movement." + Target_de_de "Zwei Gewehrschützen, die eine Stellung halten und nach Bewegungen Ausschau halten." Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'sentry_team'. Description shown in the barracks purchase screen's details panel." DevNote "" Repro "" @@ -7087,14 +7683,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990152 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000AD}" { Id "OVT-HC_Group_SharpshooterTeam" Target_en_us "Sharpshooter Team" + Target_de_de "Scharfschützentrupp" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'sharpshooter_team'. Display name shown in the barracks purchase screen row and details panel, and reused as the group's name on the map." DevNote "" Repro "" @@ -7103,14 +7701,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990236 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000AE}" { Id "OVT-HC_Group_SharpshooterTeamDesc" Target_en_us "A marksman and spotter for long-range overwatch." + Target_de_de "Ein Scharfschütze und ein Beobachter für die Überwachung auf große Entfernung." Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'sharpshooter_team'. Description shown in the barracks purchase screen's details panel." DevNote "" Repro "" @@ -7119,14 +7719,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990265 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000B9}" { Id "OVT-HC_Group_TechnicalPKM" Target_en_us "Technical (PKM)" + Target_de_de "Bewaffneter Geländewagen (PKM)" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'technical_pkm'. Display name shown in the barracks purchase screen row and details panel, and reused as the group's name on the map." DevNote "" Repro "" @@ -7135,14 +7737,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990292 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000BA}" { Id "OVT-HC_Group_TechnicalPKMDesc" Target_en_us "A sentry team mounted on a machine-gun-armed jeep." + Target_de_de "Ein Sicherungstrupp auf einem mit Maschinengewehr bewaffneten Geländewagen." Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'technical_pkm'. Description shown in the barracks purchase screen's details panel." DevNote "" Repro "" @@ -7151,14 +7755,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990302 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000BD}" { Id "OVT-HC_Group_TruckSquad" Target_en_us "Truck Squad" + Target_de_de "Lkw-Schützengruppe" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'truck_squad'. Display name shown in the barracks purchase screen row and details panel, and reused as the group's name on the map." DevNote "" Repro "" @@ -7167,14 +7773,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990318 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000BE}" { Id "OVT-HC_Group_TruckSquadDesc" Target_en_us "A fire team riding a covered truck for a long haul." + Target_de_de "Ein Schützentrupp in einem überdachten Lastwagen für längere Verlegungen" Comment "High Command purchasable group entry - FIA_OverthrowData.conf m_sKey 'truck_squad'. Description shown in the barracks purchase screen's details panel." DevNote "" Repro "" @@ -7183,14 +7791,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990342 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004112}" { Id "OVT-HC_Map_BadDestination" Target_en_us "Put the map cursor on a destination first" + Target_de_de "Setze zuerst den Kartenzeiger auf ein Ziel" Comment "Reason line on the map info panel when an order was refused because the destination was not a real point on the map." DevNote "" Repro "" @@ -7199,14 +7809,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990360 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000410F}" { Id "OVT-HC_Map_Deselect" Target_en_us "Deselect" + Target_de_de "Auswahl aufheben" Comment "Label on the map info panel's close button for a selected High Command group. It drops the selection and closes the panel; it does not close the map." DevNote "" Repro "" @@ -7215,14 +7827,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990378 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004102}" { Id "OVT-HC_Map_DestinationLine" Target_en_us "Destination: %1 away" + Target_de_de "Ziel: %1 entfernt" Comment "Map info panel line for a selected High Command group. %1 is the distance from the group to its ordered destination, already formatted with its units, so it reads as 'Destination: 1.2 km away'. Reads '0 m away' for a group that has arrived." DevNote "" Repro "" @@ -7231,14 +7845,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990400 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004103}" { Id "OVT-HC_Map_DistanceLine" Target_en_us "From you: %1" + Target_de_de "Von dir: %1" Comment "Map info panel line for a selected High Command group. %1 is the distance from the local player to the group, already formatted with its units." DevNote "" Repro "" @@ -7247,14 +7863,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990423 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004105}" { Id "OVT-HC_Map_DistanceUnknown" Target_en_us "unknown" + Target_de_de "unbekannt" Comment "Substituted into the map info panel's From you line when the local player has no controlled character to measure from - spectating, or mid-respawn. Lower case: it sits inside a sentence." DevNote "" Repro "" @@ -7263,14 +7881,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990411 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004113}" { Id "OVT-HC_Map_NoSeam" Target_en_us "High Command is not available right now" + Target_de_de "Das Obere Kommando ist derzeit nicht verfügbar" Comment "Reason line on the map info panel when the local controller has no High Command request component, so the order could not be sent at all. Almost always a client that has just connected." DevNote "" Repro "" @@ -7279,14 +7899,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990440 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004110}" { Id "OVT-HC_Map_NotOwner" Target_en_us "Only %1 can order this group" + Target_de_de "Nur %1 kann diese Gruppe befehligen" Comment "Reason line under the map info panel's disabled order buttons when the selected High Command group belongs to another player. %1 is that player's name. The buttons stay visible and disabled rather than being hidden, so the refusal is explained." DevNote "" Repro "" @@ -7295,14 +7917,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990455 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000410D}" { Id "OVT-HC_Map_Order" Target_en_us "Order move" + Target_de_de "Verlegung befehlen" Comment "Label on the map info panel's order button for a selected High Command group. The button carries the key or pad glyph beside it, so the label is the verb only. Pressing it sends the group to wherever the map cursor is, keeping its current stance." DevNote "" Repro "" @@ -7311,14 +7935,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990472 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004116}" { Id "OVT-HC_Map_RefusedBadStance" Target_en_us "That stance is not valid" + Target_de_de "Diese Haltung ist nicht zulässig" Comment "Reason line on the map info panel after the server refused an order with BAD_STANCE. A player should never see this; it means the client sent a stance value outside the enum." DevNote "" Repro "" @@ -7327,14 +7953,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990489 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004117}" { Id "OVT-HC_Map_RefusedGeneric" Target_en_us "The order was refused" + Target_de_de "Der Befehl wurde abgelehnt" Comment "Fallback reason line on the map info panel for an order refusal the panel has no dedicated sentence for - NO_PLAYER, or a future RESULT_ code it has not been taught yet." DevNote "" Repro "" @@ -7343,14 +7971,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990507 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004115}" { Id "OVT-HC_Map_RefusedNoGroup" Target_en_us "That group no longer exists" + Target_de_de "Diese Gruppe existiert nicht mehr" Comment "Reason line on the map info panel after the server refused an order with NO_GROUP - the group was wiped or dismissed between the marker being drawn and the order arriving." DevNote "" Repro "" @@ -7359,14 +7989,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990534 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004114}" { Id "OVT-HC_Map_RefusedNotOwner" Target_en_us "That group is not yours" + Target_de_de "Diese Gruppe gehört dir nicht" Comment "Reason line on the map info panel after the server refused an order with NOT_OWNER. The server is the only gate that matters; this sentence is what the player sees when the client-side check was bypassed or the group changed hands." DevNote "" Repro "" @@ -7375,14 +8007,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990547 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000410E}" { Id "OVT-HC_Map_Stance" Target_en_us "Change stance" + Target_de_de "Haltung ändern" Comment "Label on the map info panel's stance button for a selected High Command group. Pressing it cycles Defend to Patrol to Attack and re-issues the order at the same destination." DevNote "" Repro "" @@ -7391,14 +8025,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781990560 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004101}" { Id "OVT-HC_Map_StanceLine" Target_en_us "Stance: %1" + Target_de_de "Haltung: %1" Comment "Map info panel line for a selected High Command group. %1 is the already-translated stance name - Defend, Patrol or Attack." DevNote "" Repro "" @@ -7407,14 +8043,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782117888 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004109}" { Id "OVT-HC_Map_StatusContact" Target_en_us "In contact" + Target_de_de "Feindkontakt" Comment "One-word-ish status for a High Command group whose members can currently see an enemy. Takes priority over every other status. Substituted into the map info panel's status line." DevNote "" Repro "" @@ -7423,14 +8061,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782117897 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000410C}" { Id "OVT-HC_Map_StatusHolding" Target_en_us "Holding" + Target_de_de "Hält Stellung" Comment "Status for a High Command group that has arrived at its destination and is doing whatever its stance says. The default status. Substituted into the map info panel's status line." DevNote "" Repro "" @@ -7439,14 +8079,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782117920 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004104}" { Id "OVT-HC_Map_StatusLine" Target_en_us "%1 - %2 / %3 alive" + Target_de_de "%1 - %2 / %3 am Leben" Comment "Map info panel line for a selected High Command group. %1 is the already-translated one-word status, %2 the members still alive and %3 the members the group was bought with." DevNote "" Repro "" @@ -7455,14 +8097,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782117932 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000410B}" { Id "OVT-HC_Map_StatusMoving" Target_en_us "Moving" + Target_de_de "In Bewegung" Comment "Status for a High Command group that is still further than the arrival radius from its ordered destination. Substituted into the map info panel's status line." DevNote "" Repro "" @@ -7471,14 +8115,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782117953 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000410A}" { Id "OVT-HC_Map_StatusNoAmmo" Target_en_us "Out of ammo" + Target_de_de "Keine Munition" Comment "Status for a High Command group where no member can put rounds downrange. Shown only when the group is not also in contact. Substituted into the map info panel's status line." DevNote "" Repro "" @@ -7487,14 +8133,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782117965 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004111}" { Id "OVT-HC_Map_UnknownOwner" Target_en_us "an unknown player" + Target_de_de "ein unbekannter Spieler" Comment "Substituted for a High Command group owner's name when the player roster cannot resolve it - usually an owner who has never connected to this session. Lower case: it sits inside a sentence." DevNote "" Repro "" @@ -7503,14 +8151,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782117978 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000C6}" { Id "OVT-HC_MemberCountFormat" Target_en_us "%1 fighters" + Target_de_de "%1 Kämpfer" Comment "Format string for a High Command entry's member count, shown on each purchase screen row and in the details panel. %1 is the member count, read client-side from the prefab source with nothing spawned." DevNote "" Repro "" @@ -7519,14 +8169,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782117994 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000C4}" { Id "OVT-HC_MenuTitle" Target_en_us "High Command" + Target_de_de "Oberes Kommando" Comment "Header title of the barracks purchase screen, UI/Layouts/Menu/HighCommandMenu.layout." DevNote "" Repro "" @@ -7535,14 +8187,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118006 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000C5}" { Id "OVT-HC_NoSelectionHelp" Target_en_us "Select a group to see its price." + Target_de_de "Wähle eine Gruppe aus, um ihren Preis zu sehen" Comment "Barracks purchase screen details panel placeholder text, shown before any row has been selected or when the catalog is empty." DevNote "" Repro "" @@ -7551,14 +8205,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118045 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000C8}" { Id "OVT-HC_QuoteChecking" Target_en_us "Checking price..." + Target_de_de "Preis wird geprüft..." Comment "Barracks purchase screen status line and Buy button label while a debounced quote is on the wire (RequestQuoteGroup asked, RpcDo_HCQuote not yet answered for this row)." DevNote "" Repro "" @@ -7567,14 +8223,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118035 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000CA}" { Id "OVT-HC_QuoteCovered" Target_en_us "$%1 covered by nearby warehouse stock" + Target_de_de "$%1 durch Bestand im nahegelegenen Lagerhaus abgedeckt" Comment "Barracks purchase screen quote line - RpcDo_HCQuote coveredValue, shown when greater than zero. %1 is the covered value at buy price." DevNote "" Repro "" @@ -7583,14 +8241,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118069 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000D1}" { Id "OVT-HC_QuoteError" Target_en_us "Unable to price this group right now" + Target_de_de "Preis für diese Gruppe kann derzeit nicht ermittelt werden" Comment "Barracks purchase screen fallback reason text for a quote refusal this screen has no dedicated sentence for (NO_PLAYER, NO_ACTOR, or a future RESULT_* code the screen has not been taught yet)." DevNote "" Repro "" @@ -7599,14 +8259,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118087 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000CB}" { Id "OVT-HC_QuoteNoCoverage" Target_en_us "No nearby warehouse stock" + Target_de_de "Kein Bestand in nahegelegenen Lagerhäusern" Comment "Barracks purchase screen quote line shown in place of OVT-HC_QuoteCovered when RpcDo_HCQuote's coveredValue is zero." DevNote "" Repro "" @@ -7615,14 +8277,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118100 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000CD}" { Id "OVT-HC_QuoteNoSupporters" Target_en_us "No supporters required" + Target_de_de "Keine Unterstützer erforderlich" Comment "Barracks purchase screen quote line shown in place of OVT-HC_QuoteSupporters when RpcDo_HCQuote's supportersNeeded is zero." DevNote "" Repro "" @@ -7631,14 +8295,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118112 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000CC}" { Id "OVT-HC_QuoteSupporters" Target_en_us "%1 supporters required" + Target_de_de "%1 Unterstützer erforderlich" Comment "Barracks purchase screen quote line - RpcDo_HCQuote supportersNeeded, shown when greater than zero. %1 is the count taken from the nearest town." DevNote "" Repro "" @@ -7647,8 +8313,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118146 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -7671,6 +8338,7 @@ StringTable { CustomStringTableItem "{6B1C3D0000005102}" { Id "OVT-HC_Roster_Capacity" Target_en_us "%1 / %2 members" + Target_de_de "%1 / %2 Mitglieder" Comment "Capacity line on the Manage Groups roster. %1 is OVT_HighCommandManagerComponent.GetMemberCount for the local player, %2 is GetMemberCap - members across every owned group, whatever they are doing." DevNote "" Repro "" @@ -7679,14 +8347,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118153 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000005107}" { Id "OVT-HC_Roster_Dismiss" Target_en_us "Dismiss" + Target_de_de "Entlassen" Comment "Manage Groups roster action button label (WLib_NavigationButton, OverthrowHighCommandRosterDismiss) - opens the DISMISS_HC_GROUP confirmation dialog." DevNote "" Repro "" @@ -7695,14 +8365,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118174 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000510A}" { Id "OVT-HC_Roster_Dismissed" Target_en_us "Group dismissed" + Target_de_de "Gruppe aufgelöst" Comment "Hint shown by OVT_HighCommandRosterContext.OnResult on RESULT_OK after a confirmed dismiss - the server's answer, never shown optimistically." DevNote "" Repro "" @@ -7711,14 +8383,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118243 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000510B}" { Id "OVT-HC_Roster_DismissFailed" Target_en_us "Could not dismiss the group" + Target_de_de "Gruppe konnte nicht entlassen werden" Comment "Hint shown by OVT_HighCommandRosterContext.OnResult when a dismiss ask answers anything other than RESULT_OK." DevNote "" Repro "" @@ -7727,14 +8401,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118190 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000005109}" { Id "OVT-HC_Roster_DismissMessage" Target_en_us "This will permanently disband the group, its vehicle and its orders. This cannot be undone." + Target_de_de "Dadurch wird die Gruppe samt Fahrzeug und Befehlen dauerhaft aufgelöst. Dies kann nicht rückgängig gemacht werden." Comment "Message of the DISMISS_HC_GROUP confirmation dialog." DevNote "" Repro "" @@ -7743,14 +8419,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118214 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000005108}" { Id "OVT-HC_Roster_DismissTitle" Target_en_us "Dismiss Group" + Target_de_de "Gruppe auflösen" Comment "Title of the DISMISS_HC_GROUP confirmation dialog (Configs/UI/Dialogs/DialogPresets_Campaign.conf), the DISMISS_RECRUIT shape." DevNote "" Repro "" @@ -7759,14 +8437,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118230 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000005104}" { Id "OVT-HC_Roster_MembersFormat" Target_en_us "%1 / %2 alive" + Target_de_de "%1 / %2 am Leben" Comment "Selected-group member count on the Manage Groups roster's details panel. %1 is OVT_HighCommandRecord.m_iAliveMembers, %2 is m_iTotalMembers." DevNote "" Repro "" @@ -7775,14 +8455,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118256 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000005103}" { Id "OVT-HC_Roster_NoGroupsHelp" Target_en_us "You do not own any High Command groups yet. Buy one at a barracks." + Target_de_de "Du besitzt noch keine Gruppen des Oberen Kommandos. Kaufe eine in einer Kaserne." Comment "Manage Groups roster right panel placeholder text, shown when the local player owns no High Command groups at all." DevNote "" Repro "" @@ -7791,8 +8473,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118282 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -7815,6 +8498,7 @@ StringTable { CustomStringTableItem "{6B1C3D0000005106}" { Id "OVT-HC_Roster_ShowOnMap" Target_en_us "Show on Map" + Target_de_de "Auf Karte anzeigen" Comment "Manage Groups roster action button label (WLib_NavigationButton, OverthrowHighCommandRosterShowOnMap) - opens the fullscreen map and selects the group there." DevNote "" Repro "" @@ -7823,14 +8507,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118299 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000005101}" { Id "OVT-HC_Roster_YourGroups" Target_en_us "Your Groups" + Target_de_de "Deine Gruppen" Comment "Left panel sub-heading on the Manage Groups roster (HighCommandRoster.layout), above the scrollable group list." DevNote "" Repro "" @@ -7839,14 +8525,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118314 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004108}" { Id "OVT-HC_Stance_Attack" Target_en_us "Attack" + Target_de_de "Angriff" Comment "One of the three High Command stances. The group sweeps its destination looking for enemies. One word, title case." DevNote "" Repro "" @@ -7855,14 +8543,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118322 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004106}" { Id "OVT-HC_Stance_Defend" Target_en_us "Defend" + Target_de_de "Verteidigen" Comment "One of the three High Command stances. The group hunkers at its destination. One word, title case - it is substituted into the map info panel's Stance line and will be reused by the roster screen." DevNote "" Repro "" @@ -7871,14 +8561,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118326 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000004107}" { Id "OVT-HC_Stance_Patrol" Target_en_us "Patrol" + Target_de_de "Patrouillieren" Comment "One of the three High Command stances. The group walks a ring around its destination indefinitely. One word, title case." DevNote "" Repro "" @@ -7887,14 +8579,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118350 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000C7}" { Id "OVT-HC_VehicleIncluded" Target_en_us "+ vehicle" + Target_de_de "+ Fahrzeug" Comment "Tag shown on a barracks purchase screen row when the entry's m_sVehiclePrefab is set (a crewed vehicle group, not a foot group)." DevNote "" Repro "" @@ -7903,8 +8597,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118486 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -9655,6 +10350,7 @@ StringTable { CustomStringTableItem "{6B1C3D0000005100}" { Id "OVT-MainMenu_ManageGroups" Target_en_us "Manage Groups" + Target_de_de "Gruppen verwalten" Comment "Main menu button (OVT_MainMenuContext.ManageGroups) and header title of UI/Layouts/Menu/HighCommandRoster.layout - the same key on both, the OVT-MainMenu_ManageRecruits precedent." DevNote "" Repro "" @@ -9663,8 +10359,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118632 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -9923,6 +10620,7 @@ StringTable { CustomStringTableItem "{6B1C3D00000000C2}" { Id "OVT-ManageHighCommand" Target_en_us "Manage High Command" + Target_de_de "Oberes Kommando verwalten" Comment "UIInfo Name on the barracks desk's OVT_ManageHighCommandAction (hover/action label), authored on OVT_Barracks.et and the three same-GUID vanilla barracks overrides." DevNote "" Repro "" @@ -9931,8 +10629,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118510 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -10169,6 +10868,7 @@ StringTable { CustomStringTableItem "{6A8E2F3000000017}" { Id "OVT-Map_Category_ProductionSites" Target_en_us "Production Sites" + Target_de_de "Produktionsstandorte" Comment "Plural category label for the production-site map layer. Cited: Configs/Map/OverthrowMap.conf, m_sCategoryName on the {6A8E2F2000000001} block." DevNote "" Repro "" @@ -10177,8 +10877,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118539 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -10204,6 +10905,7 @@ StringTable { CustomStringTableItem "{6A8E2E2000000045}" { Id "OVT-Map_Category_ResourcePiles" Target_en_us "Crate Piles" + Target_de_de "Kistenstapel" Comment "Category name in the map layer-filter panel - the row that switches dropped resource crate pile markers on and off. PLURAL and title case: every row in this list names a category of marker, never one place. The singular form shown on the info panel is the separate key #OVT-Resource_Pile and should stay consistent with this one." DevNote "" Repro "" @@ -10212,9 +10914,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1782118560 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -10485,6 +11187,7 @@ StringTable { CustomStringTableItem "{6B1C3D0000004100}" { Id "OVT-Map_Layer_HighCommand" Target_en_us "High Command" + Target_de_de "Oberes Kommando" Comment "Row label in the map layer-filter panel for the green NATO symbols showing every player's High Command groups. Two words, title case - it sits directly under the Recruits row in the same short list. It only ever labels a live control: a campaign with no High Command groups gets no row at all rather than a disabled one." DevNote "" Repro "" @@ -10493,8 +11196,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118529 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -10670,6 +11374,7 @@ StringTable { CustomStringTableItem "{6A8E2E2000000048}" { Id "OVT-Map_PileEmpty" Target_en_us "Empty" + Target_de_de "Leer" Comment "Full-width line on a crate pile's map info panel when the pile holds nothing. Replaces the per-resource rows and the volume row entirely. An empty pile is normally short-lived, so this reads as a state, not an error." DevNote "" Repro "" @@ -10678,15 +11383,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1782118564 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000046}" { Id "OVT-Map_PileVolume" Target_en_us "Volume" + Target_de_de "Volumen" Comment "Map info panel row label on a crate pile marker - the caption for the pile's total loaded volume. The value is #OVT-Map_PileVolumeValue. Appears below one row per resource the pile holds." DevNote "" Repro "" @@ -10695,9 +11401,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1782118583 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -11264,9 +11970,10 @@ StringTable { CustomStringTableItem "{6A2E8A8D2F652D08}" { Id "OVT-MobileFOBDescription" Target_en_us "Can be deployed into a forward base for the resistance, creating a Fast Travel/Respawn point and building area" - Modified 1781435208 + Target_de_de "Kann zu einer vorgeschobenen Basis des Widerstands entfaltet werden und erstellt einen Schnellreise-/Wiedereinstiegspunkt sowie einen Baubereich" + Modified 1782118660 Author "Aaron Static" - LastChanged "Aaron Static" + LastChanged "lemmi" } CustomStringTableItem "{65D08ACC7FDB3C67}" { Id "OVT-MobileFOBHelp" @@ -11368,6 +12075,7 @@ StringTable { CustomStringTableItem "{6B8C3F5D00000003}" { Id "OVT-Modifier_ObjectiveHarassment" Target_en_us "Enemy Harassment" + Target_de_de "Feindliche Störangriffe" Comment "Town support modifier - applied by OVT_TownHarassmentBehaviorDeploymentModule when an occupying-faction group sent by the objective director has held the town centre for objectiveHarassmentHoldSeconds. Stacks up to 4 (one per rung of the harassment ladder) and expires after 2 in-game hours. Shown in the town panel's support modifier list." DevNote "" Repro "" @@ -11376,7 +12084,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118726 Author "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -11570,6 +12280,7 @@ StringTable { CustomStringTableItem "{6A7D9B2E000000F8}" { Id "OVT-Msg-AdminResourcesAdded" Target_en_us "Admin: %1 resources added to the occupying faction and distributed (now %2 in reserve). The defense share went to the deployment pool immediately." + Target_de_de "Admin: %1 Ressourcen wurden der Besatzungsfraktion hinzugefügt und verteilt (jetzt %2 in Reserve). Der Verteidigungsanteil ging sofort in die Einsatzreserve." Comment "Confirmation to a server admin who used the /give-resources chat command - %1 is the amount credited, %2 is the reserve AFTER the distribution (so it is the remainder, not the credited amount). Amended 2026-08-19: the command now runs TransferDefenseShareToPool immediately, because crediting the reserve alone left the deployment pool - the thing every visible force spends - untouched until the next tick, which made the command near-useless for its one purpose." DevNote "" Repro "" @@ -11578,9 +12289,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755561600 + Modified 1782118750 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -11655,6 +12366,7 @@ StringTable { CustomStringTableItem "{6B4E1F0000000003}" { Id "OVT-Msg-CannotAffordFuel" Target_en_us "You can no longer afford fuel - refuelling stopped" + Target_de_de "Du kannst dir keinen Treibstoff mehr leisten - Tanken abgebrochen" Comment "One-shot notification to the refuelling player only, fired by the modded SCR_FuelSupportStationComponent (Scripts/Game/Components/SupportStation/Modded/) when a paid refuel is about to cut off for lack of money. The fuel already delivered is theirs and the next 0.5 s tick's IsValid greys the action out with #OVT-Refuel_CannotAfford. Preset tag 'CannotAffordFuel' in Configs/overthrowBroadcastMessages.conf. WORDED 'CAN NO LONGER AFFORD' AND NOT 'RAN OUT OF MONEY' ON PURPOSE, and it must stay that way: the affordability gate demands a whole tick up front (ceil(maxFlow x price)), so the usual stopping point leaves the player holding a few dollars they cannot spend - implementation.md R10, documented as expected behaviour. 'Ran out of money' would be a plain falsehood on the common path. It is also true of the rarer trigger, where a concurrent debit clamped the charge and the balance really is 0. NO PARAMETERS - the shortfall is a sub-dollar carry plus part of a tick and no number there would mean anything to a player. Distinct from the generic #OVT-CannotAfford ('You cannot afford that'), which is a refused purchase; this one describes something that STOPPED part way through." DevNote "" Repro "" @@ -11663,9 +12375,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1782118768 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -11741,6 +12453,7 @@ StringTable { CustomStringTableItem "{6B8C3F5D000000C5}" { Id "OVT-Msg-CounterAttackBase" Target_en_us "Enemy forces have surrounded %1 and will assault within 15 minutes" + Target_de_de "Feindkräfte haben %1 eingeschlossen und werden innerhalb von 15 Minuten angreifen" Comment "Broadcast notification, sent ONCE per counter-attack, at the moment the occupying faction's encirclement of a resistance-held BASE is complete and the siege stops being secret. %1 is the base's name. Sent to every player and to the external notification channel together, the same pairing OVT-Msg-BaseBattle uses. The fifteen minutes are REAL minutes, not in-game ones (thirty until 2026-08-20), and nothing at all is decided during them - the wording is a warning with a deadline in it, because that window is the whole point of the mechanic. Paired with OVT-Msg-CounterAttackTown, which says the same thing about a town or city." DevNote "" Repro "" @@ -11749,43 +12462,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118821 Author "Claude" - ImageLink "" - Hidden 0 - } - CustomStringTableItem "{6A8E2F5000000001}" { - Id "OVT-Msg-PlayerJoined" - Target_en_us "%1 joined the server" - Comment "EXTERNAL CHANNEL ONLY - this is never shown in game. Posted to the Discord webhook from OVT_OverthrowGameMode.OnPlayerConnected, which is server-only and fires for a RECONNECT as well as a first join (the once-per-session guard lives in FinalizePlayerPreparation, not here). %1 is the player's display name as the platform reports it. Paired with OVT-Msg-PlayerLeft. Vanilla already shows its own connect message in game, which is why no SendTextNotification accompanies this." - DevNote "" - Repro "" - ActorGender NONE - Terminology NONE - Status DEVELOPMENT_PENDING - NonTranslatable 0 - MaxLength 0 - Author "Claude" - ImageLink "" - Hidden 0 - } - CustomStringTableItem "{6A8E2F5000000002}" { - Id "OVT-Msg-PlayerLeft" - Target_en_us "%1 left the server" - Comment "EXTERNAL CHANNEL ONLY - never shown in game. Posted to the Discord webhook from OVT_OverthrowGameMode.OnPlayerDisconnected, read BEFORE super runs so the player's name is still resolvable. %1 is the player's display name. Covers every departure - quit, timeout and kick alike - because the disconnect handler does not branch on KickCauseCode. Paired with OVT-Msg-PlayerJoined." - DevNote "" - Repro "" - ActorGender NONE - Terminology NONE - Status DEVELOPMENT_PENDING - NonTranslatable 0 - MaxLength 0 - Author "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D000000C6}" { Id "OVT-Msg-CounterAttackTown" Target_en_us "Enemy forces have surrounded %1 and will assault within 15 minutes" + Target_de_de "Feindkräfte haben %1 eingeschlossen und werden innerhalb von 15 Minuten angreifen" Comment "Broadcast notification, sent ONCE per counter-attack, at the moment the occupying faction's encirclement of a resistance-held TOWN OR CITY is complete. %1 is the town's name. Cities use this same string - there is no separate city form, unlike OVT-Msg-TownBattle / OVT-Msg-CityBattle - and villages never appear here at all, because the occupying faction's objective director only ever targets a town or a base. Paired with OVT-Msg-CounterAttackBase; see that entry for the fifteen-minute window." DevNote "" Repro "" @@ -11794,7 +12480,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118856 Author "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -11871,6 +12559,7 @@ StringTable { CustomStringTableItem "{6B1C3D00000000A0}" { Id "OVT-Msg-HCGroupPurchased" Target_en_us "High Command group bought - %1 fighters for $%2" + Target_de_de "Gruppe für das Obere Kommandos gekauft - %1 Kämpfer für $%2" Comment "Purchase confirmation at a barracks, to the buying player only. %1 is the group's member count, %2 is the amount actually charged (member cost plus the fee-multiplied gear that nearby warehouse stock did NOT cover). Sent AFTER the group is standing in the world - a failed spawn shows OVT-Msg-HCPurchaseSpawnFailed instead and charges nothing." DevNote "" Repro "" @@ -11879,14 +12568,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118891 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000A5}" { Id "OVT-Msg-HCPurchaseAtCap" Target_en_us "You already command too many fighters to add %1 more" + Target_de_de "Du befehligst bereits zu viele Kämpfer, um %1 weitere hinzuzufügen" Comment "Purchase refusal, to the buying player only. %1 is how many members the refused group would have added. The cap counts MEMBERS across every group the player owns, not groups (decision D12); its value is highCommandMemberCap, default 48." DevNote "" Repro "" @@ -11895,14 +12586,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118916 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000A4}" { Id "OVT-Msg-HCPurchaseBadEntry" Target_en_us "That group is not available here" + Target_de_de "Diese Gruppe ist hier nicht verfügbar" Comment "Purchase refusal, to the buying player only. The entry index the client sent names nothing in the player faction's m_aHighCommandGroups, or its group prefab defines no members at all. No parameters." DevNote "" Repro "" @@ -11911,14 +12604,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118930 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000A2}" { Id "OVT-Msg-HCPurchaseBarracksRuined" Target_en_us "This barracks is in ruins and cannot raise anyone" + Target_de_de "Diese Kaserne liegt in Trümmern und kann niemanden aufstellen" Comment "Purchase refusal, to the buying player only. The barracks exists but OVT_StructureDamage.IsUsable is false - it is in its ruined destruction phase. No parameters." DevNote "" Repro "" @@ -11927,14 +12622,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118950 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000A3}" { Id "OVT-Msg-HCPurchaseBaseNotFriendly" Target_en_us "The resistance does not hold this base" + Target_de_de "Der Widerstand hält diese Basis nicht" Comment "Purchase refusal, to the buying player only. The nearest base is either further than baseRange away or still held by the occupying faction. No parameters." DevNote "" Repro "" @@ -11943,14 +12640,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118964 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000A7}" { Id "OVT-Msg-HCPurchaseCannotAfford" Target_en_us "You cannot afford this group ($%1)" + Target_de_de "Du kannst dir diese Gruppe nicht leisten ($%1)" Comment "Purchase refusal, to the buying player only. %1 is the re-derived total the funds check ran against, which is the amount that would have been charged. The funds check is deliberately the LAST gate, so this never appears for a group the cap or the town would have refused anyway." DevNote "" Repro "" @@ -11959,14 +12658,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782118983 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000A6}" { Id "OVT-Msg-HCPurchaseNoSupporters" Target_en_us "The nearest town cannot spare %1 supporters" + Target_de_de "Die nächstgelegene Ortschaft kann keine %1 Unterstützer entbehren" Comment "Purchase refusal, to the buying player only. %1 is how many supporters the group would have drawn down - one per member by default (highCommandSupportersPerMember). Also shown when there is no town near enough to draw from at all." DevNote "" Repro "" @@ -11975,14 +12676,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119001 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000A1}" { Id "OVT-Msg-HCPurchaseNotAtBarracks" Target_en_us "You must be standing at a barracks to raise a group" + Target_de_de "Du musst dich an einer Kaserne befinden, um eine Gruppe aufzustellen" Comment "Purchase refusal, to the buying player only. The server found no OVT_BarracksComponent within OVT_BarracksComponent.BARRACKS_USE_RADIUS (5 m) of the caller. No parameters." DevNote "" Repro "" @@ -11991,14 +12694,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119020 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D00000000A8}" { Id "OVT-Msg-HCPurchaseSpawnFailed" Target_en_us "The group could not be raised - nothing was charged" + Target_de_de "Die Gruppe konnte nicht aufgestellt werden - es wurde nichts berechnet" Comment "Purchase refusal, to the buying player only. Every gate passed but the group entity or its members failed to spawn. The effect order is spawn -> stock -> supporters -> money, so no money, no supporters and no warehouse stock moved. No parameters." DevNote "" Repro "" @@ -12007,8 +12712,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119044 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -12227,6 +12933,7 @@ StringTable { CustomStringTableItem "{6B8C3F5D00000063}" { Id "OVT-Msg-ObjectiveSabotage" Target_en_us "Sabotage" + Target_de_de "Sabotage" Comment "Broadcast notification TITLE, sent once per sabotage mission by OVT_BaseSabotageBehaviorDeploymentModule when an occupying-faction team demolishes the first player-built structure at a base the resistance holds. Paired with OVT-Msg-ObjectiveSabotageDetail. Short - it is the heading above the detail line." DevNote "" Repro "" @@ -12235,13 +12942,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119062 Author "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5D00000064}" { Id "OVT-Msg-ObjectiveSabotageDetail" Target_en_us "Enemy saboteurs are demolishing what you built at %1" + Target_de_de "Feindliche Saboteure zerstören deine Bauwerke bei %1" Comment "Broadcast notification BODY, sent once per sabotage mission (not once per structure). %1 is the base's name. The destruction is permanent and nothing refunds it, so the wording is deliberately a warning about work in progress rather than a report of a finished act - more structures follow every couple of minutes until the team is killed or driven off. Paired with the title OVT-Msg-ObjectiveSabotage." DevNote "" Repro "" @@ -12250,7 +12960,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119073 Author "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -12292,9 +13004,27 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1706585218 - Author "Aaron Static" - LastChanged "Lemmi" + Modified 1706585218 + Author "Aaron Static" + LastChanged "Lemmi" + ImageLink "" + Hidden 0 + } + CustomStringTableItem "{6A8E2F5000000001}" { + Id "OVT-Msg-PlayerJoined" + Target_en_us "%1 joined the server" + Target_de_de "%1 ist dem Server beigetreten" + Comment "EXTERNAL CHANNEL ONLY - this is never shown in game. Posted to the Discord webhook from OVT_OverthrowGameMode.OnPlayerConnected, which is server-only and fires for a RECONNECT as well as a first join (the once-per-session guard lives in FinalizePlayerPreparation, not here). %1 is the player's display name as the platform reports it. Paired with OVT-Msg-PlayerLeft. Vanilla already shows its own connect message in game, which is why no SendTextNotification accompanies this." + DevNote "" + Repro "" + ActorGender NONE + Terminology NONE + Status DEVELOPMENT_PENDING + NonTranslatable 0 + MaxLength 0 + Modified 1782119091 + Author "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -12317,6 +13047,24 @@ StringTable { ImageLink "" Hidden 0 } + CustomStringTableItem "{6A8E2F5000000002}" { + Id "OVT-Msg-PlayerLeft" + Target_en_us "%1 left the server" + Target_de_de "%1 hat den Server verlassen" + Comment "EXTERNAL CHANNEL ONLY - never shown in game. Posted to the Discord webhook from OVT_OverthrowGameMode.OnPlayerDisconnected, read BEFORE super runs so the player's name is still resolvable. %1 is the player's display name. Covers every departure - quit, timeout and kick alike - because the disconnect handler does not branch on KickCauseCode. Paired with OVT-Msg-PlayerJoined." + DevNote "" + Repro "" + ActorGender NONE + Terminology NONE + Status DEVELOPMENT_PENDING + NonTranslatable 0 + MaxLength 0 + Modified 1782119106 + Author "Claude" + LastChanged "lemmi" + ImageLink "" + Hidden 0 + } CustomStringTableItem "{5DA8D3A10424E647}" { Id "OVT-Msg-PlayerSentFunds" Target_en_us "An officer has sent you $%1 in resistance funds" @@ -12635,6 +13383,7 @@ StringTable { CustomStringTableItem "{68A0C7D24B913A76}" { Id "OVT-Msg-WantedBaseAssault" Target_en_us "You were seen calling the attack on this base!" + Target_de_de "Du wurdest dabei gesehen, wie du den Angriff auf diese Basis angefordert hast!" Comment "Wanted notification - seen starting a base capture battle" DevNote "" Repro "" @@ -12643,9 +13392,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1782119128 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -12728,6 +13477,7 @@ StringTable { CustomStringTableItem "{6A8E2F1000000002}" { Id "OVT-Msg-WantedLooting" Target_en_us "You were seen looting the dead!" + Target_de_de "Du wurdest beim Plündern der Toten gesehen!" Comment "Wanted notification - seen running the Loot battlefield action on a vehicle (OVT_StorageRequestComponent arms the illegal-action window for the whole loot job)" DevNote "" Repro "" @@ -12736,9 +13486,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755993600 + Modified 1782119146 Author "Claude" - LastChanged "" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -12783,6 +13533,7 @@ StringTable { CustomStringTableItem "{68A0C7D24B913A75}" { Id "OVT-Msg-WantedUprising" Target_en_us "You were seen calling the uprising!" + Target_de_de "Du wurdest dabei gesehen, wie du den Aufstand ausgerufen hast!" Comment "Wanted notification - seen raising the flag to start a town uprising" DevNote "" Repro "" @@ -12791,9 +13542,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1782119154 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -13420,16 +14171,18 @@ StringTable { CustomStringTableItem "{6B5D000000000091}" { Id "OVT-Place_Cot" Target_en_us "Cot" - Modified 1780790400 + Target_de_de "Feldbett" + Modified 1782119180 Author "Aaron Static" - LastChanged "Aaron Static" + LastChanged "lemmi" } CustomStringTableItem "{6B5D000000000092}" { Id "OVT-Place_Cot_Description" Target_en_us "A military cot you can sleep on" - Modified 1780790400 + Target_de_de "Ein militärisches Feldbett, auf dem du schlafen kannst" + Modified 1782119279 Author "Aaron Static" - LastChanged "Aaron Static" + LastChanged "lemmi" } CustomStringTableItem "{598AD55D632ED8B6}" { Id "OVT-Place_EquipmentBox" @@ -14172,6 +14925,7 @@ StringTable { CustomStringTableItem "{6A8E2E200000009A}" { Id "OVT-Port_SummaryVolume" Target_en_us "%1 · Cargo %2" + Target_de_de "%1 · Fracht %2" Comment "Port screen checkout - the money total with the truck's projected cargo volume appended, shown only when the cart orders resources. %1 is the already-translated money summary (OVT-Transfer_SummaryPrice), %2 the already-translated volume (OVT-Resource_SummaryVolume). Translate only the word Cargo and the separator." DevNote "" Repro "" @@ -14180,9 +14934,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782119308 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -14227,6 +14981,7 @@ StringTable { CustomStringTableItem "{6A8E2F3000000019}" { Id "OVT-Private" Target_en_us "Private" + Target_de_de "Privat" Comment "Status row value in the production-site map info panel when the site is owned and private - only the owner may open its storage. Private is the default on purchase. Cited: OVT_MapLocationProductionSite.c BuildInfoRows." DevNote "" Repro "" @@ -14235,8 +14990,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119298 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -14264,6 +15020,7 @@ StringTable { CustomStringTableItem "{6A8E2F300000000F}" { Id "OVT-ProdSite_AlreadyOwned" Target_en_us "Someone already owns this site" + Target_de_de "Dieser Standort gehört bereits jemandem" Comment "Server refusal from OVT_ResourceProductionRequestComponent.RpcAsk_BuySite when OVT_ResourceProductionRules.MayBuySite is false. This is what a losing racer sees when two players buy the same site in the same second - the refusal lands before any money moves." DevNote "" Repro "" @@ -14272,14 +15029,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119341 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000008}" { Id "OVT-ProdSite_Buy" Target_en_us "Buy" + Target_de_de "Kaufen" Comment "The single mode label on OVT_ProductionSiteBuyContext's tool header - the buy-stock screen has exactly one mode. Cited: OVT_ProductionSiteBuyContext.c BuildModes." DevNote "" Repro "" @@ -14288,14 +15047,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119347 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000005}" { Id "OVT-ProdSite_Buy_Price" Target_en_us "Buy site (%1)" + Target_de_de "Standort kaufen (%1)" Comment "Label of OVT_BuySiteAction (Sort 1) on an unowned production site. ONE %1 - the buy price, already formatted by OVT_MoneyFormat.FormatMoney and already scaled by the difficulty's realEstateCostMultiplier via OVT_ResourceProductionRules.BuyCost. Cited: OVT_BuySiteAction.c:120 (LabelKey) and :176 (the single BuyCost call the label and the server charge share). The action is hidden on an owned site, visible-and-disabled when the player cannot afford it." DevNote "" Repro "" @@ -14304,14 +15065,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119433 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000020}" { Id "OVT-ProdSite_BuyResistance" Target_en_us "Buy site with resistance funds" + Target_de_de "Standort mit Mitteln des Widerstands kaufen" Comment "Static UIInfo fallback name for OVT_BuySiteResistanceAction on Prefabs/Production/OVT_ProductionSite_Base.et (Sort 2). The action overrides its own label at runtime with the priced OVT-ProdSite_BuyResistance_Price, so this bare form is only ever the fallback - it deliberately carries NO parameter, because a fallback path cannot supply one." DevNote "" Repro "" @@ -14320,14 +15083,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119372 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000006}" { Id "OVT-ProdSite_BuyResistance_Price" Target_en_us "Buy site with resistance funds (%1)" + Target_de_de "Standort mit Mitteln des Widerstands kaufen (%1)" Comment "Label of OVT_BuySiteResistanceAction (Sort 2), shown only on an unowned site to an officer. ONE %1 - the same BuyCost figure as OVT-ProdSite_Buy_Price, formatted by OVT_MoneyFormat.FormatMoney. Cited: OVT_BuySiteResistanceAction.c:44. Officer gating is OVT_ResistanceFactionManager.IsOfficer on both sides." DevNote "" Repro "" @@ -14336,14 +15101,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119384 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000007}" { Id "OVT-ProdSite_BuyStock" Target_en_us "Buy stock (%1 units)" + Target_de_de "Bestand kaufen (%1 Einheiten)" Comment "Label of OVT_BuySiteStockAction (Sort 3) on an unowned production site. ONE %1 - the site's current stock count. Cited: OVT_BuySiteStockAction.c:82. Opens OVT_ProductionSiteBuyContext, which quotes 80 percent of the live import price. The action disappears once the site is owned - only unowned sites sell (requirements section 22)." DevNote "" Repro "" @@ -14352,14 +15119,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119397 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000021}" { Id "OVT-ProdSite_BuyStockName" Target_en_us "Buy stock" + Target_de_de "Bestand kaufen" Comment "Static UIInfo fallback name for OVT_BuySiteStockAction on Prefabs/Production/OVT_ProductionSite_Base.et (Sort 3). Deliberately parameter-free: the runtime label OVT-ProdSite_BuyStock carries a %1 for the stock count, and a prefab UIInfo has nothing to substitute into it, so pointing the prefab at the parameterised key would render a literal percent-1 on screen if the script label were ever empty." DevNote "" Repro "" @@ -14368,14 +15137,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119414 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000003}" { Id "OVT-ProdSite_CementPlant" Target_en_us "Cement Plant" + Target_de_de "Zementwerk" Comment "Site name authored on Prefabs/Production/OVT_ProductionSite_CementPlant.et (OVT_ResourceProductionComponent.m_sSiteName). Shown as the map location's label and in the site's info panel." DevNote "" Repro "" @@ -14384,14 +15155,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119445 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000015}" { Id "OVT-ProdSite_Failed" Target_en_us "Could not complete that right now" + Target_de_de "Das konnte derzeit nicht abgeschlossen werden" Comment "Server refusal from OVT_ResourceProductionRequestComponent when a required manager (production, economy, config, players or resistance) could not be resolved. A never-in-practice path kept answering rather than silent - every refusal answers with a key." DevNote "" Repro "" @@ -14400,14 +15173,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119457 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F300000000C}" { Id "OVT-ProdSite_MakePrivate" Target_en_us "Make site private" + Target_de_de "Standort privat machen" Comment "Label of OVT_ToggleSitePrivacyAction (Sort 4) while the site is public. Private is the default on purchase. Cited: OVT_ToggleSitePrivacyAction.c." DevNote "" Repro "" @@ -14416,14 +15191,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119474 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F300000000B}" { Id "OVT-ProdSite_MakePublic" Target_en_us "Make site public" + Target_de_de "Standort öffentlich machen" Comment "Label of OVT_ToggleSitePrivacyAction (Sort 4) while the site is private. A public site lets anyone in the resistance open its storage. Cited: OVT_ToggleSitePrivacyAction.c. The action is shown only to someone OVT_ResourceProductionRules.MayTogglePrivacy admits - the owner, or an officer on a resistance-owned site." DevNote "" Repro "" @@ -14432,14 +15209,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119489 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000016}" { Id "OVT-ProdSite_MapDisplayName" Target_en_us "Production Site" + Target_de_de "Produktionsstandort" Comment "Singular type label for OVT_MapLocationProductionSite in the map's layer filter. Cited: Configs/Map/OverthrowMap.conf, m_sDisplayName on the {6A8E2F2000000001} block." DevNote "" Repro "" @@ -14448,14 +15227,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119498 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000011}" { Id "OVT-ProdSite_NoFunds" Target_en_us "The resistance cannot afford this" + Target_de_de "Der Widerstand kann sich das nicht leisten" Comment "Server refusal from RpcAsk_BuySite's resistance-funds branch when the treasury is short. Also the disabled reason shown on OVT_BuySiteResistanceAction for the same condition." DevNote "" Repro "" @@ -14464,14 +15245,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119519 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000012}" { Id "OVT-ProdSite_NoMoney" Target_en_us "You cannot afford this" + Target_de_de "Du kannst dir das nicht leisten" Comment "Server refusal from RpcAsk_BuySite's personal-money branch when OVT_EconomyManagerComponent.PlayerHasMoney is false. Also the disabled reason on OVT_BuySiteAction." DevNote "" Repro "" @@ -14480,14 +15263,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119539 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F300000000D}" { Id "OVT-ProdSite_NoPlayer" Target_en_us "Could not identify you" + Target_de_de "Du konntest nicht identifiziert werden" Comment "Server refusal from OVT_ResourceProductionRequestComponent - ResolveOwningPlayerId returned a non-positive id, or the caller's persistent id came back empty. Answers both RpcAsk_BuySite and RpcAsk_SetSitePrivacy. Identity is never an RPC parameter, so this means the server could not resolve the caller at all." DevNote "" Repro "" @@ -14496,14 +15281,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119554 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F300000000E}" { Id "OVT-ProdSite_NoSite" Target_en_us "No production site here" + Target_de_de "Kein Produktionsstandort hier" Comment "Server refusal from OVT_ResourceProductionRequestComponent when no site record matches the position within 10 m, or the matched record's entity carries no OVT_ResourceProductionComponent. Also the refusal from OVT_ResourceRequestComponent.MayBuyFromSite when a SITE_BUY names a holder that is not a site. Position is the identity on every wire (implementation.md D2)." DevNote "" Repro "" @@ -14512,14 +15299,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119565 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F300000000A}" { Id "OVT-ProdSite_NoStock" Target_en_us "This site has no stock yet" + Target_de_de "Dieser Standort hat noch keinen Bestand" Comment "Disabled-row reason on the buy-stock screen when the site's store is empty. The row is listed and DISABLED, never hidden - refusals are shown, not hidden. Cited: OVT_ProductionSiteBuyContext.c BuildEntries. A site drips one batch per in-game hour, so an untouched site is empty for its first hour." DevNote "" Repro "" @@ -14528,14 +15317,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119578 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000010}" { Id "OVT-ProdSite_NotOfficer" Target_en_us "Only officers can spend resistance funds" + Target_de_de "Nur Offiziere können Mittel des Widerstands ausgeben" Comment "Server refusal from RpcAsk_BuySite's resistance-funds branch when OVT_ResistanceFactionManager.IsOfficer is false. Mirrors the client-side gate that hides OVT_BuySiteResistanceAction from non-officers." DevNote "" Repro "" @@ -14544,14 +15335,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119591 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000013}" { Id "OVT-ProdSite_NotYours" Target_en_us "This is not your site" + Target_de_de "Dieser Standort gehört dir nicht" Comment "Server refusal from RpcAsk_SetSitePrivacy when OVT_ResourceProductionRules.MayTogglePrivacy refuses - the caller is neither the owner nor, on a resistance-owned site, an officer." DevNote "" Repro "" @@ -14560,14 +15353,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119606 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000014}" { Id "OVT-ProdSite_Owned" Target_en_us "This site is owned and does not sell" + Target_de_de "Dieser Standort ist im Besitz und verkauft nichts" Comment "Server refusal from OVT_ResourceRequestComponent.MayBuyFromSite - the ONE place an owned site refuses a SITE_BUY. A privately owned site does not sell its resource; only unowned sites do (requirements section 22). Because Commit re-runs the whole source ladder, a site bought between Begin and Commit refuses here before any money moves." DevNote "" Repro "" @@ -14576,14 +15371,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119628 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F300000001F}" { Id "OVT-ProdSite_Row_BuyPrice" Target_en_us "Price" + Target_de_de "Preis" Comment "Row label in the production-site map info panel for the site's buy price, shown only while the site is unowned. The value is formatted by OVT_MoneyFormat.FormatMoney and needs no key of its own. Cited: OVT_MapLocationProductionSite.c:257." DevNote "" Repro "" @@ -14592,14 +15389,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119622 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F300000001D}" { Id "OVT-ProdSite_Row_Rate" Target_en_us "Output" + Target_de_de "Produktion" Comment "Row label in the production-site map info panel for the site's production rate. Cited: OVT_MapLocationProductionSite.c:233." DevNote "" Repro "" @@ -14608,14 +15407,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119647 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F300000001E}" { Id "OVT-ProdSite_Row_RateValue" Target_en_us "%1 per hour" + Target_de_de "%1 pro Stunde" Comment "Row value in the production-site map info panel for the production rate. ONE %1 - units per in-game hour to one decimal place, because sub-1 rates are supported (a steel mill at 1.5/hour). Cited: OVT_MapLocationProductionSite.c:232." DevNote "" Repro "" @@ -14624,14 +15425,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119668 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F300000001B}" { Id "OVT-ProdSite_Row_Volume" Target_en_us "Volume" + Target_de_de "Volumen" Comment "Row label in the production-site map info panel for the store's used-of-total volume. Cited: OVT_MapLocationProductionSite.c:219." DevNote "" Repro "" @@ -14640,8 +15443,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119659 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -14664,6 +15468,7 @@ StringTable { CustomStringTableItem "{6A8E2F3000000001}" { Id "OVT-ProdSite_Sawmill" Target_en_us "Sawmill" + Target_de_de "Sägewerk" Comment "Site name authored on Prefabs/Production/OVT_ProductionSite_Sawmill.et (OVT_ResourceProductionComponent.m_sSiteName). Shown as the map location's label and in the site's info panel. A map author may override it per placed instance." DevNote "" Repro "" @@ -14672,14 +15477,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119684 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000002}" { Id "OVT-ProdSite_SteelMill" Target_en_us "Steel Mill" + Target_de_de "Stahlwerk" Comment "Site name authored on Prefabs/Production/OVT_ProductionSite_SteelMill.et (OVT_ResourceProductionComponent.m_sSiteName). Shown as the map location's label and in the site's info panel." DevNote "" Repro "" @@ -14688,14 +15495,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119698 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2F3000000004}" { Id "OVT-ProdSite_Storage" Target_en_us "Site Storage" + Target_de_de "Standortlagerraum" Comment "Default holder name for the OVT_ResourceStoreComponent on Prefabs/Production/OVT_ProductionSite_Base.et (m_sDefaultNameKey), and the static UIInfo fallback for OVT_OpenResourceStoreAction on that prefab (:61-70). CORRECTED 2026-08-22 for logistics/resource-production: it does NOT appear as the runtime action label. A site's store has a bounded capacity, so OVT_OpenResourceStoreAction.RefreshLabel:153 takes the #OVT-Resource_Cargo branch and the action reads 'Cargo (0.0 / 20.0 m3)'; the branch at :149 that would draw this name is UNLIMITED-capacity holders only. Where it IS drawn: the shared transfer screen's destination picker, via store.GetDisplayName()." DevNote "" Repro "" @@ -14704,8 +15513,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782119713 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -14866,6 +15676,7 @@ StringTable { CustomStringTableItem "{6A8E2D200000000B}" { Id "OVT-Progress-StorageClearing" Target_en_us "Emptying container" + Target_de_de "Behälter wird geleert" Comment "Progress caption while the officer clear job deletes a container's vanilla inventory. The storage ledger is not touched." DevNote "" Repro "" @@ -14874,15 +15685,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787443200 + Modified 1782125105 Author "Claude" - LastChanged "Lemmi" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2D200000000C}" { Id "OVT-Progress-StorageExporting" Target_en_us "Selling storage at the port" + Target_de_de "Lagerraum am Hafen verkaufen" Comment "Progress caption while a storage export job sells a holder's ledger at a port." DevNote "" Repro "" @@ -14891,15 +15703,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787443200 + Modified 1782125113 Author "Claude" - LastChanged "Lemmi" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2D200000000D}" { Id "OVT-Progress-StorageMoving" Target_en_us "Moving storage" + Target_de_de "Lagerraum wird verschoben" Comment "Progress caption while a storage job moves items from one holder's ledger into another's. No entities are spawned." DevNote "" Repro "" @@ -14908,15 +15721,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787443200 + Modified 1782125131 Author "Claude" - LastChanged "Lemmi" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2D200000000E}" { Id "OVT-Progress-StorageStoring" Target_en_us "Moving items into storage" + Target_de_de "Gegenstände werden in den Lagerraum verschoben" Comment "Progress caption while a storage job converts a holder's vanilla inventory into its own ledger." DevNote "" Repro "" @@ -14925,15 +15739,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787443200 + Modified 1782125149 Author "Claude" - LastChanged "Lemmi" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2D200000000F}" { Id "OVT-Progress-StorageTaking" Target_en_us "Taking items from storage" + Target_de_de "Gegenstände werden aus dem Lagerraum entnommen" Comment "Progress caption while a storage job spawns items out of a holder's ledger into its vanilla inventory." DevNote "" Repro "" @@ -14942,9 +15757,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787443200 + Modified 1782125165 Author "Claude" - LastChanged "Lemmi" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -15058,6 +15873,7 @@ StringTable { CustomStringTableItem "{6A8E2F3000000018}" { Id "OVT-Public" Target_en_us "Public" + Target_de_de "Öffentlich" Comment "Status row value in the production-site map info panel when the site is owned and not private - anyone in the resistance may open its storage. Cited: OVT_MapLocationProductionSite.c BuildInfoRows." DevNote "" Repro "" @@ -15066,8 +15882,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125177 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -15154,6 +15971,7 @@ StringTable { CustomStringTableItem "{6B8C3F5E00000001}" { Id "OVT-QRFBattleFor" Target_en_us "Battle for" + Target_de_de "Kampf um" Comment "HUD battle panel HEADER, shown for BOTH kinds of battle - a player-initiated QRF and an occupying-faction counter-attack. %1 is the place being fought over: a town name for a town battle, the base's own m_sName for a base battle, resolved client-side from the replicated m_iCurrentQRFTown / m_iCurrentQRFBase indices. Keep it a NOUN PHRASE naming the place, not a sentence - it sits above a smaller countdown line and is read at a glance. ADDED 2026-08-20." DevNote "" Repro "" @@ -15162,15 +15980,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1780955573 + Modified 1782125192 Author "Aaron Static" - LastChanged "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5E00000002}" { Id "OVT-QRFBattleForUnknown" Target_en_us "Battle in progress" + Target_de_de "Gefecht läuft" Comment "HUD battle panel header FALLBACK, used when the client cannot resolve which place is being fought over. Reached when the battle's town/base index has not arrived - most likely a player who joined mid-battle, because m_iCurrentQRFBase / m_iCurrentQRFTown are replicated on change but are NOT in the JIP catch-up payload (pre-existing debt, see the epic's JIP/client divergence entry). Deliberately says nothing about WHERE: a wrong place name is worse than no place name. ADDED 2026-08-20." DevNote "" Repro "" @@ -15179,13 +15998,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125202 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B8C3F5E00000003}" { Id "OVT-QRFScoringBeginsIn" Target_en_us "Scoring will begin in" + Target_de_de "Wertung beginnt in" Comment "HUD battle panel SUB-LINE, under the OVT-QRFBattleFor header, smaller text. A M:SS clock is appended after it (OVT_QRFSiege.FormatClock), so the rendered line reads 'Scoring will begin in 14:32'. Used for BOTH battle kinds - a player-initiated QRF counts down two minutes and a counter-attack's muster window counts down fifteen, in the same format. Do NOT reintroduce a separate minutes-only wording: the single M:SS form exists precisely so one countdown never changes its unit partway through. ADDED 2026-08-20, superseding the display use of OVT-BattleStartsIn / OVT-BattleStartsInMinutes." DevNote "" Repro "" @@ -15194,7 +16016,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125214 Author "Aaron Static" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -15226,6 +16050,24 @@ StringTable { ImageLink "" Hidden 0 } + CustomStringTableItem "{6A8E2F1000000003}" { + Id "OVT-RealEstate_BaseProperty" + Target_en_us "Part of the base" + Target_de_de "Teil der Basis" + Comment "Real estate menu - a warehouse standing inside a base's close range belongs to whoever holds the base: it is neither for sale nor for rent, and access follows base control (OVT_RealEstateManagerComponent.IsBaseWarehouse)" + DevNote "" + Repro "" + ActorGender NONE + Terminology NONE + Status DEVELOPMENT_PENDING + NonTranslatable 0 + MaxLength 0 + Modified 1782125226 + Author "Claude" + LastChanged "lemmi" + ImageLink "" + Hidden 0 + } CustomStringTableItem "{6A7E1A2D00000003}" { Id "OVT-RealEstate_CantAfford" Target_en_us "You cannot afford this" @@ -15283,23 +16125,6 @@ StringTable { ImageLink "" Hidden 0 } - CustomStringTableItem "{6A8E2F1000000003}" { - Id "OVT-RealEstate_BaseProperty" - Target_en_us "Part of the base" - Comment "Real estate menu - a warehouse standing inside a base's close range belongs to whoever holds the base: it is neither for sale nor for rent, and access follows base control (OVT_RealEstateManagerComponent.IsBaseWarehouse)" - DevNote "" - Repro "" - ActorGender NONE - Terminology NONE - Status DEVELOPMENT_PENDING - NonTranslatable 0 - MaxLength 0 - Modified 1755993600 - Author "Claude" - LastChanged "" - ImageLink "" - Hidden 0 - } CustomStringTableItem "{6A7E1A2D00000002}" { Id "OVT-RealEstate_NotForSale" Target_en_us "This property is not for sale" @@ -15820,6 +16645,7 @@ StringTable { CustomStringTableItem "{6B1C3D0000007100}" { Id "OVT-Recruit_QuoteCovered" Target_en_us "Covered by nearby warehouse stock: $%1" + Target_de_de "Durch Bestand im nahegelegenen Lagerhaus abgedeckt: $%1" Comment "OVT_LoadoutsContext.OnRecruitQuote - the equipped-recruit quote's second line, showing how much of the gear cost nearby warehouse stock covers. %1 is the covered value in dollars." DevNote "" Repro "" @@ -15828,8 +16654,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125243 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -16150,6 +16977,7 @@ StringTable { CustomStringTableItem "{6B1C3D0000007108}" { Id "OVT-Recruits_ConvertAtCap" Target_en_us "Your High Command roster is full" + Target_de_de "Dein Kader des Oberen Kommandos ist voll" Comment "OVT_RecruitsContext.OnHCResult - hint on RESULT_CONVERT_AT_CAP." DevNote "" Repro "" @@ -16158,14 +16986,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125263 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D000000710A}" { Id "OVT-Recruits_ConvertFailed" Target_en_us "The conversion failed" + Target_de_de "Die Überführung ist fehlgeschlagen" Comment "OVT_RecruitsContext.OnHCResult - fallback hint for any refusal without a specific message." DevNote "" Repro "" @@ -16174,14 +17004,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125277 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007104}" { Id "OVT-Recruits_ConvertGroupMessage" Target_en_us "Convert this group to a High Command group? This is one-way. They leave your recruit roster and cap, and their names, XP and skills stop being tracked. They keep their bodies and equipment." + Target_de_de "Diese Gruppe in eine Gruppe des Oberen Kommandos überführen? Dieser Vorgang ist endgültig. Die Rekruten werden aus deinem Rekrutenkader entfernt und zählen nicht mehr zu dessen Obergrenze. Ihre Namen, EP und Fähigkeiten werden nicht mehr erfasst. Körper und Ausrüstung bleiben erhalten" Comment "CONVERT_RECRUIT_GROUP dialog body - must name the one-way consequence (implementation.md T9.5)." DevNote "" Repro "" @@ -16190,14 +17022,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125302 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007103}" { Id "OVT-Recruits_ConvertGroupTitle" Target_en_us "Convert to High Command" + Target_de_de "An das Obere Kommando überführen" Comment "CONVERT_RECRUIT_GROUP dialog title, DialogPresets_Campaign.conf." DevNote "" Repro "" @@ -16206,14 +17040,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125319 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007106}" { Id "OVT-Recruits_ConvertNeedsBody" Target_en_us "That recruit has no body in the world to convert" + Target_de_de "Für diesen Rekruten existiert kein Körper in der Spielwelt, der überführt werden kann" Comment "OVT_RecruitsContext - disabled reason on the Convert button when the selected recruit has no spawned body." DevNote "" Repro "" @@ -16222,14 +17058,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125333 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007105}" { Id "OVT-Recruits_ConvertNeedsInactive" Target_en_us "Select a parked recruit to convert their group" + Target_de_de "Wähle einen stationierten Rekruten aus, um seine Gruppe zu überführen" Comment "OVT_RecruitsContext - disabled reason on the Convert button when the selected recruit is active rather than parked." DevNote "" Repro "" @@ -16238,14 +17076,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125345 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007109}" { Id "OVT-Recruits_ConvertNoGroup" Target_en_us "Those recruits are not parked as a group" + Target_de_de "Diese Rekruten sind nicht als Gruppe stationiert" Comment "OVT_RecruitsContext.OnHCResult - hint on RESULT_NO_RECRUIT_GROUP." DevNote "" Repro "" @@ -16254,14 +17094,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125380 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007107}" { Id "OVT-Recruits_ConvertSuccess" Target_en_us "Group converted to High Command" + Target_de_de "Gruppe an das Obere Kommando überführt" Comment "OVT_RecruitsContext.OnHCResult - hint on RESULT_OK." DevNote "" Repro "" @@ -16270,14 +17112,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125403 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007102}" { Id "OVT-Recruits_ConvertToHC" Target_en_us "Convert to High Command" + Target_de_de "An das Obere Kommando überführen" Comment "RecruitsMenu.layout - label of the button that converts a parked recruit group into a High Command group." DevNote "" Repro "" @@ -16286,8 +17130,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125415 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -16321,6 +17166,7 @@ StringTable { CustomStringTableItem "{6B1C3D0000007101}" { Id "OVT-Recruits_GroupHeader" Target_en_us "Group (%1)" + Target_de_de "Gruppe (%1)" Comment "OVT_RecruitsContext - sub-header over one cluster of parked recruits in the inactive section. %1 is the number of recruits in that group." DevNote "" Repro "" @@ -16329,8 +17175,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125427 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -16514,6 +17361,7 @@ StringTable { CustomStringTableItem "{6B4E1F0000000002}" { Id "OVT-Refuel_CannotAfford" Target_en_us "You cannot afford fuel here" + Target_de_de "Du kannst dir den Treibstoff hier nicht leisten" Comment "Reason shown under the greyed-out Refuel action when the player cannot pay for the next tick of fuel. Returned by the modded SCR_RefuelAtSupportStationAction.GetInvalidPerformReasonString for ESupportStationReasonInvalid.OVT_CANNOT_AFFORD_FUEL (550), which the modded SCR_FuelSupportStationComponent.IsValid sets. LENGTH BUDGET: one short line - it renders in the same slot as vanilla's #AR-SupportStation_ActionInvalid_* reasons and must not wrap. 'here' is load-bearing: fuel truck, jerrycan and Fuel Depot refuels are free, so the refusal is about THIS pump and not about fuel in general. TONE: states the fact, gives no instruction." DevNote "" Repro "" @@ -16522,9 +17370,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1782125444 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -16656,16 +17504,20 @@ StringTable { CustomStringTableItem "{6B70D00000000036}" { Id "OVT-RepairStructure" Target_en_us "Repair Structure" + Target_de_de "Bauwerk reparieren" Comment "Held user action on a RUINED Overthrow buildable (guard tower, tent, ramp, bunker, garage, helipad, fuel depot). Drawn by OVT_RepairStructureAction.GetActionNameScript as '#OVT-RepairStructure ($500)' - the price is appended in code, so this string must NOT contain a parameter or a price of its own. The action only exists on a ruin; repairing costs the build price scaled by the difficulty's repairCostMultiplier (half on Easy/Normal, three quarters on Hard, full at Extreme/Insane). Distinct from #OVT-RepairVehicle, which is the maintenance ramp's vehicle repair." - Modified 1787184000 + Modified 1782125468 Author "Claude" + LastChanged "lemmi" } CustomStringTableItem "{6B70D00000000037}" { Id "OVT-RepairStructure-Repaired" Target_en_us "Structure repaired" + Target_de_de "bauwerk repariert" Comment "Notification sent to the paying player only when a repair succeeds (preset tag 'RepairedStructure' in Configs/overthrowBroadcastMessages.conf, sent from OVT_ResistanceFactionManager.RepairStructure). NO PARAMETERS - the player is standing at the structure and just watched it come back, so naming it would add nothing. A server-initiated repair (playerId -1: the occupying faction's repair module, the admin command) sends nothing at all." - Modified 1787184000 + Modified 1782125478 Author "Claude" + LastChanged "lemmi" } CustomStringTableItem "{59D0228A8D1E8EE6}" { Id "OVT-RepairVehicle" @@ -16693,6 +17545,7 @@ StringTable { CustomStringTableItem "{6A8E2F300000001A}" { Id "OVT-Resistance" Target_en_us "Resistance" + Target_de_de "Widerstand" Comment "Owner row value in the production-site map info panel when the site was bought with resistance funds (the owner field holds the literal \"resistance\"). Everyone in the resistance may open such a site's storage, and its privacy toggle is officer-gated. Cited: OVT_MapLocationProductionSite.c BuildInfoRows." DevNote "" Repro "" @@ -16701,8 +17554,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1782125484 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -16846,6 +17700,7 @@ StringTable { CustomStringTableItem "{6A8E2E200000001C}" { Id "OVT-Resource_BadRequest" Target_en_us "That order was malformed" + Target_de_de "Dieser Befehl war fehlerhaft" Comment "Server refusal for a checkout whose streamed lines do not match what was announced: a short or long stream, an unknown resource index, a quantity outside the allowed bounds, or the same resource listed twice. Refused once, whole, at commit." DevNote "" Repro "" @@ -16854,15 +17709,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125498 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000032}" { Id "OVT-Resource_BuildFromSite" Target_en_us "Build" + Target_de_de "Bauen" Comment "Fallback name of the 'finish this construction site' user action, authored on the prefab. The action rewrites it every second with #OVT-Resource_BuildNow or #OVT-Resource_ShortOf, so this only shows if that rewrite fails." DevNote "" Repro "" @@ -16871,15 +17727,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1782125526 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000033}" { Id "OVT-Resource_BuildNow" Target_en_us "Build %1" + Target_de_de "Bauen %1" Comment "Name of the 'finish this construction site' user action when the crate piles around it cover every requirement. %1 is the building's name, e.g. 'Build Guard Tower'." DevNote "" Repro "" @@ -16888,9 +17745,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1782125523 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -16914,6 +17771,7 @@ StringTable { CustomStringTableItem "{6A8E2E2000000036}" { Id "OVT-Resource_BuildRequires" Target_en_us "Requires Resources" + Target_de_de "Benötigt Ressourcen" Comment "One-line note on a build menu card marking a buildable that costs materials as well as money. CHANGED 2026-08-22 from the heading 'Requires:' plus a per-resource row list, which was tall enough to push the card's description over the preview image. The quantities are no longer shown here - a player reads them on the construction site's own Requirements action, which is where they can act on them." DevNote "" Repro "" @@ -16922,15 +17780,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1782125540 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000004}" { Id "OVT-Resource_Cargo" Target_en_us "Cargo" + Target_de_de "Fracht" Comment "Name of the 'open resource store' action on a truck. Rendered with the volume appended by OVT_OpenResourceStoreAction, e.g. 'Cargo (12.5 / 20 m³)'." DevNote "" Repro "" @@ -16939,15 +17798,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125558 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000000F}" { Id "OVT-Resource_Cement" Target_en_us "Cement" + Target_de_de "Zement" Comment "Resource name, from Configs/Resistance/resources.conf. Bagged cement; dense and mid-priced." DevNote "" Repro "" @@ -16956,15 +17816,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125561 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000010}" { Id "OVT-Resource_Cement_Description" Target_en_us "Bagged cement. Heavy for its volume, and needed wherever something has to stay put." + Target_de_de "Zement in Säcken. Für sein Volumen schwer und überall dort erforderlich, wo etwas dauerhaft verankert werden muss." Comment "Details-panel description of the Cement resource on the transfer screen, from Configs/Resistance/resources.conf." DevNote "" Repro "" @@ -16973,15 +17834,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125580 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000030}" { Id "OVT-Resource_ConstructionSite" Target_en_us "Construction Site" + Target_de_de "Baustelle" Comment "Generic name of a construction site, used as the requirements dialog title and as the build action's label when the site cannot name the building it will become (a buildables.conf edit removed its entry)." DevNote "" Repro "" @@ -16990,15 +17852,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1782125596 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000003}" { Id "OVT-Resource_DestGround" Target_en_us "Drop on the ground" + Target_de_de "Auf dem Boden ablegen" Comment "Last entry in the resource transfer screen's destination picker, in Take mode only. Drops the cart as a crate pile at the player's feet; the pile merges into an existing pile if one is close enough." DevNote "" Repro "" @@ -17007,15 +17870,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125610 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000021}" { Id "OVT-Resource_DropFailed" Target_en_us "The load could not be put down" + Target_de_de "Die Ladung konnte nicht abgestellt werden" Comment "Server refusal for a drop on the ground: the crate pile could not be spawned or merged. The pile is filled before the source is emptied, so a failure here costs the player nothing." DevNote "" Repro "" @@ -17024,15 +17888,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125623 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000022}" { Id "OVT-Resource_Failed" Target_en_us "That did not work" + Target_de_de "Das hat nicht funktioniert" Comment "Server refusal of last resort when a resource request failed for a reason with no more specific key. Every refusal answers with a key; a silent return would be the defect." DevNote "" Repro "" @@ -17041,15 +17906,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125645 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000013}" { Id "OVT-Resource_Hardware" Target_en_us "Hardware" + Target_de_de "Eisenwaren" Comment "Resource name, from Configs/Resistance/resources.conf. Fittings and fixings; the smallest and most valuable resource." DevNote "" Repro "" @@ -17058,15 +17924,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125659 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000014}" { Id "OVT-Resource_Hardware_Description" Target_en_us "Fittings, fixings, wiring and tools. Takes almost no space and costs the most." + Target_de_de "Beschläge, Befestigungsmaterial, Verkabelung und Werkzeuge. Braucht fast keinen Platz und kostet am meisten." Comment "Details-panel description of the Hardware resource on the transfer screen, from Configs/Resistance/resources.conf." DevNote "" Repro "" @@ -17075,15 +17942,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125676 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000027}" { Id "OVT-Resource_Illegal" Target_en_us "Smuggling that needs the right contacts" + Target_de_de "Schmuggel, der die richtigen Kontakte erfordert" Comment "Refusal for a port trade in a resource flagged illegal when the player has neither the IllegalImports permission nor a port the resistance controls. Also the reason on a disabled Export row for such a resource." DevNote "" Repro "" @@ -17092,15 +17960,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787702400 + Modified 1782125699 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000019}" { Id "OVT-Resource_Locked" Target_en_us "That is locked" + Target_de_de "Das ist gesperrt" Comment "Server refusal from OVT_ResourceRequestComponent.MayUseHolder step 5: the holder is a locked vehicle, or is owned by another player. Also used by the open-store action's client-side mirror of the same rule." DevNote "" Repro "" @@ -17109,15 +17978,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125707 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000024}" { Id "OVT-Resource_NeedTruck" Target_en_us "You need a vehicle with cargo space" + Target_de_de "Du brauchst ein Fahrzeug mit Frachtraum" Comment "Reason shown on a DISABLED resource row in the port's Import list when the player is on foot, or in a vehicle that carries no resource store. The row is listed rather than hidden so the player can see the price and learn what is missing (requirement C). Also the client-side refusal when a resource import is accepted with no store to put it in." DevNote "" Repro "" @@ -17126,15 +17996,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787702400 + Modified 1782125729 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000001A}" { Id "OVT-Resource_NoAccess" Target_en_us "You do not have access to this warehouse" + Target_de_de "Du hast keinen Zugriff auf dieses Lagerhaus" Comment "Server refusal from OVT_ResourceRequestComponent.MayUseHolder step 6: the holder is a warehouse this player may not use. Also used by the open-store action's client-side mirror of the same rule." DevNote "" Repro "" @@ -17143,15 +18014,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125741 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000000B}" { Id "OVT-Resource_NoCargoSpace" Target_en_us "No room in the destination" + Target_de_de "Kein Platz am Ziel" Comment "Shown on a dimmed row of the resource transfer screen: the destination cannot take even one unit of that resource. The row is listed rather than hidden so the reason is visible." DevNote "" Repro "" @@ -17160,15 +18032,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125753 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000001B}" { Id "OVT-Resource_NoCatalogue" Target_en_us "The resource catalogue is unavailable" + Target_de_de "Der Ressourcenkatalog ist nicht verfügbar" Comment "Server refusal when the resource manager or its catalogue could not be reached while running a checkout. A configuration failure, not a player one; it aborts the order rather than moving nothing quietly." DevNote "" Repro "" @@ -17177,15 +18050,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125771 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000000A}" { Id "OVT-Resource_NoDestination" Target_en_us "Pick a destination" + Target_de_de "Wähle ein Ziel" Comment "Resource transfer screen checkout refusal: the destination picker is empty, so there is nowhere for the cart to go (Take) or nothing to take it from (Put). Disables Accept." DevNote "" Repro "" @@ -17194,15 +18068,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125782 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000028}" { Id "OVT-Resource_NoMoney" Target_en_us "You cannot afford that" + Target_de_de "Du kannst dir das nicht leisten" Comment "Server refusal at commit for a PORT_IMPORT whose whole-cart cost exceeds the player's money. The cart is refused entire; nothing is clamped and nothing is bought." DevNote "" Repro "" @@ -17211,15 +18086,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787702400 + Modified 1782125797 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000020}" { Id "OVT-Resource_NoPilePrefab" Target_en_us "Dropping resources is not configured" + Target_de_de "Das Ablegen von Ressourcen ist nicht konfiguriert" Comment "Server refusal for a drop on the ground: no crate pile prefab is wired on the resource manager. A configuration failure, refused before anything leaves the source holder." DevNote "" Repro "" @@ -17228,15 +18104,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125813 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000015}" { Id "OVT-Resource_NoPlayer" Target_en_us "You are not a player here" + Target_de_de "Du bist hier kein Spieler" Comment "Server refusal from OVT_ResourceRequestComponent.MayUseHolder step 1: the request arrived with no resolvable player identity. Should never be seen in normal play; it names the failure rather than dropping the request silently." DevNote "" Repro "" @@ -17245,15 +18122,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125832 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000001F}" { Id "OVT-Resource_NoPosition" Target_en_us "There is nowhere to put it down" + Target_de_de "Es gibt keinen Platz, um es abzulegen" Comment "Server refusal for a drop on the ground: the caller's position could not be resolved, so the crate pile has nowhere to land. Refused before anything leaves the source holder." DevNote "" Repro "" @@ -17262,15 +18140,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125851 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000002F}" { Id "OVT-Resource_NoSite" Target_en_us "That is not a construction site" + Target_de_de "Das ist keine Baustelle" Comment "Server refusal from OVT_ResourceRequestComponent.RpcAsk_BuildFromSite. Shown as a hint when the entity a build request names is not a construction site - normally because the site was demolished between the click and the request arriving." DevNote "" Repro "" @@ -17279,15 +18158,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787788800 + Modified 1782125856 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000001E}" { Id "OVT-Resource_NoSpace" Target_en_us "Not enough room in the destination" + Target_de_de "Nicht genügend Platz am Ziel" Comment "Server refusal at commit: the destination cannot take the whole cart. The client shows #OVT-Resource_NoSpaceVolume with the figures before it gets this far; this is the answer when the destination filled up in between." DevNote "" Repro "" @@ -17296,15 +18176,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125902 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000000C}" { Id "OVT-Resource_NoSpaceVolume" Target_en_us "Not enough room: %1 m³ ordered, %2 m³ free" + Target_de_de "Nicht genügend Platz: %1 m³ bestellt, %2 m³ frei" Comment "Resource transfer screen checkout refusal when the whole cart will not fit. %1 is the cart's volume, %2 what the destination can still take, both in cubic metres to one decimal. The WHOLE cart is refused - nothing is ever clamped to a partial load." DevNote "" Repro "" @@ -17313,15 +18194,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782125916 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000016}" { Id "OVT-Resource_NoStore" Target_en_us "That cannot hold resources" + Target_de_de "Das kann keine Ressourcen aufnehmen" Comment "Server refusal from OVT_ResourceRequestComponent.MayUseHolder step 2: the holder named by the request carries no resource store. Also raised client-side when the holder has no RplComponent and therefore cannot be named across the network." DevNote "" Repro "" @@ -17330,15 +18212,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782126177 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000029}" { Id "OVT-Resource_NotAtPort" Target_en_us "You are not at a port" + Target_de_de "Du bist nicht an einem Hafen" Comment "Server refusal for a PORT_IMPORT or PORT_EXPORT when the caller or the holder is outside the port radius. The screen cannot be opened away from a port, so this answers a player who drove off mid-order." DevNote "" Repro "" @@ -17347,15 +18230,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787702400 + Modified 1782126199 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000001D}" { Id "OVT-Resource_NotEnough" Target_en_us "There is not that much left" + Target_de_de "So viel ist nicht mehr übrig" Comment "Server refusal at commit: the source holder no longer holds everything the cart ordered, because somebody else took it first. The WHOLE cart is refused - nothing is ever clamped to what is left." DevNote "" Repro "" @@ -17364,15 +18248,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782126220 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000025}" { Id "OVT-Resource_NotImportable" Target_en_us "That cannot be bought here" + Target_de_de "Das kann hier nicht gekauft werden" Comment "Server refusal at commit for a PORT_IMPORT line naming a resource the catalogue does not flag importable. The Import list never offers one, so this only answers a hand-crafted or stale request." DevNote "" Repro "" @@ -17381,15 +18266,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787702400 + Modified 1782126247 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000026}" { Id "OVT-Resource_NotSellable" Target_en_us "That cannot be sold here" + Target_de_de "Das kann hier nicht verkauft werden" Comment "Refusal for a PORT_EXPORT line naming a resource the catalogue does not know. Also the reason on a disabled Export row for a resource the vehicle carries that the port will not buy." DevNote "" Repro "" @@ -17398,15 +18284,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787702400 + Modified 1782126255 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000005}" { Id "OVT-Resource_OpenStore" Target_en_us "Resources" + Target_de_de "Ressourcen" Comment "Fallback name of the 'open resource store' action when the holder's store cannot be read (a worldless preview instance, or a prefab whose component failed to initialise). The normal labels are #OVT-Resource_Cargo for a truck and the holder's own name for a pile or a warehouse." DevNote "" Repro "" @@ -17415,15 +18302,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782126280 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000007}" { Id "OVT-Resource_PerUnit" Target_en_us "%1 m³ · %2 kg per unit" + Target_de_de "%1 m³ · %2 kg pro Einheit" Comment "Details-panel line on the resource transfer screen. %1 is the cubic metres one unit occupies (two decimals), %2 its display weight in kilograms. Volume gates capacity; weight is display only." DevNote "" Repro "" @@ -17432,15 +18320,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782126296 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000006}" { Id "OVT-Resource_Pile" Target_en_us "Crate pile" + Target_de_de "Kistenstapel" Comment "Display name of a dropped resource crate pile: the action label, the destination picker entry and the transfer screen title. Rendered with the volume appended, e.g. 'Crate pile (4.4 m³)'." DevNote "" Repro "" @@ -17449,15 +18338,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782126311 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000002D}" { Id "OVT-Resource_PriceAbove" Target_en_us "Prices are above normal here" + Target_de_de "Die Preise liegen hier über dem Normalwert" Comment "Drift readout on the port screen's resource details, live price between 105 and 150 percent of the config base." DevNote "" Repro "" @@ -17466,15 +18356,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787702400 + Modified 1782126325 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000002B}" { Id "OVT-Resource_PriceBelow" Target_en_us "Prices are below normal here" + Target_de_de "Die Preise liegen hier unter dem Normalwert" Comment "Drift readout on the port screen's resource details, live price between 75 and 95 percent of the config base." DevNote "" Repro "" @@ -17483,15 +18374,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787702400 + Modified 1782126351 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000002E}" { Id "OVT-Resource_PriceFarAbove" Target_en_us "Prices are far above normal here" + Target_de_de "Die Preise liegen hier weit über dem Normalwert" Comment "Drift readout on the port screen's resource details, live price over 150 percent of the config base." DevNote "" Repro "" @@ -17500,15 +18392,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787702400 + Modified 1782126379 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000002A}" { Id "OVT-Resource_PriceFarBelow" Target_en_us "Prices are far below normal here" + Target_de_de "Die Preise liegen hier weit unter dem Normalniveau" Comment "Drift readout on the port screen's resource details, shown when the live price is under 75 percent of the config base. Text and not an icon (D10): FillDetails has no image channel and the row image is already the resource icon." DevNote "" Repro "" @@ -17517,15 +18410,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787702400 + Modified 1782126395 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000002C}" { Id "OVT-Resource_PriceNormal" Target_en_us "Prices are about normal here" + Target_de_de "Die Preise sind hier ziemlich normal." Comment "Drift readout on the port screen's resource details, live price within 5 percent of the config base either way." DevNote "" Repro "" @@ -17534,15 +18428,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787702400 + Modified 1782126408 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000002}" { Id "OVT-Resource_Put" Target_en_us "Put" + Target_de_de "Setzen" Comment "Mode 2 label on the resource transfer screen (OVT_ResourceTransferContext.BuildModes). Put moves resources INTO the holder you opened, out of a nearby holder chosen in the destination picker." DevNote "" Repro "" @@ -17551,15 +18446,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787616000 + Modified 1782126418 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B70D00000000055}" { Id "OVT-Resource_RepairNeedsMaterials" Target_en_us "Not enough materials nearby" + Target_de_de "Nicht genügend Materialien in der Nähe" Comment "The Repair action's cannot-perform reason when the short resource cannot be named, and the body of the RepairNeedsMaterials notification the server sends when it refuses a repair for want of materials." DevNote "" Repro "" @@ -17570,13 +18466,14 @@ StringTable { MaxLength 0 Modified 1787788800 Author "Claude" - LastChanged "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B70D00000000053}" { Id "OVT-Resource_RepairRequirements" Target_en_us "Repair Requirements" + Target_de_de "Reparatur Anforderung" Comment "Name of the user action on a RUINED buildable that opens the repair materials readout. The ruin's counterpart to OVT-Resource_SiteRequirements; shown only when the buildable authors m_aResourceRequirements (OVT_RepairRequirementsAction.CanBeShownScript)." DevNote "" Repro "" @@ -17594,6 +18491,7 @@ StringTable { CustomStringTableItem "{6B70D00000000054}" { Id "OVT-Resource_RepairShortOf" Target_en_us "Not enough" + Target_de_de "Nicht genug" Comment "Prefix of the Repair action's cannot-perform reason, followed by the translated name of the first resource the nearby crate piles are short of, e.g. 'Not enough Cement'. OVT_RepairRequirementsReader.ShortReason." DevNote "" Repro "" @@ -17604,13 +18502,14 @@ StringTable { MaxLength 0 Modified 1787788800 Author "Claude" - LastChanged "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000017}" { Id "OVT-Resource_Ruined" Target_en_us "That is wrecked" + Target_de_de "Das ist zerstört" Comment "Server refusal from OVT_ResourceRequestComponent.MayUseHolder step 3: the holder is a ruin. Ruined structures offer no actions at all, so this is the race where it was destroyed with the screen open." DevNote "" Repro "" @@ -17621,13 +18520,14 @@ StringTable { MaxLength 0 Modified 1787616000 Author "Claude" - LastChanged "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000035}" { Id "OVT-Resource_Short" Target_en_us "short" + Target_de_de "kurz" Comment "One word, used inside a construction site's requirements readout to mark a line that is not covered, e.g. 'Timber: 12 / 40 (short 28)'. The numbers around it are built in code." DevNote "" Repro "" @@ -17638,13 +18538,14 @@ StringTable { MaxLength 0 Modified 1787788800 Author "Claude" - LastChanged "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000034}" { Id "OVT-Resource_ShortOf" Target_en_us "Need %1 more %2" + Target_de_de "Noch %1 %2 benötigt" Comment "Name of the 'finish this construction site' user action when the nearby crate piles are short. %1 is how many units are missing, %2 the resource's name, e.g. 'Need 28 more Timber'. Only the FIRST shortfall is named; the requirements action lists them all." DevNote "" Repro "" @@ -17655,13 +18556,14 @@ StringTable { MaxLength 0 Modified 1787788800 Author "Claude" - LastChanged "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000031}" { Id "OVT-Resource_SiteRequirements" Target_en_us "Requirements" + Target_de_de "Anforderung" Comment "Name of the user action on a construction site that opens the requirements readout, and the placeholder message of the SITE_REQUIREMENTS dialog before OVT_SiteRequirementsAction fills it in." DevNote "" Repro "" @@ -17672,13 +18574,14 @@ StringTable { MaxLength 0 Modified 1787788800 Author "Claude" - LastChanged "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000011}" { Id "OVT-Resource_Steel" Target_en_us "Steel" + Target_de_de "Stahl" Comment "Resource name, from Configs/Resistance/resources.conf. Steel stock; compact, heavy and expensive." DevNote "" Repro "" @@ -17689,13 +18592,14 @@ StringTable { MaxLength 0 Modified 1787616000 Author "Claude" - LastChanged "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000012}" { Id "OVT-Resource_Steel_Description" Target_en_us "Girders, plate and rebar. Compact, very heavy, and not cheap." + Target_de_de "Träger, Stahlbleche und Bewehrungsstahl. Kompakt, sehr schwer und nicht günstig." Comment "Details-panel description of the Steel resource on the transfer screen, from Configs/Resistance/resources.conf." DevNote "" Repro "" @@ -17706,7 +18610,7 @@ StringTable { MaxLength 0 Modified 1787616000 Author "Claude" - LastChanged "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } @@ -17747,6 +18651,7 @@ StringTable { CustomStringTableItem "{6A8E2E2000000001}" { Id "OVT-Resource_Take" Target_en_us "Take" + Target_de_de "Entnehmen" Comment "Mode 1 label on the resource transfer screen (OVT_ResourceTransferContext.BuildModes). Take moves resources OUT of the holder you opened, into a nearby holder or onto the ground. Paired with #OVT-Resource_Put; the vocabulary is deliberately not Load/Unload, which logistics/storage already uses on its ammo-box actions." DevNote "" Repro "" @@ -17764,6 +18669,7 @@ StringTable { CustomStringTableItem "{6A8E2E200000000D}" { Id "OVT-Resource_Timber" Target_en_us "Timber" + Target_de_de "Bauholz" Comment "Resource name, from Configs/Resistance/resources.conf. Sawn wood; the cheapest and bulkiest construction resource." DevNote "" Repro "" @@ -17774,13 +18680,14 @@ StringTable { MaxLength 0 Modified 1787616000 Author "Claude" - LastChanged "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E200000000E}" { Id "OVT-Resource_Timber_Description" Target_en_us "Sawn planks and beams. Bulky and cheap - the backbone of every field structure." + Target_de_de "Gesägte Bretter und Balken. Sperrig und günstig - das Rückgrat jedes Feldbauwerks." Comment "Details-panel description of the Timber resource on the transfer screen, from Configs/Resistance/resources.conf." DevNote "" Repro "" @@ -17791,13 +18698,14 @@ StringTable { MaxLength 0 Modified 1787616000 Author "Claude" - LastChanged "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2E2000000018}" { Id "OVT-Resource_TooFar" Target_en_us "You are too far away" + Target_de_de "Du bist zu weit entfernt" Comment "Server refusal from OVT_ResourceRequestComponent.MayUseHolder step 4: the caller has walked or driven out of the holder's use radius since the screen was opened." DevNote "" Repro "" @@ -17808,7 +18716,7 @@ StringTable { MaxLength 0 Modified 1787616000 Author "Claude" - LastChanged "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } @@ -17999,57 +18907,6 @@ StringTable { ImageLink "" Hidden 0 } - CustomStringTableItem "{6BB4000000000210}" { - Id "OVT-CaptureTower" - Target_en_us "Capture Radio Tower" - Comment "Hold action on occupying radio towers, beside Sabotage Radio Tower" - DevNote "" - Repro "" - ActorGender NONE - Terminology NONE - Status DEVELOPMENT_PENDING - NonTranslatable 0 - MaxLength 0 - Modified 1756080000 - Author "Claude" - LastChanged "Claude" - ImageLink "" - Hidden 0 - } - CustomStringTableItem "{6BB4000000000211}" { - Id "OVT-CaptureTower_Wanted" - Target_en_us "You cannot capture a tower while wanted" - Comment "Disabled reason on the Capture Radio Tower action" - DevNote "" - Repro "" - ActorGender NONE - Terminology NONE - Status DEVELOPMENT_PENDING - NonTranslatable 0 - MaxLength 0 - Modified 1756080000 - Author "Claude" - LastChanged "Claude" - ImageLink "" - Hidden 0 - } - CustomStringTableItem "{6BB4000000000212}" { - Id "OVT-CaptureTower_Defended" - Target_en_us "Enemy soldiers are still defending this tower" - Comment "Disabled reason on the Capture Radio Tower action" - DevNote "" - Repro "" - ActorGender NONE - Terminology NONE - Status DEVELOPMENT_PENDING - NonTranslatable 0 - MaxLength 0 - Modified 1756080000 - Author "Claude" - LastChanged "Claude" - ImageLink "" - Hidden 0 - } CustomStringTableItem "{6A7D9B2E00000029}" { Id "OVT-SabotageTower" Target_en_us "Sabotage Radio Tower" @@ -18987,6 +19844,7 @@ StringTable { CustomStringTableItem "{6A8E2E2000000023}" { Id "OVT-ShopCategory_Resources" Target_en_us "Resources" + Target_de_de "Ressourcen" Comment "Browse-category tab holding the bulk construction resources (timber, cement, steel, hardware) on the port screen, in both Import and Export. OVT_PortContext.CATEGORY_RESOURCES is 9, one past OVT_ShopCategory.OTHER, so the tab sorts last. Returned by OVT_PortContext.GetCategoryLabelKey ahead of OVT_ShopCategoryHelper, which does not know this id." DevNote "" Repro "" @@ -18997,7 +19855,7 @@ StringTable { MaxLength 0 Modified 1787702400 Author "Claude" - LastChanged "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } @@ -19201,7 +20059,7 @@ StringTable { CustomStringTableItem "{5DA486E3F0541B08}" { Id "OVT-SkillEffect_Stealth" Target_en_us "%1% Reduction in distance seen from" - Target_de_de "%1 % geringere Sichtentfernung" + Target_de_de "%1% geringere Sichtentfernung" Target_ru_ru "%1% Уменьшение дальности видимости" Target_ko_kr "%1% 에서부터 보이는 거리 감소" Target_zh_cn "%1%距离减少" @@ -19311,37 +20169,42 @@ StringTable { CustomStringTableItem "{6B5D000000000001}" { Id "OVT-Sleep" Target_en_us "Sleep" + Target_de_de "Schlafen" Modified 1780790400 Author "Aaron Static" - LastChanged "Aaron Static" + LastChanged "Lemmi" } CustomStringTableItem "{6B5D000000000002}" { Id "OVT-SleepCooldown" Target_en_us "You need to stay awake longer before sleeping again" + Target_de_de "Du musst länger wach bleiben, bevor du wieder schlafen kannst" Modified 1780790400 Author "Aaron Static" - LastChanged "Aaron Static" + LastChanged "Lemmi" } CustomStringTableItem "{6B5D000000000003}" { Id "OVT-SleepQRF" Target_en_us "You cannot sleep while an attack is underway" + Target_de_de "Du kannst nicht schlafen, solange ein Angriff läuft" Modified 1780790400 Author "Aaron Static" - LastChanged "Aaron Static" + LastChanged "Lemmi" } CustomStringTableItem "{6B5D000000000004}" { Id "OVT-SleepWanted" Target_en_us "You cannot sleep while you are wanted" + Target_de_de "Du kannst nicht schlafen, solange du gesucht wirst" Modified 1780790400 Author "Aaron Static" - LastChanged "Aaron Static" + LastChanged "Lemmi" } CustomStringTableItem "{6B5D000000000005}" { Id "OVT-SleptWell" Target_en_us "You slept for 8 hours" + Target_de_de "Du hast 8 Stunden geschlafen" Modified 1780790400 Author "Aaron Static" - LastChanged "Aaron Static" + LastChanged "Lemmi" } CustomStringTableItem "{59CC0DA6C7151F8E}" { Id "OVT-SoldierCost" @@ -19554,7 +20417,7 @@ StringTable { Id "OVT-StabilityMod_StrongEconomy" Target_en_us "Strong Economy" Target_fr_fr "Economie fleurissante" - Target_de_de "Starke Wirtschaft" + Target_de_de "Florierende Wirtschaft" Target_ru_ru "Сильная экономика" Target_ko_kr "번영하는 경제" Target_zh_cn "经济实力雄厚" @@ -19596,16 +20459,11 @@ StringTable { ImageLink "" Hidden 0 } - CustomStringTableItem "{6B0F11B0AA01C030}" { - Id "OVT-StartNewGame" - Target_en_us "Start New Game" - Target_fr_fr "Nouvelle partie" - Target_de_de "Neues Spiel starten" - Target_ru_ru "Начать новую игру" - Target_ko_kr "새 게임 시작" - Target_zh_cn "开始新游戏" - Target_uk_ua "Почати нову гру" - Comment "" + CustomStringTableItem "{6B3D000000000210}" { + Id "OVT-StartingTown" + Target_en_us "Starting Town" + Target_de_de "Start Ort" + Comment "Label of the starting-town spinner on the campaign-setup screen (UI/Layouts/Menu/StartGameMenu.layout, StartingTownSpinner). Picks the town players get their first house in; the dedicated-server equivalent is the startingTown key in Overthrow_Config.json." DevNote "" Repro "" ActorGender NONE @@ -19613,16 +20471,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1785715200 + Modified 1779760268 Author "Aaron Static" LastChanged "Lemmi" ImageLink "" Hidden 0 } - CustomStringTableItem "{6A248E7D184926DA}" { - Id "OVT-StartUprising" - Target_en_us "Start Uprising" - Comment "Name of the Start Uprising user action on Prefabs/Controllers/OVT_TownController.et:46. RESTORED 2026-08-18. This entry was silently LOST when the string table was re-saved from Workbench: the preceding item {6B09A1C0E4D50121} (OVT-GMIcon_Tooltip_NoData) was missing its closing brace at HEAD, so this one was parsed as NESTED INSIDE it, and the re-save that fixed the brace dropped the orphan. Restored verbatim from the last commit, at top level, in alphabetical order. Do not nest it again." + CustomStringTableItem "{6B3D000000000211}" { + Id "OVT-StartingTown_Random" + Target_en_us "Random" + Target_de_de "Zufällig" + Comment "First entry of the starting-town spinner on the campaign-setup screen, and the default - the behaviour every campaign had before the spinner existed. Every other entry is a town name straight off the map and is not translated." DevNote "" Repro "" ActorGender NONE @@ -19630,16 +20489,22 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1780783911 + Modified 1779760268 Author "Aaron Static" - LastChanged "Aaron Static" + LastChanged "Lemmi" ImageLink "" Hidden 0 } - CustomStringTableItem "{6B3D000000000210}" { - Id "OVT-StartingTown" - Target_en_us "Starting Town" - Comment "Label of the starting-town spinner on the campaign-setup screen (UI/Layouts/Menu/StartGameMenu.layout, StartingTownSpinner). Picks the town players get their first house in; the dedicated-server equivalent is the startingTown key in Overthrow_Config.json." + CustomStringTableItem "{6B0F11B0AA01C030}" { + Id "OVT-StartNewGame" + Target_en_us "Start New Game" + Target_fr_fr "Nouvelle partie" + Target_de_de "Neues Spiel starten" + Target_ru_ru "Начать новую игру" + Target_ko_kr "새 게임 시작" + Target_zh_cn "开始新游戏" + Target_uk_ua "Почати нову гру" + Comment "" DevNote "" Repro "" ActorGender NONE @@ -19647,15 +20512,17 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1785715200 Author "Aaron Static" - LastChanged "Aaron Static" + LastChanged "Lemmi" ImageLink "" Hidden 0 } - CustomStringTableItem "{6B3D000000000211}" { - Id "OVT-StartingTown_Random" - Target_en_us "Random" - Comment "First entry of the starting-town spinner on the campaign-setup screen, and the default - the behaviour every campaign had before the spinner existed. Every other entry is a town name straight off the map and is not translated." + CustomStringTableItem "{6A248E7D184926DA}" { + Id "OVT-StartUprising" + Target_en_us "Start Uprising" + Target_de_de "Aufstand beginnen" + Comment "Name of the Start Uprising user action on Prefabs/Controllers/OVT_TownController.et:46. RESTORED 2026-08-18. This entry was silently LOST when the string table was re-saved from Workbench: the preceding item {6B09A1C0E4D50121} (OVT-GMIcon_Tooltip_NoData) was missing its closing brace at HEAD, so this one was parsed as NESTED INSIDE it, and the re-save that fixed the brace dropped the orphan. Restored verbatim from the last commit, at top level, in alphabetical order. Do not nest it again." DevNote "" Repro "" ActorGender NONE @@ -19663,8 +20530,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Author "Aaron Static" - LastChanged "Aaron Static" + Modified 1779760268 + Author "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } @@ -19694,6 +20562,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000010}" { Id "OVT-Storage_BadRequest" Target_en_us "That storage request was not valid" + Target_de_de "Diese Lagerraumanfrage war ungültig" Comment "Storage request refused - the checkout was malformed, arrived short, named an operation that carries no cart lines, or named a source and destination that do not go together." DevNote "" Repro "" @@ -19702,7 +20571,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787443200 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19711,6 +20580,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000001}" { Id "OVT-Storage_Busy" Target_en_us "Another storage operation is already running" + Target_de_de "Ein anderer Lagervorgang läuft bereits" Comment "Storage request refused - the player already has a storage job in flight, or the batch engine is not available. One job per player." DevNote "" Repro "" @@ -19719,7 +20589,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787356800 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19728,6 +20598,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000016}" { Id "OVT-Storage_ClearInventory" Target_en_us "Clear inventory" + Target_de_de "Inventar leeren" Comment "Officer-only user action on an ammo box: empties the holder's VANILLA inventory and never its storage ledger. This is how the leftovers a transfer refuses get discarded." DevNote "" Repro "" @@ -19736,7 +20607,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787529600 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19745,6 +20616,7 @@ StringTable { CustomStringTableItem "{6A8E2D200000001C}" { Id "OVT-Storage_DestinationInventory" Target_en_us "This container" + Target_de_de "Dieser Behälter" Comment "First entry in the Open Storage destination picker: the holder's own vanilla inventory, i.e. spawn the items back into the box or vehicle you are standing at." DevNote "" Repro "" @@ -19753,7 +20625,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787529600 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19762,6 +20634,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000002}" { Id "OVT-Storage_Failed" Target_en_us "Storage request failed" + Target_de_de "Lagerraumanfrage fehlgeschlagen" Comment "Storage request refused for a reason the player cannot act on - the server could not identify the caller, or the holder has no ledger." DevNote "" Repro "" @@ -19770,7 +20643,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787356800 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19779,6 +20652,7 @@ StringTable { CustomStringTableItem "{6A8E2D200000001A}" { Id "OVT-Storage_Loading" Target_en_us "Loading contents..." + Target_de_de "Inhalt wird geladen..." Comment "Standing message on the Open Storage screen while the holder's contents are being pulled from the server. Contents never replicate; the one player looking pulls them on open." DevNote "" Repro "" @@ -19787,7 +20661,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787529600 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19796,6 +20670,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000003}" { Id "OVT-Storage_Locked" Target_en_us "That storage is locked to someone else" + Target_de_de "Dieser Lagerraum ist für jemand anderen gesperrt" Comment "Storage request refused - the vehicle or container is locked and belongs to another player." DevNote "" Repro "" @@ -19804,7 +20679,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787356800 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19813,6 +20688,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000004}" { Id "OVT-Storage_NameInvalid" Target_en_us "A storage name must be 1 to 32 characters" + Target_de_de "Ein Lagerraumname muss 1 bis 32 Zeichen lang sein" Comment "Rename storage refused - the name was empty or longer than 32 characters. Enforced on the server." DevNote "" Repro "" @@ -19821,7 +20697,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787356800 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19830,6 +20706,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000005}" { Id "OVT-Storage_NoAccess" Target_en_us "You do not have access to that warehouse" + Target_de_de "Du hast keinen Zugriff auf dieses Lagerhaus" Comment "Storage request refused - the warehouse building is not owned, rented or accessible to this player." DevNote "" Repro "" @@ -19838,7 +20715,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787356800 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19847,6 +20724,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000006}" { Id "OVT-Storage_NoCapacity" Target_en_us "That container has no storage" + Target_de_de "Dieser Behälter hat keinen Lagerraum" Comment "Storage request refused - the holder's capacity resolved to zero, which is what an illegal or armed vehicle gets." DevNote "" Repro "" @@ -19855,7 +20733,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787356800 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19864,6 +20742,7 @@ StringTable { CustomStringTableItem "{6A8E2D200000001B}" { Id "OVT-Storage_NoDestination" Target_en_us "Choose where these items should go" + Target_de_de "Wähle, wohin diese Gegenstände verschoben werden sollen" Comment "Open Storage checkout refused before any request is sent - no destination is selected. Fit is deliberately NOT checked here; the server reports a shortfall instead." DevNote "" Repro "" @@ -19872,7 +20751,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787529600 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19881,6 +20760,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000011}" { Id "OVT-Storage_NotAtPort" Target_en_us "You must be at a port to sell storage" + Target_de_de "Du musst dich an einem Hafen befinden, um aus dem Lagerraum zu verkaufen" Comment "Storage export refused - either the player or the holder is too far from a port." DevNote "" Repro "" @@ -19889,7 +20769,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787443200 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19898,6 +20778,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000007}" { Id "OVT-Storage_NotFound" Target_en_us "That storage no longer exists" + Target_de_de "Dieser Lagerraum existiert nicht mehr" Comment "Storage request refused - the holder could not be resolved on the server, or it carries no storage component." DevNote "" Repro "" @@ -19906,7 +20787,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787356800 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19915,6 +20796,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000012}" { Id "OVT-Storage_NothingToMove" Target_en_us "There is nothing to move" + Target_de_de "Es gibt nichts zu verschieben" Comment "Storage request refused - the holder is empty, or every line of the order clamped to zero against what the ledger actually holds." DevNote "" Repro "" @@ -19923,7 +20805,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787443200 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19932,6 +20814,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000008}" { Id "OVT-Storage_NotOfficer" Target_en_us "Only officers can do that" + Target_de_de "Das können nur Offiziere" Comment "Storage request refused - clearing a container's vanilla inventory is officer-only." DevNote "" Repro "" @@ -19940,7 +20823,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787356800 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19949,6 +20832,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000013}" { Id "OVT-Storage_Open" Target_en_us "Storage" + Target_de_de "Lagerraum" Comment "Open Storage user action label on an ammo box, a vehicle door and a warehouse. The holder's replicated item count is appended by the action as " DevNote "" Repro "" @@ -19957,7 +20841,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787529600 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19966,6 +20850,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000015}" { Id "OVT-Storage_Rename" Target_en_us "Rename storage" + Target_de_de "Lagerraum umbennenen" Comment "User action on an ammo box, a vehicle door and a warehouse: opens the rename dialog. The name replicates and shows in action labels, the destination picker and the map." DevNote "" Repro "" @@ -19974,7 +20859,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787529600 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -19983,6 +20868,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000018}" { Id "OVT-Storage_RenameMessage" Target_en_us "Enter a new name for this storage (1-32 characters)" + Target_de_de "Gib einen neuen Namen für diesen Lagerraum ein (1–32 Zeichen)" Comment "Message above the edit box in the storage rename dialog. The length rule is enforced by the server, not only here." DevNote "" Repro "" @@ -19991,7 +20877,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787529600 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20000,6 +20886,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000017}" { Id "OVT-Storage_RenameTitle" Target_en_us "Rename Storage" + Target_de_de "Lagerraum umbennenen" Comment "Title of the storage rename dialog. Overrides the recruit-rename preset's own title, which the dialog is otherwise reused from." DevNote "" Repro "" @@ -20008,7 +20895,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787529600 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20017,6 +20904,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000009}" { Id "OVT-Storage_Ruined" Target_en_us "That building is ruined" + Target_de_de "Dieses Gebäude ist zerstört" Comment "Storage request refused - the holder has been destroyed and cannot be used until it is repaired." DevNote "" Repro "" @@ -20025,7 +20913,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787356800 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20034,6 +20922,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000019}" { Id "OVT-Storage_Take" Target_en_us "Take" + Target_de_de "Entnehmen" Comment "The single mode label on the Open Storage transfer screen, shown in the screen title. Open Storage has one mode, so no mode buttons are drawn." DevNote "" Repro "" @@ -20042,7 +20931,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787529600 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20051,6 +20940,7 @@ StringTable { CustomStringTableItem "{6A8E2D200000000A}" { Id "OVT-Storage_TooFar" Target_en_us "You are too far from that storage" + Target_de_de "Du bist zu weit von diesem Lagerraum entfernt." Comment "Storage request refused - the player is not standing near the holder they asked to act on." DevNote "" Repro "" @@ -20059,7 +20949,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787356800 + Modified 1779760268 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20068,6 +20958,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000014}" { Id "OVT-Storage_TransferAll" Target_en_us "Transfer all to storage" + Target_de_de "Alles in den Lagerraum übertragen" Comment "User action on an ammo box and a vehicle door: converts the holder's whole vanilla inventory into its storage ledger. Part-used magazines are deliberately left behind." DevNote "" Repro "" @@ -20076,7 +20967,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787529600 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20338,6 +21229,7 @@ StringTable { CustomStringTableItem "{6A248E7DE9D0DBC4}" { Id "OVT-SupportTooLow" Target_en_us "Not enough support in this town" + Target_de_de "Nicht genügend Unterstützung in dieser Ortschaft" Comment "Reason shown under the greyed-out Start Uprising action, set by OVT_StartUprisingAction.c:39 SetCannotPerformReason. RESTORED 2026-08-18. This entry was silently LOST when the string table was re-saved from Workbench: the preceding item {6B09A1C0E4D50121} (OVT-GMIcon_Tooltip_NoData) was missing its closing brace at HEAD, so this one was parsed as NESTED INSIDE it, and the re-save that fixed the brace dropped the orphan. Restored verbatim from the last commit, at top level, in alphabetical order. Do not nest it again." DevNote "" Repro "" @@ -20346,9 +21238,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1780783937 - Author "Aaron Static" - LastChanged "Aaron Static" + Modified 1779758244 + Author "Claude" + LastChanged "Lemmi" ImageLink "" Hidden 0 } @@ -20569,6 +21461,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D00000001}" { Id "OVT-Transfer_Accept" Target_en_us "Accept" + Target_de_de "Annehmen" Comment "Transfer screen footer - commits the whole order (the cart) in one press" DevNote "" Repro "" @@ -20577,7 +21470,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20586,6 +21479,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D00000002}" { Id "OVT-Transfer_Accepted" Target_en_us "Sent %1 item(s) in %2 line(s)" + Target_de_de "Sende %1 Gegenstände in %2 Positionen" Comment "Transfer screen - confirmation after Accept. %1 is the total item count, %2 the number of cart lines" DevNote "" Repro "" @@ -20594,7 +21488,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20603,6 +21497,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D00000003}" { Id "OVT-Transfer_Add1" Target_en_us "Add 1" + Target_de_de "1 hinzu." Comment "Transfer screen footer - adds one of the focused list row to the order" DevNote "" Repro "" @@ -20611,7 +21506,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20620,6 +21515,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D00000004}" { Id "OVT-Transfer_Add10" Target_en_us "Add 10" + Target_de_de "10 hinzu." Comment "Transfer screen footer - adds ten of the focused list row to the order" DevNote "" Repro "" @@ -20628,7 +21524,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20637,6 +21533,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D00000005}" { Id "OVT-Transfer_AddAll" Target_en_us "Add all" + Target_de_de "Alles hinzugefügen" Comment "Transfer screen footer - fills the order line for the focused row up to its maximum. Hidden where adding a whole stack is not offered" DevNote "" Repro "" @@ -20645,7 +21542,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20654,6 +21551,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D00000006}" { Id "OVT-Transfer_CartEmpty" Target_en_us "Nothing added yet" + Target_de_de "Noch nichts hinzugefügt" Comment "Transfer screen - shown in place of the order list while the order is empty" DevNote "" Repro "" @@ -20662,7 +21560,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20671,6 +21569,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D00000007}" { Id "OVT-Transfer_CategoryAll" Target_en_us "All" + Target_de_de "Alles" Comment "Transfer screen - the always-present first category tab, meaning no category filter" DevNote "" Repro "" @@ -20679,7 +21578,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20688,6 +21587,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000020}" { Id "OVT-Transfer_DestinationLabel" Target_en_us "Send to" + Target_de_de "Senden an" Comment "Transfer screen - the label drawn beside the destination picker. Overrides vanilla WLib_SpinBox's placeholder m_sLabel \"SpinBox\", which would otherwise render verbatim." DevNote "" Repro "" @@ -20696,15 +21596,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" - LastChanged "" + LastChanged "Lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2C1D00000014}" { Id "OVT-Transfer_DestinationVehicle" Target_en_us "Vehicle" + Target_de_de "Fahrzeug" Comment "Transfer screen destination picker - the vehicle the player is currently occupying" DevNote "" Repro "" @@ -20713,7 +21614,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20722,6 +21623,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D00000008}" { Id "OVT-Transfer_Mode1" Target_en_us "Mode 1" + Target_de_de "Modus 1" Comment "Transfer screen header - placeholder label for the first mode button. Replaced at runtime by the screen's own mode name" DevNote "" Repro "" @@ -20730,7 +21632,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20739,6 +21641,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D00000009}" { Id "OVT-Transfer_Mode2" Target_en_us "Mode 2" + Target_de_de "Modus 2" Comment "Transfer screen header - placeholder label for the second mode button. Replaced at runtime by the screen's own mode name" DevNote "" Repro "" @@ -20747,7 +21650,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20756,6 +21659,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D0000000A}" { Id "OVT-Transfer_NextCategory" Target_en_us "Next" + Target_de_de "Weiter" Comment "Transfer screen header - steps to the next category tab, wrapping at the end" DevNote "" Repro "" @@ -20764,7 +21668,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20773,6 +21677,7 @@ StringTable { CustomStringTableItem "{6A8E2D2000000021}" { Id "OVT-Transfer_NoSpace" Target_en_us "Not enough room in the vehicle" + Target_de_de "Nicht genügend Platz im Fahrzeug" Comment "Transfer screen checkout refusal - the cart holds more items than the destination's storage can still take. Disables Accept rather than letting the server clamp the purchase and charge for a partial delivery." DevNote "" Repro "" @@ -20781,15 +21686,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" - LastChanged "" + LastChanged "Lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6A8E2C1D0000000B}" { Id "OVT-Transfer_NoVehicle" Target_en_us "Get in a vehicle to receive this" + Target_de_de "Steige in ein Fahrzeug, um dies zu erhalten" Comment "Transfer screen - the order cannot be sent because the player is not in a vehicle to put it in" DevNote "" Repro "" @@ -20798,7 +21704,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20807,6 +21713,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D0000000C}" { Id "OVT-Transfer_PrevCategory" Target_en_us "Previous" + Target_de_de "Zurück" Comment "Transfer screen header - steps to the previous category tab, wrapping at the start" DevNote "" Repro "" @@ -20815,7 +21722,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20824,6 +21731,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D0000000D}" { Id "OVT-Transfer_Remove1" Target_en_us "Remove 1" + Target_de_de "Entferne 1" Comment "Transfer screen footer - takes one off the focused order line. Same button as Add 1, relabelled" DevNote "" Repro "" @@ -20832,7 +21740,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20841,6 +21749,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D0000000E}" { Id "OVT-Transfer_Remove10" Target_en_us "Remove 10" + Target_de_de "Entferne 10" Comment "Transfer screen footer - takes ten off the focused order line. Same button as Add 10, relabelled" DevNote "" Repro "" @@ -20849,7 +21758,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20858,6 +21767,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D0000000F}" { Id "OVT-Transfer_RemoveAll" Target_en_us "Remove all" + Target_de_de "Entferne alles" Comment "Transfer screen footer - drops the focused order line entirely. Same button as Add all, relabelled" DevNote "" Repro "" @@ -20866,7 +21776,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20875,6 +21785,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D00000010}" { Id "OVT-Transfer_SummaryEmpty" Target_en_us "Nothing ordered yet" + Target_de_de "Noch nichts bestellt" Comment "Transfer screen checkout - the running total while the order is empty" DevNote "" Repro "" @@ -20883,7 +21794,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20892,6 +21803,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D00000011}" { Id "OVT-Transfer_SummaryPrice" Target_en_us "Total %1 in %2 line(s)" + Target_de_de "Gesamt %1 in %2 Positionen" Comment "Transfer screen checkout - running total when the value column is money. %1 is the formatted cost, %2 the number of order lines" DevNote "" Repro "" @@ -20900,7 +21812,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20909,6 +21821,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D00000012}" { Id "OVT-Transfer_SummaryQuantity" Target_en_us "%1 item(s) in %2 line(s)" + Target_de_de "%1 Gegenstände in %2 Positionen" Comment "Transfer screen checkout - running total when the value column is a stock count. %1 is the total item count, %2 the number of order lines" DevNote "" Repro "" @@ -20917,7 +21830,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -20926,6 +21839,7 @@ StringTable { CustomStringTableItem "{6A8E2C1D00000013}" { Id "OVT-Transfer_Title" Target_en_us "Transfer" + Target_de_de "Übertragen" Comment "Transfer screen - window title when the screen does not name its own mode" DevNote "" Repro "" @@ -20934,7 +21848,7 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1787270400 + Modified 1779758244 Author "Claude" LastChanged "Lemmi" ImageLink "" @@ -21166,6 +22080,7 @@ StringTable { CustomStringTableItem "{6B4E1F300000000B}" { Id "OVT-Tutorial_FuelDepotBuilt_Body" Target_en_us "A fuel depot stores 10,000 litres and arrives empty, so it has no fuel to give until it is filled. A fuel truck parked alongside can be drained into it using the depot's own actions, and after that it refuels vehicles parked beside it for free." + Target_de_de "Ein Treibstoffdepot fasst 10.000 Liter und ist nach der Errichtung zunächst leer, sodass es erst nach dem Befüllen Kraftstoff ausgeben kann. Ein daneben abgestellter Tanklastwagen kann über die Aktionen des Depots in dieses entleert werden. Anschließend können dort abgestellte Fahrzeuge kostenlos betankt werden." Comment "Body of the 'fuel-depot-built' tutorial tip (single page, HUD popup, wraps inside a 460px panel - two short sentences at most). No rich-text markup. Sandbox tone rule: describes the system, never instructs, and assumes nothing about what the player did before. DELIVERY: fires on PLAYER_BUILD filtered to the buildable name 'Fuel Depot' (Configs/Tutorials/fuelDepotBuilt.conf; the filter is matched against OVT_Buildable.m_sName, OVT_TutorialManagerComponent.OnBuild:317-324), so the reader has just finished building one. FACT-CHECKED 2026-08-18 for economy/fuel Phase 5 and re-checked for amendment A2.3 against Prefabs/Structures/Military/FOB/OVT_FuelDepot.et: SCR_FuelNode MaxFuel 10000 (up from 5000), m_fInitialFuelTankState 0 (LITRES, not a fraction - it really does start empty and reports NO_FUEL_TO_GIVE), station m_fRange 7 for 'alongside' and 'beside it', and OVT_FuelSourceComponent m_bFree 1 read by OVT_FuelUtils.IsFreeFuelSource for 'for free'. The fill is done AT THE DEPOT - either its vanilla SCR_RefuelAtSupportStationAction or the fast OVT_FillFuelAction - with the truck's station as the provider, hence 'the depot's own actions'; m_bIgnoreSelf 1 and OVT_FuelUtils.IsStationMountedOn stop it filling itself. Kept consistent with #OVT-Build_FuelDepot_Description and #OVT-FieldManual_Fuel_Text4." DevNote "" Repro "" @@ -21174,15 +22089,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781873394 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B4E1F300000000C}" { Id "OVT-Tutorial_FuelDepotBuilt_Title" Target_en_us "Fuel Depot" + Target_de_de "Treibstofflager" Comment "Title of the 'fuel-depot-built' tutorial tip, shown the first time the player finishes building a fuel depot. Heading of a small HUD popup, so keep it to two or three words. Must match the build-menu name in #OVT-Build_FuelDepot. No markup." DevNote "" Repro "" @@ -21191,15 +22107,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755475200 + Modified 1781873394 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007213}" { Id "OVT-Tutorial_HighCommandFirstOpen_Body" Target_en_us "Groups bought here are yours, and stay yours between sessions. The price covers the recruit cost of every man, the gear each of them needs, and, for a group that comes with a vehicle, that vehicle at its full shop price. Gear already stocked in a registered warehouse within 150 metres is taken off the shelves rather than bought, and the quote shows how much that covered. A purchase also draws supporters out of the nearest town, and there is a cap on how many High Command soldiers one player can hold at once." + Target_de_de "Hier gekaufte Gruppen gehören dir und bleiben auch zwischen Spielsitzungen in deinem Besitz. Der Preis umfasst die Rekrutierungskosten jedes Soldaten, die für ihn benötigte Ausrüstung und bei einer Gruppe mit Fahrzeug zusätzlich den vollen Ladenpreis dieses Fahrzeugs. Ausrüstung, die bereits in einem registrierten Lagerhaus innerhalb von 150 Metern vorhanden ist, wird aus dem Bestand entnommen, anstatt neu gekauft zu werden; im Preisangebot wird angezeigt, welcher Anteil dadurch abgedeckt wurde. Ein Kauf zieht außerdem Unterstützer aus der nächstgelegenen Ortschaft ab. Gleichzeitig gibt es eine Obergrenze dafür, wieviele Soldaten des Oberen Kommandos ein einzelner Spieler gleichzeitig unterhalten kann." Comment "Tutorial popup 'highcommand-first-open' (Configs/Tutorials/highCommandFirstOpen.conf), NONMODAL, shown over the UI the first time a player opens the High Command purchase screen at a barracks radio (MENU_OPENED filtered to OVT_HighCommandPurchaseContext). Page 1 of 2, four sentences, no rich-text markup. TONE: informs, never instructs, and reads correctly whatever the player has already done. Citations: pricing OVT_HighCommandManagerComponent.QuoteEntry:458-500 with OVT_HighCommandRules.PurchaseTotal (OVT_HighCommandRules.c:114-126, the vehicle at full shop price outside the fee multiplier); warehouse coverage OVT_HighCommandRules.WAREHOUSE_RANGE 150.0 (:10) via CollectStores/SplitCoverage at QuoteEntry:485-493, rendered as #OVT-HC_QuoteCovered; supporters SupportersRequired plus the gate-8 refusal; cap OVT_HighCommandRules.DEFAULT_MEMBER_CAP 48 (:15), enforced server-side and configurable, so the number is not quoted; persistence OVT_HighCommandManagerSerializer. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -21208,14 +22125,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873394 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007214}" { Id "OVT-Tutorial_HighCommandFirstOpen_Body2" Target_en_us "Every player's map shows these groups as green symbols, your own at full strength and other players' dimmed. Selecting one shows its owner, stance, destination and status, and a group you own can be sent to the spot under the map cursor or have its stance cycled between Defend, Patrol and Attack. Travel happens in real time, on foot or by road, and carries on while you are offline. Manage Groups, on the main menu, lists what you own." + Target_de_de "Auf der Karte jedes Spielers werden diese Gruppen als grüne Symbole angezeigt. Eigene Gruppen erscheinen mit voller Deckkraft, die Gruppen anderer Spieler hingegen abgeblendet. Wird eine Gruppe ausgewählt, werden ihr Besitzer, ihre Haltung, ihr Ziel und ihr aktueller Status angezeigt. Eine eigene Gruppe kann zu der Position unter dem Kartenzeiger befohlen werden. Außerdem lässt sich ihre Haltung zwischen „Verteidigen“, „Patrouillieren“ und „Angreifen“ wechseln. Die Verlegung erfolgt in Echtzeit, entweder zu Fuß oder über die Straße, und wird auch fortgesetzt, während du offline bist. Unter „Gruppen verwalten“ im Hauptmenü werden alle Gruppen aufgelistet, die dir gehören." Comment "Tutorial popup 'highcommand-first-open' (Configs/Tutorials/highCommandFirstOpen.conf), NONMODAL, shown over the UI the first time a player opens the High Command purchase screen at a barracks radio (MENU_OPENED filtered to OVT_HighCommandPurchaseContext). Page 2 of 2, four sentences, no rich-text markup. TONE: informs, never instructs. Citations: OVT_MapHighCommandLayer.c:21 and :329 (OTHER_OWNER_OPACITY 0.45), :1012-1041 (owner, stance, destination, status lines), OnOrderPressed:1078-1099 (orders to the map cursor), OnStancePressed:1105-1126 (cycles DEFEND, PATROL, ATTACK); stance behaviour OVT_HighCommandManagerComponent.ApplyStance:1044-1077. Real-time travel and offline continuation are D1 in implementation.md section 5: the group is an always-live SCR_AIGroup with its own AI observer (OVT_HighCommandGroupComponent.c:50-67) and nothing on OVT_HighCommandManagerComponent despawns or freezes it when its owner disconnects. Manage Groups: UI/Layouts/Menu/MainMenu.layout:412 with OVT_MainMenuContext.ManageGroups:263. KEYBINDS DELIBERATELY NOT NAMED - the verbs are rebindable actions with keyboard and gamepad sources. FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -21224,14 +22143,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873394 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B1C3D0000007212}" { Id "OVT-Tutorial_HighCommandFirstOpen_Title" Target_en_us "High Command" + Target_de_de "Oberes Kommando" Comment "Tutorial popup 'highcommand-first-open' (Configs/Tutorials/highCommandFirstOpen.conf), NONMODAL, shown over the UI the first time a player opens the High Command purchase screen at a barracks radio (MENU_OPENED filtered to OVT_HighCommandPurchaseContext). Popup title, two words. Matches the Field Manual page title it links to (#OVT-FieldManual_HighCommand_Title). FACT-CHECKED 2026-08-22 against the cited files. No rich-text markup." DevNote "" Repro "" @@ -21240,8 +22161,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 + Modified 1781873394 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } @@ -21722,6 +22644,7 @@ StringTable { CustomStringTableItem "{6B5A2E0100000030}" { Id "OVT-Tutorial_StorageFirstOpen_Body" Target_en_us "Ammo boxes, warehouse buildings and most legal wheeled vehicles keep storage of their own: a list of goods the container holds rather than items sitting loose inside it. The number beside the Storage action is how many are on that list.

Anything on the list can be taken out into this container, where it turns back into items you can pick up, or sent straight onto the list of another container standing within twenty five metres.

Other actions on the container put everything it is carrying onto the list at once, or give it a name of its own." + Target_de_de "Munitionskisten, Lagerhäuser und die meisten legalen Radfahrzeuge verfügen über eigenen Stauraum. Dieser besteht aus einer Liste der darin gelagerten Waren und nicht aus lose im Behälter liegenden Gegenständen. Die Zahl neben der Aktion „Stauraum“ gibt an, wie viele Gegenstände sich auf dieser Liste befinden. Alles auf der Liste kann in diesen Behälter entnommen werden, wo es wieder zu Gegenständen wird, die von Hand aufgenommen werden können. Alternativ können die Waren direkt in die Lagerliste eines anderen Behälters innerhalb von 25 Metern übertragen werden. Weitere Aktionen am Behälter übertragen seinen gesamten mitgeführten Inhalt auf einmal in die Lagerliste oder geben dem Stauraum einen eigenen Namen." Comment "Tutorial popup body for Configs/Tutorials/storageFirstOpen.conf, fired by MENU_OPENED with the filter OVT_StorageContext. RICH TEXT: the two

pairs are paragraph breaks and must be preserved in translation. TONE: informs, never instructs - no imperative and no implied order. FACT-CHECKED 2026-08-21 for logistics/storage Phase 10. Holders and the count: OVT_AmmoBox_Base.et, Warehouse_01_Base.et, Wheeled_Base.et:8-11, and OVT_OpenStorageMenuAction.c:38-51 for the bracketed number. 'This container' spawning real items: OVT_StorageContext.c:191-199 with the TO_INVENTORY step at OVT_StorageRequestComponent.c:1811. Twenty five metres: m_fHolderRadius default 25 at OVT_StorageRequestComponent.c:205, unoverridden on OVT_OverthrowController.et. The last sentence covers Transfer all to storage (OVT_TransferAllToStorageAction.c) and Rename storage (OVT_RenameStorageAction.c) without naming a required order. The longer version is the Field Manual Storage page, which this entry links to through m_sFieldManualTitleKey." DevNote "" Repro "" @@ -21730,15 +22653,16 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781873394 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 } CustomStringTableItem "{6B5A2E0100000031}" { Id "OVT-Tutorial_StorageFirstOpen_Title" Target_en_us "Storage" + Target_de_de "Stauraum" Comment "Tutorial popup title for Configs/Tutorials/storageFirstOpen.conf. One word, matches the in-game action label #OVT-Storage_Open and the Field Manual page title. No rich-text markup." DevNote "" Repro "" @@ -21747,9 +22671,9 @@ StringTable { Status DEVELOPMENT_PENDING NonTranslatable 0 MaxLength 0 - Modified 1755734400 + Modified 1781873394 Author "Claude" - LastChanged "Claude" + LastChanged "lemmi" ImageLink "" Hidden 0 }