diff --git a/.gitignore b/.gitignore index 327719a1..06252dab 100644 --- a/.gitignore +++ b/.gitignore @@ -6,8 +6,8 @@ __pycache__/ .local/ profiles/ -# Generated from installed RHS by compatibility/rhs-1.9/prepare.py --mission. -# Keep upstream source out of Git; include these files in the Workshop package. +# Retired RHS 1.9 overrides: keep archived/generated upstream source out of Git. +# These files must be absent from the active addon and future Workshop packages. /addons/core/Scripts/Game/Editor/Components/EditableEntity/RHS_CAS_EditableEntityComponent.c /addons/core/Scripts/Game/Vehicle/RHS_DestructionTireComponent.c diff --git a/CHANGELOG.md b/CHANGELOG.md index c486fd2e..10c100f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,13 @@ # Changelog -Latest published Workshop version: **0.0.143** +Latest published Workshop version: **0.0.144** + +## 2026-11-06 — Clearer content controls + +- Unified mod, item and vehicle controls under Content, with searchable lists and clear enabled/disabled states. +- Added mod switches that remember individual choices. +- Removed the obsolete RHS 1.9 script overrides so updated RHS scripts are used directly. +- Discover vehicles from installed mods and assign them to garages, yards, traffic, enemy patrols and convoy escort or supply roles. ## 2026-11-06 — Rural traffic and menu scaling diff --git a/README.md b/README.md index 22ee24be..e0a2b390 100644 --- a/README.md +++ b/README.md @@ -48,10 +48,9 @@ Register only this project and its external dependencies in Workbench. Remove st AI/Intel/Map/Chat project entries if you previously added them. RHS: Status Quo, WCS Armaments and WCS BMP-1 (including their dependencies) remain separate, author-supplied mods; see [external dependencies](docs/external-addons.md). -Their assets are referenced. For Reforger 1.9, generate the two pinned RHS script -replacements directly into Escape before testing or packaging a fresh checkout; -see [RHS compatibility preparation](compatibility/rhs-1.9/README.md). Players do -not need a separate RHS compatibility addon. +Their assets are referenced. Use updated RHS Status Quo directly. The old RHS 1.9 +script overrides and standalone compatibility addon are retired; do not generate +or load them. See [RHS compatibility retirement](compatibility/rhs-1.9/README.md). With a shovel equipped, look at a dead body and hold **Bury body** for eight seconds. This removes the corpse and its remaining equipment; loot it first. diff --git a/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c b/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c index fee6f723..9eea92aa 100644 --- a/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c +++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c @@ -29,6 +29,7 @@ class ERR_AdminMenu : ChimeraMenuBase protected bool m_ScrollToEnd; protected int m_LogCursor = -1; + protected void OpenVehicleAddon(string addon) {} static ERR_AdminMenu GetOpenMenu() { if (!GetGame() || !GetGame().GetMenuManager()) return null; @@ -132,7 +133,9 @@ class ERR_AdminMenu : ChimeraMenuBase protected void OnBack() { if (!IsFocused()) return; - foreach (string key : ERR_AdminMenuFields.Keys()) + array editFields = ERR_AdminMenuFields.Keys(); + editFields.InsertAll({"ModsSearch", "ItemsSearch", "VehiclesSearch", "ItemsPresetName"}); + foreach (string key : editFields) { SCR_EditBoxComponent edit = SCR_EditBoxComponent.GetEditBoxComponent(key, GetRootWidget()); if (edit && edit.IsInWriteMode()) return; diff --git a/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuPages.c b/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuPages.c index b1847f6c..b4065188 100644 --- a/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuPages.c +++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuPages.c @@ -28,23 +28,25 @@ enum ERR_AdminPage TELEMETRY = 24, VEHICLES = 25, CHECKPOINTS = 26, + VEHICLE_POOL = 27, + PACKS = 28, } class ERR_AdminMenuPages { - static array Pages() { return {"SettingsPage", "HQPage", "JournalPage", "ModsPage", "FactionsPage", "WorldPage", "IntelPage", "StatusPage", "TerrainsPage", "ItemsPage", "TTSPage", "ForcesPage", "GuardsPage", "SitesPage", "PlanePage", "RecommendationsPage", "WeightsPage", "AllowedItemsPage", "ItemPresetsPage", "AIPage", "StarterPage", "SarkaPage", "DronesPage", "RadioIntelPage", "TelemetryPage", "VehiclesPage", "CheckpointsPage"}; } - static array Navigation() { return {"OpenSettings", "OpenHQ", "OpenJournal", "OpenMods", "OpenFactions", "OpenWorld", "OpenIntel", "OpenStatus", "OpenTerrains", "OpenItems", "OpenTTS", "OpenForces", "OpenGuards", "OpenSites", "OpenPlane", "OpenRecommendations", "OpenWeights", "OpenAllowedItems", "OpenItemPresets", "OpenAI", "OpenStarter", "OpenSarka", "OpenDrones", "OpenRadioIntel", "OpenTelemetry", "OpenVehicles", "OpenCheckpoints"}; } - static array MainButtons() { return {"Main_Mission", "Main_Forces", "Main_HQ", "Main_Intel", "Main_Items", "Main_Mods", "Main_Audio", "Main_Status"}; } - static array Sidebars() { return {"Sidebar_Mission", "Sidebar_Forces", "Sidebar_HQ", "Sidebar_Intel", "Sidebar_Items", "Sidebar_Mods", "Sidebar_Audio", "Sidebar_Status"}; } + static array Pages() { return {"SettingsPage", "HQPage", "JournalPage", "ModsPage", "FactionsPage", "WorldPage", "IntelPage", "StatusPage", "TerrainsPage", "ItemsPage", "TTSPage", "ForcesPage", "GuardsPage", "SitesPage", "PlanePage", "RecommendationsPage", "WeightsPage", "AllowedItemsPage", "ItemPresetsPage", "AIPage", "StarterPage", "SarkaPage", "DronesPage", "RadioIntelPage", "TelemetryPage", "VehiclesPage", "CheckpointsPage", "VehiclePoolPage", "PacksPage"}; } + static array Navigation() { return {"OpenSettings", "OpenHQ", "OpenJournal", "OpenMods", "OpenFactions", "OpenWorld", "OpenIntel", "OpenStatus", "OpenTerrains", "OpenItems", "OpenTTS", "OpenForces", "OpenGuards", "OpenSites", "OpenPlane", "OpenRecommendations", "OpenWeights", "OpenAllowedItems", "OpenItemPresets", "OpenAI", "OpenStarter", "OpenSarka", "OpenDrones", "OpenRadioIntel", "OpenTelemetry", "OpenVehicles", "OpenCheckpoints", "OpenVehiclePool", "OpenPacks"}; } + static array MainButtons() { return {"Main_Mission", "Main_Forces", "Main_HQ", "Main_Intel", "Main_Content", "Main_Audio", "Main_Status"}; } + static array Sidebars() { return {"Sidebar_Mission", "Sidebar_Forces", "Sidebar_HQ", "Sidebar_Intel", "Sidebar_Content", "Sidebar_Audio", "Sidebar_Status"}; } static int Group(int page) { - array groups = {0, 2, 7, 5, 1, 0, 3, 7, 0, 4, 6, 1, 1, 1, 2, 5, 4, 4, 4, 2, 4, 1, 2, 3, 0, 0, 1}; + array groups = {0, 2, 6, 4, 1, 0, 3, 6, 0, 4, 5, 1, 1, 1, 2, 0, 4, 4, 4, 2, 4, 1, 2, 3, 0, 4, 1, 4, 1}; if (page < 0 || page >= groups.Count()) return -1; return groups[page]; } static int MainPage(int group) { - array pages = {ERR_AdminPage.MISSION, ERR_AdminPage.FORCES, ERR_AdminPage.HQ, ERR_AdminPage.INTEL, ERR_AdminPage.ITEMS, ERR_AdminPage.MODS, ERR_AdminPage.SPEECH, ERR_AdminPage.STATUS}; + array pages = {ERR_AdminPage.MISSION, ERR_AdminPage.FORCES, ERR_AdminPage.HQ, ERR_AdminPage.INTEL, ERR_AdminPage.MODS, ERR_AdminPage.SPEECH, ERR_AdminPage.STATUS}; if (group < 0 || group >= pages.Count()) return -1; return pages[group]; } diff --git a/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c b/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c index b6df281f..c80e6429 100644 --- a/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c +++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c @@ -11,6 +11,8 @@ class ERR_AdminSession protected int m_Cursor; protected string m_ItemAddon; protected int m_ItemPage; + protected int m_ItemFilter; + protected string m_ItemQuery; protected float m_LastRequest = -1000; protected float m_LastSnapshot = -1000; protected float m_LastLog = -1000; @@ -68,7 +70,7 @@ class ERR_AdminSession return; } array replies = {}; - if (!StartBackpackCommand(arguments, replies) && !ItemCatalogCommand(arguments, replies) && !JournalCommand(arguments, replies) && !m_Tools.Execute(m_Mode, m_Controller, arguments, replies)) + if (!StartBackpackCommand(arguments, replies) && !ItemCatalogCommand(arguments, replies) && !VehicleCatalogCommand(arguments, replies) && !JournalCommand(arguments, replies) && !m_Tools.Execute(m_Mode, m_Controller, arguments, replies)) m_Mode.Admin().Execute(m_Mode, true, arguments, replies); foreach (string reply : replies) m_Controller.ERR_AdminDeliverReply(m_Token, reply, menu); if (menu) Snapshot(true); @@ -107,6 +109,22 @@ class ERR_AdminSession if (parts.IsEmpty() || parts[0] != "items") return false; int page; ERR_ServerItemCatalog catalog = GetGame().ERR_ServerItems(); catalog.Start(m_Mode); + if (parts.Count() == 4 && parts[1] == "mod" && catalog.Find(parts[2]) && (parts[3] == "0" || parts[3] == "1")) + { + if (GetGame().ERR_ItemSelections().SetSwitch(parts[2], "mod", parts[3] == "1")) replies.Insert("Mod selection saved for future random equipment and civilian vehicles. Individual choices are remembered."); + else replies.Insert("Could not save mod selection. Previous choices retained."); + return true; + } + if (parts.Count() >= 5 && parts[1] == "browse" && catalog.Find(parts[2])) + { + int filter; + if (!ERR_CommandArguments.Integer(parts[3], page) || page < 0 || page > 2730 || !ERR_CommandArguments.Integer(parts[4], filter) || filter < 0 || filter > 2) return true; + string query; + for (int q = 5; q < parts.Count(); q++) { if (!query.IsEmpty()) query += " "; query += parts[q]; } + if (query.Length() > 64) return true; + m_ItemAddon = parts[2]; m_ItemPage = page; m_ItemFilter = filter; m_ItemQuery = query; + return true; + } if (parts.Count() == 4 && parts[1] == "preset") { if (GetGame().ERR_ItemSelections().Preset(parts[2], parts[3])) replies.Insert("Preset " + parts[2] + " completed: " + parts[3] + ". Future random equipment uses the saved selection."); @@ -129,7 +147,7 @@ class ERR_AdminSession } if (parts.Count() != 4 || parts[1] != "list" || !catalog.Find(parts[2]) || !ERR_CommandArguments.Integer(parts[3], page) || page < 0 || page > 2730) { replies.Insert("Choose a loaded server mod in Items, then press Show items."); return true; } - m_ItemAddon = parts[2]; m_ItemPage = page; + m_ItemAddon = parts[2]; m_ItemPage = page; m_ItemFilter = 0; m_ItemQuery = ""; return true; } protected bool JournalCommand(string arguments, array replies) @@ -162,7 +180,8 @@ class ERR_AdminSession if (m_Mode.Discovery()) values.Insert("radioIntelProgress=" + m_Mode.Discovery().RadioIntelStatus()); m_Mode.Admin().Capabilities(values); ERR_RecommendedAddons.Snapshot(m_Mode, values); - GetGame().ERR_ServerItems().Snapshot(m_Mode, values, m_ItemAddon, m_ItemPage); + GetGame().ERR_ServerItems().Snapshot(m_Mode, values, m_ItemAddon, m_ItemPage, m_ItemFilter, m_ItemQuery); + GetGame().ERR_ServerVehicles().Snapshot(values, m_VehicleAddon, m_VehiclePage, m_VehicleFilter, m_VehicleQuery, m_VehicleRole); GetGame().ERR_StartingSupplies().Snapshot(values); m_Mode.Admin().Execute(m_Mode, true, "status", status); m_Controller.ERR_AdminDeliverSnapshot(m_Token, true, values, status); @@ -209,4 +228,38 @@ class ERR_AdminSession m_Tools.Stop(); if (m_Mode) m_Mode.OnStop().Remove(Stop); } + + protected string m_VehicleAddon; + protected int m_VehiclePage; + protected int m_VehicleFilter; + protected int m_VehicleRole; + protected string m_VehicleQuery; + protected bool VehicleCatalogCommand(string arguments, array replies) + { + array parts = {}; arguments.Split(" ", parts, true); + if (parts.IsEmpty() || parts[0] != "vehicles") return false; + ERR_ServerVehicleCatalog catalog = GetGame().ERR_ServerVehicles(); catalog.Start(); + if (parts.Count() == 6 && parts[1] == "role" && catalog.Find(parts[2])) + { + int role; + if (!ERR_CommandArguments.Integer(parts[3], role) || role < 0 || role > 4 || (parts[5] != "0" && parts[5] != "1")) return true; + if (parts[4] != "*" && (!catalog.Contains(parts[2], parts[4]) || (parts[5] == "1" && !catalog.Capable(parts[4], role)))) return true; + if (GetGame().ERR_ItemSelections().SetVehicleRole(parts[2], parts[4], role, parts[5] == "1")) replies.Insert("Vehicle assignment saved for future spawns. Existing vehicles stay."); + else replies.Insert("Could not save assignment. Previous choices retained."); + return true; + } + if (parts.Count() >= 6 && parts[1] == "browse" && catalog.Find(parts[2])) + { + int page, filter, role; + if (!ERR_CommandArguments.Integer(parts[3], page) || page < 0 || page > 2730 || !ERR_CommandArguments.Integer(parts[4], filter) || filter < 0 || filter > 2 || !ERR_CommandArguments.Integer(parts[5], role) || role < 0 || role > 4) return true; + string query; + for (int q = 6; q < parts.Count(); q++) { if (!query.IsEmpty()) query += " "; query += parts[q]; } + if (query.Length() > 64) return true; + m_VehicleAddon = parts[2]; m_VehiclePage = page; m_VehicleFilter = filter; m_VehicleQuery = query; m_VehicleRole = role; + replies.Insert("Vehicle list updated. Assignments apply to future spawns."); + return true; + } + replies.Insert("Choose a mod in Content / Vehicles, then choose a use, then assign vehicles."); + return true; + } } diff --git a/addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c b/addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c index fbbbc001..2807758f 100644 --- a/addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c +++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c @@ -12,12 +12,13 @@ modded class ERR_AdminMenu override void OnMenuOpen() { super.OnMenuOpen(); - Widget list = GetRootWidget().FindAnyWidget("ModList"); + Widget list = GetRootWidget().FindAnyWidget("PackList"); foreach (string pack : ERR_ContentRegistry.Ids()) { Widget row = GetGame().GetWorkspace().CreateWidgets("{F092D45656A8E02B}UI/layouts/ERR/ContentRow.layout", list); if (!row) { Close(); return; } m_ModRows.Set(pack, row); + row.FindAnyWidget("EditItems").SetVisible(false); row.FindAnyWidget("EditVehicles").SetVisible(false); TextWidget label = TextWidget.Cast(row.FindAnyWidget("PackLabel")); if (label) label.SetText(ERR_ContentRegistry.Label(pack)); SCR_ButtonTextComponent enable = SCR_ButtonTextComponent.GetButtonText("Enable", row); diff --git a/addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c b/addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c index da5d7fda..a451f401 100644 --- a/addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c +++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c @@ -41,6 +41,12 @@ class ERR_ItemPreferences for (int i = 0; i < 16; i++) if ("0123456789abcdef".IndexOf(value.Substring(i, 1)) < 0) return false; return true; } + static bool RoleKey(string key) + { + if (key.Length() != 3 && key.Length() != 18) return false; + if (key.Substring(0, 1) != "r" || "01234".IndexOf(key.Substring(1, 1)) < 0) return false; + return key.Substring(2, key.Length() - 2) == "*" || Guid(key.Substring(2, key.Length() - 2)); + } static bool WeightKey(string key) { return key == "w*" || (key.Length() == 17 && key.Substring(0, 1) == "w" && Guid(key.Substring(1, 16))); @@ -67,7 +73,7 @@ class ERR_ItemPreferences { if (parts.Count() != 4 || !Name(parts[0]) || !Guid(parts[1])) return false; if (WeightKey(parts[2])) { if (!WeightValue(parts[3])) return false; } - else if ((parts[2] != "*" && !Guid(parts[2])) || (parts[3] != "0" && parts[3] != "1")) return false; + else if ((parts[2] != "*" && parts[2] != "mod" && parts[2] != "v*" && !RoleKey(parts[2]) && !Guid(parts[2]) && !(parts[2].Length() == 17 && parts[2].StartsWith("v") && Guid(parts[2].Substring(1, 16)))) || (parts[3] != "0" && parts[3] != "1")) return false; } } if (names.Count() > 17) return false; @@ -137,13 +143,91 @@ class ERR_ItemPreferences key = addon + "|*"; return !m_Rules.Contains(key) || m_Rules.Get(key) == 1; } + bool ModEnabled(string addon) + { + string key = addon + "|mod"; + return !m_Rules.Contains(key) || m_Rules.Get(key) == 1; + } + bool VehicleEnabled(string addon, string item) + { + string key = addon + "|v" + item; + if (m_Rules.Contains(key)) return m_Rules.Get(key) == 1; + key = addon + "|v*"; + return !m_Rules.Contains(key) || m_Rules.Get(key) == 1; + } + bool SetSwitch(string addon, string key, bool enabled) + { + if (!Guid(addon) || (key != "mod" && key != "v*" && !(key.Length() == 17 && key.StartsWith("v") && Guid(key.Substring(1, 16))))) return false; + array next = {}; + foreach (string row : m_Records) + { + array parts = {}; row.Split("|", parts, false); + if (parts.Count() == 4 && parts[0] == "active" && parts[1] == addon && (parts[2] == key || (key == "v*" && parts[2].StartsWith("v")))) continue; + next.Insert(row); + } + string value = "0"; if (enabled) value = "1"; + next.Insert("active|" + addon + "|" + key + "|" + value); + return Save(next); + } + bool SetVehicleRole(string addon, string item, int role, bool enabled) + { + if (!Guid(addon) || (item != "*" && !Guid(item)) || role < 0 || role > 4) return false; + string prefix = "r" + role.ToString(), key = prefix + item; + array next = {}; + foreach (string row : m_Records) + { + array parts = {}; row.Split("|", parts, false); + if (parts.Count() == 4 && parts[0] == "active" && parts[1] == addon) + { + if (parts[2] == key || (item == "*" && parts[2].StartsWith(prefix))) continue; + if (enabled && (parts[2] == "v" + item || (item == "*" && parts[2].StartsWith("v")))) continue; + } + next.Insert(row); + } + string value = "0"; if (enabled) value = "1"; + next.Insert("active|" + addon + "|" + key + "|" + value); + if (enabled) next.Insert("active|" + addon + "|v" + item + "|1"); + return Save(next); + } + // -1 means inherit the mission's defaults. Shared-source explicit exclusions win. + int VehicleRole(string addon, string item, int role) + { + string prefix = addon + "|r" + role.ToString(); + if (m_Rules.Contains(prefix + item)) return m_Rules.Get(prefix + item); + if (m_Rules.Contains(prefix + "*")) return m_Rules.Get(prefix + "*"); + return -1; + } + bool AllowsVehicleRole(ResourceName prefab, int role, bool defaultEnabled) + { + if (role < 0 || role > 4 || !AllowsVehicle(prefab)) return false; + string item = ERR_TerrainCatalog.Key(prefab); + bool enabled = defaultEnabled; + array sources = SCR_AddonTool.GetResourceAddons(prefab); + foreach (string project : sources) + { + if (!m_Loaded.Contains(project)) continue; + int rule = VehicleRole(m_Loaded.Get(project), item, role); + if (rule == 0) return false; + if (rule == 1) enabled = true; + } + return enabled; + } + bool AllowsVehicle(ResourceName prefab) + { + string item = ERR_TerrainCatalog.Key(prefab); + if (item.IsEmpty()) return false; + array sources = SCR_AddonTool.GetResourceAddons(prefab); + foreach (string project : sources) + if (m_Loaded.Contains(project) && (!ModEnabled(m_Loaded.Get(project)) || !VehicleEnabled(m_Loaded.Get(project), item))) return false; + return true; + } bool Allows(ResourceName prefab) { string item = ERR_TerrainCatalog.Key(prefab); if (item.IsEmpty()) return true; array sources = SCR_AddonTool.GetResourceAddons(prefab); foreach (string project : sources) - if (m_Loaded.Contains(project) && !Enabled(m_Loaded.Get(project), item)) return false; + if (m_Loaded.Contains(project) && (!ModEnabled(m_Loaded.Get(project)) || !Enabled(m_Loaded.Get(project), item))) return false; return true; } bool Set(string addon, string item, bool enabled) @@ -153,7 +237,7 @@ class ERR_ItemPreferences foreach (string row : m_Records) { array parts = {}; row.Split("|", parts, false); - if (parts.Count() == 4 && parts[0] == "active" && parts[1] == addon && (item == "*" || parts[2] == item) && !WeightKey(parts[2])) continue; + if (parts.Count() == 4 && parts[0] == "active" && parts[1] == addon && (parts[2] == item || (item == "*" && (parts[2] == "*" || Guid(parts[2]))))) continue; next.Insert(row); } string value = "0"; if (enabled) value = "1"; @@ -225,6 +309,6 @@ class ERR_ItemPreferences { foreach (string row : m_Records) if (row != "active" && row.IndexOf("|") < 0) values.Insert("itemPreset=" + row); if (m_ReadOnly) values.Insert("itemsStorage=Read-only: preference file needs repair"); - else values.Insert("itemsStorage=Auto-saved; applies to future random equipment. Presets include selections and probability weights for all mods."); + else values.Insert("itemsStorage=Auto-saved for future spawns. Presets include mod switches, item and vehicle-role choices, and equipment weights."); } } diff --git a/addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c b/addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c index 90a9f0db..8f96017c 100644 --- a/addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c +++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c @@ -131,7 +131,7 @@ modded class ERR_AdminMenu { GetRootWidget().Update(); PrintFormat("ERR MOD MENU: page=%1 rows=%2 saved=%3 active=%4", m_Page, m_ModRows.Count(), m_ModSaved.Count(), m_ModActive.Count()); - if (m_Page != 3 || m_ModRows.Count() != ERR_ContentRegistry.Ids().Count()) return false; + if (m_Page != ERR_AdminPage.PACKS || m_ModRows.Count() != ERR_ContentRegistry.Ids().Count()) return false; foreach (string pack, Widget row : m_ModRows) { TextWidget text = TextWidget.Cast(row.FindAnyWidget("PackState")); @@ -286,7 +286,7 @@ class ERR_NativeAdminMenuProbe Pass("all thirteen setting descriptions fit their native text widgets"); System.MakeScreenshot("$logs:err-admin-open"); if (!menu.ERR_ProbeNavigation(0)) return Fail("Esc entry did not open Mission page with shared navigation"); - menu.ERR_ProbePage(3); + menu.ERR_ProbePage(ERR_AdminPage.PACKS); if (!menu.ERR_ProbeMods()) return Fail("mod rows missing state or collapsed"); Print("ERR MOD CAPTURE READY"); menu.ERR_ProbePage(0); @@ -335,7 +335,7 @@ class ERR_NativeAdminMenuProbe if (m_Mode.Settings().Get("radioDefenceSeconds") != m_RadioSeconds) return Fail("test setting restoration failed"); Pass("test setting restored without resetting menu drafts"); System.MakeScreenshot("$logs:err-admin-hq"); - menu.ERR_ProbePage(3); + menu.ERR_ProbePage(ERR_AdminPage.PACKS); menu.ERR_ProbeMod(!m_RhsSaved); m_Wait = now + 2000; m_Stage = 11; return 0; } diff --git a/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c b/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c index 152df335..67d3a87b 100644 --- a/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c +++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c @@ -2,6 +2,7 @@ class ERR_ServerItem { ResourceName Prefab; string Label; + string SearchLabel; bool Eligible; } class ERR_ServerAddonItems @@ -74,6 +75,7 @@ class ERR_ServerItemCatalog if (addon.Label.IsEmpty()) addon.Label = Clean(addon.Project); m_Addons.Insert(addon); } + SortAddons(m_Addons); Queue(manager.GetEntityCatalogOfType(EEntityCatalogType.ITEM, false)); array all = {}; factions.GetFactionsList(all); foreach (Faction faction : all) @@ -109,6 +111,7 @@ class ERR_ServerItemCatalog item = new ERR_ServerItem(); item.Prefab = prefab; item.Eligible = eligible; item.Label = Clean(entry.GetEntityName()); if (item.Label.IsEmpty()) item.Label = Clean(FilePath.StripPath(prefab.GetPath())); + item.SearchLabel = WidgetManager.Translate(item.Label); m_Seen.Set(key, item); array sources = SCR_AddonTool.GetResourceAddons(prefab); bool attributed; @@ -119,16 +122,51 @@ class ERR_ServerItemCatalog if (m_Cursor >= m_Pending.Count()) { GetGame().GetCallqueue().Remove(Scan); + foreach (ERR_ServerAddonItems sortedAddon : m_Addons) SortItems(sortedAddon.Items); PrintFormat("Reintroduced [server items]: addons=%1 uniqueItems=%2 unattributed=%3 truncated=%4", m_Addons.Count(), m_Seen.Count(), m_Unattributed, m_Truncated); } } + static void SortAddons(array addons) + { + array order = {}; map entries = new map(); + foreach (ERR_ServerAddonItems addon : addons) + { + string key = addon.Label + "|" + addon.Id; key.ToLower(); order.Insert(key); entries.Set(key, addon); + } + order.Sort(); addons.Clear(); + foreach (string key : order) addons.Insert(entries.Get(key)); + } + static void SortItems(array items) + { + array order = {}; map entries = new map(); + foreach (ERR_ServerItem item : items) + { + string key = item.SearchLabel + "|" + ERR_TerrainCatalog.Key(item.Prefab); key.ToLower(); order.Insert(key); entries.Set(key, item); + } + order.Sort(); items.Clear(); + foreach (string key : order) items.Insert(entries.Get(key)); + } + static string Flag(bool value) + { + if (value) return "1"; + return "0"; + } + static bool Matches(string label, string path, bool enabled, int filter, string query) + { + if ((filter == 1 && !enabled) || (filter == 2 && enabled)) return false; + if (query.IsEmpty()) return true; + string haystack = label + " " + path; haystack.ToLower(); query.ToLower(); + array words = {}; query.Split(" ", words, true); + foreach (string word : words) if (!haystack.Contains(word)) return false; + return true; + } static string Share(int tickets, int total) { if (total <= 0 || tickets <= 0) return "0%"; float percent = Math.Round(tickets * 10000.0 / total) / 100.0; return percent.ToString() + "%"; } - void Snapshot(ERR_GameMode mode, array values, string selected, int page) + void Snapshot(ERR_GameMode mode, array values, string selected, int page, int filter = 0, string query = "") { Start(mode); ERR_ItemPreferences preferences = GetGame().ERR_ItemSelections(); @@ -151,7 +189,7 @@ class ERR_ServerItemCatalog foreach (ERR_ServerAddonItems addon : m_Addons) { string defaultEnabled = "0"; if (preferences.Enabled(addon.Id, "*")) defaultEnabled = "1"; - values.Insert("serverMod=" + addon.Id + "|" + addon.Label + "|" + addon.Items.Count().ToString() + "|" + addon.EnabledCount.ToString() + "|" + defaultEnabled); + values.Insert("serverMod=" + addon.Id + "|" + addon.Label + "|" + addon.Items.Count().ToString() + "|" + addon.EnabledCount.ToString() + "|" + defaultEnabled + "|" + Flag(preferences.ModEnabled(addon.Id))); } string state = "Catalog complete"; if (!m_Started || m_Cursor < m_Pending.Count()) state = "Scanning inventory catalogs"; @@ -159,24 +197,28 @@ class ERR_ServerItemCatalog if (m_Unattributed > 0) state += "; " + m_Unattributed.ToString() + " items could not be attributed"; values.Insert("itemsScan=" + state); int extraChance = mode.Settings().Runtime("automaticEquipmentChancePercent"); - values.Insert("weightChance=" + extraChance.ToString() + "% current chance per eligible soldier. The Spawn chances page controls which extra item is chosen; inventory fit can still prevent a grant."); + values.Insert("weightChance=" + extraChance.ToString() + "% current chance per eligible soldier. Advanced weights controls which extra item is chosen; inventory fit can still prevent a grant."); ERR_ServerAddonItems chosen = Find(selected); if (!chosen) return; values.Insert("modWeight=" + chosen.Id + "|" + preferences.WeightSetting(chosen.Id, "*").ToString() + "|" + Share(chosen.TicketWeight, totalWeight)); - int lastPage = Math.Max(0, (chosen.Items.Count() - 1) / PAGE_SIZE); + array matches = {}; + foreach (ERR_ServerItem candidate : chosen.Items) + if (Matches(candidate.SearchLabel, candidate.Prefab.GetPath(), preferences.Allows(candidate.Prefab) && (!mode.Content() || mode.Content().Allows(candidate.Prefab)), filter, query)) matches.Insert(candidate); + int lastPage = Math.Max(0, (matches.Count() - 1) / PAGE_SIZE); page = Math.Clamp(page, 0, lastPage); - values.Insert("itemsPage=" + selected + "|" + page.ToString() + "|" + lastPage.ToString() + "|" + chosen.Items.Count().ToString()); - int end = Math.Min(chosen.Items.Count(), (page + 1) * PAGE_SIZE); + values.Insert("itemsPage=" + selected + "|" + page.ToString() + "|" + lastPage.ToString() + "|" + matches.Count().ToString()); + int end = Math.Min(matches.Count(), (page + 1) * PAGE_SIZE); for (int i = page * PAGE_SIZE; i < end; i++) { - ERR_ServerItem item = chosen.Items[i]; + ERR_ServerItem item = matches[i]; string stateText = "Catalog item; not in automatic equipment pool"; if (item.Eligible) stateText = "Eligible for automatic equipment"; if (mode.Content() && !mode.Content().Allows(item.Prefab)) stateText = "Blocked by current content-pack selection"; string key = ERR_TerrainCatalog.Key(item.Prefab); string enabled = "0"; if (preferences.Enabled(selected, key)) enabled = "1"; - if (!preferences.Allows(item.Prefab)) stateText = "Disabled by item/mod selection"; + if (!preferences.Allows(item.Prefab)) stateText = "Disabled by a source mod or item selection"; + if (!preferences.ModEnabled(selected)) stateText = "Mod disabled - item choice is remembered"; string effective = "0"; if (preferences.Allows(item.Prefab) && (!mode.Content() || mode.Content().Allows(item.Prefab))) effective = "1"; values.Insert("itemWeight=" + key + "|" + preferences.WeightSetting(selected, key).ToString() + "|" + Share(ERR_AutomaticEquipmentCatalog.TicketWeight(item.Prefab), totalWeight)); @@ -189,6 +231,12 @@ modded class ArmaReforgerScripted { protected ref ERR_ServerItemCatalog m_ERRServerItems; protected ref ERR_ItemPreferences m_ERRItemSelections; + protected ref ERR_ServerVehicleCatalog m_ERRServerVehicles; + ERR_ServerVehicleCatalog ERR_ServerVehicles() + { + if (!m_ERRServerVehicles) m_ERRServerVehicles = new ERR_ServerVehicleCatalog(); + return m_ERRServerVehicles; + } ERR_ItemPreferences ERR_ItemSelections() { if (!m_ERRItemSelections) m_ERRItemSelections = new ERR_ItemPreferences(); @@ -202,7 +250,8 @@ modded class ArmaReforgerScripted override protected void OnBeforeWorldCleanup() { if (m_ERRServerItems) m_ERRServerItems.Stop(); - m_ERRServerItems = null; m_ERRItemSelections = null; + if (m_ERRServerVehicles) m_ERRServerVehicles.Stop(); + m_ERRServerItems = null; m_ERRItemSelections = null; m_ERRServerVehicles = null; super.OnBeforeWorldCleanup(); } } diff --git a/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c b/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c index 08844645..fdab11fa 100644 --- a/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c +++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c @@ -10,13 +10,21 @@ modded class ERR_AdminMenu protected ref array m_ItemPresets = {}; protected ref map m_ItemSaved = new map(); protected ref map m_AddonSelectionStates = new map(); + protected ref map m_ServerModEnabled = new map(); + protected ref map m_ServerModLabels = new map(); + protected ref map m_ServerModItemCounts = new map(); + protected ref map m_ServerModVehicleCounts = new map(); + protected string m_ServerScanState; + protected string m_ItemRowSignature; + protected string m_LastItemChoice; + protected int m_LastItemFilter = -1; protected string m_ShownItemAddon; protected int m_ShownItemPage; protected int m_LastItemPage; override void OnMenuOpen() { super.OnMenuOpen(); - foreach (string name : {"ItemsShow", "ItemsPrevious", "ItemsNext", "ItemsEnableAll", "ItemsDisableAll", "ItemsPresetSave", "ItemsPresetLoad", "ItemsPresetDelete"}) + foreach (string name : {"ItemsShow", "ItemsClear", "ItemsPrevious", "ItemsNext", "ItemsEnableAll", "ItemsDisableAll", "ItemsPresetSave", "ItemsPresetLoad", "ItemsPresetDelete"}) { SCR_ButtonTextComponent button = SCR_ButtonTextComponent.GetButtonText(name, GetRootWidget()); if (!button) { Close(); return; } @@ -24,6 +32,12 @@ modded class ERR_AdminMenu if (name == "ItemsEnableAll") ERR_SelectionStyle.Action(button, true); button.m_OnClicked.Insert(OnItemsButton); m_ItemButtons.Insert(button); } + foreach (string filterName : {"ItemsFilter", "ModsFilter"}) + { + SCR_ComboBoxComponent filter = SCR_ComboBoxComponent.GetComboBoxComponent(filterName, GetRootWidget()); + if (filterName == "ModsFilter") filter.AddItem("With items / vehicles"); + filter.AddItem("All"); filter.AddItem("Enabled"); filter.AddItem("Disabled"); filter.SetCurrentItem(0, false, false, false); + } ERR_SelectionStyle.Status(GetRootWidget(), "ItemsSelectionState", -1); UpdateActions(); } @@ -31,8 +45,10 @@ modded class ERR_AdminMenu { foreach (SCR_ButtonTextComponent button : m_ItemButtons) if (button) button.m_OnClicked.Remove(OnItemsButton); ClearItemRows(); m_ItemPresets.Clear(); - foreach (string addon, Widget row : m_ServerAddonRows) SCR_ButtonTextComponent.GetButtonText("Enable", row).m_OnClicked.Remove(OnLoadedModEdit); - m_AddonSelectionStates.Clear(); + foreach (string addon, Widget row : m_ServerAddonRows) + foreach (string action : {"Enable", "Disable", "EditItems", "EditVehicles"}) SCR_ButtonTextComponent.GetButtonText(action, row).m_OnClicked.Remove(OnLoadedModEdit); + m_AddonSelectionStates.Clear(); m_ServerModEnabled.Clear(); m_ServerModLabels.Clear(); m_ServerModItemCounts.Clear(); m_ServerModVehicleCounts.Clear(); + m_LastItemChoice = ""; m_LastItemFilter = -1; m_ItemRowSignature = ""; m_ItemButtons.Clear(); m_ServerAddonRows.Clear(); m_ServerAddonKeys.Clear(); m_ServerAddonLabels.Clear(); m_ShownItemAddon = ""; m_ShownItemPage = 0; m_LastItemPage = 0; super.OnMenuClose(); @@ -49,11 +65,22 @@ modded class ERR_AdminMenu bool ready = m_Ready && !m_ServerAddonKeys.IsEmpty(); SCR_ComboBoxComponent combo = SCR_ComboBoxComponent.GetComboBoxComponent("ItemsMod", GetRootWidget()); if (combo) combo.SetEnabled(ready); - foreach (string addon, Widget loadedRow : m_ServerAddonRows) SCR_ButtonTextComponent.GetButtonText("Enable", loadedRow).SetEnabled(ready); + foreach (string addon, Widget loadedRow : m_ServerAddonRows) + { + bool hasItems = m_ServerModItemCounts.Get(addon) > 0; + bool hasVehicles = m_ServerModVehicleCounts.Get(addon) > 0; + bool selectedMod = m_ServerModEnabled.Get(addon) == 1; + SCR_ButtonTextComponent.GetButtonText("Enable", loadedRow).SetEnabled(ready && (hasItems || hasVehicles) && !selectedMod); + SCR_ButtonTextComponent.GetButtonText("Disable", loadedRow).SetEnabled(ready && (hasItems || hasVehicles) && selectedMod); + SCR_ButtonTextComponent.GetButtonText("EditItems", loadedRow).SetEnabled(ready && hasItems); + SCR_ButtonTextComponent.GetButtonText("EditVehicles", loadedRow).SetEnabled(ready && hasVehicles); + ERR_SelectionStyle.Pair(loadedRow, "Enable", "Disable", m_ServerModEnabled.Get(addon)); + } + bool rowReady = ItemSelectionReady(); foreach (string key, Widget row : m_ItemRows) { - SCR_ButtonTextComponent.GetButtonText("Enable", row).SetEnabled(ready && m_ItemSaved.Contains(key) && m_ItemSaved.Get(key) == 0); - SCR_ButtonTextComponent.GetButtonText("Disable", row).SetEnabled(ready && m_ItemSaved.Contains(key) && m_ItemSaved.Get(key) == 1); + SCR_ButtonTextComponent.GetButtonText("Enable", row).SetEnabled(rowReady && m_ItemSaved.Contains(key) && m_ItemSaved.Get(key) == 0); + SCR_ButtonTextComponent.GetButtonText("Disable", row).SetEnabled(rowReady && m_ItemSaved.Contains(key) && m_ItemSaved.Get(key) == 1); int selected = -1; if (m_ItemSaved.Contains(key)) selected = m_ItemSaved.Get(key); ERR_SelectionStyle.Pair(row, "Enable", "Disable", selected); } @@ -65,7 +92,7 @@ modded class ERR_AdminMenu if (button.GetRootWidget().GetName() == "ItemsPrevious") enabled = ready && m_ShownItemPage > 0; if (button.GetRootWidget().GetName() == "ItemsNext") enabled = ready && m_ShownItemPage < m_LastItemPage; string name = button.GetRootWidget().GetName(); - if (name == "ItemsEnableAll" || name == "ItemsDisableAll") enabled = ready && !m_ShownItemAddon.IsEmpty(); + if (name == "ItemsEnableAll" || name == "ItemsDisableAll") enabled = rowReady; if (name == "ItemsPresetLoad" || name == "ItemsPresetDelete") enabled = ready && !m_ItemPresets.IsEmpty(); button.SetEnabled(enabled); } @@ -74,7 +101,7 @@ modded class ERR_AdminMenu { array keys = {}, labels = {}; array itemRows = {}, presets = {}; - string scan, shown; + string scan, shown, signature; int page, last, total; if (authorized && values) foreach (string entry : values) @@ -87,9 +114,11 @@ modded class ERR_AdminMenu if (field == "itemPreset") presets.Insert(value); if (field == "itemsPage" && parts.Count() == 4) { shown = parts[0]; page = parts[1].ToInt(); last = parts[2].ToInt(); total = parts[3].ToInt(); } - if (field == "serverItem" && parts.Count() == 6) itemRows.Insert(value); - if (field != "serverMod" || parts.Count() != 5 || keys.Contains(parts[0])) continue; + if (field == "serverItem" && parts.Count() == 6) { itemRows.Insert(value); signature += parts[0]; } + if (field == "vehicleMod" && parts.Count() == 5) m_ServerModVehicleCounts.Set(parts[0], parts[2].ToInt()); + if (field != "serverMod" || parts.Count() != 6 || keys.Contains(parts[0])) continue; keys.Insert(parts[0]); labels.Insert(parts[1]); + m_ServerModEnabled.Set(parts[0], parts[5].ToInt()); m_ServerModLabels.Set(parts[0], parts[1]); m_ServerModItemCounts.Set(parts[0], parts[2].ToInt()); int aggregate = ERR_SelectionStyle.Aggregate(parts[2].ToInt(), parts[3].ToInt(), parts[4] == "1"); m_AddonSelectionStates.Set(parts[0], aggregate); Widget row = m_ServerAddonRows.Get(parts[0]); @@ -98,13 +127,11 @@ modded class ERR_AdminMenu row = GetGame().GetWorkspace().CreateWidgets("{F092D45656A8E02B}UI/layouts/ERR/ContentRow.layout", GetRootWidget().FindAnyWidget("ModList")); if (!row) continue; m_ServerAddonRows.Set(parts[0], row); - row.FindAnyWidget("Disable").SetVisible(false); - SCR_ButtonTextComponent edit = SCR_ButtonTextComponent.GetButtonText("Enable", row); - edit.SetText("Edit items"); edit.m_OnClicked.Insert(OnLoadedModEdit); + foreach (string action : {"Enable", "Disable", "EditItems", "EditVehicles"}) SCR_ButtonTextComponent.GetButtonText(action, row).m_OnClicked.Insert(OnLoadedModEdit); } - ERR_SelectionStyle.Status(row, "SelectionState", aggregate); + ERR_SelectionStyle.Status(row, "SelectionState", parts[5].ToInt()); TextWidget.Cast(row.FindAnyWidget("PackLabel")).SetText(parts[1]); - TextWidget.Cast(row.FindAnyWidget("PackState")).SetText("Loaded on server | " + parts[2] + " catalogued items | Edit future random equipment"); + TextWidget.Cast(row.FindAnyWidget("PackState")).SetText(parts[3] + " / " + parts[2] + " items enabled"); } bool changed = keys.Count() != m_ServerAddonKeys.Count(); if (!changed) for (int i = 0; i < keys.Count(); i++) if (keys[i] != m_ServerAddonKeys[i] || labels[i] != m_ServerAddonLabels[i]) changed = true; @@ -118,14 +145,16 @@ modded class ERR_AdminMenu combo.SetCurrentItem(Math.Max(0, keys.Find(draft)), false, false, false); m_ServerAddonKeys.Copy(keys); m_ServerAddonLabels.Copy(labels); } - SetText("ItemsScan", scan); + m_ServerScanState = scan; + SetText("ItemsHelp", "Extra equipment | " + scan); if (!shown.IsEmpty()) { - bool moved = shown != m_ShownItemAddon || page != m_ShownItemPage; + bool moved = shown != m_ShownItemAddon || page != m_ShownItemPage || signature != m_ItemRowSignature; + m_ItemRowSignature = signature; m_ShownItemAddon = shown; m_ShownItemPage = page; m_LastItemPage = last; int selected = keys.Find(shown); string title = shown; if (selected >= 0) title = labels[selected]; - SetText("ItemsPageState", title + " | " + total.ToString() + " items | Page " + (page + 1).ToString() + "/" + (last + 1).ToString()); + SetText("ItemsPageState", total.ToString() + " matching items | Page " + (page + 1).ToString() + " of " + (last + 1).ToString()); if (moved) { ClearItemRows(); @@ -150,11 +179,11 @@ modded class ERR_AdminMenu TextWidget.Cast(row.FindAnyWidget("PackLabel")).SetText(WidgetManager.Translate(parts[1])); m_ItemSaved.Set(parts[0], parts[4].ToInt()); ERR_SelectionStyle.Status(row, "SelectionState", parts[5].ToInt()); - string selection = "Disabled"; if (parts[4] == "1") selection = "Enabled"; - TextWidget.Cast(row.FindAnyWidget("PackState")).SetText(selection + " here | " + parts[3] + "\n" + parts[2]); + TextWidget.Cast(row.FindAnyWidget("PackState")).SetText(parts[3] + " | " + FilePath.StripPath(parts[2])); } - string empty; if (itemRows.IsEmpty()) empty = "No registered inventory items found for this mod."; + string empty; if (itemRows.IsEmpty()) empty = "No items match. Clear search or choose All to see more."; SetText("ItemsText", empty); + GetRootWidget().FindAnyWidget("ItemsText").SetVisible(!empty.IsEmpty()); ScrollLayoutWidget scroll = ScrollLayoutWidget.Cast(GetRootWidget().FindAnyWidget("ItemsScroll")); if (moved && scroll) scroll.SetSliderPos(0, 0); } @@ -175,9 +204,15 @@ modded class ERR_AdminMenu { if (!button || !m_Ready || !IsFocused() || !m_Controller || m_Age > 6 || m_ClickDelay > 0) return; string name = button.GetRootWidget().GetName(); + if (name == "ItemsClear") + { + SCR_EditBoxComponent.GetEditBoxComponent("ItemsSearch", GetRootWidget()).SetValue(""); + SCR_ComboBoxComponent.GetComboBoxComponent("ItemsFilter", GetRootWidget()).SetCurrentItem(0, false, false, false); + BrowseItems(0); return; + } if (name == "ItemsEnableAll" || name == "ItemsDisableAll") { - if (m_ShownItemAddon.IsEmpty()) return; + if (!ItemSelectionReady()) return; string value = "0"; if (name == "ItemsEnableAll") value = "1"; SubmitItems("items set " + m_ShownItemAddon + " * " + value); return; } @@ -206,23 +241,73 @@ modded class ERR_AdminMenu if (button.GetRootWidget().GetName() == "ItemsPrevious") page = Math.Max(0, page - 1); if (button.GetRootWidget().GetName() == "ItemsNext") page = Math.Min(m_LastItemPage, page + 1); } - SubmitItems("items list " + addon + " " + page.ToString()); + if (name == "ItemsShow") page = 0; + BrowseItems(page); + } + protected bool ItemSelectionReady() + { + SCR_ComboBoxComponent combo = SCR_ComboBoxComponent.GetComboBoxComponent("ItemsMod", GetRootWidget()); + if (!m_Ready || !combo) return false; + int index = combo.GetCurrentIndex(); + return index >= 0 && index < m_ServerAddonKeys.Count() && m_ServerAddonKeys[index] == m_ShownItemAddon; + } + protected void BrowseItems(int page) + { + SCR_ComboBoxComponent combo = SCR_ComboBoxComponent.GetComboBoxComponent("ItemsMod", GetRootWidget()); + int index = combo.GetCurrentIndex(); if (index < 0 || index >= m_ServerAddonKeys.Count()) return; + int filter = SCR_ComboBoxComponent.GetComboBoxComponent("ItemsFilter", GetRootWidget()).GetCurrentIndex(); + string query = SCR_EditBoxComponent.GetEditBoxComponent("ItemsSearch", GetRootWidget()).GetValue().Trim(); + if (query.Length() > 64) { ReceiveReply("Search can contain up to 64 characters."); return; } + m_LastItemChoice = m_ServerAddonKeys[index]; m_LastItemFilter = filter; + SubmitItems("items browse " + m_LastItemChoice + " " + page.ToString() + " " + filter.ToString() + " " + query); + UpdateActions(); + } + override void OnMenuUpdate(float tDelta) + { + super.OnMenuUpdate(tDelta); + if (!m_Ready || !IsFocused() || m_ClickDelay > 0 || m_Age > 6) return; + if (m_Page == ERR_AdminPage.ALLOWED_ITEMS) + { + SCR_ComboBoxComponent combo = SCR_ComboBoxComponent.GetComboBoxComponent("ItemsMod", GetRootWidget()); + int index = combo.GetCurrentIndex(); + int filter = SCR_ComboBoxComponent.GetComboBoxComponent("ItemsFilter", GetRootWidget()).GetCurrentIndex(); + if (index >= 0 && index < m_ServerAddonKeys.Count() && (m_ServerAddonKeys[index] != m_LastItemChoice || filter != m_LastItemFilter)) BrowseItems(0); + } + if (m_Page != ERR_AdminPage.ALLOWED_ITEMS) m_LastItemChoice = ""; + if (m_Page != ERR_AdminPage.MODS) return; + string query = SCR_EditBoxComponent.GetEditBoxComponent("ModsSearch", GetRootWidget()).GetValue(); + int filter = SCR_ComboBoxComponent.GetComboBoxComponent("ModsFilter", GetRootWidget()).GetCurrentIndex(); + int shown; + foreach (string addon, Widget row : m_ServerAddonRows) + { + bool visible = ERR_ServerItemCatalog.Matches(m_ServerModLabels.Get(addon), addon, m_ServerModEnabled.Get(addon) == 1, Math.Max(0, filter - 1), query); + if (filter == 0 && m_ServerModItemCounts.Get(addon) == 0 && m_ServerModVehicleCounts.Get(addon) == 0) visible = false; + row.SetVisible(visible); if (visible) shown++; + string details = m_ServerModItemCounts.Get(addon).ToString() + " items / " + m_ServerModVehicleCounts.Get(addon).ToString() + " vehicles"; + if (m_ServerModItemCounts.Get(addon) == 0 && m_ServerModVehicleCounts.Get(addon) == 0) details = "No selectable items or vehicles"; + TextWidget.Cast(row.FindAnyWidget("PackState")).SetText(details); + } + SetText("ModsCount", shown.ToString() + " of " + m_ServerAddonRows.Count().ToString() + " loaded mods | " + m_ServerScanState); } protected void OnLoadedModEdit(SCR_ButtonBaseComponent button) { if (!button || !m_Ready || !IsFocused() || !m_Controller || m_Age > 6 || m_ClickDelay > 0) return; foreach (string addon, Widget row : m_ServerAddonRows) { - if (button.GetRootWidget() != row.FindAnyWidget("Enable")) continue; - SCR_ComboBoxComponent combo = SCR_ComboBoxComponent.GetComboBoxComponent("ItemsMod", GetRootWidget()); - if (combo) combo.SetCurrentItem(m_ServerAddonKeys.Find(addon), false, false, false); - ShowPage(ERR_AdminPage.ALLOWED_ITEMS); SubmitItems("items list " + addon + " 0"); return; + if (button.GetRootWidget() == row.FindAnyWidget("Enable")) { SubmitItems("items mod " + addon + " 1"); return; } + if (button.GetRootWidget() == row.FindAnyWidget("Disable")) { SubmitItems("items mod " + addon + " 0"); return; } + if (button.GetRootWidget() == row.FindAnyWidget("EditVehicles")) { OpenVehicleAddon(addon); return; } + if (button.GetRootWidget() != row.FindAnyWidget("EditItems")) continue; + SCR_ComboBoxComponent.GetComboBoxComponent("ItemsMod", GetRootWidget()).SetCurrentItem(m_ServerAddonKeys.Find(addon), false, false, false); + SCR_EditBoxComponent.GetEditBoxComponent("ItemsSearch", GetRootWidget()).SetValue(""); + SCR_ComboBoxComponent.GetComboBoxComponent("ItemsFilter", GetRootWidget()).SetCurrentItem(0, false, false, false); + ShowPage(ERR_AdminPage.ALLOWED_ITEMS); BrowseItems(0); return; } } protected void SubmitItems(string command) { m_ClickDelay = 0.3; - SetText("Feedback", "Saving selection on the server..."); + SetText("Feedback", "Waiting for server confirmation..."); m_Controller.ERR_AdminSubmit(command, true); } protected void ClearItemRows() @@ -237,7 +322,7 @@ modded class ERR_AdminMenu } protected void OnItemRowButton(SCR_ButtonBaseComponent button) { - if (!button || !m_Ready || !IsFocused() || !m_Controller || m_Age > 6 || m_ClickDelay > 0 || m_ShownItemAddon.IsEmpty()) return; + if (!button || !m_Ready || !IsFocused() || !m_Controller || m_Age > 6 || m_ClickDelay > 0 || !ItemSelectionReady()) return; foreach (string key, Widget row : m_ItemRows) { string value; diff --git a/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c b/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c index 1af77467..4b784b7b 100644 --- a/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c +++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c @@ -5,6 +5,7 @@ modded class ERR_AdminMenu protected ref map m_WeightRows = new map(); protected ref map m_WeightSaved = new map(); protected ref array m_WeightMods = {}; + protected string m_WeightRowSignature; protected string m_WeightAddon; protected int m_WeightPage = -1; override void OnMenuOpen() @@ -68,7 +69,8 @@ modded class ERR_AdminMenu m_WeightMods.Copy(m_ServerAddonKeys); combo.SetCurrentItem(Math.Max(0, m_ServerAddonKeys.Find(m_ShownItemAddon)), false, false, false); } - bool moved = m_WeightAddon != m_ShownItemAddon || m_WeightPage != m_ShownItemPage; + bool moved = m_WeightAddon != m_ShownItemAddon || m_WeightPage != m_ShownItemPage || m_WeightRowSignature != m_ItemRowSignature; + m_WeightRowSignature = m_ItemRowSignature; if (moved) { ClearWeightRows(); m_WeightAddon = m_ShownItemAddon; m_WeightPage = m_ShownItemPage; diff --git a/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehicleCatalog.c b/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehicleCatalog.c new file mode 100644 index 00000000..74447520 --- /dev/null +++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehicleCatalog.c @@ -0,0 +1,260 @@ +// Server discovery never instantiates a vehicle. New entries are opt-in per use. +class ERR_VehicleEntry +{ + ResourceName Prefab; + int Defaults; + int Capabilities; +} +class ERR_ServerVehicleCatalog +{ + protected ref array m_Addons = {}; + protected ref map m_Entries = new map(); + protected ref map m_Items = new map(); + protected ref array m_Pending = {}; + protected ref set m_Queued = new set(); + protected ERR_GameMode m_Mode; + protected int m_Cursor; + protected bool m_Started; + protected bool m_Truncated; + static string RoleName(int role) + { + if (role == 0) return "Garages / yards"; + if (role == 1) return "Civilian traffic"; + if (role == 2) return "Enemy patrols"; + if (role == 3) return "Convoy armed escorts"; + return "Convoy supply trucks"; + } + static string RoleHint(int role) + { + if (role == 0) return "Garages / yards: unarmed vehicles that fit the parking space."; + if (role == 1) return "Traffic: vehicles with AI driving support; road size limits apply."; + if (role == 2) return "Enemy patrols: driver and crew, up to 15 seats; your enemy faction supplies the soldiers."; + if (role == 3) return "Convoy escorts: driver and gunner required. The specialized BMP slot stays unchanged."; + return "Convoy supply slot: AI vehicle with cargo storage; normal supply capacity checks apply."; + } + static bool Candidate(string path) + { + path.ToLower(); + return path.EndsWith(".et") && path.Contains("vehicle") && !path.Contains("wreck") + && !path.Contains("_base") && !path.Contains("/parts/") && !path.Contains("/turrets/"); + } + protected void Queue(ResourceName prefab, string path = "") + { + string key = ERR_TerrainCatalog.Key(prefab); + if (key.IsEmpty() || m_Queued.Contains(key)) return; + if (m_Pending.Count() >= 8192) { m_Truncated = true; return; } + m_Queued.Insert(key); m_Pending.Insert(prefab); + } + protected void Search(ResourceName prefab, string path = "") { if (Candidate(prefab)) Queue(prefab); } + protected void Catalog(SCR_EntityCatalog catalog) + { + if (!catalog) return; + array entries = {}; catalog.GetEntityList(entries); + foreach (SCR_EntityCatalogEntry entry : entries) if (entry && entry.IsEnabled()) Queue(entry.GetPrefab()); + } + void Start() + { + if (m_Started || !Replication.IsServer()) return; + m_Mode = ERR_GameMode.Get(); + SCR_EntityCatalogManagerComponent manager = SCR_EntityCatalogManagerComponent.GetInstance(); + if (!m_Mode || !manager || !GetGame().GetFactionManager()) return; + m_Started = true; + array loaded = {}; GameProject.GetLoadedAddons(loaded); + foreach (string guid : loaded) + { + ERR_ServerAddonItems addon = new ERR_ServerAddonItems(); addon.Id = guid; addon.Id.ToLower(); + addon.Project = GameProject.GetAddonID(guid); addon.Label = ERR_ServerItemCatalog.Clean(GameProject.GetAddonTitle(guid)); + if (addon.Label.IsEmpty()) addon.Label = addon.Project; + m_Addons.Insert(addon); + } + ERR_ServerItemCatalog.SortAddons(m_Addons); + ERR_ParkedCarCatalog cars = new ERR_ParkedCarCatalog(); cars.Find(); + foreach (ResourceName parked : cars.Prefabs) Seed(parked, 0); + foreach (ResourceName road : cars.RoadPrefabs) Seed(road, 1); + Seed(ERR_CivilianTraffic.CarPrefab(2), 1); + foreach (ResourceName tractor : cars.Tractors) Seed(tractor, 0); + ERR_MotorbikeCatalog bikes = new ERR_MotorbikeCatalog(); bikes.Find(); + foreach (ResourceName bike : bikes.Prefabs) Seed(bike, 0); + Seed(ERR_HunterFleetRules.VehiclePrefab(0), 2); Seed(ERR_HunterFleetRules.VehiclePrefab(2), 2); + Seed(ERR_ConvoyResources.VehiclePrefab(0), 3); Seed(ERR_ConvoyResources.VehiclePrefab(1), 4); + Catalog(manager.GetEntityCatalogOfType(EEntityCatalogType.VEHICLE, false)); + array factions = {}; GetGame().GetFactionManager().GetFactionsList(factions); + foreach (Faction faction : factions) + { + SCR_Faction nativeFaction = SCR_Faction.Cast(faction); + if (nativeFaction) Catalog(nativeFaction.GetFactionEntityCatalogOfType(EEntityCatalogType.VEHICLE, false)); + } + // Also find complete vehicle prefabs from mods without faction catalogs. + foreach (ERR_ServerAddonItems project : m_Addons) + { + SearchResourcesFilter filter = new SearchResourcesFilter(); filter.fileExtensions = {"et"}; filter.recursive = true; + filter.rootPath = "$" + project.Project + ":Prefabs"; + ResourceDatabase.SearchResources(filter, Search); + } + GetGame().GetCallqueue().CallLater(Scan, 50, true); m_Mode.OnStop().Insert(Stop); + } + void Stop() + { + if (GetGame()) GetGame().GetCallqueue().Remove(Scan); + if (m_Mode) m_Mode.OnStop().Remove(Stop); + m_Mode = null; m_Started = false; m_Cursor = 0; + m_Addons.Clear(); m_Entries.Clear(); m_Items.Clear(); m_Pending.Clear(); m_Queued.Clear(); + } + protected void Seed(ResourceName prefab, int role) + { + string key = ERR_TerrainCatalog.Key(prefab); + ERR_VehicleEntry entry = m_Entries.Get(key); + if (!entry) { entry = new ERR_VehicleEntry(); entry.Prefab = prefab; m_Entries.Set(key, entry); } + entry.Defaults = entry.Defaults | (1 << role); + // Authored defaults remain available while asynchronous discovery completes. + entry.Capabilities = entry.Capabilities | (1 << role); + Queue(prefab); + } + protected bool Has(Resource resource, typename component) + { + IEntitySource source = SCR_BaseContainerTools.FindEntitySource(resource); + if (!source) return false; + array matches = {}; + SCR_BaseContainerTools.FindComponentSourcesOfClass(source, component, true, matches); + return !matches.IsEmpty(); + } + protected void Scan() + { + if (!m_Mode || m_Mode != ERR_GameMode.Get() || !Replication.IsServer()) { Stop(); return; } + int end = Math.Min(m_Cursor + 4, m_Pending.Count()); + while (m_Cursor < end) + { + ResourceName prefab = m_Pending[m_Cursor++]; string key = ERR_TerrainCatalog.Key(prefab); + Resource resource = Resource.Load(prefab); + if (!resource || !resource.IsValid()) continue; + bool wheeled = Has(resource, VehicleWheeledSimulation); + bool tracked = Has(resource, VehicleTrackedSimulation); + if (!wheeled && !tracked) continue; + bool ai = (Has(resource, ChimeraAIVehicleControlComponent) || Has(resource, AICarMovementComponent)) && Has(resource, SCR_AIVehicleUsageComponent); + ERR_VehicleEntry entry = m_Entries.Get(key); + if (!entry) { entry = new ERR_VehicleEntry(); entry.Prefab = prefab; m_Entries.Set(key, entry); } + int capabilities; + if (wheeled) capabilities = 1; + if (ai) + { + capabilities = capabilities | 12; + if (wheeled) capabilities = capabilities | 2; + if (Has(resource, InventoryStorageManagerComponent)) capabilities = capabilities | 16; + } + entry.Capabilities = capabilities; + ERR_ServerItem item = new ERR_ServerItem(); item.Prefab = prefab; item.Eligible = true; + item.Label = FilePath.StripPath(prefab.GetPath()); item.Label.Replace(".et", ""); item.Label.Replace("_", " "); item.SearchLabel = item.Label; + m_Items.Set(key, item); + array sources = SCR_AddonTool.GetResourceAddons(prefab); + foreach (ERR_ServerAddonItems addon : m_Addons) if (sources.Contains(addon.Project)) addon.Items.Insert(item); + } + if (m_Cursor >= m_Pending.Count()) + { + GetGame().GetCallqueue().Remove(Scan); + foreach (ERR_ServerAddonItems sorted : m_Addons) ERR_ServerItemCatalog.SortItems(sorted.Items); + PrintFormat("Reintroduced [server vehicles]: inspected=%1 groundVehicles=%2 truncated=%3", m_Cursor, m_Items.Count(), m_Truncated); + } + } + ERR_ServerAddonItems Find(string id) + { + foreach (ERR_ServerAddonItems addon : m_Addons) if (addon.Id == id) return addon; + return null; + } + bool Contains(string addonId, string itemId) + { + ERR_ServerAddonItems addon = Find(addonId); if (!addon) return false; + foreach (ERR_ServerItem item : addon.Items) if (ERR_TerrainCatalog.Key(item.Prefab) == itemId) return true; + return false; + } + void Reject(ResourceName prefab, int role) + { + ERR_VehicleEntry entry = m_Entries.Get(ERR_TerrainCatalog.Key(prefab)); + if (!entry || role < 0 || role > 4) return; + entry.Capabilities = entry.Capabilities & ~(1 << role); + PrintFormat("Reintroduced [vehicle assignment]: rejected %1 for %2: physical fit, driver, crew seats or storage unavailable; excluded until next round", prefab, RoleName(role)); + } + bool Capable(string key, int role) + { + ERR_VehicleEntry entry = m_Entries.Get(key); + return role >= 0 && role < 5 && entry && (entry.Capabilities & (1 << role)) != 0; + } + bool Allowed(ResourceName prefab, int role) + { + Start(); string key = ERR_TerrainCatalog.Key(prefab); ERR_VehicleEntry entry = m_Entries.Get(key); + return Capable(key, role) && GetGame().ERR_ItemSelections().AllowsVehicleRole(prefab, role, (entry.Defaults & (1 << role)) != 0); + } + ResourceName Choose(int role, ResourceName preferred, bool otherDefaults = true) + { + Start(); array choices = {}; + if (!preferred.IsEmpty() && Allowed(preferred, role)) choices.Insert(preferred); + foreach (string key, ERR_VehicleEntry entry : m_Entries) + if ((entry.Defaults & (1 << role)) == 0 && Allowed(entry.Prefab, role) && !choices.Contains(entry.Prefab)) choices.Insert(entry.Prefab); + // If the preferred default was disabled, another enabled default may serve. + if (choices.IsEmpty() && otherDefaults) + foreach (string key, ERR_VehicleEntry entry : m_Entries) + if (Allowed(entry.Prefab, role)) choices.Insert(entry.Prefab); + if (choices.IsEmpty()) return ""; + return choices[Math.RandomInt(0, choices.Count())]; + } + void Snapshot(array values, string selected, int page, int filter, string query, int role = 0) + { + Start(); ERR_ItemPreferences preferences = GetGame().ERR_ItemSelections(); + foreach (ERR_ServerAddonItems addon : m_Addons) + { + if (addon.Items.IsEmpty()) continue; + int enabled; + foreach (ERR_ServerItem item : addon.Items) if (Allowed(item.Prefab, role)) enabled++; + values.Insert("vehicleMod=" + addon.Id + "|" + addon.Label + "|" + addon.Items.Count().ToString() + "|" + enabled.ToString() + "|" + ERR_ServerItemCatalog.Flag(preferences.ModEnabled(addon.Id))); + } + string scan = "Vehicle discovery complete"; + if (!m_Started || m_Cursor < m_Pending.Count()) scan = "Discovering vehicles from loaded mods"; + if (m_Truncated) scan += "; scan limit reached"; + values.Insert("vehiclesScan=" + scan); + ERR_ServerAddonItems chosen = Find(selected); if (!chosen) return; + array matches = {}; + foreach (ERR_ServerItem candidate : chosen.Items) + if (ERR_ServerItemCatalog.Matches(candidate.SearchLabel, candidate.Prefab.GetPath(), Allowed(candidate.Prefab, role), filter, query)) matches.Insert(candidate); + int last = Math.Max(0, (matches.Count() - 1) / ERR_ServerItemCatalog.PAGE_SIZE); page = Math.Clamp(page, 0, last); + values.Insert("vehiclesPage=" + selected + "|" + page.ToString() + "|" + last.ToString() + "|" + matches.Count().ToString() + "|" + role.ToString()); + int end = Math.Min(matches.Count(), (page + 1) * ERR_ServerItemCatalog.PAGE_SIZE); + for (int i = page * ERR_ServerItemCatalog.PAGE_SIZE; i < end; i++) + { + ERR_ServerItem item = matches[i]; string key = ERR_TerrainCatalog.Key(item.Prefab); ERR_VehicleEntry entry = m_Entries.Get(key); + bool capable = Capable(key, role), effective = Allowed(item.Prefab, role); + int rule = preferences.VehicleRole(selected, key, role); + bool selectedChoice = rule == 1 || (rule == -1 && (entry.Defaults & (1 << role)) != 0); + string use = RoleName(role) + ": not assigned"; + if (selectedChoice) use = RoleName(role) + ": selected; fit and crew checked at spawn"; + if (!preferences.ModEnabled(selected)) use = "Mod disabled - assignments remembered"; + else if (selectedChoice && !effective) use = "Disabled by another source mod or vehicle switch"; + if (!capable) use = "Unavailable for this use: missing support or failed spawn checks"; + values.Insert("serverVehicle=" + key + "|" + item.Label + "|" + ERR_ServerItemCatalog.Clean(item.Prefab.GetPath()) + "|" + use + "|" + ERR_ServerItemCatalog.Flag(selectedChoice) + "|" + ERR_ServerItemCatalog.Flag(effective) + "|" + ERR_ServerItemCatalog.Flag(capable)); + } + } +} + +class ERR_VehicleSelection +{ + static bool Allowed(ResourceName prefab) { return !prefab.IsEmpty() && GetGame().ERR_ItemSelections().AllowsVehicle(prefab); } + static ResourceName Choose(array pool, int role = -1) + { + array enabled = {}; + foreach (ResourceName prefab : pool) if ((role < 0 && Allowed(prefab)) || (role >= 0 && RoleAllowed(prefab, role))) enabled.Insert(prefab); + if (enabled.IsEmpty()) return ""; + return enabled[Math.RandomInt(0, enabled.Count())]; + } + static ResourceName ForRole(int role, ResourceName preferred, bool otherDefaults = true) { return GetGame().ERR_ServerVehicles().Choose(role, preferred, otherDefaults); } + static bool RoleAllowed(ResourceName prefab, int role) { return !prefab.IsEmpty() && GetGame().ERR_ServerVehicles().Allowed(prefab, role); } + static bool PatrolSeats(int drivers, int turrets, int cargo, int total) + { + return drivers == 1 && turrets >= 0 && cargo >= 0 && turrets + cargo >= 1 && total == drivers + turrets + cargo && total <= 15; + } + // A mod cannot enlarge the existing 4m x 9m x 3.5m road deployment envelope. + static bool RoadFit(Vehicle vehicle) + { + if (!vehicle || (!vehicle.FindComponent(ChimeraAIVehicleControlComponent) && !vehicle.FindComponent(AICarMovementComponent)) || !vehicle.FindComponent(SCR_AIVehicleUsageComponent)) return false; + vector low, high; vehicle.GetBounds(low, high); + return ERR_ForceRules.FiniteVector(low) && ERR_ForceRules.FiniteVector(high) + && low[0] >= -2 && high[0] <= 2 && low[2] >= -4.5 && high[2] <= 4.5 && high[1] - low[1] > 0 && high[1] - low[1] <= 3.5; + } +} diff --git a/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehiclesMenu.c b/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehiclesMenu.c new file mode 100644 index 00000000..d307c074 --- /dev/null +++ b/addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehiclesMenu.c @@ -0,0 +1,195 @@ +modded class ERR_AdminMenu +{ + protected ref array m_VehicleMods = {}; + protected ref array m_VehicleLabels = {}; + protected ref array m_VehicleButtons = {}; + protected ref map m_VehicleRows = new map(); + protected ref map m_VehicleSaved = new map(); + protected ref map m_VehicleStates = new map(); + protected string m_ShownVehicleAddon; + protected string m_LastVehicleChoice; + protected string m_VehicleRowSignature; + protected int m_ShownVehiclePage; + protected int m_LastVehiclePage; + protected int m_LastVehicleFilter = -1; + protected int m_LastVehicleRole = -1; + protected int m_ShownVehicleRole; + protected ref map m_VehicleCapable = new map(); + override void OnMenuOpen() + { + super.OnMenuOpen(); + foreach (string name : {"VehiclesShow", "VehiclesClear", "VehiclesPrevious", "VehiclesNext", "VehiclesEnableAll", "VehiclesDisableAll"}) + { + SCR_ButtonTextComponent button = SCR_ButtonTextComponent.GetButtonText(name, GetRootWidget()); + if (!button) { Close(); return; } + button.m_OnClicked.Insert(OnVehiclesButton); m_VehicleButtons.Insert(button); + } + SCR_ComboBoxComponent filter = SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesFilter", GetRootWidget()); + filter.AddItem("All"); filter.AddItem("Enabled"); filter.AddItem("Disabled"); filter.SetCurrentItem(0, false, false, false); + SCR_ComboBoxComponent roles = SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesRole", GetRootWidget()); + for (int role = 0; role < 5; role++) roles.AddItem("Use for: " + ERR_ServerVehicleCatalog.RoleName(role)); + roles.SetCurrentItem(0, false, false, false); + UpdateActions(); + } + protected void ClearVehicleRows() + { + foreach (string key, Widget row : m_VehicleRows) + { + SCR_ButtonTextComponent.GetButtonText("Enable", row).m_OnClicked.Remove(OnVehicleRowButton); + SCR_ButtonTextComponent.GetButtonText("Disable", row).m_OnClicked.Remove(OnVehicleRowButton); + row.RemoveFromHierarchy(); + } + m_VehicleRows.Clear(); m_VehicleSaved.Clear(); m_VehicleCapable.Clear(); + } + override void OnMenuClose() + { + foreach (SCR_ButtonTextComponent button : m_VehicleButtons) button.m_OnClicked.Remove(OnVehiclesButton); + m_LastVehicleChoice = ""; m_LastVehicleFilter = -1; m_LastVehicleRole = -1; m_ShownVehicleAddon = ""; m_VehicleRowSignature = ""; + ClearVehicleRows(); m_VehicleButtons.Clear(); m_VehicleMods.Clear(); m_VehicleLabels.Clear(); m_VehicleStates.Clear(); + super.OnMenuClose(); + } + protected override void UpdateActions() + { + super.UpdateActions(); + bool ready = VehicleSelectionReady(); + foreach (SCR_ButtonTextComponent button : m_VehicleButtons) + { + string name = button.GetRootWidget().GetName(); bool enabled = ready; + if (name == "VehiclesShow" || name == "VehiclesClear") enabled = m_Ready && !m_VehicleMods.IsEmpty(); + if (name == "VehiclesPrevious") enabled = ready && m_ShownVehiclePage > 0; + if (name == "VehiclesNext") enabled = ready && m_ShownVehiclePage < m_LastVehiclePage; + button.SetEnabled(enabled); + } + foreach (string key, Widget row : m_VehicleRows) + { + SCR_ButtonTextComponent.GetButtonText("Enable", row).SetEnabled(ready && m_VehicleCapable.Get(key) == 1 && m_VehicleSaved.Get(key) == 0); + SCR_ButtonTextComponent.GetButtonText("Disable", row).SetEnabled(ready && m_VehicleSaved.Get(key) == 1); + ERR_SelectionStyle.Pair(row, "Enable", "Disable", m_VehicleSaved.Get(key)); + if (!m_Ready) ERR_SelectionStyle.Status(row, "SelectionState", -1); + } + int state = -1; if (ready && m_VehicleStates.Contains(m_ShownVehicleAddon)) state = m_VehicleStates.Get(m_ShownVehicleAddon); + ERR_SelectionStyle.Status(GetRootWidget(), "VehiclesSelectionState", state); + } + override void ReceiveSnapshot(bool authorized, array values, array status) + { + super.ReceiveSnapshot(authorized, values, status); + if (!authorized || !values) return; + array keys = {}, labels = {}, rows = {}; string shown, signature, scan; int page, last, total, role; + foreach (string entry : values) + { + int divider = entry.IndexOf("="); if (divider < 0) continue; + string field = entry.Substring(0, divider), value = entry.Substring(divider + 1, entry.Length() - divider - 1); + array parts = {}; value.Split("|", parts, false); + if (field == "vehiclesScan") scan = value; + if (field == "vehicleMod" && parts.Count() == 5) + { + keys.Insert(parts[0]); labels.Insert(parts[1]); + m_VehicleStates.Set(parts[0], ERR_SelectionStyle.Aggregate(parts[2].ToInt(), parts[3].ToInt(), parts[4] == "1")); + } + if (field == "vehiclesPage" && parts.Count() == 5) { shown = parts[0]; page = parts[1].ToInt(); last = parts[2].ToInt(); total = parts[3].ToInt(); role = parts[4].ToInt(); } + if (field == "serverVehicle" && parts.Count() == 7) { rows.Insert(value); signature += parts[0]; } + } + SCR_ComboBoxComponent combo = SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesMod", GetRootWidget()); + if (keys.Count() != m_VehicleMods.Count()) + { + combo.ClearAll(); foreach (string label : labels) combo.AddItem(label); + m_VehicleMods.Copy(keys); m_VehicleLabels.Copy(labels); combo.SetCurrentItem(Math.Max(0, keys.Find(m_ShownVehicleAddon)), false, false, false); + } + if (!shown.IsEmpty()) + { + bool moved = shown != m_ShownVehicleAddon || page != m_ShownVehiclePage || signature != m_VehicleRowSignature || role != m_ShownVehicleRole; + SetText("VehiclesHelp", ERR_ServerVehicleCatalog.RoleHint(role)); + m_ShownVehicleRole = role; m_ShownVehicleAddon = shown; m_ShownVehiclePage = page; m_LastVehiclePage = last; m_VehicleRowSignature = signature; + if (moved) ClearVehicleRows(); + string scanNote; if (scan != "Vehicle discovery complete") scanNote = " (scanning)"; + SetText("VehiclesPageState", total.ToString() + " matching vehicles | Page " + (page + 1).ToString() + " of " + (last + 1).ToString() + scanNote); + foreach (string data : rows) + { + array parts = {}; data.Split("|", parts, false); Widget row = m_VehicleRows.Get(parts[0]); + if (!row) + { + row = GetGame().GetWorkspace().CreateWidgets("{93A8120CBE7DA469}UI/layouts/ERR/ItemRow.layout", GetRootWidget().FindAnyWidget("VehiclesContent")); + if (!row) continue; + m_VehicleRows.Set(parts[0], row); + SCR_ButtonTextComponent.GetButtonText("Enable", row).m_OnClicked.Insert(OnVehicleRowButton); + SCR_ButtonTextComponent.GetButtonText("Disable", row).m_OnClicked.Insert(OnVehicleRowButton); + } + TextWidget.Cast(row.FindAnyWidget("PackLabel")).SetText(WidgetManager.Translate(parts[1])); + TextWidget.Cast(row.FindAnyWidget("PackState")).SetText(parts[3]); + m_VehicleCapable.Set(parts[0], parts[6].ToInt()); m_VehicleSaved.Set(parts[0], parts[4].ToInt()); ERR_SelectionStyle.Status(row, "SelectionState", parts[5].ToInt()); + } + string empty; if (rows.IsEmpty()) empty = "No vehicles match. Clear search or choose All to see more."; + SetText("VehiclesText", empty); + GetRootWidget().FindAnyWidget("VehiclesText").SetVisible(!empty.IsEmpty()); + if (moved) ScrollLayoutWidget.Cast(GetRootWidget().FindAnyWidget("VehiclesScroll")).SetSliderPos(0, 0); + } + else if (keys.IsEmpty()) SetText("VehiclesText", "Discovering ground vehicles on this server..."); + UpdateActions(); + } + protected override void OpenVehicleAddon(string addon) + { + int index = m_VehicleMods.Find(addon); if (index < 0) return; + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesMod", GetRootWidget()).SetCurrentItem(index, false, false, false); + SCR_EditBoxComponent.GetEditBoxComponent("VehiclesSearch", GetRootWidget()).SetValue(""); + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesFilter", GetRootWidget()).SetCurrentItem(0, false, false, false); + ShowPage(ERR_AdminPage.VEHICLE_POOL); BrowseVehicles(0); + } + protected bool VehicleSelectionReady() + { + SCR_ComboBoxComponent combo = SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesMod", GetRootWidget()); + if (!m_Ready || !combo) return false; + int index = combo.GetCurrentIndex(); + return index >= 0 && index < m_VehicleMods.Count() && m_VehicleMods[index] == m_ShownVehicleAddon && SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesRole", GetRootWidget()).GetCurrentIndex() == m_ShownVehicleRole; + } + protected void BrowseVehicles(int page) + { + int index = SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesMod", GetRootWidget()).GetCurrentIndex(); + if (index < 0 || index >= m_VehicleMods.Count()) return; + int filter = SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesFilter", GetRootWidget()).GetCurrentIndex(); + string query = SCR_EditBoxComponent.GetEditBoxComponent("VehiclesSearch", GetRootWidget()).GetValue().Trim(); + if (query.Length() > 64) { ReceiveReply("Search can contain up to 64 characters."); return; } + m_LastVehicleChoice = m_VehicleMods[index]; m_LastVehicleFilter = filter; + m_LastVehicleRole = SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesRole", GetRootWidget()).GetCurrentIndex(); + SubmitItems("vehicles browse " + m_LastVehicleChoice + " " + page.ToString() + " " + filter.ToString() + " " + m_LastVehicleRole.ToString() + " " + query); + UpdateActions(); + } + override void OnMenuUpdate(float tDelta) + { + super.OnMenuUpdate(tDelta); + if (!m_Ready || !IsFocused() || m_ClickDelay > 0 || m_Age > 6 || m_Page != ERR_AdminPage.VEHICLE_POOL) return; + int index = SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesMod", GetRootWidget()).GetCurrentIndex(); + int filter = SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesFilter", GetRootWidget()).GetCurrentIndex(); + if (index >= 0 && index < m_VehicleMods.Count() && (m_VehicleMods[index] != m_LastVehicleChoice || filter != m_LastVehicleFilter || SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesRole", GetRootWidget()).GetCurrentIndex() != m_LastVehicleRole)) BrowseVehicles(0); + } + protected void OnVehiclesButton(SCR_ButtonBaseComponent button) + { + if (!button || !m_Ready || !IsFocused() || !m_Controller || m_Age > 6 || m_ClickDelay > 0) return; + string name = button.GetRootWidget().GetName(); + if (name == "VehiclesEnableAll" || name == "VehiclesDisableAll") + { + if (!VehicleSelectionReady()) return; + string value = "0"; if (name == "VehiclesEnableAll") value = "1"; + SubmitItems("vehicles role " + m_ShownVehicleAddon + " " + m_ShownVehicleRole.ToString() + " * " + value); return; + } + if (name == "VehiclesClear") + { + SCR_EditBoxComponent.GetEditBoxComponent("VehiclesSearch", GetRootWidget()).SetValue(""); + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesFilter", GetRootWidget()).SetCurrentItem(0, false, false, false); + } + int page; + if (name == "VehiclesPrevious") page = Math.Max(0, m_ShownVehiclePage - 1); + if (name == "VehiclesNext") page = Math.Min(m_LastVehiclePage, m_ShownVehiclePage + 1); + BrowseVehicles(page); + } + protected void OnVehicleRowButton(SCR_ButtonBaseComponent button) + { + if (!button || !m_Ready || !IsFocused() || !m_Controller || m_Age > 6 || m_ClickDelay > 0 || !VehicleSelectionReady()) return; + foreach (string key, Widget row : m_VehicleRows) + { + string value; + if (button.GetRootWidget() == row.FindAnyWidget("Enable")) value = "1"; + if (button.GetRootWidget() == row.FindAnyWidget("Disable")) value = "0"; + if (!value.IsEmpty()) { SubmitItems("vehicles role " + m_ShownVehicleAddon + " " + m_ShownVehicleRole.ToString() + " " + key + " " + value); return; } + } + } +} diff --git a/addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c b/addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c index 29501d3a..23ee4635 100644 --- a/addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c +++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c @@ -209,20 +209,28 @@ class ERR_CivilianTraffic m_Catalog.Find(false); // Keep the transport van in traffic; premium Rally cars stay in parked pools. ResourceName prefab = CarPrefab(2); - if (Math.RandomInt(0, 5) != 0) prefab = m_Catalog.RoadPrefabs[Math.RandomInt(0, m_Catalog.RoadPrefabs.Count())]; + if (Math.RandomInt(0, 5) != 0 || !ERR_VehicleSelection.RoleAllowed(prefab, 1)) prefab = ERR_VehicleSelection.Choose(m_Catalog.RoadPrefabs, 1); + if (prefab.IsEmpty() && ERR_VehicleSelection.RoleAllowed(CarPrefab(2), 1)) prefab = CarPrefab(2); + prefab = ERR_VehicleSelection.ForRole(1, prefab); + if (prefab.IsEmpty()) return false; array required = {prefab, DriverPrefab(), ERR_ConvoyResources.GroupPrefab(), ERR_Resources.MoveWaypoint()}; foreach (ResourceName name : required) { Resource loaded = Resource.Load(name); if (!loaded || !loaded.IsValid()) return false; } // Loading can take time: check every observer again immediately before spawn. if (!Observers(observers, actors) || observers.IsEmpty() || !ERR_CivilianTrafficRules.Far(route[0], observers, 1000) || !Hidden(route[0], actors)) return false; ERR_ConvoyPlacement finalPlacement = new ERR_ConvoyPlacement(); - if (!finalPlacement.Clear(route[0], angles[0])) return false; + if (!finalPlacement.Clear(route[0], angles[0]) || !ERR_VehicleSelection.RoleAllowed(prefab, 1)) return false; ERR_CivilianCar traffic = new ERR_CivilianCar(); traffic.Route.Copy(route); traffic.Number = m_Serial + 1; traffic.Prefab = prefab; traffic.Deadline = now + 120000; traffic.ProgressAt = now; traffic.ProgressPosition = route[0]; traffic.Car = Vehicle.Cast(ERR_Actors.Spawn(prefab, route[0], angles)); + m_Serial++; // Rejected mod vehicles still consume one of the 64 native creation attempts. + if (!ERR_VehicleSelection.RoadFit(traffic.Car)) + { + GetGame().ERR_ServerVehicles().Reject(prefab, 1); ERR_Actors.DeleteSpawned(traffic.Car); return false; + } traffic.Group = SCR_AIGroup.Cast(ERR_Actors.Spawn(ERR_ConvoyResources.GroupPrefab(), route[0])); // Retain failed partial creations for the same distant-only cleanup policy. - m_Cars.Insert(traffic); m_Serial++; traffic.Protect(true); + m_Cars.Insert(traffic); traffic.Protect(true); Faction civilian = GetGame().GetFactionManager().GetFactionByKey("CIV"); if (traffic.Group) { traffic.Group.SetFaction(civilian); traffic.Group.SetDeleteWhenEmpty(false); } if (!traffic.Car || !ERR_ConvoyRules.EmptyCrewTemplate(traffic.Group)) { traffic.Finish("creation failed: vehicle or crew group"); return false; } @@ -231,7 +239,7 @@ class ERR_CivilianTraffic if (!ERR_ConvoyRules.CollectSeats(traffic.Car, seats)) { traffic.Finish("creation failed: compartments unavailable"); return false; } foreach (BaseCompartmentSlot seat : seats) if (seat.GetType() == ECompartmentType.PILOT && seat.IsCompartmentAccessible() && !seat.GetOccupant()) { traffic.Seat = seat; break; } - if (!traffic.Seat) { traffic.Finish("creation failed: no accessible driver seat"); return false; } + if (!traffic.Seat) { GetGame().ERR_ServerVehicles().Reject(prefab, 1); traffic.Finish("creation failed: no accessible driver seat"); return false; } AIGroup group = traffic.Group; traffic.Driver = traffic.Seat.SpawnCharacterInCompartment(DriverPrefab(), group, ERR_ConvoyResources.GroupPrefab()); traffic.Protect(true); diff --git a/addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c b/addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c index 92c23b1d..cc773b9d 100644 --- a/addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c +++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c @@ -404,6 +404,16 @@ class ERR_ConvoyService ERR_ConvoyTask Dispatch(ERR_ConvoyReceipt receipt, array positions, array angles, ERR_ForceRoute route, float now) { if (!Current() || !ERR_ForceRules.Finite(now) || now < 0 || !ERR_ConvoyRules.Plan(positions, angles, route) || !ERR_ConvoyResources.Available() || !ERR_ConvoyRules.GroundClear(positions, angles)) return null; + // Choose once before consuming a finite receipt. Empty assigned pools defer dispatch. + array selected = {}; + for (int slot = 0; slot < 6; slot++) + { + ResourceName prefab = ERR_ConvoyResources.VehiclePrefab(slot); + if (slot == 1) prefab = ERR_VehicleSelection.ForRole(4, prefab); + if (slot == 0 || slot == 3 || slot == 5) prefab = ERR_VehicleSelection.ForRole(3, prefab); + if (slot != 2 && prefab.IsEmpty()) return null; + selected.Insert(prefab); + } // The server role selection owns the memberless group affiliation. if (!m_Mode.EnemyFaction() || !m_Pool.Consume(receipt)) return null; ERR_ConvoyTask task = NewTask(); task.Receipt = receipt; task.Route = route; task.Deadline = now + 30000; @@ -414,10 +424,13 @@ class ERR_ConvoyService if (index == 2) { unit.Released = true; continue; } unit.Group = SCR_AIGroup.Cast(ERR_Actors.Spawn(ERR_ConvoyResources.GroupPrefab(), positions[index])); if (unit.Group) m_Mode.Own(unit.Group); - unit.Entity = Vehicle.Cast(ERR_Actors.Spawn(ERR_ConvoyResources.VehiclePrefab(index), positions[index], angles[index])); + unit.Entity = Vehicle.Cast(ERR_Actors.Spawn(selected[index], positions[index], angles[index])); if (unit.Entity) m_Mode.Own(unit.Entity); - if (!unit.Group || !unit.Entity || unit.Group.GetFaction() != m_Mode.EnemyFaction() || !ERR_ConvoyRules.EmptyCrewTemplate(unit.Group) || !FillCrew(unit)) - { task.Stop(m_Mode, "finite convoy startup failed; receipt consumed without retry"); return task; } + bool assigned = selected[index] != ERR_ConvoyResources.VehiclePrefab(index); + bool compatible = !assigned || (ERR_VehicleSelection.RoadFit(unit.Entity) && (index != 1 || unit.Entity.FindComponent(InventoryStorageManagerComponent))); + int role = 3; if (index == 1) role = 4; + if (!compatible || !unit.Group || !unit.Entity || unit.Group.GetFaction() != m_Mode.EnemyFaction() || !ERR_ConvoyRules.EmptyCrewTemplate(unit.Group) || !FillCrew(unit)) + { if (assigned) GetGame().ERR_ServerVehicles().Reject(selected[index], role); task.Stop(m_Mode, "finite convoy startup failed; receipt consumed without retry"); return task; } FactionAffiliationComponent affiliation = FactionAffiliationComponent.Cast(unit.Entity.FindComponent(FactionAffiliationComponent)); if (affiliation) affiliation.SetAffiliatedFaction(m_Mode.EnemyFaction()); AICarMovementComponent movement = AICarMovementComponent.Cast(unit.Entity.FindComponent(AICarMovementComponent)); diff --git a/addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c b/addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c index 591fab10..88586494 100644 --- a/addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c +++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c @@ -309,15 +309,24 @@ class ERR_GarageVehicles } if (ChimeraWorldUtils.TryGetWaterSurfaceSimple(GetGame().GetWorld(), position) || !Clear(position, transform, null, site.Farm) || !Hidden(position, angles, actors, null, site.Farm)) return; m_Pending = site; m_Position = position; m_Angles = angles; - m_Prefab = m_Cars.Prefabs[Math.RandomInt(0, m_Cars.Prefabs.Count())]; - if (site.Farm) m_Prefab = m_Cars.Tractors[0]; - m_PendingBike = !site.Farm && m_Spawned % 4 == 3 && m_BikeCandidate < m_Bikes.Prefabs.Count(); - if (m_PendingBike) m_Prefab = m_Bikes.Prefabs[m_BikeCandidate]; + m_Prefab = ERR_VehicleSelection.Choose(m_Cars.Prefabs, 0); + if (site.Farm) m_Prefab = ERR_VehicleSelection.Choose(m_Cars.Tractors, 0); + m_PendingBike = !site.Farm && (m_Prefab.IsEmpty() || m_Spawned % 4 == 3) && m_BikeCandidate < m_Bikes.Prefabs.Count(); + if (m_PendingBike) + { + if (ERR_VehicleSelection.RoleAllowed(m_Bikes.Prefabs[m_BikeCandidate], 0)) m_Prefab = m_Bikes.Prefabs[m_BikeCandidate]; + else { m_BikeCandidate++; m_PendingBike = false; } + } + ResourceName preferred = m_Prefab; + m_Prefab = ERR_VehicleSelection.ForRole(0, preferred, false); + if (m_Prefab != preferred) m_PendingBike = false; + if (m_Prefab.IsEmpty()) { m_Pending = null; return; } m_Stage = 1; return; } } protected void Pending(array observers, array actors) { + if (!ERR_VehicleSelection.RoleAllowed(m_Prefab, 0)) { m_Pending = null; return; } if (m_Stage == 1) { if (!m_LoadedNames.Contains(m_Prefab)) @@ -349,6 +358,7 @@ class ERR_GarageVehicles if (site.Farm) fits = ERR_GarageVehicleRules.FarmEnvelope(low, high); if (!driver || armed || !fits || !Clear(m_Position, transform, entity, site.Farm)) { + if (!driver || armed || !fits) GetGame().ERR_ServerVehicles().Reject(m_Prefab, 0); ERR_Actors.DeleteSpawned(entity); if (m_PendingBike) m_BikeCandidate++; return; } // Empty vehicles start unaffiliated; vanilla assigns the first occupant's diff --git a/addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c b/addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c index 7a8a34ae..121309fc 100644 --- a/addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c +++ b/addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c @@ -62,6 +62,7 @@ class ERR_HunterVehicle : ERR_ConvoyVehicle bool DeliveredSearch; float PendingObservedAt = -1; bool TroopTransport; + bool AssignedVehicle; bool Motorbike; bool Sarka; bool OpeningPatrol; @@ -513,10 +514,16 @@ class ERR_HunterService : ERR_ConvoyService { if (!ERR_SarkaRules.Seats(drivers.Count(), turrets.Count(), cargo.Count(), all.Count())) return false; } + else if (hunter.AssignedVehicle) + { + if (!ERR_VehicleSelection.PatrolSeats(drivers.Count(), turrets.Count(), cargo.Count(), all.Count())) return false; + hunter.TroopTransport = turrets.IsEmpty(); + } else if (!ERR_HunterFleetRules.Seats(hunter.TroopTransport, drivers.Count(), turrets.Count(), cargo.Count(), all.Count())) return false; unit.Seats.Insert(drivers[0]); foreach (BaseCompartmentSlot turret : turrets) unit.Seats.Insert(turret); int medicIndex = unit.Seats.Count(); + if (hunter.AssignedVehicle && cargo.IsEmpty()) medicIndex = unit.Seats.Count() - 1; foreach (BaseCompartmentSlot passenger : cargo) unit.Seats.Insert(passenger); AIGroup nativeGroup = unit.Group; for (int i = 0; i < unit.Seats.Count(); i++) @@ -547,15 +554,18 @@ class ERR_HunterService : ERR_ConvoyService unit.OpeningPatrol = Deployed() < 3; unit.PatrolHome = position; unit.Source = "aggression-uaz-" + (Deployed() + 1).ToString(); if (unit.TroopTransport) unit.Source = "aggression-truck-" + (Deployed() + 1).ToString(); - ResourceName vehiclePrefab = ERR_HunterFleetRules.VehiclePrefab(Deployed()); + ResourceName originalPrefab = ERR_HunterFleetRules.VehiclePrefab(Deployed()); + ResourceName vehiclePrefab = ERR_VehicleSelection.ForRole(2, originalPrefab); + if (vehiclePrefab.IsEmpty()) { m_NextSpawn = now + 30000; return false; } + unit.AssignedVehicle = vehiclePrefab != originalPrefab; unit.Deadline = now + 120000; unit.LaunchedAt = now; m_Hunters.Insert(unit); CommitReserve(unit, now); unit.Group = SCR_AIGroup.Cast(ERR_Actors.Spawn(ERR_ConvoyResources.GroupPrefab(), position)); unit.Entity = Vehicle.Cast(ERR_Actors.Spawn(vehiclePrefab, position, angles)); if (unit.Group) m_Mode.Own(unit.Group); if (unit.Entity) m_Mode.Own(unit.Entity); - if (!unit.Group || !unit.Entity || !ERR_ConvoyRules.EmptyCrewTemplate(unit.Group) || !FillCrew(unit)) - { unit.Release(m_Mode); ERR_HQ.Event("HUNTER FAILED", unit.Source + " native vehicle/crew spawn failed; allowance consumed"); return false; } + if (!unit.Group || !unit.Entity || !ERR_ConvoyRules.EmptyCrewTemplate(unit.Group) || (unit.AssignedVehicle && !ERR_VehicleSelection.RoadFit(unit.Entity)) || !FillCrew(unit)) + { GetGame().ERR_ServerVehicles().Reject(vehiclePrefab, 2); unit.Release(m_Mode); ERR_HQ.Event("HUNTER FAILED", unit.Source + " native vehicle/crew spawn failed; allowance consumed"); return false; } unit.Recovery = new ERR_HunterCrewRecovery(unit); unit.Recovery.Update(m_Mode, now); FactionAffiliationComponent affiliation = FactionAffiliationComponent.Cast(unit.Entity.FindComponent(FactionAffiliationComponent)); diff --git a/addons/core/UI/layouts/ERR/AdminMenu.layout b/addons/core/UI/layouts/ERR/AdminMenu.layout index b2bf207e..3babc07b 100644 --- a/addons/core/UI/layouts/ERR/AdminMenu.layout +++ b/addons/core/UI/layouts/ERR/AdminMenu.layout @@ -22,14 +22,14 @@ ImageWidgetClass { "Is Visible" 1 Name "Selected_Main_Mission" Slot FrameWidgetS FrameWidgetClass { "Is Visible" 1 Name "Sidebar_Mission" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 166 OffsetTop 166 SizeX 180 OffsetRight -208 SizeY 480 OffsetBottom -646 } { ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenSettings" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 0 OffsetTop 0 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -42 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "General" } } } ImageWidgetClass { "Is Visible" 1 Name "Selected_OpenSettings" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 44 OffsetTop 44 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -47 } Color 0.9 0.66 0.25 1 } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenVehicles" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 54 OffsetTop 54 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -96 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Civilian vehicles" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenVehicles" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 98 OffsetTop 98 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -101 } Color 0.9 0.66 0.25 1 } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenWorld" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 108 OffsetTop 108 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -150 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "World" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenWorld" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 152 OffsetTop 152 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -155 } Color 0.9 0.66 0.25 1 } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenTerrains" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 162 OffsetTop 162 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -204 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Terrains" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenTerrains" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 206 OffsetTop 206 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -209 } Color 0.9 0.66 0.25 1 } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenTelemetry" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 216 OffsetTop 216 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -258 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Statistics" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenTelemetry" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 260 OffsetTop 260 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -263 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenWorld" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 54 OffsetTop 54 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -96 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "World" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenWorld" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 98 OffsetTop 98 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -101 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenTerrains" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 108 OffsetTop 108 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -150 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Terrains" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenTerrains" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 152 OffsetTop 152 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -155 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenTelemetry" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 162 OffsetTop 162 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -204 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Statistics" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenTelemetry" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 206 OffsetTop 206 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -209 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenRecommendations" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 216 OffsetTop 216 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -258 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Recommended mods" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenRecommendations" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 260 OffsetTop 260 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -263 } Color 0.9 0.66 0.25 1 } } } ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Main_Forces" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 174 OffsetLeft 174 PositionY 106 OffsetTop 106 SizeX 138 OffsetRight -312 SizeY 42 OffsetBottom -148 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Forces" } } } ImageWidgetClass { "Is Visible" 0 Name "Selected_Main_Forces" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 174 OffsetLeft 174 PositionY 150 OffsetTop 150 SizeX 138 OffsetRight -312 SizeY 3 OffsetBottom -153 } Color 0.9 0.66 0.25 1 } @@ -46,6 +46,8 @@ ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_But ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenSites" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 260 OffsetTop 260 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -263 } Color 0.9 0.66 0.25 1 } ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenSarka" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 270 OffsetTop 270 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -312 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Šárka hunters" } } } ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenSarka" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 314 OffsetTop 314 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -317 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenPacks" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 324 OffsetTop 324 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -366 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Enemy packs" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenPacks" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 368 OffsetTop 368 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -371 } Color 0.9 0.66 0.25 1 } } } ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Main_HQ" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 320 OffsetLeft 320 PositionY 106 OffsetTop 106 SizeX 138 OffsetRight -458 SizeY 42 OffsetBottom -148 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "HQ" } } } ImageWidgetClass { "Is Visible" 0 Name "Selected_Main_HQ" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 320 OffsetLeft 320 PositionY 150 OffsetTop 150 SizeX 138 OffsetRight -458 SizeY 3 OffsetBottom -153 } Color 0.9 0.66 0.25 1 } @@ -67,36 +69,34 @@ ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenIntel" Slot FrameWidgetSlot ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenRadioIntel" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 54 OffsetTop 54 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -96 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Radio intel" } } } ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenRadioIntel" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 98 OffsetTop 98 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -101 } Color 0.9 0.66 0.25 1 } } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Main_Items" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 612 OffsetLeft 612 PositionY 106 OffsetTop 106 SizeX 138 OffsetRight -750 SizeY 42 OffsetBottom -148 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Items" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_Main_Items" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 612 OffsetLeft 612 PositionY 150 OffsetTop 150 SizeX 138 OffsetRight -750 SizeY 3 OffsetBottom -153 } Color 0.9 0.66 0.25 1 } -FrameWidgetClass { "Is Visible" 0 Name "Sidebar_Items" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 166 OffsetTop 166 SizeX 180 OffsetRight -208 SizeY 480 OffsetBottom -646 } { -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenItems" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 0 OffsetTop 0 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -42 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Extra equipment" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenItems" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 44 OffsetTop 44 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -47 } Color 0.9 0.66 0.25 1 } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenAllowedItems" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 54 OffsetTop 54 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -96 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Allowed items" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenAllowedItems" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 98 OffsetTop 98 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -101 } Color 0.9 0.66 0.25 1 } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenWeights" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 108 OffsetTop 108 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -150 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Spawn chances" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenWeights" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 152 OffsetTop 152 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -155 } Color 0.9 0.66 0.25 1 } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenItemPresets" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 162 OffsetTop 162 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -204 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Presets" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenItemPresets" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 206 OffsetTop 206 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -209 } Color 0.9 0.66 0.25 1 } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenStarter" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 216 OffsetTop 216 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -258 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Starting backpack" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenStarter" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 260 OffsetTop 260 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -263 } Color 0.9 0.66 0.25 1 } -} } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Main_Mods" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 758 OffsetLeft 758 PositionY 106 OffsetTop 106 SizeX 138 OffsetRight -896 SizeY 42 OffsetBottom -148 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Mods" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_Main_Mods" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 758 OffsetLeft 758 PositionY 150 OffsetTop 150 SizeX 138 OffsetRight -896 SizeY 3 OffsetBottom -153 } Color 0.9 0.66 0.25 1 } -FrameWidgetClass { "Is Visible" 0 Name "Sidebar_Mods" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 166 OffsetTop 166 SizeX 180 OffsetRight -208 SizeY 480 OffsetBottom -646 } { -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenMods" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 0 OffsetTop 0 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -42 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Installed mods" } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Main_Content" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 612 OffsetLeft 612 PositionY 106 OffsetTop 106 SizeX 138 OffsetRight -750 SizeY 42 OffsetBottom -148 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Content" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_Main_Content" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 612 OffsetLeft 612 PositionY 150 OffsetTop 150 SizeX 138 OffsetRight -750 SizeY 3 OffsetBottom -153 } Color 0.9 0.66 0.25 1 } +FrameWidgetClass { "Is Visible" 0 Name "Sidebar_Content" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 166 OffsetTop 166 SizeX 180 OffsetRight -208 SizeY 480 OffsetBottom -646 } { +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenMods" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 0 OffsetTop 0 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -42 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "1. Mods" } } } ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenMods" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 44 OffsetTop 44 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -47 } Color 0.9 0.66 0.25 1 } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenRecommendations" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 54 OffsetTop 54 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -96 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Recommended mods" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenRecommendations" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 98 OffsetTop 98 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -101 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenAllowedItems" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 54 OffsetTop 54 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -96 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "2. Items" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenAllowedItems" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 98 OffsetTop 98 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -101 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenVehiclePool" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 108 OffsetTop 108 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -150 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "3. Vehicles" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenVehiclePool" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 152 OffsetTop 152 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -155 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenVehicles" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 162 OffsetTop 162 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -204 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Vehicle spawning" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenVehicles" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 206 OffsetTop 206 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -209 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenItems" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 216 OffsetTop 216 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -258 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Equipment chance" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenItems" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 260 OffsetTop 260 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -263 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenWeights" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 270 OffsetTop 270 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -312 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Advanced weights" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenWeights" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 314 OffsetTop 314 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -317 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenItemPresets" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 324 OffsetTop 324 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -366 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Presets" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenItemPresets" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 368 OffsetTop 368 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -371 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenStarter" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 378 OffsetTop 378 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -420 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Starting backpack" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenStarter" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 422 OffsetTop 422 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -425 } Color 0.9 0.66 0.25 1 } } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Main_Audio" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 904 OffsetLeft 904 PositionY 106 OffsetTop 106 SizeX 138 OffsetRight -1042 SizeY 42 OffsetBottom -148 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Audio" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_Main_Audio" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 904 OffsetLeft 904 PositionY 150 OffsetTop 150 SizeX 138 OffsetRight -1042 SizeY 3 OffsetBottom -153 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Main_Audio" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 758 OffsetLeft 758 PositionY 106 OffsetTop 106 SizeX 138 OffsetRight -896 SizeY 42 OffsetBottom -148 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Audio" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_Main_Audio" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 758 OffsetLeft 758 PositionY 150 OffsetTop 150 SizeX 138 OffsetRight -896 SizeY 3 OffsetBottom -153 } Color 0.9 0.66 0.25 1 } FrameWidgetClass { "Is Visible" 0 Name "Sidebar_Audio" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 166 OffsetTop 166 SizeX 180 OffsetRight -208 SizeY 480 OffsetBottom -646 } { ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenTTS" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 0 OffsetTop 0 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -42 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Speech and sounds" } } } ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenTTS" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 44 OffsetTop 44 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -47 } Color 0.9 0.66 0.25 1 } } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Main_Status" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 1050 OffsetLeft 1050 PositionY 106 OffsetTop 106 SizeX 138 OffsetRight -1188 SizeY 42 OffsetBottom -148 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Status" } } } -ImageWidgetClass { "Is Visible" 0 Name "Selected_Main_Status" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 1050 OffsetLeft 1050 PositionY 150 OffsetTop 150 SizeX 138 OffsetRight -1188 SizeY 3 OffsetBottom -153 } Color 0.9 0.66 0.25 1 } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Main_Status" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 904 OffsetLeft 904 PositionY 106 OffsetTop 106 SizeX 138 OffsetRight -1042 SizeY 42 OffsetBottom -148 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Status" } } } +ImageWidgetClass { "Is Visible" 0 Name "Selected_Main_Status" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 904 OffsetLeft 904 PositionY 150 OffsetTop 150 SizeX 138 OffsetRight -1042 SizeY 3 OffsetBottom -153 } Color 0.9 0.66 0.25 1 } FrameWidgetClass { "Is Visible" 0 Name "Sidebar_Status" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 166 OffsetTop 166 SizeX 180 OffsetRight -208 SizeY 480 OffsetBottom -646 } { ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "OpenStatus" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 0 OffsetTop 0 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -42 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Mission status" } } } ImageWidgetClass { "Is Visible" 0 Name "Selected_OpenStatus" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 44 OffsetTop 44 SizeX 180 OffsetRight -180 SizeY 3 OffsetBottom -47 } Color 0.9 0.66 0.25 1 } @@ -419,22 +419,51 @@ ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_But } } } FrameWidgetClass { "Is Visible" 0 Name "ModsPage" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 220 OffsetLeft 220 PositionY 160 OffsetTop 160 SizeX 1000 OffsetRight -1220 SizeY 486 OffsetBottom -646 } { +TextWidgetClass { Name "ModsHelp" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 0 OffsetTop 0 SizeX 936 OffsetRight -964 SizeY 30 OffsetBottom -30 } Color 0.9 0.92 0.94 1 Text "Enable mods first. Their individual item and vehicle choices are remembered when disabled." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +TextWidgetClass { Name "ModsScope" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 32 OffsetTop 32 SizeX 936 OffsetRight -964 SizeY 28 OffsetBottom -60 } Color 0.9 0.92 0.94 1 Text "Controls future extra equipment and assigned vehicles. Loaded Workshop scripts stay active." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +TextWidgetClass { Name "ModsSearchLabel" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 64 OffsetTop 64 SizeX 430 OffsetRight -458 SizeY 22 OffsetBottom -86 } Color 0.9 0.92 0.94 1 Text "Find a mod" "Font Size" 14 "Min Font Size" 14 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +ButtonWidgetClass : "{DA43C77A0D1E59F8}UI/layouts/ERR/AdminValue.layout" { Name "ModsSearch" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 88 OffsetTop 88 SizeX 540 OffsetRight -568 SizeY 36 OffsetBottom -124 } components { SCR_EditBoxComponent "{547290FFBD5B33E9}" { m_sLabel "" } } } +ButtonWidgetClass : "{4B5AE6E64037FFB4}UI/layouts/WidgetLibrary/ComboBox/WLib_ComboBox.layout" { Name "ModsFilter" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 586 OffsetLeft 586 PositionY 88 OffsetTop 88 SizeX 378 OffsetRight -964 SizeY 36 OffsetBottom -124 } components { SCR_ComboBoxComponent "{546B1D464BC32853}" { m_bUseLabel 0 m_sLabel "" m_fSizeWithoutLabel 36 } } } +TextWidgetClass { Name "ModsCount" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 130 OffsetTop 130 SizeX 936 OffsetRight -964 SizeY 28 OffsetBottom -158 } Color 0.9 0.92 0.94 1 Text "Waiting for server..." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +ScrollLayoutWidgetClass { Name "ModsScroll" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 166 OffsetTop 166 SizeX 936 OffsetRight -964 SizeY 310 OffsetBottom -476 } { VerticalLayoutWidgetClass { Name "ModList" Slot AlignableSlot { HorizontalAlign 3 VerticalAlign 3 Padding 0 0 12 0 } { } } } } +} } +FrameWidgetClass { "Is Visible" 0 Name "PacksPage" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 220 OffsetLeft 220 PositionY 160 OffsetTop 160 SizeX 1000 OffsetRight -1220 SizeY 486 OffsetBottom -646 } { TextWidgetClass { - Name "ModsHelp" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 6 OffsetTop 6 SizeX 650 OffsetRight -678 SizeY 50 OffsetBottom -56 } - Color 0.9 0.92 0.94 1 Text "Mission content switches are followed by all server-loaded mods. Workshop mods stay loaded; use Edit items to manage their random equipment." "Font Size" 19 "Min Font Size" 19 Wrap 1 + Name "PacksHelp" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 6 OffsetTop 6 SizeX 650 OffsetRight -678 SizeY 50 OffsetBottom -56 } + Color 0.9 0.92 0.94 1 Text "Choose supported enemy packs and factions for the next round. Item and vehicle choices are under Content." "Font Size" 19 "Min Font Size" 19 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } TextWidgetClass { - Name "ModsScope" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 58 OffsetTop 58 SizeX 936 OffsetRight -964 SizeY 46 OffsetBottom -104 } + Name "PacksScope" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 58 OffsetTop 58 SizeX 936 OffsetRight -964 SizeY 46 OffsetBottom -104 } Color 0.9 0.92 0.94 1 Text "Switches apply only to supported mission content, next round. Use Edit items for random equipment and presets." "Font Size" 19 "Min Font Size" 19 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } -ScrollLayoutWidgetClass { Name "ModsScroll" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 112 OffsetTop 112 SizeX 936 OffsetRight -964 SizeY 362 OffsetBottom -474 } { -VerticalLayoutWidgetClass { Name "ModList" Slot AlignableSlot { HorizontalAlign 3 VerticalAlign 3 } { } } +ScrollLayoutWidgetClass { Name "PacksScroll" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 112 OffsetTop 112 SizeX 936 OffsetRight -964 SizeY 362 OffsetBottom -474 } { +VerticalLayoutWidgetClass { Name "PackList" Slot AlignableSlot { HorizontalAlign 3 VerticalAlign 3 } { } } } } } } +FrameWidgetClass { "Is Visible" 0 Name "VehiclePoolPage" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 220 OffsetLeft 220 PositionY 160 OffsetTop 160 SizeX 1000 OffsetRight -1220 SizeY 486 OffsetBottom -646 } { +TextWidgetClass { Name "VehiclesHelp" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 0 OffsetTop 0 SizeX 936 OffsetRight -964 SizeY 28 OffsetBottom -28 } Color 0.9 0.92 0.94 1 Text "Choose a mod and a use. New mod vehicles start unassigned; enable the ones you want." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +ButtonWidgetClass : "{4B5AE6E64037FFB4}UI/layouts/WidgetLibrary/ComboBox/WLib_ComboBox.layout" { Name "VehiclesMod" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 34 OffsetTop 34 SizeX 370 OffsetRight -398 SizeY 36 OffsetBottom -70 } components { SCR_ComboBoxComponent "{546B1D464BC32853}" { m_bUseLabel 0 m_sLabel "" m_fSizeWithoutLabel 36 } } } +ButtonWidgetClass : "{4B5AE6E64037FFB4}UI/layouts/WidgetLibrary/ComboBox/WLib_ComboBox.layout" { Name "VehiclesRole" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 410 OffsetLeft 410 PositionY 34 OffsetTop 34 SizeX 380 OffsetRight -790 SizeY 36 OffsetBottom -70 } components { SCR_ComboBoxComponent "{546B1D464BC32853}" { m_bUseLabel 0 m_sLabel "" m_fSizeWithoutLabel 36 } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "VehiclesSelectionState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 804 OffsetLeft 804 PositionY 34 OffsetTop 34 SizeX 160 OffsetRight -964 SizeY 36 OffsetBottom -70 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Waiting..." } } } +TextWidgetClass { Name "VehiclesSearchLabel" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 77 OffsetTop 77 SizeX 430 OffsetRight -458 SizeY 22 OffsetBottom -99 } Color 0.9 0.92 0.94 1 Text "Search name" "Font Size" 14 "Min Font Size" 14 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +TextWidgetClass { Name "VehiclesFilterLabel" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 470 OffsetLeft 470 PositionY 77 OffsetTop 77 SizeX 220 OffsetRight -690 SizeY 22 OffsetBottom -99 } Color 0.9 0.92 0.94 1 Text "Show" "Font Size" 14 "Min Font Size" 14 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +ButtonWidgetClass : "{DA43C77A0D1E59F8}UI/layouts/ERR/AdminValue.layout" { Name "VehiclesSearch" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 100 OffsetTop 100 SizeX 430 OffsetRight -458 SizeY 36 OffsetBottom -136 } components { SCR_EditBoxComponent "{547290FFBD5B33E9}" { m_sLabel "" } } } +ButtonWidgetClass : "{4B5AE6E64037FFB4}UI/layouts/WidgetLibrary/ComboBox/WLib_ComboBox.layout" { Name "VehiclesFilter" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 470 OffsetLeft 470 PositionY 100 OffsetTop 100 SizeX 220 OffsetRight -690 SizeY 36 OffsetBottom -136 } components { SCR_ComboBoxComponent "{546B1D464BC32853}" { m_bUseLabel 0 m_sLabel "" m_fSizeWithoutLabel 36 } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "VehiclesShow" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 704 OffsetLeft 704 PositionY 100 OffsetTop 100 SizeX 120 OffsetRight -824 SizeY 36 OffsetBottom -136 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Search" } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "VehiclesClear" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 838 OffsetLeft 838 PositionY 100 OffsetTop 100 SizeX 126 OffsetRight -964 SizeY 36 OffsetBottom -136 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Clear" } } } +TextWidgetClass { Name "VehiclesBulkScope" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 145 OffsetTop 145 SizeX 350 OffsetRight -378 SizeY 28 OffsetBottom -173 } Color 0.9 0.92 0.94 1 Text "This use, whole mod:" "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "VehiclesEnableAll" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 554 OffsetLeft 554 PositionY 140 OffsetTop 140 SizeX 198 OffsetRight -752 SizeY 36 OffsetBottom -176 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Enable all for use" } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "VehiclesDisableAll" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 766 OffsetLeft 766 PositionY 140 OffsetTop 140 SizeX 198 OffsetRight -964 SizeY 36 OffsetBottom -176 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Disable all for use" } } } +ScrollLayoutWidgetClass { Name "VehiclesScroll" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 184 OffsetTop 184 SizeX 936 OffsetRight -964 SizeY 248 OffsetBottom -432 } { VerticalLayoutWidgetClass { Name "VehiclesContent" Slot AlignableSlot { HorizontalAlign 3 VerticalAlign 3 Padding 0 0 12 0 } { TextWidgetClass { Name "VehiclesText" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 0 OffsetTop 0 SizeX 920 OffsetRight -920 SizeY 30 OffsetBottom -30 } Color 0.9 0.92 0.94 1 Text "Select a mod above." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } + } } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "VehiclesPrevious" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 440 OffsetTop 440 SizeX 120 OffsetRight -148 SizeY 36 OffsetBottom -476 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Previous" } } } +TextWidgetClass { Name "VehiclesPageState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 162 OffsetLeft 162 PositionY 444 OffsetTop 444 SizeX 668 OffsetRight -830 SizeY 32 OffsetBottom -476 } Color 0.9 0.92 0.94 1 Text "Waiting for server..." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "VehiclesNext" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 844 OffsetLeft 844 PositionY 440 OffsetTop 440 SizeX 120 OffsetRight -964 SizeY 36 OffsetBottom -476 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Next" } } } +} } FrameWidgetClass { "Is Visible" 0 Name "FactionsPage" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 220 OffsetLeft 220 PositionY 160 OffsetTop 160 SizeX 1000 OffsetRight -1220 SizeY 486 OffsetBottom -646 } { TextWidgetClass { Name "FactionHelp" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 6 OffsetTop 6 SizeX 936 OffsetRight -964 SizeY 50 OffsetBottom -56 } @@ -1184,32 +1213,27 @@ ScrollLayoutWidgetClass { Name "WeightsScroll" Slot FrameWidgetSlot { Anchor 0 0 TextWidgetClass { Name "WeightsFooter" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 392 OffsetTop 392 SizeX 936 OffsetRight -964 SizeY 38 OffsetBottom -430 } Color 0.9 0.92 0.94 1 Text "Shown percentages apply when an extra item is chosen. Mod and item weights multiply. Blocked items remain excluded." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } } } FrameWidgetClass { "Is Visible" 0 Name "AllowedItemsPage" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 220 OffsetLeft 220 PositionY 160 OffsetTop 160 SizeX 1000 OffsetRight -1220 SizeY 486 OffsetBottom -646 } { -TextWidgetClass { Name "ItemsHelp" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 4 OffsetTop 4 SizeX 936 OffsetRight -964 SizeY 48 OffsetBottom -52 } Color 0.9 0.92 0.94 1 Text "Choose a mod, then allow or block its items. Allow all / Block all resets individual selections for this mod. Changes affect future extra equipment." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } - - - -ButtonWidgetClass : "{4B5AE6E64037FFB4}UI/layouts/WidgetLibrary/ComboBox/WLib_ComboBox.layout" { Name "ItemsMod" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 58 OffsetTop 58 SizeX 420 OffsetRight -448 SizeY 42 OffsetBottom -100 } components { SCR_ComboBoxComponent "{546B1D464BC32853}" { m_bUseLabel 0 m_sLabel "" m_fSizeWithoutLabel 42 } } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsShow" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 458 OffsetLeft 458 PositionY 58 OffsetTop 58 SizeX 150 OffsetRight -608 SizeY 42 OffsetBottom -100 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Show items" } } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsEnableAll" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 618 OffsetLeft 618 PositionY 58 OffsetTop 58 SizeX 166 OffsetRight -784 SizeY 42 OffsetBottom -100 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Allow all" } } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsDisableAll" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 794 OffsetLeft 794 PositionY 58 OffsetTop 58 SizeX 170 OffsetRight -964 SizeY 42 OffsetBottom -100 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Block all" } } } -TextWidgetClass { Name "ItemsScan" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 104 OffsetTop 104 SizeX 756 OffsetRight -784 SizeY 24 OffsetBottom -128 } Color 0.9 0.92 0.94 1 Text "Waiting for server..." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsSelectionState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 804 OffsetLeft 804 PositionY 102 OffsetTop 102 SizeX 160 OffsetRight -964 SizeY 28 OffsetBottom -130 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Waiting..." m_fDisabledOpacity 1 } } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsPrevious" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 132 OffsetTop 132 SizeX 130 OffsetRight -158 SizeY 42 OffsetBottom -174 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Previous" } } } -TextWidgetClass { Name "ItemsPageState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 170 OffsetLeft 170 PositionY 136 OffsetTop 136 SizeX 646 OffsetRight -816 SizeY 40 OffsetBottom -176 } Color 0.9 0.92 0.94 1 Text "Choose a mod and press Show items." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsNext" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 834 OffsetLeft 834 PositionY 132 OffsetTop 132 SizeX 130 OffsetRight -964 SizeY 42 OffsetBottom -174 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Next" } } } -ScrollLayoutWidgetClass { Name "ItemsScroll" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 180 OffsetTop 180 SizeX 936 OffsetRight -964 SizeY 246 OffsetBottom -426 } { VerticalLayoutWidgetClass { Name "ItemsContent" Slot AlignableSlot { HorizontalAlign 3 VerticalAlign 3 Padding 8 4 14 4 } { TextWidgetClass { Name "ItemsText" Slot LayoutSlot { HorizontalAlign 3 Padding 0 0 0 8 SizeMode Fill } Text "Choose a mod to edit its inventory items." "Font Size" 18 Wrap 1 } } } } } - - - - - - - - +TextWidgetClass { Name "ItemsHelp" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 0 OffsetTop 0 SizeX 936 OffsetRight -964 SizeY 28 OffsetBottom -28 } Color 0.9 0.92 0.94 1 Text "Choose a mod, search by name, then enable or disable individual items." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +ButtonWidgetClass : "{4B5AE6E64037FFB4}UI/layouts/WidgetLibrary/ComboBox/WLib_ComboBox.layout" { Name "ItemsMod" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 34 OffsetTop 34 SizeX 540 OffsetRight -568 SizeY 36 OffsetBottom -70 } components { SCR_ComboBoxComponent "{546B1D464BC32853}" { m_bUseLabel 0 m_sLabel "" m_fSizeWithoutLabel 36 } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsSelectionState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 804 OffsetLeft 804 PositionY 34 OffsetTop 34 SizeX 160 OffsetRight -964 SizeY 36 OffsetBottom -70 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Waiting..." } } } +TextWidgetClass { Name "ItemsSearchLabel" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 77 OffsetTop 77 SizeX 430 OffsetRight -458 SizeY 22 OffsetBottom -99 } Color 0.9 0.92 0.94 1 Text "Search name" "Font Size" 14 "Min Font Size" 14 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +TextWidgetClass { Name "ItemsFilterLabel" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 470 OffsetLeft 470 PositionY 77 OffsetTop 77 SizeX 220 OffsetRight -690 SizeY 22 OffsetBottom -99 } Color 0.9 0.92 0.94 1 Text "Show" "Font Size" 14 "Min Font Size" 14 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +ButtonWidgetClass : "{DA43C77A0D1E59F8}UI/layouts/ERR/AdminValue.layout" { Name "ItemsSearch" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 100 OffsetTop 100 SizeX 430 OffsetRight -458 SizeY 36 OffsetBottom -136 } components { SCR_EditBoxComponent "{547290FFBD5B33E9}" { m_sLabel "" } } } +ButtonWidgetClass : "{4B5AE6E64037FFB4}UI/layouts/WidgetLibrary/ComboBox/WLib_ComboBox.layout" { Name "ItemsFilter" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 470 OffsetLeft 470 PositionY 100 OffsetTop 100 SizeX 220 OffsetRight -690 SizeY 36 OffsetBottom -136 } components { SCR_ComboBoxComponent "{546B1D464BC32853}" { m_bUseLabel 0 m_sLabel "" m_fSizeWithoutLabel 36 } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsShow" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 704 OffsetLeft 704 PositionY 100 OffsetTop 100 SizeX 120 OffsetRight -824 SizeY 36 OffsetBottom -136 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Search" } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsClear" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 838 OffsetLeft 838 PositionY 100 OffsetTop 100 SizeX 126 OffsetRight -964 SizeY 36 OffsetBottom -136 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Clear" } } } +TextWidgetClass { Name "ItemsBulkScope" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 145 OffsetTop 145 SizeX 350 OffsetRight -378 SizeY 28 OffsetBottom -173 } Color 0.9 0.92 0.94 1 Text "Whole selected mod:" "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsEnableAll" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 554 OffsetLeft 554 PositionY 140 OffsetTop 140 SizeX 198 OffsetRight -752 SizeY 36 OffsetBottom -176 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Enable all items" } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsDisableAll" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 766 OffsetLeft 766 PositionY 140 OffsetTop 140 SizeX 198 OffsetRight -964 SizeY 36 OffsetBottom -176 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Disable all items" } } } +ScrollLayoutWidgetClass { Name "ItemsScroll" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 184 OffsetTop 184 SizeX 936 OffsetRight -964 SizeY 248 OffsetBottom -432 } { VerticalLayoutWidgetClass { Name "ItemsContent" Slot AlignableSlot { HorizontalAlign 3 VerticalAlign 3 Padding 0 0 12 0 } { TextWidgetClass { Name "ItemsText" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 0 OffsetTop 0 SizeX 920 OffsetRight -920 SizeY 30 OffsetBottom -30 } Color 0.9 0.92 0.94 1 Text "Select a mod above." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } + } } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsPrevious" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 440 OffsetTop 440 SizeX 120 OffsetRight -148 SizeY 36 OffsetBottom -476 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Previous" } } } +TextWidgetClass { Name "ItemsPageState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 162 OffsetLeft 162 PositionY 444 OffsetTop 444 SizeX 668 OffsetRight -830 SizeY 32 OffsetBottom -476 } Color 0.9 0.92 0.94 1 Text "Waiting for server..." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsNext" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 844 OffsetLeft 844 PositionY 440 OffsetTop 440 SizeX 120 OffsetRight -964 SizeY 36 OffsetBottom -476 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Next" } } } } } FrameWidgetClass { "Is Visible" 0 Name "ItemPresetsPage" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 220 OffsetLeft 220 PositionY 160 OffsetTop 160 SizeX 1000 OffsetRight -1220 SizeY 486 OffsetBottom -646 } { -TextWidgetClass { Name "PresetsHeading" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 4 OffsetTop 4 SizeX 936 OffsetRight -964 SizeY 30 OffsetBottom -34 } Color 0.9 0.92 0.94 1 Text "Save your item selections" "Font Size" 22 "Min Font Size" 22 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } -TextWidgetClass { Name "PresetsHelp" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 42 OffsetTop 42 SizeX 936 OffsetRight -964 SizeY 46 OffsetBottom -88 } Color 0.9 0.92 0.94 1 Text "A preset includes allowed / blocked items and their weights across all mods. It does not change the overall extra-equipment chance. Missing mods stay inactive." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +TextWidgetClass { Name "PresetsHeading" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 4 OffsetTop 4 SizeX 936 OffsetRight -964 SizeY 30 OffsetBottom -34 } Color 0.9 0.92 0.94 1 Text "Save your content choices" "Font Size" 22 "Min Font Size" 22 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +TextWidgetClass { Name "PresetsHelp" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 42 OffsetTop 42 SizeX 936 OffsetRight -964 SizeY 46 OffsetBottom -88 } Color 0.9 0.92 0.94 1 Text "Presets include mod switches, item and vehicle-role choices, and equipment weights. Spawn counts and overall equipment chance are separate." "Font Size" 17 "Min Font Size" 17 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } TextWidgetClass { Name "ItemsPresetsLabel" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 98 OffsetTop 98 SizeX 936 OffsetRight -964 SizeY 26 OffsetBottom -124 } Color 0.9 0.92 0.94 1 Text "Saved presets" "Font Size" 17 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } ButtonWidgetClass : "{4B5AE6E64037FFB4}UI/layouts/WidgetLibrary/ComboBox/WLib_ComboBox.layout" { Name "ItemsPresets" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 28 OffsetLeft 28 PositionY 134 OffsetTop 134 SizeX 560 OffsetRight -588 SizeY 42 OffsetBottom -176 } components { SCR_ComboBoxComponent "{546B1D464BC32853}" { m_bUseLabel 0 m_sLabel "" m_fSizeWithoutLabel 42 } } } ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "ItemsPresetLoad" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 608 OffsetLeft 608 PositionY 134 OffsetTop 134 SizeX 170 OffsetRight -778 SizeY 42 OffsetBottom -176 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Load" } } } diff --git a/addons/core/UI/layouts/ERR/ContentRow.layout b/addons/core/UI/layouts/ERR/ContentRow.layout index fcba3384..651d4002 100644 --- a/addons/core/UI/layouts/ERR/ContentRow.layout +++ b/addons/core/UI/layouts/ERR/ContentRow.layout @@ -1,9 +1,11 @@ -SizeLayoutWidgetClass { Name "ContentRow" Slot LayoutSlot { HorizontalAlign 3 Padding 0 0 0 16 } WidthOverride 900 HeightOverride 160 { +SizeLayoutWidgetClass { Name "ContentRow" WidthOverride 900 HeightOverride 108 Slot LayoutSlot { HorizontalAlign 3 Padding 0 0 0 8 } { FrameWidgetClass { Name "ContentRowBody" Slot AlignableSlot { HorizontalAlign 3 VerticalAlign 3 } { -TextWidgetClass { Name "PackLabel" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 0 OffsetTop 0 SizeX 718 OffsetRight -718 SizeY 32 OffsetBottom -32 } Color 0.9 0.92 0.94 1 Text "Content pack" "Font Size" 26 "Min Font Size" 26 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "SelectionState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 734 OffsetLeft 734 PositionY 0 OffsetTop 0 SizeX 160 OffsetRight -894 SizeY 32 OffsetBottom -32 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Waiting..." m_fDisabledOpacity 1 } } } -TextWidgetClass { Name "PackState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 40 OffsetTop 40 SizeX 900 OffsetRight -900 SizeY 30 OffsetBottom -70 } Color 0.9 0.92 0.94 1 Text "Waiting for server settings..." "Font Size" 18 "Min Font Size" 18 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Enable" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 90 OffsetTop 90 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -132 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Enable" } } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Disable" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 196 OffsetLeft 196 PositionY 90 OffsetTop 90 SizeX 180 OffsetRight -376 SizeY 42 OffsetBottom -132 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Disable" } } } +TextWidgetClass { Name "PackLabel" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 0 OffsetTop 0 SizeX 530 OffsetRight -530 SizeY 32 OffsetBottom -32 } Color 0.9 0.92 0.94 1 Text "Content" "Font Size" 20 "Min Font Size" 20 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "SelectionState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 540 OffsetLeft 540 PositionY 0 OffsetTop 0 SizeX 120 OffsetRight -660 SizeY 32 OffsetBottom -32 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Waiting..." } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Enable" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 670 OffsetLeft 670 PositionY 0 OffsetTop 0 SizeX 108 OffsetRight -778 SizeY 32 OffsetBottom -32 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Enable" } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Disable" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 788 OffsetLeft 788 PositionY 0 OffsetTop 0 SizeX 108 OffsetRight -896 SizeY 32 OffsetBottom -32 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Disable" } } } +TextWidgetClass { Name "PackState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 38 OffsetTop 38 SizeX 900 OffsetRight -900 SizeY 40 OffsetBottom -78 } Color 0.9 0.92 0.94 1 Text "Waiting for server..." "Font Size" 14 "Min Font Size" 14 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "EditItems" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 670 OffsetLeft 670 PositionY 70 OffsetTop 70 SizeX 108 OffsetRight -778 SizeY 32 OffsetBottom -102 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Items" } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "EditVehicles" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 788 OffsetLeft 788 PositionY 70 OffsetTop 70 SizeX 108 OffsetRight -896 SizeY 32 OffsetBottom -102 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Vehicles" } } } } } } } diff --git a/addons/core/UI/layouts/ERR/ItemRow.layout b/addons/core/UI/layouts/ERR/ItemRow.layout index d1a3e4fb..018e8905 100644 --- a/addons/core/UI/layouts/ERR/ItemRow.layout +++ b/addons/core/UI/layouts/ERR/ItemRow.layout @@ -1,9 +1,9 @@ -SizeLayoutWidgetClass { Name "ItemRow" WidthOverride 900 HeightOverride 180 Slot LayoutSlot { HorizontalAlign 3 Padding 0 0 0 16 } { +SizeLayoutWidgetClass { Name "ItemRow" WidthOverride 900 HeightOverride 82 Slot LayoutSlot { HorizontalAlign 3 Padding 0 0 0 8 } { FrameWidgetClass { Name "ContentRowBody" Slot AlignableSlot { HorizontalAlign 3 VerticalAlign 3 } { -TextWidgetClass { Name "PackLabel" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 0 OffsetTop 0 SizeX 718 OffsetRight -718 SizeY 32 OffsetBottom -32 } Color 0.9 0.92 0.94 1 Text "Content pack" "Font Size" 26 "Min Font Size" 26 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "SelectionState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 734 OffsetLeft 734 PositionY 0 OffsetTop 0 SizeX 160 OffsetRight -894 SizeY 32 OffsetBottom -32 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Waiting..." m_fDisabledOpacity 1 } } } -TextWidgetClass { Name "PackState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 36 OffsetTop 36 SizeX 900 OffsetRight -900 SizeY 66 OffsetBottom -102 } Color 0.9 0.92 0.94 1 Text "Waiting for server settings..." "Font Size" 18 "Min Font Size" 18 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Enable" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 112 OffsetTop 112 SizeX 180 OffsetRight -180 SizeY 42 OffsetBottom -154 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Enable" } } } -ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Disable" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 196 OffsetLeft 196 PositionY 112 OffsetTop 112 SizeX 180 OffsetRight -376 SizeY 42 OffsetBottom -154 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Disable" } } } +TextWidgetClass { Name "PackLabel" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 0 OffsetTop 0 SizeX 530 OffsetRight -530 SizeY 32 OffsetBottom -32 } Color 0.9 0.92 0.94 1 Text "Content" "Font Size" 20 "Min Font Size" 20 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "SelectionState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 540 OffsetLeft 540 PositionY 0 OffsetTop 0 SizeX 120 OffsetRight -660 SizeY 32 OffsetBottom -32 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Waiting..." } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Enable" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 670 OffsetLeft 670 PositionY 0 OffsetTop 0 SizeX 108 OffsetRight -778 SizeY 32 OffsetBottom -32 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Enable" } } } +ButtonWidgetClass : "{75C912A1C89BE6C2}UI/layouts/WidgetLibrary/Buttons/WLib_ButtonText.layout" { Name "Disable" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 788 OffsetLeft 788 PositionY 0 OffsetTop 0 SizeX 108 OffsetRight -896 SizeY 32 OffsetBottom -32 } components { SCR_ButtonTextComponent "{5548F0143AE99095}" { m_sText "Disable" } } } +TextWidgetClass { Name "PackState" Slot FrameWidgetSlot { Anchor 0 0 0 0 PositionX 0 OffsetLeft 0 PositionY 38 OffsetTop 38 SizeX 900 OffsetRight -900 SizeY 40 OffsetBottom -78 } Color 0.9 0.92 0.94 1 Text "Waiting for server..." "Font Size" 14 "Min Font Size" 14 Wrap 1 FontProperties FontProperties { Font "{3E7733BAC8C831F6}UI/Fonts/RobotoCondensed/RobotoCondensed_Regular.fnt" } } } } } } diff --git a/compatibility/rhs-1.9/README.md b/compatibility/rhs-1.9/README.md index 8868acf2..60df3255 100644 --- a/compatibility/rhs-1.9/README.md +++ b/compatibility/rhs-1.9/README.md @@ -1,6 +1,20 @@ -# RHS 1.9 compatibility +# RHS 1.9 compatibility — retired -## Embedded in Escape +## Retired on 6 November 2026 + +The user confirmed the upstream fix; installed RHS Status Quo is now 0.17.5281. +The two embedded script replacements have been removed from Escape. The generator +now refuses to run, so it cannot silently restore old RHS scripts during a build. +Use updated RHS directly, without the standalone `E119F1C05A274B83` compatibility +addon. Escape still requires RHS itself. The independent Reaper/RHS character-slot +workaround is unchanged. + +The published standalone listing has not been changed by this source edit. +The descriptions beside this file contain retirement wording for a future update. +The following sections preserve the old patch and publication history; their +preparation commands are retired and must not be used for current RHS. + +## Historical: embedded in Escape The same two replacements can live directly in Escape. Prepare them before opening Workbench, testing, or packaging a fresh checkout: @@ -29,7 +43,13 @@ the inputs inside Escape's PAK. See the [embedded test evidence](../../docs/evid It was published inside Escape **0.0.141** after successful Workshop upload and backend processing. Inherited dependency diagnostics remain. -## Standalone experiment +## Standalone addon + +Published as [RHS 1.9 Compatibility](https://reforger.armaplatform.com/workshop/E119F1C05A274B83) +version **1.0.0**, public, Systems category, APL-ND, with the gear preview. +Upload and backend processing were confirmed; see the +[publication evidence](../../docs/evidence/rhs-standalone-published-2026-11-05/README.md). +Escape 0.0.141 already embeds these fixes and does not need this extra addon. Separate addon for RHS Status Quo **0.16.5237** and Reforger **1.9.0.37**. It uses same-path script replacement to fix declarations before compilation: @@ -53,7 +73,7 @@ python3 compatibility/rhs-1.9/prepare.py \ For an isolated test, add dependency `E119F1C05A274B83` to the test copy of Escape's `addon.gproj`, and expose the generated addon through its addon search directory. Keep the original RHS dependency. The GUID is a local project identity, -not a published Workshop ID. +also the published Workshop ID since 5 November 2026. Both changes pass native compilation of GameLib, Game and WorkbenchGame with Escape's complete RHS/WCS/BMP/Parachute dependency graph on 1.9.0.37. The current @@ -62,7 +82,7 @@ scenario prepares and spawns the player. The six-faction rescue fixture complete crews and cargo capacity, two physical landings, wounded boarding, and loaded airborne departure. This is local Workbench evidence, not multiplayer or general vehicle-handling qualification. Both replaced scripts are byte-identical in the -native packed output. No Workshop publication has been performed. +native packed output. The standalone addon has now been published as 1.0.0. The full logs also exposed a WCS BMP tire initialization failure. A separate local WCS experiment is not included in the published mission. Other inherited diff --git a/compatibility/rhs-1.9/mission-workshop-description.txt b/compatibility/rhs-1.9/mission-workshop-description.txt index ea5704a5..c0f8788e 100644 --- a/compatibility/rhs-1.9/mission-workshop-description.txt +++ b/compatibility/rhs-1.9/mission-workshop-description.txt @@ -1,7 +1,2 @@ -Includes an unofficial RHS Status Quo 0.16.5237 script compatibility patch for -Arma Reforger 1.9.0.37. The original RHS addon and content packs remain required; -no separate RHS compatibility addon is needed. - -Original RHS scripts and content are by Red Hammer Studios. This mission and -its compatibility changes are not an official RHS release. -RHS terms: https://docs.rhsmods.org/rhs-status-quo-user-documentation/arma-reforger/rhs-status-quo/eula +Requires updated RHS Status Quo. The legacy RHS 1.9 script compatibility +overrides have been removed; no separate RHS compatibility addon is needed. diff --git a/compatibility/rhs-1.9/prepare.py b/compatibility/rhs-1.9/prepare.py index c3ed640c..29c9c3c9 100644 --- a/compatibility/rhs-1.9/prepare.py +++ b/compatibility/rhs-1.9/prepare.py @@ -1,146 +1,12 @@ #!/usr/bin/env python3 -"""Generate a local RHS 0.16.5237 compatibility addon from installed scripts. - -Only two pinned scripts are read; installed Workshop files are never modified. -The generated addon replaces scripts at their original paths before compilation. -""" -import argparse -import hashlib -import json -from pathlib import Path -import shutil -import struct -import sys -import zlib - -HERE = Path(__file__).resolve().parent -sys.path.insert(0, str(HERE.parents[1] / 'tools')) -from pak_inventory import Limits, parse_tree - -CAS = 'Scripts/Game/Editor/Components/EditableEntity/RHS_CAS_EditableEntityComponent.c' -TIRE = 'Scripts/Game/Vehicle/RHS_DestructionTireComponent.c' -EXPECTED = { - CAS: '1b4c5c8d3078f60f617cab94457bd0d9c96a048ad05117353e67e22b9972af37', - TIRE: '9fc9fffa3e63a1115e174e51faa222504038e57790f95c57ef691da8745039c9', -} - - -def replace_once(text, old, new): - if text.count(old) != 1: - raise ValueError('Expected exactly one patch location: ' + old) - return text.replace(old, new) - - -def patched(path, raw): - if hashlib.sha256(raw).hexdigest() != EXPECTED[path]: - raise ValueError('RHS script changed; review compatibility before patching: ' + path) - text = raw.decode('utf-8').replace('\r\n', '\n') - if path == CAS: - text = replace_once(text, 'override void SetAuthor(int playerID)', - 'override void SetAuthor(int playerID, bool isGM = false)') - text = replace_once(text, 'super.SetAuthor(playerID);\n\n\t\tRHS_CAS_', - 'super.SetAuthor(playerID, isGM);\n\n\t\tRHS_CAS_') - elif path == TIRE: - text = replace_once(text, 'return m_iWheelIndex;', 'return GetWheelIndex();') - return text.encode('utf-8') - - -def read_scripts(folder): - project = folder / 'addon.gproj' - expected_project = '51fda0afde5ebcd4dc88c6c9451d960b67aceaee437f02f1cc80aef724e3779c' - if hashlib.sha256(project.read_bytes()).hexdigest() != expected_project: - raise ValueError('Expected the audited RHS Status Quo 0.16.5237 project') - found = {} - for pak in sorted(folder.glob('*.pak')): - with pak.open('rb') as stream: - header = stream.read(12) - if header[:4] != b'FORM' or header[8:] != b'PAC1': - raise ValueError('Unsupported archive: ' + str(pak)) - offset, chunks = 12, {} - for expected in (b'HEAD', b'DATA', b'FILE'): - stream.seek(offset) - tag, size = struct.unpack('>4sI', stream.read(8)) - if tag != expected or offset + 8 + size > pak.stat().st_size: - raise ValueError('Invalid archive chunks') - chunks[tag] = (offset + 8, size) - offset += 8 + size - start, size = chunks[b'FILE'] - if size > 32 * 1024**2: - raise ValueError('Archive tree too large') - stream.seek(start) - data_start, data_size = chunks[b'DATA'] - entries, _, _ = parse_tree(stream.read(size), data_start, - data_start + data_size, Limits(total_bytes=32 * 1024**3)) - for entry in entries: - path = entry['path'] - if path not in EXPECTED: - continue - if path in found or entry['content_bytes'] > 1024**2: - raise ValueError('Duplicate or oversized target script') - stream.seek(entry['offset']) - raw = stream.read(entry['stored_bytes']) - if entry['compression'] == 'zlib': - raw = zlib.decompress(raw) - found[path] = raw - if set(found) != set(EXPECTED): - raise ValueError('Missing expected RHS scripts') - return found +"""Retired entry point: updated RHS supplies the 1.9 fixes itself.""" def main(): - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument('--rhs', type=Path, required=True, help='Installed RHS Status Quo directory') - destination = parser.add_mutually_exclusive_group(required=True) - destination.add_argument('--output', type=Path, help='New standalone addon directory') - destination.add_argument('--mission', type=Path, help='Existing Escape addon directory to embed the fixes in') - args = parser.parse_args() - if args.mission: - mission = args.mission.resolve() - if mission.is_relative_to(args.rhs.resolve()): - parser.error('Mission must be outside the installed RHS directory') - project = (mission / 'addon.gproj').read_text() - if 'GUID "2528466DE220D91C"' not in project or '"595F2BF2F44836FB"' not in project: - parser.error('Expected the Escape project with its original RHS dependency') - if '"E119F1C05A274B83"' in project: - parser.error('Remove the standalone RHS fix dependency before embedding it') - originals = read_scripts(args.rhs) - outputs = {path: patched(path, raw) for path, raw in originals.items()} - # Validate all destinations before writing; never overwrite a local edit - # or follow a link into another addon. Repeating the same patch is safe. - for path, raw in outputs.items(): - target = mission / path - if any(parent.is_symlink() for parent in [target, *target.parents] if parent != mission.parent): - parser.error('Symlink in mission destination: ' + path) - if target.exists() and (not target.is_file() or target.read_bytes() != raw): - parser.error('Existing mission script differs; preserve and review it: ' + path) - for path, raw in outputs.items(): - target = mission / path - target.parent.mkdir(parents=True, exist_ok=True) - target.write_bytes(raw) - print('Embedded both pinned RHS fixes in ' + str(mission)) - return - if args.output.exists(): - parser.error('Output already exists; choose a new directory to preserve prior work') - if args.output.resolve().is_relative_to(args.rhs.resolve()): - parser.error('Output must be outside the installed RHS directory') - report_path = args.output.with_name(args.output.name + '-patch-inputs.json') - if report_path.exists(): - parser.error('Output provenance already exists; choose a new directory') - # Validate every input and patch before creating any output. - originals = read_scripts(args.rhs) - outputs = {path: patched(path, raw) for path, raw in originals.items()} - args.output.mkdir(parents=True) - shutil.copy2(HERE / 'addon.gproj', args.output / 'addon.gproj') - report = {'rhs_version': '0.16.5237', 'target_game_version': '1.9.0.37', - 'native_validation': 'required', 'scripts': {}} - for path, raw in outputs.items(): - target = args.output / path - target.parent.mkdir(parents=True, exist_ok=True) - target.write_bytes(raw) - report['scripts'][path] = {'original_sha256': EXPECTED[path], - 'patched_sha256': hashlib.sha256(raw).hexdigest()} - report_path.write_text(json.dumps(report, indent=2) + '\n') - print(args.output.resolve()) + raise SystemExit( + "Retired: use updated RHS Status Quo. Remove the old RHS 1.9 " + "compatibility addon/overrides; do not regenerate them." + ) if __name__ == '__main__': diff --git a/compatibility/rhs-1.9/workshop-description.txt b/compatibility/rhs-1.9/workshop-description.txt index 077dd5f4..ef0ffe49 100644 --- a/compatibility/rhs-1.9/workshop-description.txt +++ b/compatibility/rhs-1.9/workshop-description.txt @@ -1,17 +1,9 @@ -RHS 1.9 Script Compatibility +RHS 1.9 Script Compatibility — retired -Unofficial compatibility patch for RHS Status Quo 0.16.5237 on Arma Reforger 1.9.0.37. -Requires the original RHS Status Quo addon and its content packs. - -Updates the CAS editor component's SetAuthor signature and the tire component's -wheel-index accessor so the installed RHS scripts compile on 1.9. It does not -retune vehicle handling or add support for every new 1.9 feature. - -Original RHS scripts and content are by Red Hammer Studios. This is a community -compatibility addon and is not an official RHS release. +Use the updated original RHS Status Quo addon and remove this compatibility +addon from your mod list. Its old script replacements are no longer needed +and can mask newer RHS changes. +This was an unofficial community patch for RHS 0.16.5237 on Reforger 1.9.0.37. +Original RHS scripts and content are by Red Hammer Studios. RHS terms: https://docs.rhsmods.org/rhs-status-quo-user-documentation/arma-reforger/rhs-status-quo/eula - -Built specifically for the versions above. Reassess or remove this patch when -RHS publishes its own compatible update, because these replacements can otherwise -hide newer upstream script changes. diff --git a/docs/civilian-traffic.md b/docs/civilian-traffic.md index 712102b3..7c44e38e 100644 --- a/docs/civilian-traffic.md +++ b/docs/civilian-traffic.md @@ -2,7 +2,7 @@ Unarmed civilians drive ordinary S105 and V2101 cars and S1203 vans along the terrain's roads. The street-car catalog is discovered once per traffic service, with an 80% car / 20% van selection. Rally cars and tractors are excluded from moving traffic. T601 cars remain in the parked pool: native AI failed to start them on two test routes in 1.9.0.37. This is ambient life, separate from enemy convoys and VirtualHQ: drivers receive no enemy loadouts, intelligence or pursuit orders. -The admin menu's **Mission → Civilian vehicles** page has **Civilian traffic (0–6 cars)**. The default is 3. Set 0 to stop new traffic; existing unclaimed cars retire only when the normal distance and visibility checks allow it. The same setting is available as `/esc mission traffic set N` and `mission.civilianTrafficCount` in the unified server `Escapists.json`. Old configurations receive the default automatically. +The admin menu's **Content → Vehicle spawning** page has **Civilian traffic (0–6 cars)**. The default is 3. Set 0 to stop new traffic; existing unclaimed cars retire only when the normal distance and visibility checks allow it. The same setting is available as `/esc mission traffic set N` and `mission.civilianTrafficCount` in the unified server `Escapists.json`. Old configurations receive the default automatically. After the prison phase, the server tries one new car every 30 seconds, with at most eight route candidates per attempt. Each fixed route starts on a clear road at least 1,000 m from every controlled player body and known spectator target, passes a road near the selected player area, then leaves along another road. Exit candidates include both sides of the area so a coastal road does not require an endpoint across water. It is not redirected to follow moving players. Positions come from the current terrain's road network; terrain-specific adapters are unnecessary. Roads and usable native vehicle navigation are still required. @@ -21,3 +21,5 @@ Validation: `tests/test_civilian_traffic.py` executes the production ownership, Final 2026-10-04 validation: all 315 registered checks passed. The final isolated Nogova run compiled with no script errors, verified native garbage protection and a neutral unarmed seated driver, observed more than 25 m of real road driving, and completed unclaimed retirement after the observer left and the production grace period elapsed. Earlier three-car runs verified physical fleet creation and recorded-claim preservation. Other terrain/resource warnings remain; no clean-all-logs or multiplayer claim. See [evidence](evidence/civilian-traffic-2026-10-04/review.json). 2026-10-05 driver readiness: native AI is activated before waiting for asynchronous compartment seating. The original living civilian driver can receive a native boarding task if still outside the car; vehicle registration precedes that recovery. No driver replacement or teleport is used. Boarding is cancelled on readiness, failure or player claim. The existing 120-second readiness deadline and distant-only retirement policy remain. Logs distinguish missing/incapacitated drivers, group admission, vehicle registration, and boarding. A hidden native comparison on Everon confirmed that deliberately unseated drivers stayed idle with the old preparation path, then boarded and drove with the updated path; the exact trigger of the live server’s initial seating failure remains unproven. + +Content → Vehicles → Use for: Civilian traffic can assign discovered mod vehicles or exclude individual models from future traffic spawns. A disabled master mod also excludes its vehicles. With no enabled candidate, traffic creation is skipped; existing and claimed cars are kept. diff --git a/docs/configuration.md b/docs/configuration.md index 67e62402..b0904a1b 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -464,3 +464,83 @@ protection as cars. Normal DLC driver restrictions remain in effect. The administration menu keeps the selected UI scale while its panel fits, then reduces only that panel enough to remain inside the viewport with a small margin. It does not change the player's saved interface scale or other game UI. + + +### Content menu + +The **Content** top tab groups **1. Mods**, **2. Items**, **3. Vehicles**, vehicle +spawn settings, equipment chance, advanced weights, presets and starting supplies. +Supported enemy-pack/faction switches are under **Forces → Enemy packs**. + +Mods initially shows packs with selectable items or vehicles. Search +narrows the list; the filter can also show all loaded mods, enabled mods or +disabled mods. Each row links directly to its items and vehicles. A mod switch +controls future automatic extra equipment and civilian spawns, while remembering +its individual choices. It does not unload Workshop scripts, remove existing +inventory or vehicles, or rewrite authored enemy loadouts. + +Item and vehicle pages select one mod and search its whole catalog before paging +(12 results per page). Search matches names and prefab filenames, ignores case, +and requires every entered word. All / Enabled / Disabled filters use the +effective selection, including disabled contributing mods. Counts describe the +filtered results. Catalogs are sorted by name when discovery completes. Each +item shows its filename to distinguish variants with identical display names. + +**Enable all** / **Disable all** applies to the whole selected mod in that page, +including entries outside the current search and page. These actions reset the +individual choices for that domain only; item changes do not erase vehicle +choices, and neither action turns a disabled mod back on. A disabled source mod +wins when several mods contribute to a resource. Choices are confirmed by the +server and retained across restarts. Presets now include mod switches, item and +vehicle-role choices, and equipment weights; spawn counts remain separate. + +The **Vehicles → Use for** selector stores independent assignments for garages / +yards, civilian traffic, enemy patrols, convoy armed escorts and convoy supply +trucks. Select an installed mod, choose a use, then enable vehicles. The same +vehicle can serve several uses. Whole-mod buttons affect only the selected use. +A disabled master mod still overrides remembered assignments. + +Discovery reads server vehicle catalogs plus complete vehicle prefabs under each +loaded mod's Prefabs directory, including mods without faction catalogs. It +inspects resources in small batches without spawning them. Aircraft, boats, +wrecks and vehicle parts are excluded. The scan is bounded to 8,192 candidates; +the menu reports incomplete discovery if the limit is reached. Mods must be +installed and enabled on the server, with their dependencies available. This +menu does not download or unload Workshop addons. + +Newly discovered vehicles start unassigned. Existing authored pools retain their +defaults. Explicit bulk assignments also apply to later discovered compatible +entries from that same mod. Missing mod choices remain dormant and return when +the mod is loaded again. Configurations and presets save all five uses. + +Garages/yards require an unarmed vehicle with a usable driver seat that fits the +existing parking envelope; farm-yard tractor defaults remain. Traffic requires +native AI driving support. Patrols use the selected enemy faction's soldier / +medic profiles, one driver and up to 14 other crew, within the existing finite +patrol allowance. Both armed and unarmed patrol vehicles are supported. These +assignments control the main HQ vehicle patrol roster; separate optional bike +and Sarka waves retain their own settings. + +Convoy armed escorts replace the three light escort slots and retain one driver +and one gunner each. Supply assignments replace the cargo truck and retain one +driver; existing storage-capacity and finite-cargo rules remain. The specialized +BMP slot is unchanged because its interception and mounted-ammunition logic +requires that specific vehicle. Neither aircraft nor extraction is affected. + +AI road vehicles must fit the existing 4m × 9m × 3.5m deployment envelope. Native +crew, driver, AI-use, inventory and placement checks still apply; component +presence alone does not certify that every third-party vehicle drives correctly. +A vehicle failing physical fit or crew checks is excluded from that use until +the next round, with a log message and unavailable status. Empty pools defer +spawns rather than re-enable a disabled vehicle. Convoy pools are selected before +consuming their finite receipt; a subsequent physical startup failure retains +the existing no-retry receipt policy. Existing vehicles are never deleted by a +menu change. Normal DLC access, visibility, claim and cleanup rules remain. + +Preferences remain in the `items.records` section of `Escapists.json`. A `mod` +rule stores the master switch; `v*` and `v` store vehicle defaults +and individual overrides. `r0` through `r4`, followed by `*` or the vehicle GUID, +store each use (garage, traffic, patrol, escort, supply). Assigning a vehicle also +restores its legacy vehicle permission, without enabling its master mod. Existing +`*`, item GUID and weight rules retain their +meaning. Old configurations need no automatic rewrite and default to enabled. diff --git a/docs/current-status.md b/docs/current-status.md index 2a719284..cdf78f13 100644 --- a/docs/current-status.md +++ b/docs/current-status.md @@ -1,12 +1,22 @@ # Current development status +**6 November 2026 — Workshop 0.0.144 published:** Unified Content controls now +provide searchable mod/item lists and per-use assignments for discovered vehicles. +Garage/traffic, patrol, convoy escort and supply selections are saved separately; +new vehicles remain unassigned by default. The obsolete RHS 1.9 overrides are +removed. Workbench upload and backend processing succeeded, and all 398 current +mission scripts match the published bundle; both retired overrides are absent. +See [publication evidence](evidence/workshop-0.0.144-2026-11-06/README.md). + **5 November 2026 — Workshop 0.0.141 published:** Escape now embeds the two RHS 1.9 script replacements, with the original RHS dependency retained and no separate compatibility addon required. Native compilation and normal player spawn passed; the uploaded PAK contains the exact tested replacements. Workbench confirmed upload and backend processing through its command-line updater. See [publication evidence](evidence/rhs-1.9-embedded-2026-11-05/README.md). -Fresh checkouts must run the documented [RHS preparation](../compatibility/rhs-1.9/README.md). +As of 6 November, the local source removes these overrides for updated RHS +0.17.5281; [RHS preparation is retired](../compatibility/rhs-1.9/README.md). +This removal shipped in Workshop 0.0.144. The WCS BMP-1 tyre issue remains unresolved in this release. The user confirmed the server starts after removing optional Cessna/Propeller Flight Core; no Propeller patch was made. Full multiplayer and vehicle handling remain unqualified. diff --git a/docs/evidence/content-menu-2026-11-06/README.md b/docs/evidence/content-menu-2026-11-06/README.md new file mode 100644 index 00000000..be0f6f59 --- /dev/null +++ b/docs/evidence/content-menu-2026-11-06/README.md @@ -0,0 +1,46 @@ +# Content menu verification — 2026-11-06 + +The menu now groups mod, item and civilian vehicle controls under Content, with +left-hand subsections, master switches, searches, effective-state filters and +12-result pages. Individual choices survive master toggles and profile reloads. + +## Checks + +- `python3 tools/check.py`: full repository checks passed (`repository-checks.log`). +- `python3 tools/build_admin_menu.py --check`: generated layouts and palette current. +- Native Workbench: real local admin menu actions, item disable, master off/on, + preserved item choice, empty search, search restored after visiting weights, + vehicle disable, disabled-only filter, persisted configuration reload, and + disabled candidates excluded from vehicle selection. +- Native navigation probe checks all 29 pages. Screenshots show Mods, Items and + Vehicles in the actual game UI, captured from the owned private test window. +- The search policy test exercises 5,000 entries and multiword/case-insensitive + name/path matching. Preferences and command tests cover domain isolation, + presets, save failures, allowlists and independent browser state. + +The native fixture is saved as `native-fixture.c.txt`. It runs in a disposable +source snapshot and profile, suppresses scenario startup, and hides the loading +placeholder only while inspecting the menu. No fixture code is in the addon. +`source-comparison.json` verifies production addon files match the tested copy. +The disposable project adds the installed Rally dependency for this test. + +## Scope and limitations + +This is local Workbench integration, not dedicated-server multiplayer validation. +It verifies vehicle eligibility, not physical placement of every vehicle. Optional +motorbikes were not installed in the tested dependency closure. Existing placement, +DLC access and lifecycle rules remain in use. + +The runner reports smoke completion and confirmed cleanup. Its overall process +exit remains nonzero because existing external resource errors are counted: +localization GUID references, DLC ownership request, and legacy landing fields. +No script compilation or VM errors occurred in this run. See `native-result.log`. + +Installed RHS content packs 01 and 02 were version 0.17.5281. Their verified +fingerprints were accepted only in the disposable test audit; the repository's +external dependency manifest was not changed. Exact external inputs and launch +source hashes accompany the run. This does not certify all external mods. + +All tests used the hidden, muted, private Workbench prefix and profile. Source +and external-addon immutability and owned-process cleanup are recorded in +`runner.json`. This change has not been published or pushed. diff --git a/docs/evidence/content-menu-2026-11-06/external-addons-inputs.json b/docs/evidence/content-menu-2026-11-06/external-addons-inputs.json new file mode 100644 index 00000000..838084af --- /dev/null +++ b/docs/evidence/content-menu-2026-11-06/external-addons-inputs.json @@ -0,0 +1,851 @@ +{ + "1337C0DE5DABBEEF": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack01_1337C0DE5DABBEEF", + "title": "RHS: Status Quo - Content Pack 01", + "version": "0.17.5281", + "files": { + "ServerData.json": { + "stat": [ + 47, + 916830, + 236, + 1793966354242463962, + 1793966354242463962 + ], + "sha256": "cc4cc1b0d1d06fc4f1ced0117845930d8ed5291f63ca89577a47518018444706" + }, + "addon.gproj": { + "stat": [ + 47, + 40147728, + 339, + 1793966331111982831, + 1793966354215463398 + ], + "sha256": "09baf9fff74b1a8aadb03786d6d9ebe7159ddf074f7d46b35123501325332d98" + }, + "addon.gproj_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147698, + 362, + 1793966311083569723, + 1793966311083569723 + ], + "sha256": "2155ab32d13dd234b511ae5a390c1a5a4377ee9f3bde8a011b7b474c7da9b855" + }, + "data.pak": { + "stat": [ + 47, + 40147713, + 1992950655, + 1793966345831288514, + 1793966354160462249 + ], + "sha256": "46e22e1f561de7435912a9263e06cce6d6f81bb82c0c1da92d5937758b35963f" + }, + "data.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147695, + 232639, + 1793966310556558900, + 1793966310556558900 + ], + "sha256": "1398f6275e2adb99ac13705a43071734105853f83ed427cff3f6a333a5f6907f" + }, + "data001.pak": { + "stat": [ + 47, + 40147722, + 1992538370, + 1793966346382299991, + 1793966354214463377 + ], + "sha256": "97314ce4854b3a35dc5cd181378af27281b2897586d59b1e5b108aff9a3c2eda" + }, + "data001.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147696, + 349868, + 1793966310769563274, + 1793966310769563274 + ], + "sha256": "9800ba8266e30b2a81e59b119b1261a7a3b441adcc211dff9c08dda704853e83" + }, + "data002.pak": { + "stat": [ + 47, + 40147707, + 1992467288, + 1793966346414300657, + 1793966353764453977 + ], + "sha256": "4aadf524b9144c4f2886edf3442db02f36cecc93913926f815755a5f7d307d0b" + }, + "data002.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147694, + 332026, + 1793966310371555100, + 1793966310371555100 + ], + "sha256": "9e33445c078f4dccd8ace6eb5a98e0ff04071c157b3182e1fcc315ee47c6ee0c" + }, + "data003.pak": { + "stat": [ + 47, + 40147725, + 364992473, + 1793966333186025798, + 1793966354215463398 + ], + "sha256": "e40e45672321aa36c0650bec960b7dd00ce55bdeff0fd27eb2ccfaa1c12070f5" + }, + "data003.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147697, + 96625, + 1793966310953567053, + 1793966310953567053 + ], + "sha256": "881f85eed91e415e78bf28caa43b77d0ccc0ca8b5b1c8b89831058c1088c9671" + }, + "meta": { + "stat": [ + 47, + 911092, + 8398, + 1793966354241463941, + 1793966354241463941 + ], + "sha256": "7bab7f27e0808955b9e5feecbf94febc8de11d6e12e56f60c1e17c68791aa3d2" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40147731, + 567493, + 1793966331188984425, + 1793966354215463398 + ], + "sha256": "29c053dcec2fd7f1e5187188f91eb1b652296e5d8a0f98a9ffd2bb48dcab374b" + }, + "resourceDatabase.rdb_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147699, + 368, + 1793966311208572292, + 1793966311208572292 + ], + "sha256": "a8fb8e19912a9450e68f702befa6d61320479bfce5b02faccea866b01b305ac4" + }, + "thumbnail.png": { + "stat": [ + 47, + 40147703, + 18180, + 1793966330833526806, + 1793966353682252124 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147692, + 366, + 1793966310025547994, + 1793966310025547994 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + }, + "595F2BF2F44836FB": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-StatusQuo_595F2BF2F44836FB", + "title": "RHS: Status Quo", + "version": "0.16.5237", + "files": { + "ServerData.json": { + "stat": [ + 47, + 910012, + 8466, + 1793966281368963106, + 1793966281368963106 + ], + "sha256": "7a507c69efaca22a8ee61dda96ac8a7e337e3ad2b4cabd5ae203bec43d9e44d6" + }, + "addon.gproj": { + "stat": [ + 47, + 40146987, + 1101, + 1793966269260853248, + 1793966281217205538 + ], + "sha256": "51fda0afde5ebcd4dc88c6c9451d960b67aceaee437f02f1cc80aef724e3779c" + }, + "addon.gproj_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146979, + 364, + 1793966268094694637, + 1793966268094694637 + ], + "sha256": "c67690023c7ecfda231509b46545febea451145a060277b8178c14ebaebb82b8" + }, + "data.pak": { + "stat": [ + 47, + 40146990, + 203659379, + 1793966280554946596, + 1793966281282961360 + ], + "sha256": "0aa031f2f9103e4663b99698a8712d2bb9a35601a0a8611e0acb2680cc2e46da" + }, + "data.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146980, + 1429277, + 1793966268286698509, + 1793966268286698509 + ], + "sha256": "50866475ea8bfb505b492852b22da7e082a1fa90171a7200d93067baabe14036" + }, + "meta": { + "stat": [ + 47, + 902077, + 17982, + 1793966281341962557, + 1793966281341962557 + ], + "sha256": "d062f6ede1b0ada0957339060074a87a119a67936e8f99f3422bdbb1f42fe28a" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146995, + 834332, + 1793966269484722676, + 1793966281284961401 + ], + "sha256": "32d8435e20292c6f6d8c3b48e3d76239ca84881bcbd4f1f9fe56bf2fc64b1c71" + }, + "resourceDatabase.rdb_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146982, + 368, + 1793966268409700990, + 1793966268409700990 + ], + "sha256": "fd95cde11bd5c9bf8840fd43d2a20e257fc03907ed778f20b923e9f5b6fb840d" + }, + "thumbnail.png": { + "stat": [ + 47, + 40147000, + 18180, + 1793966269260853248, + 1793966281284961401 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146983, + 366, + 1793966268537703572, + 1793966268537703572 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + }, + "5E389BB9F58B79A6": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/SpaceCore_5E389BB9F58B79A6", + "title": "WCS_SpaceCore", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 919166, + 273, + 1793966267029981947, + 1793966267029981947 + ], + "sha256": "758d38e13ee5254ed5c01c8f8d1b872af58481d0b839b55e5ee365ac96193691" + }, + "addon.gproj": { + "stat": [ + 47, + 40146953, + 2957, + 1793966266428418870, + 1793966267018672944 + ], + "sha256": "2db2e318e6f45bede0d1173d77af03314f888aedfb31bc767d569ccfb6e70a34" + }, + "addon.gproj_9.0.1_manifest.json": { + "stat": [ + 47, + 40146942, + 364, + 1793966266181656079, + 1793966266181656079 + ], + "sha256": "67d15a8e8623130546332c6d6433314cbdf38e034a66330b9c7a739a94731e21" + }, + "data.pak": { + "stat": [ + 47, + 40146950, + 25392420, + 1793966266923671030, + 1793966267018672944 + ], + "sha256": "d89a5253dbd6707176e7d515cea3e4701725c8197afb20aded18bb231aa6434f" + }, + "data.pak_9.0.1_manifest.json": { + "stat": [ + 47, + 40146941, + 32668, + 1793966266050653438, + 1793966266050653438 + ], + "sha256": "b4b9d9b1ca3534e5d09bed4ac8ce990a2f765f6386791e0241c3dd9a4bb7c308" + }, + "meta": { + "stat": [ + 47, + 918678, + 2510, + 1793966267027673125, + 1793966267027673125 + ], + "sha256": "203fd32b2a44e941808b0c621b5e885687262099d83c7b876c2e805c3ef6d313" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146956, + 22656, + 1793966266553663574, + 1793966267019672964 + ], + "sha256": "88b92c9ed25b3e2b0794a9d2ebd3449f616d2810f330a6330683eca7d533c769" + }, + "resourceDatabase.rdb_9.0.1_manifest.json": { + "stat": [ + 47, + 40146943, + 366, + 1793966266305658577, + 1793966266305658577 + ], + "sha256": "73614d689e2701b75bc009e9e4f4fd0a1c4b0df0061f4a299371cbb148c9f607" + }, + "thumbnail.png": { + "stat": [ + 47, + 40146947, + 689401, + 1793966266428661055, + 1793966267011366549 + ], + "sha256": "8da2e133303f21bb16a2abd25d5bd6c2a4a6f5eccedae74a98358db485a170d1" + }, + "thumbnail.png_9.0.1_manifest.json": { + "stat": [ + 47, + 40146940, + 368, + 1793966265925650920, + 1793966265925650920 + ], + "sha256": "5aaa5989b5f44b48ff03082a0d4004ae71420db6eebeb56282af7d98f36c7000" + } + } + }, + "5E524E4FEECCA92B": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/BMP-1IFV_5E524E4FEECCA92B", + "title": "WCS_BMP-1", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 918673, + 193, + 1793966264963885489, + 1793966264963885489 + ], + "sha256": "bf2d1bf174c0385e65fa28e5991b49f6b86ee6c1463ca5fec742fa5d5bb1264c" + }, + "addon.gproj": { + "stat": [ + 47, + 40146895, + 2900, + 1793966263344149147, + 1793966264913686889 + ], + "sha256": "ad44151140adf62e99eaa639984c2b9c400be17481e934186d61c307b5221259" + }, + "addon.gproj_9.0.1_manifest.json": { + "stat": [ + 47, + 40146888, + 364, + 1793966262546582905, + 1793966262546582905 + ], + "sha256": "3065c7c353cb7623ee85f83d462d4dac37c92efad1a0255f2661470e6cedfd0f" + }, + "data.pak": { + "stat": [ + 47, + 40146898, + 120212943, + 1793966264519622607, + 1793966264949631264 + ], + "sha256": "d9d23369b41d3bdcb1e4a98a03bf27b944e688459f773f2cd8ab8484d434b63c" + }, + "data.pak_9.0.1_manifest.json": { + "stat": [ + 47, + 40146889, + 32902, + 1793966262705586103, + 1793966262705586103 + ], + "sha256": "fddebd10d715fc1f2255aa0b6d72184ec9a1da5a725033923ac82d60772a095f" + }, + "gallery0_776x436.jpg": { + "stat": [ + 47, + 23106914, + 64588, + 1788720671481676966, + 1788720671481676966 + ], + "sha256": "63649f5239059dd12234250b8c8e313b14ca134e30e4309fbd1eb45f92e77097" + }, + "gallery1_776x436.jpg": { + "stat": [ + 47, + 23106915, + 47808, + 1788720671495639547, + 1788720671495639547 + ], + "sha256": "81f89b026a1bf341f8cd3bb19facd67e8d0f56073c924e026983836fee6bfb4c" + }, + "meta": { + "stat": [ + 47, + 918496, + 2928, + 1793966264961631505, + 1793966264961631505 + ], + "sha256": "552e3e90048cfa515be78f992371b5b4ef29f1266f9a91b76369ec5bc8d95a27" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146904, + 20362, + 1793966263427600628, + 1793966264951631303 + ], + "sha256": "f29ecdc46a023287f2be40a502e3f0117be5a9278ab0eef7a0ce4628d30692e5" + }, + "resourceDatabase.rdb_9.0.1_manifest.json": { + "stat": [ + 47, + 40146891, + 366, + 1793966262950591030, + 1793966262950591030 + ], + "sha256": "4619fe9c8439d518292e6c511fd2be970893eda93eeb8554089823ebd4abaae3" + }, + "thumbnail.png": { + "stat": [ + 47, + 40146901, + 708338, + 1793966263345598978, + 1793966264950631284 + ], + "sha256": "103a98bf476d510ab3081abb371170ae6cf65aea65b9095636d651170a5b0038" + }, + "thumbnail.png_9.0.1_manifest.json": { + "stat": [ + 47, + 40146890, + 368, + 1793966262825588516, + 1793966262825588516 + ], + "sha256": "5bf1e0f8794a4e2e862658a10071360df63ed6a440ee2ca5514afbc2e97e375e" + } + } + }, + "629B2BA37EFFD577": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/WCS_Armaments_629B2BA37EFFD577", + "title": "WCS_Armaments", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 920134, + 197, + 1793966262210522872, + 1793966262210522872 + ], + "sha256": "4f9a7b1c661f78832b570e3b050d05d643b531deb944336b99fc018028460b5d" + }, + "addon.gproj": { + "stat": [ + 47, + 40146643, + 2926, + 1793966255452440454, + 1793966262199575927 + ], + "sha256": "e6ffcf559a2e7898848349c090300ea8eca8cb2e13ecef456a108bcc82efc8b1" + }, + "addon.gproj_9.0.1_manifest.json": { + "stat": [ + 47, + 40146630, + 364, + 1793966254019411735, + 1793966254019411735 + ], + "sha256": "ba8f2b36575408f11b2107fc4b0f9449c9dc057629ebf894c7bdbc77f53cbc1f" + }, + "data.pak": { + "stat": [ + 47, + 40146634, + 442600639, + 1793966260630544384, + 1793966262197575885 + ], + "sha256": "26f63ca2134fb092a014e096664bea436720ec6af8d38788875bbb66417a8002" + }, + "data.pak_9.0.1_manifest.json": { + "stat": [ + 47, + 40146627, + 315478, + 1793966253656404464, + 1793966253656404464 + ], + "sha256": "c9f5b6bf65507836bb8243a83726f62eb53a190992f951da11e74919eb48dbab" + }, + "meta": { + "stat": [ + 47, + 919170, + 2601, + 1793966262208576106, + 1793966262208576106 + ], + "sha256": "8299678c3779dc13ea2a2d234407ea1ffae0d690398b45279261e8f68fef9a75" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146637, + 205606, + 1793966255643444284, + 1793966262198575906 + ], + "sha256": "d229ebb54d52c7417c7bcf05c934d41d51b3d936d610118239217962aa869562" + }, + "resourceDatabase.rdb_9.0.1_manifest.json": { + "stat": [ + 47, + 40146628, + 368, + 1793966253776406868, + 1793966253776406868 + ], + "sha256": "c69021b58814cec675c6f98da27d2810fe523e8fef71b023e3a4610739aca03d" + }, + "thumbnail.png": { + "stat": [ + 47, + 40146640, + 689544, + 1793966255454440494, + 1793966262199575927 + ], + "sha256": "ccd771dba7f3f222e9733e688e6dd9e4c5edae2accdd80a6876241094e23f3dd" + }, + "thumbnail.png_9.0.1_manifest.json": { + "stat": [ + 47, + 40146629, + 368, + 1793966253899409332, + 1793966253899409332 + ], + "sha256": "e58ef73e4a794e56ecd04bfd84940ec539e5ca481d6b69ffb20f9fedcd3c2e77" + } + } + }, + "65930CB4CD0237B2": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/ParachuteFramework_65930CB4CD0237B2", + "title": "Parachute Framework", + "version": "1.2.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 23608865, + 764, + 1788881939235881733, + 1788881939235881733 + ], + "sha256": "ec665641799be1f97100937ce87c894a88bee99526fac0695303c339121e8bd1" + }, + "addon.gproj": { + "stat": [ + 47, + 23608826, + 124, + 1788881938831871187, + 1788881938831871187 + ], + "sha256": "183fbb521382a95ad33af9efc547147a80241bd536a29d124c93064b5ae5e8bc" + }, + "addon.gproj_1.2.0_manifest.json": { + "stat": [ + 47, + 23608818, + 362, + 1788881938288857014, + 1788881938288857014 + ], + "sha256": "5030f4430dbd237d93fbcc49ab5c667241b803f1beee4060498e882ea85c9d7f" + }, + "data.pak": { + "stat": [ + 47, + 23608829, + 5048302, + 1788881939131386944, + 1788881939131386944 + ], + "sha256": "ccb22523ba0040cb9d9206a7ab0ae7e5b4411b1704bde39e3e4a7953416e3042" + }, + "data.pak_1.2.0_manifest.json": { + "stat": [ + 47, + 23608820, + 4696, + 1788881938426860616, + 1788881938426860616 + ], + "sha256": "168504d70f88650b0e7acbdcc80ef384ee5b90e2f044839f837b1220b767afcb" + }, + "meta": { + "stat": [ + 47, + 23608819, + 5088, + 1788881955440304751, + 1788881955440304751 + ], + "sha256": "178156f61a332f596dc3783c4d02b0ab5d50a47d4aa1572395760d0fe062500b" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 23608835, + 3188, + 1788881939082877739, + 1788881939082877739 + ], + "sha256": "0994a4b1fcfacdd8d8f69759ba6bde878d633545e380a5774a05e4cac3b6b2c4" + }, + "resourceDatabase.rdb_1.2.0_manifest.json": { + "stat": [ + 47, + 23608822, + 364, + 1788881938690867507, + 1788881938690867507 + ], + "sha256": "6a0793ea2080ae22fac1efd6d3da3ddb3100fd0b60869098e5572be66318c883" + }, + "thumbnail.png": { + "stat": [ + 47, + 23608832, + 2255011, + 1788881939194880662, + 1788881939194880662 + ], + "sha256": "715ac1bf4b6abefb2726cc4c61e903e63ae3a2bfec1e8a85be6cb81eb308407a" + }, + "thumbnail.png_1.2.0_manifest.json": { + "stat": [ + 47, + 23608821, + 370, + 1788881938560864114, + 1788881938560864114 + ], + "sha256": "2bd7127d58adee39c3aa1e2212436499b10adf4fe2faa0b3ed5fcadbfaaae768" + } + } + }, + "BADC0DEDABBEDA5E": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack02_BADC0DEDABBEDA5E", + "title": "RHS: Status Quo - Content Pack 02", + "version": "0.17.5281", + "files": { + "ServerData.json": { + "stat": [ + 47, + 911088, + 236, + 1793966308641519583, + 1793966308641519583 + ], + "sha256": "64b0ff774b52b41cc3711fed424f3e377de4854652b4197f257893f892775e3e" + }, + "addon.gproj": { + "stat": [ + 47, + 40147536, + 337, + 1793966290112140796, + 1793966307987506163 + ], + "sha256": "196b2bc1da74c0b5154c7346c63989df237da487f29cff7b2094f53e0f17ff18" + }, + "addon.gproj_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147526, + 362, + 1793966282662989362, + 1793966282662989362 + ], + "sha256": "44a5d0e2cb0ff23da171ef0c929d1083d8ba71b2680a43ab7c3e53d6c40e74f3" + }, + "data.pak": { + "stat": [ + 47, + 40147548, + 1995519845, + 1793966301329369751, + 1793966308616519071 + ], + "sha256": "292e73f28ff1fc49f9a6503537615b124e7b447345e3230391f0a19322acd350" + }, + "data.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147529, + 166380, + 1793966283062997480, + 1793966283062997480 + ], + "sha256": "6782e9310e8f40bf64b79c967bed419125575b1401a63d1fdb979758d5cffe54" + }, + "data001.pak": { + "stat": [ + 47, + 40147543, + 264943574, + 1793966292531190079, + 1793966308063507722 + ], + "sha256": "494ae75e15d681346e6b3637b7cc8b03a8313cc1326bf61048a24d524fef1eb7" + }, + "data001.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147528, + 42695, + 1793966282903994252, + 1793966282903994252 + ], + "sha256": "3b8d813857f9d2c66053bd7c9a99a8f5a85e2421dd9b1634bcc18c55694daf18" + }, + "meta": { + "stat": [ + 47, + 910016, + 7867, + 1793966308640519563, + 1793966308640519563 + ], + "sha256": "c40492c4bb30eab03b030a34a0e12d594aab5cc62e2ab3a0a4602e5ea29c74e1" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40147539, + 116443, + 1793966290235143301, + 1793966307987506163 + ], + "sha256": "e50f65fb8f49d84fe4819e8bd2b4520b62ca21e1c608099487c070d8834356a2" + }, + "resourceDatabase.rdb_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147527, + 368, + 1793966282782991797, + 1793966282782991797 + ], + "sha256": "1e2f8bad8ad8e44e1d1ebed49e22e81f3ea6e80788540090888afe4c94ee82a4" + }, + "thumbnail.png": { + "stat": [ + 47, + 40147533, + 18180, + 1793966289918911310, + 1793966307986845317 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147525, + 366, + 1793966282534986763, + 1793966282534986763 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + } +} diff --git a/docs/evidence/content-menu-2026-11-06/items.png b/docs/evidence/content-menu-2026-11-06/items.png new file mode 100644 index 00000000..d80d5753 Binary files /dev/null and b/docs/evidence/content-menu-2026-11-06/items.png differ diff --git a/docs/evidence/content-menu-2026-11-06/launch-source-sha256.json b/docs/evidence/content-menu-2026-11-06/launch-source-sha256.json new file mode 100644 index 00000000..e8b033e5 --- /dev/null +++ b/docs/evidence/content-menu-2026-11-06/launch-source-sha256.json @@ -0,0 +1,726 @@ +{ + "addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt": "16b263bcb2fb3ae361367a600753a829425620d2e6b350a891c51fba47437ab6", + "addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt.meta": "f2a44ece28891240e6bfa1d01af29428adcadbe82c80e287eb33cd5e58f1f90a", + "addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat": "0a536cd31d1917965ab36d33e273a881be384eb8b863eb5da03d1666e141d45a", + "addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat.meta": "9f4d59cd6d103547e3e494baf7cc8fce70f31f87c66fe6d26b70011bbd27e38b", + "addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat": "88a2c1061c01eb96ce8a0f753bd3e89e1d7af01471ccc4abb4774a7aa9a532fb", + "addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat.meta": "e0093b7df155499444f93a1148a07f66cc755489192db17c81f4035d17378efb", + "addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat.meta": "33a9eaa49871813f2e8537f071ea0f5a4422eb08d536355a47314b6b6d845b19", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf": "48dc42771b7e44994839dfabe9b007c23e37bd9be900196c757f42351e5c6b04", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf.meta": "c081aec31c927c0c374dcc0f8eb3eaec498f71cb0e2ac746879b926f8dc7d00e", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr": "8ec57b278c9d63324d00f7af62abf75230c5ef631d1cc070661585ee235c8a1f", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr.meta": "b045e26f86116703d1b3599fdf747b413cc0064d8101eff659ded0355eff31fe", + "addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat": "372247aac7b84ddf6c66e276d03321d22496e65726f55e490ee7287a90151318", + "addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat.meta": "ea10c7bd630b31febf511fb28a42cc73597fcc1e3010597dc074c651813ede94", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.fbx": "03a654900103878223ab5c4a42e71d17022ca4885ced71b99c67d8c91652b5fc", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.txo": "9838bcb2e4ff1cd649586535ca7d5ad2497e6118cdfb76b8aadabded9cafb938", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob": "a4602d65e84cec1b23b6b09b5bc5847cbd52efe82925986c6eaf1c43bec1ac78", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob.meta": "04f4039be7950ca393ea74469898dabcfec4dc8b8f9e08068898c00333445878", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.fbx": "4ca13bbeafaa0dc0bf007ae9024b8d6c2a5279afc62e0ebc227e2bec2ad67a30", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.txo": "8ed37705192d3d9b18f26b5deb51af6f2a6d694e7e2dcdbd04b317497610b50d", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob": "fe6ea401412fdbb3bb46367cf7dc9215f7d01c6373c8ac954cbf23f2a6927bf7", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob.meta": "492a44fc323d3df469753d4bbbc35ceb3d362e734f48083ba633b3de5dd42d8b", + "addons/core/Configs/ERR/AdminMenus.conf": "5a4b405060135efd0f7faf913c7f061f6250a1e6e9d27f2bb394281d784b20e6", + "addons/core/Configs/ERR/AdminMenus.conf.meta": "5faf5ddc0a51c1d0f82d60af00d91edc22fe9c39aac50d8d04b772a2c9271be1", + "addons/core/Configs/ERR/Content/Registry.conf": "546a5a407c9e6c25c9157ae4392898fa3f40c04c7956649e62201f9ac0ba187c", + "addons/core/Configs/ERR/Content/Registry.conf.meta": "046aa988bf8e972afcf7a60b6f2312f605f016f98625dbbd9cd75ebf9ea88800", + "addons/core/Configs/ERR/EveronSites.conf": "781a9a3f4d2d4ea5b913fbfd15c2f1a991efdee7e033b7ba4241ad632609f52f", + "addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56", + "addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb", + "addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035", + "addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b", + "addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b", + "addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30", + "addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611", + "addons/core/Configs/ERR/GameOverScreens.conf": "1bb83c26a57d64595e91c3ba7926987e22b33dce2c6c876016e3ec2d04f9eb2a", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/ObserverInput.conf": "1efd2e1823f80e6b8a3e4a697cdeb72dd87888ec5a2d16ae289937575b880072", + "addons/core/Configs/ERR/ObserverInput.conf.meta": "9714dce6c38ee81bcc513c8ebef51d7af63fd15bcdda2e40946937c625dc3ba4", + "addons/core/Configs/ERR/Telemetry.conf": "12d895ba4fcd159e23c2f3e94dc59e6f1e54702470cf0b1dad7d04f15572cf7a", + "addons/core/Configs/ERR/Telemetry.conf.meta": "afd52b410ce1a1026f4b0900b10aae2ee50c30764a212a59668233f4f8b8c5a1", + "addons/core/Configs/ERR/Tests/LegacySites.conf": "3864eb638d0ed4dd313013d2d787f975ae6ce4bbe238569919f76b73d5f7ca42", + "addons/core/Configs/ERR/Tests/LegacySites.conf.meta": "097ac7daef4fc18344699a8471fdd77f9d158f8c70bab394068d7a08e4777ac0", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Materials/ERRM_MapRenderTarget.emat": "4ab251037d40a850e3767c0de85136842bcd4fd130eda47bf8e19352b0d030e3", + "addons/core/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/core/Missions/ERR_Everon.conf": "c6cce48484301a76b81f3a0cd76a4012f5808b901754d4114034e92beeefcff3", + "addons/core/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/core/Prefabs/Characters/Core/Character_Base.et": "74a6f03a1e76173a0cfa20b23c711d02e70bac810d6743e16c60476bfe5be457", + "addons/core/Prefabs/Characters/Core/Character_Base.et.meta": "c6b142d1985719236268cdf12ac522fee4b1206871a6f22b568d9198d1fcc077", + "addons/core/Prefabs/ERR/AssaultParachute.et": "b556997989605e2a05982418b7e9f26d12d427eb3ea6e3bc50e85c67ea7aa4b8", + "addons/core/Prefabs/ERR/AssaultParachute.et.meta": "e9dea2d533ad1ce6ce689e0e2815c97a6382e1b90c35ce1efa88a885527e8e18", + "addons/core/Prefabs/ERR/CombatEpinephrine.et": "aa57d78bae861dc4a0fc509f7916190d2f2f0b36a1c3867f9bf9a071717cd7f5", + "addons/core/Prefabs/ERR/CombatEpinephrine.et.meta": "0e19ebd1dd4d81f739125a4dcbff898424ffe39572c2668bd56455d939b3f604", + "addons/core/Prefabs/ERR/ConvoyCrew.et": "29a525a29605386dfcf292dc2316e9fc7650ce39db9fbaa4ce4372ad0de66db4", + "addons/core/Prefabs/ERR/ConvoyCrew.et.meta": "0a909a15b7dcca34202ded136b3bdbbe8898153c9589e1cce1388433d362da02", + "addons/core/Prefabs/ERR/CrashSite.et": "8d06afe6e2db8986f06a7c5d6649e52df009f9eead7345bf2b477f50a0725b3c", + "addons/core/Prefabs/ERR/CrashSite.et.meta": "0f54fe80ed96394374c1922e1d0b05f7e0200ce5b979ff58325b033f51641f69", + "addons/core/Prefabs/ERR/CrashWreck.et": "f5de4785c0e3cdf02f1d5372e9b01171bd5a37acb9c36aa2a94bae3f429b2272", + "addons/core/Prefabs/ERR/CrashWreck.et.meta": "bde3299bdbbddb91d2ef471b61035b6cced29899cff4cd90c080fe584ce63f26", + "addons/core/Prefabs/ERR/Epinephrine.et": "e09c70b3d47a4dc5b92fd332c8222b99554b28a8a0c93cb5caac18eec4501571", + "addons/core/Prefabs/ERR/Epinephrine.et.meta": "f1861f0b0ccace1b7b3d9c29768e37a83bf0c6fae5a411b1bd61d6b2eec7ed89", + "addons/core/Prefabs/ERR/Extraction.et": "4d24c7811415c06386205e5bf5c132a23fcf21e96c75c7657ccd5f3ac914ac50", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "d34a8bbc5dce259c4a467c7bfa2ba746683bbeb9448de8c226856e65319f4911", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "e403d5cb3a5966f0cea81f15e0e825d482ba1a7a27b12498319ba45a414963b0", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "a2b7e632714e646a7010592cc7ac75f0afff7da6c995bf91aaf65d9473a6af3f", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et": "0157bc235eeb78a0e1373b561fd22a1dcb225c833ff7c2d4abae688bca0ec92a", + "addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et.meta": "da6f065cb2414b5a4cbe9ef0f0b1295b2466f26ad406c0bddb83845d4598efb3", + "addons/core/Prefabs/ERR/MortarCrew.et": "21086e886fe3199624208c9a866f883ec109f7d08746c2b56b497e59857fb656", + "addons/core/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "5118ecaf9d2038eea44a4b785f05d2e78781dc1387249aa58a6782c7e6752e14", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "d3eca8fe9197c57a27a285cdb3baf168b037b198d92b39df28a338ae2cfd0c74", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "c0ca5219aa2d6322ba7d094b92000640b259112ff6611a745c0713c8875d09d4", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonBackpack.et": "ae750f08fc9af645561f59d7e5809bd22f4cec26ca8fa6409d09730765958c91", + "addons/core/Prefabs/ERR/PrisonBackpack.et.meta": "7da6aa45467250edc910ad7230dc244d1b041e8a6f55881eb3747ce51f9212ba", + "addons/core/Prefabs/ERR/PrisonDoor.et": "b0ff94443fe334032113a663917de23f920a8b73ffadc9c8e9f11b545022b3d2", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonPatrol.et": "dc88c31cf5c415573a874f74e13572f0add9e6122c8fcad507fe82860d789c47", + "addons/core/Prefabs/ERR/PrisonPatrol.et.meta": "5528e0d778dce5ed39c3e504c6427625527127b23269d20fbf12ca2bffe52ffe", + "addons/core/Prefabs/ERR/PrisonWall.et": "9b410b7c85bb001be4601ad93f750e17b8318b850306d84f29c4dc1b02723d7c", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "e6d345ac98ad9ec742bf6c3b8686839c3256df9833d31bb4bdf605cd41d0ba5c", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "99b1d80b49d1e7f9d30aa4283772a36fd66e962369f288f5fe329c7fc911bb1b", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/RadioCamp.et": "5e6216bf8e6e160da5d9f966c8f7c2081bf6dd16dfac1b89d682a14b3b8a6716", + "addons/core/Prefabs/ERR/RadioCamp.et.meta": "3cb8d3d553ab6d8d111a74f721cf4e69ee1011cbb90248b83cdc7275697276bd", + "addons/core/Prefabs/ERR/ReconCrew.et": "33953379ceb725bcd0cbe505cd643c94adaed17dbbfa95dadd404d6b8e345715", + "addons/core/Prefabs/ERR/ReconCrew.et.meta": "2653e8c5b1cdb857de5badd5959ddd9826a6a298ab3c166628dbb835d7104d90", + "addons/core/Prefabs/ERR/ReconHelicopter.et": "c609ee59ab145e0a1936f95726b86df643f5cc425c43924029e9c1abc69ebbd0", + "addons/core/Prefabs/ERR/ReconHelicopter.et.meta": "d80f1c3d6a6f9104562b89729996c1c92ad240f08cdcf48d4c390a09d2047c08", + "addons/core/Prefabs/ERR/ReconPilotEast.et": "d961f329823b991eafed80d085de1bd89b44a4575be98d8dac385d6b77741ba2", + "addons/core/Prefabs/ERR/ReconPilotEast.et.meta": "d73df3c896359a54514d2efcd851f579feca7a2619b76c2a38f607649a31a4f1", + "addons/core/Prefabs/ERR/ReconPilotWest.et": "8f8221927269352e55c8026ee5b00e026c281c79af6684b386f24e7dc4675fb8", + "addons/core/Prefabs/ERR/ReconPilotWest.et.meta": "4785f23bb492c6af420ee7896ddbfc9767e0db1e06de95207df2dc949a1b1814", + "addons/core/Prefabs/ERR/RescueEscortION.et": "aa5cae65250936da239c865fe1070c68a1d20b49bcef37f6bd29021f22c274a9", + "addons/core/Prefabs/ERR/RescueEscortION.et.meta": "34eef8053198a49df774792322c6d3cba81f689e56b6a418aed5a14de0913537", + "addons/core/Prefabs/ERR/RescueEscortWest.et": "6f9671fb68e2716479d96be74b80ffb29fec535f1333c5e4dc4d7b684dca1ccb", + "addons/core/Prefabs/ERR/RescueEscortWest.et.meta": "45a87304712d6a18afb0ddc5b3ccbb70da395541e21aafe9d6d3641c392eaab3", + "addons/core/Prefabs/ERR/RescueHelicopter.et": "d9b3b01a0cdb6ed779f40f14f03dfd8fe732382931cdee02ea643f260783313c", + "addons/core/Prefabs/ERR/RescueHelicopter.et.meta": "f47b4a9a72faddcb5817e396dab7c115ac05a5455e5dc8ca4c6a3e9d5fc4093c", + "addons/core/Prefabs/ERR/RescueHelicopterAFRF.et": "cbd9c88b0a0c798096c78770cdef834cebfbdfd62fa12d96b56e74c5ac60dcb3", + "addons/core/Prefabs/ERR/RescueHelicopterAFRF.et.meta": "5cf8cdd7f34e2bffccedfab0cc0cf266d3c8a6856215e797874c531eb2a3ebf2", + "addons/core/Prefabs/ERR/RescueHelicopterFIA.et": "6aa11ddd56ebc9d0aefd06e1f55c7c61136d5c703b6eddc9cc84f3bcd8c8c26b", + "addons/core/Prefabs/ERR/RescueHelicopterFIA.et.meta": "ac0b32de9818aab77ff42d244cd5165112a7764eb6d289dcfe12ec77ea0c9b3b", + "addons/core/Prefabs/ERR/RescueHelicopterION.et": "a910548e7346439af90bb87e445f056aa1799572a69f87f45addbc17dc01fd85", + "addons/core/Prefabs/ERR/RescueHelicopterION.et.meta": "426a478d15718c0193490d5381f732e4c559348f2e5e9c7eb9473a4ca3017add", + "addons/core/Prefabs/ERR/RescueHelicopterWest.et": "dbf3827f58c27d957aac23f505a24c0af2a8f6c6555a82d0962a0ee5d47efb42", + "addons/core/Prefabs/ERR/RescueHelicopterWest.et.meta": "963b5b22139a2f3496e937855854c3ffe01604b86a93f1fb63b547bc1ba29068", + "addons/core/Prefabs/ERR/ScoutEast.et": "b4593aab494c4f21637757b3daff4f349da77b4c48ec5e8a4a2917a6a12cf811", + "addons/core/Prefabs/ERR/ScoutEast.et.meta": "7c72af632537f687e92f30b52d97fc7d70dadd39d33f37e0b1004f9596f55012", + "addons/core/Prefabs/ERR/ScoutGroup.et": "8dc0fce8ee3decc1c367411b00b6d8518df9d8458281cec0881464a2ce906af0", + "addons/core/Prefabs/ERR/ScoutGroup.et.meta": "62e43fd152ce57aa4ceb2187a49e4aecdeb9f428b3a1e8318f86bb83dbf8a259", + "addons/core/Prefabs/ERR/ScoutRadioPack.et": "f1c4911e2556c0e0caa8b896982190c5e7d0433e850b4610e19442caf9117607", + "addons/core/Prefabs/ERR/ScoutRadioPack.et.meta": "825506e3d814d30a52d5dbf64124470641c07a0453543ba71426841e6c783635", + "addons/core/Prefabs/ERR/ScoutWest.et": "2681b5a3f8621adb44195f0dbca6f3e79ef7decad8f9d0dd0e1a801ec2549627", + "addons/core/Prefabs/ERR/ScoutWest.et.meta": "22a6607b4b8fe606ca75a634a0b2ac3178e7bedae7f9ff01e7a4989f3b39a3da", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "761d845fc1c086da58fd87c8933bf58d46d1ff5e17cca5950141743d07c8ce16", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "4c97b0514fe7e723046f40f0b396f6573b12eb9981ca5df70b9e8aa3cf29323e", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "f33681281d26676fac88736091834d5a7b87fe0fa01883582542df964dcfc694", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Prefabs/ERR/TerrainConnector.et": "cf9cb28f5a3f41931380864a29ac979aa1d5e843456f564ac7a7de78f88e1aa8", + "addons/core/Prefabs/ERR/TerrainConnector.et.meta": "9f37c979ae282aabca29ce84beb0db851ee8b9a19f7f3a64d387c175616127f3", + "addons/core/Prefabs/ERR/TerrainTakeover.et": "63e26db48c624056350f9ee123ae5b815bc2fad392060a9c26cfcd86c0af872a", + "addons/core/Prefabs/ERR/TerrainTakeover.et.meta": "64e953e378ab1d2a75ee7246f876f4ef93ae8a4e3fddb5002d7ba37268cb959d", + "addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et": "aa857f7e8e0585839c7e9b2e3616702180779e68c6fb149d94a83c05bd52449b", + "addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et.meta": "a213272011050a881c87fdd94b229e002ece24f26f25db5fe53824f8a5b147a8", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et": "29f157849f413261494a63d4d5b0a97e8bbe61cb076efcd59d6c940653f23352", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et.meta": "544c94cf1c26757a10654de7856cd6cc48b821ce3bdc02add13cfe6514269915", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et": "cd4acdcecad299445952aea0adefc85f2b9e9b43f8186f100e0505c5621b3656", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et.meta": "123955da03462befb90e293b3bb856d49cc761166611b38ff47cb48ec2fbe95c", + "addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et": "11185bc813c00c5bda09c0afaad78849a1c81d89843e8f7f3a14c0776b8296a9", + "addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et.meta": "8cdfeb51c3774ed790a223ce74872cfbc4588fb6812a0e98136eb607dcc17d9d", + "addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "57dfbd215f28478a791b2e029832ddf3c363658d5dd5590cee4db9ec6a8b690a", + "addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Actors.c": "7258b838f8365e4fa575c4f2ccc8532e22a33946405ebb490120534d5ca65607", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "cac52cfb9f31ba42daed671e55bf5d55ea0840139deba5d13a0e156ec90559ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuFields.c": "55466b735c5c8f1041ac600338d55847372a71af48ba1ffbde8cce4286e55b19", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuPages.c": "fc07549ba14900998223e8c1a95f57ddb0f365d0d687ac4907b0d97ffe1612b8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuView.c": "6c34557350659782bc1a098169dbbabf1f71502c35cdf711b83ce0efad907142", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminPlayerTools.c": "56780d78bf423f54f482d8620f821b8d3eb0199194482b4f12e37f5ec3f55ef5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminProvider.c": "62e05aceb49da07fed7aa89fb6b2f8eb3efc373ac09eff286fba983c3ad570eb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c": "277df355d00458bf4a337b68feeb926ec4aa12c1546a604d039121a1bde7d995", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c": "01d5620298efff575be3c1026ea7dad7e6feb41a96a3d5dc846af8d001e038ec", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AirfieldPlacement.c": "0601d8da570e1f63e43ea7df451d0e997872e4e163669fd8ad37bedd59de7b9b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_BakedSpeech.c": "d11fff16f86fd3447126701af84c3800860d721263b3c2c16d3b91d686d8b2fc", + "addons/core/Scripts/Game/ERR/00_Core/ERR_BuryBodyAction.c": "adbf4cee5b5f5317b185f17738205f28b701a15364e643cc9fb443866a121109", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c": "8010394e7731d3bc2ce436cf795a37819e16d4d605e8d152027cf391e811d37c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingFeedback.c": "ac554a946cd14f73a5bf79005b8a3f770c9caaf0a6ea409134077b8d96f9433f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingGameMode.c": "1e670937736330716a467157d0f45bace512047d7e87d8678f4ae0ee123969c3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingOwner.c": "3f430930c2598951b75cba157a57967189686ca7a86aff8ecedd20f181262bbb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingService.c": "6efcfb4bb1bdf0da84400eef28a24f6c61e7f446073af2c9667b6f26f0bc47b5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ChatClient.c": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CommunityStatistics.c": "84f2615fac1375bbe3738edd13a413ef1d524dea5ce0195b05b3a957aae84435", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentDefinition.c": "bc1dd4ed27ec894cf4bd617fb226cb8140b544aaa9ef6d8654e815d81e7f6fd0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c": "d9df3b2dd8fca119ecee466dc71d336b5a70ee7d5fced368cf34e250d22075de", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentPolicy.c": "3a4987345d5a7159234a7e1a08bf5ac40dd5a23031e9b1953fc43a0501d9924b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": "3e2734dfb935a4e93d79b66ca4a7c883723a1fc348e3595432dbf2bfca643923", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c": "832aebf6e754dba54ba28b8f480180d32ced968a2d2f192424c4007a862c2b43", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DebugAI.c": "bc5529c60591a6c36c39cdb753b1af948690fc3c3c725f38a8d595b41a499235", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DebugIntel.c": "a9f6e7e42a3214879a21052e897f9afc0653c12ff15d5bee7766e26a1af6ab17", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryMap.c": "8a8653b322c948c462002077272dae79e2f45a24e883767b3ad9c1f24caad237", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryService.c": "552d9e40f72a135f19d25a17fbecf475b8bba8d8b62ec6b6d055c65499a0b637", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DocumentComponent.c": "885c8ab4fc9e64c3f8b40056536096c8c32b011cb340b25ca00353a96da15c69", + "addons/core/Scripts/Game/ERR/00_Core/ERR_EnvironmentService.c": "c0fae5bf51ccf507bc84d44adc2d1dff021cd83653c0468b7645a4f343e3fc8d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": "14a75e040f510773313c7e70b57f338821bc1ded650bc65133968dcad6e49c7c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_EscapeGameOverScreenInfo.c": "4746b0715c6e9a527038b47d54d2ff305becea219da6b736f6998d81901143c9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionPlacement.c": "6d388fe21f08b25cbdb5dfa4e198d94a4c80c5092f8d17630a4654e18bf8b3f5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionRadio.c": "ad7fd91d8bb96f05f3be04a03fd00c20ab9413adb12d649d3020c6f7994319e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "c48e79a117990f83839704ae221af05fc7995b956af2d4b4f9ed2a6b91ec335a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionMenu.c": "1deab4c396c307fc17dbaa8731b2943ffb73c37dc0121a5cba5c239c34901ba3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c": "04b8bd8a042cf743ab8a87ec3711f9758e7b0112995a9d363e81a63df4eabe5e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ForceLedger.c": "0ecaf1c5a52568e751678b0b1236e91e6adb538f8fbf010d38b61a312d1bf253", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ForceSimulation.c": "2bbb8888c752a3ffc042f3059937526d25ae288af5b4db024cc683025a2605ce", + "addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "d26e665cf5b9c0e1dc6c5e2da200a99711ef9272718d330f5aa66b09cede40d1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c": "4943f761d0274e163a1da325ac4f750de9180947b05b79ee173e12141bfd6661", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryHitZoneCompat.c": "23c34f901311dce63a79aafe83c11e2fc25bd3fddb0cde38bd313eb90878ca90", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c": "6459e7ea7c10781efa30374470f36829ba214406cf6a461fcbcb432b6fc39522", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationLifecycle.c": "0feee55cc5ddf13e00fe73ae3926ec2cadd5ba861d793a939164287ccbe1861d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_JournalText.c": "1ad00a77cb0be741c7b6ef5dad2d8a8c1ff1fcca3b093df2e132ead0b69f74e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_LoadCasualtyAction.c": "1521af55a34110ce1c971b5226a618a9c6d931622abaae4946d9c0d27c05a273", + "addons/core/Scripts/Game/ERR/00_Core/ERR_LocalAdmission.c": "a076922d1ae966cf5cc67b198166ca6b1288358fb7f641207a4681e6a610a2ae", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Location.c": "6323facd2d5b32382b466a2aa0140064632a8c1de0597e0738cb09a3fcfd7abb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_MenuTheme.c": "90d9babfec7978b3d7f5baffedbbe5c1b54a9742f576f51e6232043e32d1cc9a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_MissionRules.c": "17d1f48878b02a457eebbe5ff87c4267488d68d2a9b3121dda77a8bc8e69c8c6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c": "2deded62be82adcf9866dacf8065f0c6a9a643bdd60a1c3e87990e1c70254c48", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminSettingsProbe.c": "73e58561e08e50008d33f81eed606dd4e8109fb69a627e892d28ca468d641f7d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAggressionProbe.c": "dcda8528a64d35e6aa2f030b59503a49ea8a85ffcc33beaecdf8da00c003b50e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAirfieldMarkersProbe.c": "980025c07d042c2f109e2c99ccee0316b596806ba2c4fcd9446b6ad7580d1d1f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeBaseSmoke.c": "f7697361c6a056a62aff86de7f7d69e9ccf47b92121dcb96ed012ad136e47e30", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContentProbe.c": "cb0ccfe1e1575f9ed80a8054058b471f3543378db059e6af2fed8eb42a262638", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContractsProbe.c": "60aa767d9455f2f4958a6a47bd68bbd8ab0466adc8f1dd9ae433c40ae96c68ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCoordinatedAIProbe.c": "9104a7a5154bf34906f135f00c5793229e343da6a1ed19dd572e3c1d9821d393", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDefinitionProbe.c": "904d8d4c3e7b91d49dadfe495fc7b4f02f300e4aaf7efa348df5ca17ec4a6e8a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnemyLoadoutProbe.c": "0885ca69f6fa7f53414ce1792cfc3c49916886b8173783c634135c13c5d37429", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentProbe.c": "9e2e66ac5d9778a1c65445348e3300cbb90b68b3f669f3ddf1d2b78a858430eb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionCatalogProbe.c": "e3011fa47b67122d7b2c23af8f91b7a217599d6cc114c4f9de628744b9c948d3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionSelectionProbe.c": "946879d822e7be2d48e03a3140aa1aad3e3d44dd18507fa3cdedb4c6d7dd81b9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGeneratedSitesProbe.c": "a3202ee4658e98539122926755caf689a693a79642e8c88d3146c247dd961138", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInfantryCombatProbe.c": "3e4c4382ab91f470357268927b954fd101685df6b2244df483f0422d6c0d7da2", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInventoryHitZoneProbe.c": "604eacdc66cd52bc8a0115862ee7884a8b0f83bdb50609397de671eacd476543", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalCombatProbe.c": "59c5b04dd32370f8cf5c62fe6931d64209825522127a068b1957e9d1556274e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalProbe.c": "4b73e7cf35e9c8fddb089678a320ea58272e1b6611318d0a762754c171eff785", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveMapProbe.c": "37e66177ee0f16fc33d3d18321211206bc4f095fccbd17b177d4b8cc1ba4e057", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOpeningToolsProbe.c": "0c5d6b96ed5a7cb1cf0d098d534dc7190449ed09339062e6b584729d53a61b4c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOptionalSiteProbe.c": "59d86432c19fd85da30a63087cf1f15375c8ee30178ed7e2765c1bda4cc4d035", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePatrolProbe.c": "5a2af71cc4cfccc7dd7c23584398a38290eba1a8894cd46f6967252ff3a7087c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonBreachProbe.c": "4889e0d3799a6a21b9f84bcb2f2ae78dce16269cccd1329f8d1fcc1a23e7c22c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioCampProbe.c": "67f1a088f9b20e5f0f11ed3aa083ffa772bffd7c74d85b7a307344ac3d47e09a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioDefenceProbe.c": "ff1e27a0ce75b123a86e7df31354831880ca62ea90b6c5d7c60d3ba168e1fff0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioInteractionProbe.c": "7b27552d233813894f65c08eb9f04b547c4ca9ff96a2370a763cb94bd4a555c3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRecoveryProbe.c": "d6691f22432b3ce37d07d448aeb3ce7feb5cd09e852e0167b5e4676afd24bb21", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRescueProbe.c": "78f4dc11a179a5b924c0ec1939f0fc1e61d4e6f6647729c48a9f126ee32d1714", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeResultProbe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRoadblocksProbe.c": "6f44725b049f2545a9ce3c94ae3e9134e16077fa017a438fe4f073b453292c1e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSarkaProbe.c": "511816c4b86c9f1392bc4a1d83ad11e082280bec16356d8ab24ac1f2094bba93", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteGarrisonsProbe.c": "1a5ff8747d7501862085b5e9162043fee3b05e82c73c516ad8093aaada53dc60", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSpeechDownloadProbe.c": "5377da12cabd58b9105851a2348d7496316db371bfc4346a5fb3f84f245ec013", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTimeProbe.c": "4a2c6ffd947334a0a71eac083d10c853c524b00042e9ea0987497c4cee60c3d5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c": "7a3fe04aa1c5ed1061ff63d9d5180e8b925932b62d76c1ffb49bd3dc23530993", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportSurvey.c": "e5abdb69c0675a20f4287afb24b9e3c877e91b162c77c32d81ef61e2a8b72577", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c": "59bce863142e4fba4b6fb2f544bb8a58061f0e99b1a38e5ac291cea919563763", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveMapPresentation.c": "70339c05c550b72a4fd5890a871c5d8e6a9e574813d61696194c5fbb1475ac8f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveText.c": "d2fd3670c89d679fcb1359ebccf67b58734fe5168e31fc239bdeffa7f8ff0607", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Objectives.c": "b9cd5bb3b193c20401175c4328405be1b121e8a60b7b5999910b6a71f834af8a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "7c478eff3575eb1bd8a85c08955d4ca7f63b57969cd7b2b76dfd6c42136de1af", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "c287a1891451dce0836c6e859eb962c154aad9621a46e50400f44fb83f97d95e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverScope.c": "97d29535a0ca1571ceb86996f58b68e5ba0944edfe30370455c52a321772f85e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverTargets.c": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryGateObserver.c": "1e376ca83c0005cf532539e14d7f47363c47b7c5b03fe3d55405a59208705fd7", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryInputObserver.c": "808a46cc1e4b31b65dbbbcdd55493f594ebb3974bbec38b4a2402334c653c0ef", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryLookObserver.c": "d5a1b636938d65e9d11c78b31487f2924400c34d98e2ec812954a2a224da7dc0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryScenarioLaunch.c": "8d8da4c1222dcc6adfee350490f4399b4129cfce7a42b45fd7fba52febfd3eda", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PassengerHandbrake.c": "3078487e077aaed1567894f6df12386aae440b790b6c134118d3afc2c4da156d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Performance.c": "037ffa482e3765bb537629e34f10919d85d4b6bfb0abf56ccc7c0d44fce8872f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerAdminCommands.c": "eca9baa3b07da48a740851583540840f8bf5f65f7be854902a3778f76967faad", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerGuide.c": "dc52f551a1d3705fceb64ea18d882009d9e9548c01f08ae1c7ef3083b19ab2d3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerReconnect.c": "478fd041e8a13132df25202088f42d0810d36680060dd7a0424d8f40a5b1ca44", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "dc785a8a1d78a285fe55ce76f87b78a9f522eeb9f7d9655dfe9b5c4348a26a18", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationFailureMenu.c": "5c31219740bbc26cb903a91f4fe22866c465b38220391093c72a3b094ca30f34", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationStatus.c": "c5cc9125986e2285282f3f7fa9068ca72f00d7e26465d00213e734039c0e34e4", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonAI.c": "67f8b444824634fc37fc253c60fd24b56d06d971f48e56a8d53095c97aaf0070", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonEscapeService.c": "ed180448cb516bc4ec521aedd366810a47787628c7f5ee9c9afdbd185d980751", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonPatrol.c": "284618391ee2da84dbcda4a99ca3c072eae3d67b8a9ef40a86827b9ea00810f9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ProfileConfig.c": "b5aca526a860ed9ed609dc3fad99ebb34d2f6fbd537575a167390472efd4ba89", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RadioDefenceService.c": "f5f0bf1352141f933d0edb5630e30541e001dc07e1d2c8529b29cc159c126b13", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ReaperRHSCompat.c": "bcdf98c05ac6cdf0c7eaa854531b02e9ee4f53fbb346ae01d58114e572e7dd4f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryForecast.c": "0eda507fb58860c0eac1d957319d1e80e9576a870d22931c86081db748df44b6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryService.c": "182037828b74938746022ebe03bbd9cf849d52e31067c0b33f392f03969d6162", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RescueLanding.c": "e6f63ee8860335de1125e0a62eae3b8406faf5a5ad2c8d9c6f9a6da077986e56", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatistics.c": "60e6839cc50fa02df1795a00b93fd431160f9201bdbb6f1e3b9b50271306e9fb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatisticsLifecycle.c": "b813a9ccea9a61c9c6d7d4806cf18adfb323d483622ca1225930207ca2436d12", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ScenarioComponent.c": "ca6b20d5c4599e31957e5cb464d21bb3a4bac517dd539711f9d4f380e48a0e15", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SelectionStyle.c": "b9ea5158e51559dc13812cdfa8939ac36b58c79b9e4115c72465d869fdf264a8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SelfEpinephrine.c": "da5850374b51e89016c4557d06f3c7c087b6e6e36fa9734b22c7c6c50d757914", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c": "5e607807af07b92f62fef2743a9d1734df924bc43d6a67c1f3dc9fa412fc4615", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "2acdce016628a362dba311965c3417f7e42bf0edbad58ec129b986a3c1c08811", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c": "f0900e42100c9a58402cfdd48b7f27689144f53e03d3ae3dcd4bbebc13a5f61f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehicleCatalog.c": "64f09e15be6acc9e7b44b5fce1107b6f6c34107efc526aab65159722e764161a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehiclesMenu.c": "11c6a1a14c46472819f9ff2e66ba0cd193797127822534b9d6c98cd095d481c1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "fc5cbd7f52632228c071b9f14cce7979ef55298672e441f665f0efa97f083249", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDefinition.c": "d421d70b32bd2b55cd8e4966c04af3d5bc381ac811d3b4b2efa4bc0a8af8bd2c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDiscoveryRules.c": "dcbce3b7aee89bfc47a50e9de89209758af1f1bb462b99af67a8ad7a26e9f229", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "2b283ad19b046fd6b33245d466b197bd05b4c472e128a747e6b1e725f4a34c2a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteSquads.c": "183883783a4e8399cf62851a4cc65a5d091d25131bc53b4323cf17286315b2e0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnClientScene.c": "b56f99a91cdc53bdb93d320d10839339022d7e61e6b101eee8296271abd7d3cb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnFinalization.c": "6ec741f8d19ee316d3c67b0dd2216698584bf2cde3634a3d6a7c3cdc3a3935b8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c": "6d9243f66b4ca8c53d53fedff9dea8986c815e90c1f97de58200cd759aa8b49f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnPlacement.c": "fc5b61f1877aeaee75fbfd6aed3cd0b4c5277ae8543bc38a0c09836353d54b27", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneInventory.c": "76b79d5bd9d1f367e1ed19724302b7d49f8b0ede85cf19e89c452582ef651f8f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneLease.c": "20de7f96bacc9037580d88d4424664b4554b2c082d82e7d29913e9dfe390b594", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechMenu.c": "33f9ef80b4d6cdbf3646eab602d15ae0d05884bb20b3a7222b0648752339cda5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechService.c": "74ea305ac0c9a9d145646a5c73cba58e4920ab472943ae73b3dbd71d8216f752", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpack.c": "4a36799d3a3defd674822974cd96647c0accb2a854631dd5488c35e2ef697f7c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpackMenu.c": "07c90db1a84893759dae71f40b7ae3109827646e48fade542190d21598ac271e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartRules.c": "ab7c21ef700343cbe769d8d51d91f167db37285b466d6af9873e121b3adf4ade", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartSetup.c": "58a6b617b22910d0ce9255f82091dc11cd1284417a66adf1cdaa7b661c1ed01c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Telemetry.c": "b1dc3ecab89f5e6db1ff4ba613b43755a5ae44f3612249288cd134ad850719f6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryCredentials.c": "9835caf69d4615d6a3fc840d9dc3cb0f507a0c5a2a6490893c21761f9cb4a216", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryLifecycle.c": "15d2d90d4457339dacd61c1bb23b619243b8af10731687c35ecc300125a642f5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryServerName.c": "7744762c4586e2543601fb0899847bed311c439cfda3dcaba825adf870628693", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainCatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainControllerInit.c": "8071e38812ac61f9b480d9e91f9ebc7712b360d431f5555da83027db6cdf2471", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": "93fc55f2c33e95adbcf2bead3430aa14bdb55154315760bcc9647f89dc8286ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSelection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "4ac347d4d91951bcc7175a965ccea25f3782edb6e352354cce506d6b626e5ac0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSupportStations.c": "c4fe4265963ec88e24379c143edae251452c84e43a3102f5da120205f9a39c9d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "ac31af5ff2937f8a1fd89ac03732a8a473b27b09c83a07923f17986b0f9db841", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "70f192d5d749b4211c5604575d2b9d7e39deca589b5841ffdd03f99baeca1280", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "ab1d64c8073e4daebf14f4ad2c745d874032675ebcac3fdb0fdae4626acb8dbf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverPresentation.c": "91d450215eb6ed2da74446b5fbb805356e3881e3cb43e37fe45308e30b22be9c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverSettings.c": "da22775930b13e41d4a71409e37af3bb99e4cc1d94bdea0e3b59fbdcd4d40132", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TimeService.c": "63867760876d523a1794f619118a52c5cd387d5d92756cd286b2c16a348a6c7b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "cfc63058a20fad99e76c59b64d0d288cc3441fd3486ff63a6dde9998b4ab103d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousWeapon.c": "24d31bc857486638e55c605283c17cde0cdbd3c5c6021eac1ec93611387b10d1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityActions.c": "bd7d0aeb4abcc9d8044e4888f9a92f9e5fc97c098bdfa3bbad57e1a29697a779", + "addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityComponent.c": "2ffec4e646584ec546147fc4b08249825cb32b531aba26467b586d760485adc3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ViewDistance.c": "8514f72f8207f12570d2317e64094a45507a1647dfd45a1501499ef81e90189f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeIdentity.c": "8624bac67c1990f87b3fb799361e5facd31c2e03cb621563b9c73c4fe9d7f87b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeVoice.c": "a6a9a816dee1c766675990c158a757cf9ea8628a7b2b0de991af67ff4cd23e47", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZBakedSpeechProbe.c": "533c89b6a258dccb61d7ff6abe0a43da58d52ffae60735a38c2545fbb4480afb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZSelfEpinephrineProbe.c": "a13e14d1ef525209d4609a2532c6d72135377ce058298937b632a91eeb6392fe", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZStartBackpackProbe.c": "6778cd98392f4e73dfe974782e626d98472251c1266698020d63edf8fe735bcf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZZZContentReviewProbe.c": "58b402fcd3eff12e13fb7be680ff26a4808befd92b7fe27ea822779af97c4d30", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AIDriverHorn.c": "db9f100c6cc10efc6f5b86e8fe9adb75657ebabee6f8bf0c89b997c2e947750a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAmmoMission.c": "0a471a40c8f7dfb797d8d35e41c5b1ff91e8d2ab13b43cf866e46c0e4ab4ed9d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultLoad.c": "de7b6c485167ab68ab0b37b96fe161ee821c2efd41362172b810448a02110e68", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultSystem.c": "2eaf9816eee3e1cd2ac70744a6ef7ea5a90d0a3eebdf925e384028a7edde6a42", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirReconSystem.c": "f8a0e3cf4552d8133efd33c2126ea15a7694676773a7047c15e00021c1d9721e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirSupportPolicy.c": "c1a7ac8759ca8ec8b43cbccf303255a2f0b69de447d0d991e44b6bd3db415d51", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftAmmo.c": "2be282406d0c45ab2e35b0ced791b5e494c662588f536701a4e82e6f5fb7c913", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldEnvelope.c": "0f53c7d9ab167a804eb904d63725decebb53fd5796fdf27864a75abed5679838", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldFlight.c": "c04e264cff9963821852094c451502d31bf9c96d4deae2e8ff8a2373b53b5665", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldRules.c": "30be68f4ca2db7e169f6f0432815821179cddf9159f7b150341dc8eb479bbd17", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftService.c": "3f05209227986b5c6bfb193f8f53783cfd4ef083bce898e22257c3e63daed913", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirfieldSupport.c": "c6d88ede0b1b6bac5a7075b6e2e783ccfa8850210aabd28bfa4bcdb698cc5f87", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AssaultParachute.c": "a93c996059e7166988e9d1b0b498cbfd36f19a1cf8520cb4e9215a8884752e18", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AttackSpace.c": "e7be303231b5946d78c61480a5de3f5b37a63d0d2281a9a30a21e59f072904d0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AutomaticEquipment.c": "8658421f846fcd3402289103762edaccbe3ca26280d7d72df2846c32ae8a4cdc", + "addons/core/Scripts/Game/ERR/10_AI/ERR_BodyRecovery.c": "f5fc311ecac4533c2d053a686c51e71216e69130a34483f27146627172914c99", + "addons/core/Scripts/Game/ERR/10_AI/ERR_CessnaBridge.c": "f1adb0f9b92f6ed94a8e9897b64e2fccba0f28552525a93f1ab893faa4fc5da2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c": "7e7fabafe98bbf04f9dc306b1df331713244d4ed779d0daca51ead613f8b23e3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBoardingProgress.c": "328f8a5eabb8174b7727eee1d675db83a2eb0be7b8e834db4e950a645ca5d7a3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBudget.c": "fc7e254056c1da4aadd26d4f56d51ee375d5d3331f5f7e5183581108c7474a10", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyCombat.c": "5c4b7576b28d51edea868cbb91a0ab31a40e6ddb558f1b8a38e07e20fdb2969d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyMineStock.c": "4497d6b790a45df2b76d18541ddaf299b406def88b868caa29f096849026a42c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyPlacement.c": "af4799e3028448e1a73f944989313e5d10c6262521bd29a8cdd5236842717963", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyRoadPlan.c": "fae404f85cae63e63976938a5fdb73efc988ba25c5846564f12edca04fb88551", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "7e9a8034060187b1f9a0ad47b5b82586f48cfcc38308a9ca935ed5b770b43722", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_DroneBridge.c": "9ad23a763c5995b2ac6f68ed02def487b0ba887e8ca68f0e546d1b6812504cc9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_DroneRecon.c": "dc685b57c884d733e0ff90cf7937f5664ec08545f4cbf59d63bc8a84383dc442", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "dfb6a7aeda23adb8aff2292753b694770affc9855bff9fb11d50bb534f9219eb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyGunnerSkill.c": "adf8bac5a6f7e40b2f9caff5fe9be590c4e4ce2b2b387ba39e741a3c4f4cc564", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c": "a48f32dbd7f209bf08fce2840aaffc1781c571fc679763be58987f6b082e776c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMapMarking.c": "0f161fd3e08a54e3e1063679127549e482c40253a022e9d06cd9ee4d740b8625", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMedicine.c": "68b65c98214e1a27383e155727901a4f70e9c065bb0cf133bdcf7fe6d5a57a40", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyOptics.c": "215e8a05594c541861b48e093520c00091708eb0f3635dcee5d0b5e1160230eb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyRadio.c": "3a97e5c3de9ff33873d97c6b2d84ae505cfc4f3146e047b928e76ec3b22c8789", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemySkillAwareness.c": "00c450d033e43fc45c9e2cb64a1d81161d123cc594a4292cfc5f68eb6c17ee60", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMine.c": "067bed625a3f4d0fa189f46476988e90528c59b2351ec0ea71916317b06efabb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMinePosts.c": "bcddb72845189b52e5ed71c687d7dd4b0b40b91b7306c3f6edf84a631002fc5b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMineSite.c": "d838f5693d4fa5d252d529e59777f560674c02532f1041a5598e938b3a850839", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EquipmentLog.c": "df9eec7f94e4bf1b30b9463604e9b97ba3cbff36028a80b81327b0b021cbb2a9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c": "0e080b4a0f2d419e886e5f0a68d9f99ab85250b3c2f9ec6636243cdd34cb2ed8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "c51fccd0ecdb0a1d6ba99ae965e2e572fc1ea65a5d8dc2e1e2a058698dae45c3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c": "6abb278409527bb67db084138a773de240d99ba7f63f9ac740f8167615d53f1d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "21daa9ed8cb5f2dc08a0fa85e305fa4b4f3e7b01e16c71fd1ca98d66a4e8b652", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "8879febe59fd99584add06690b29853f7cf14b580bb15c9a955cf1a2ce033908", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoReporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoSampler.c": "8bb0ec1422887feaa340307d3c60bae50fc82d424fce6390876e580ff8b75e8b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQBodyObserver.c": "f59421c1e0c83f0f480d7dd4d048b4b0a41193ed8fe8f2f627d2b6a696420ea1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoverage.c": "0ef1ed718797114d95c636c8fa5a9e46a5f2a7ccbe3f432049b0c7d37f1eebd0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQDeliveredCasualties.c": "1f738127e55e843ee2705007cedb5c08741f52f63c75eca7c80242177af82273", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQDoctrine.c": "6335728e89ed40ce11b811f00b61bfea76e94dd3379e4357cbfc438b05522bb0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQExecution.c": "d286b8273faec0acf87366bf53ad2517d5b7d909741e981cdf283cd1f4f50314", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQHunterOperations.c": "b9200b6de3a3a61de94ad720aca94aca64db542acc64ba65e7b8061a5e4884e7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQHypotheses.c": "060796bbbed604f9733d23e131c9836702870c6e25c81cc0b396c885eb06ade2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQJournal.c": "53563ff54fc4e0656713d6eaec5e88ddf69fd4bfa8ef6a67cfa13380d24031e1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalAwareness.c": "124260280ac8eda0e920bfcfc86932c9b21df6b1f7a6aa8acfc43feea3da149f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalHandoff.c": "2dd700dae9d9b232d22ca63ff01af75a3f5cc213ac24b7c0a43ffa38bc0b9ffa", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMemory.c": "ec2047a477fb4273e22ae6bb68e7365f321f55c583b5d2c48c4abf2ac38e3b7d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMineSampler.c": "2a0fdc4d27e947a1d77b02ae23f757c7fa074eb456f817b7df0766583d757f55", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": "97dfab7381385959b0906be13fa2575253ac43be91a271a5d41edaf4106366ac", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "12769b56019e9fa5b8141498a1c33814ba5262253193495e72f85972365961a7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "5f45545c11de5e183969203cdf07e29089697ddc89752a9c5aea0fa2a1a33a97", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQNetwork.c": "0b73be993628a55e3b21c8670d540e39c938093dd5cb4d586e800ac530509b25", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQObservation.c": "57ad3f0b68d150791e30a7e4bd7dfedfb1ddd78a1c76f228e67b33ea9cb7144e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperationSpeech.c": "6f133c104223ce23262c2927db9e16df0f76f1ee647085114baef1d51417f4f3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c": "280e91feecc4e5b6d0886fc4201b12117b58c56857d4386b6c4cb963557274bf", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQReport.c": "4c0c1f0e33f621d1e02375cf4f56b0e8c4ba6fd851912d3d16081949bae46158", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c": "f87727aa1c722a180c7b71fa2d896601b6250978a21bd2d1e973501fee81373b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQSquadJudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQStatusSampler.c": "b937eaed913a5095afa8e678dc1c36b5c805541bf8cd5be927069533d6baed1c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQTacticalGround.c": "eba9a9cabdaa80b936aa5e7025544e8b011fb597b96cbdb8d781583c025afbe8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQTask.c": "29359f52734cbf3400e12696057bbb7aa54466a018fc88c42015b6eb9bb9990c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQWatch.c": "abe634cf6003ae920ec1ed18e305ed462920204960894520d3dd11f7e5ef1c33", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCloseContact.c": "56f22051566354ccdc61531af4869b62458a30d945e4d21de5aadf7079d2245b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCombat.c": "df1c319d10efd07ed6f971cf0e41d8d7e377b04ea7f0fe143bf94df733fd1d9c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCrewRecovery.c": "22e192ca222017d4d7a27210c6e42cf0f128827bca00b37924c9c8d6866b62a4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterGunTeam.c": "0e66d82964ef8eeba29de11d5bb2af954ad72a8090855ac4c1b28fe1e66c0d69", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c": "7791513b8b41f4d2ba1b593b5219d7f6e2bf036e352f8e4eb1a8029fc97ab7c8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterSarkaRules.c": "8c8c96e2f985f553e303f7e459b73a2a5cd0051951b22aa0ed364bc2ae19e194", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c": "01007951eea6a4eb980c3d88f3aad10219ae54f8d4f9982c40922edaa9d55300", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterTactics.c": "274ae619589b85cf64df1510631ab914aa9fe8c50fc2a76e6e8c5aa5a2c8d9ba", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoAccess.c": "ab4262f78d54782c5ecbf5fff4ebe3da16d72329658d7e18c0c35387dc8b3c7d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoTransfer.c": "99fa26beb0c0869d0cd694500f3bfc0705c2c1cf674dea90d98fb93a59570ef7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryCombat.c": "5d7a8e579edf95003133ddb6e509202dba56ac9e68385247e1ac0256c1b319ec", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "ca8eee2704e7758172e33014404bb1307c683f19b561b840d4592f6312051e62", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c": "c8e454573cf064ff392291d6feebf1f23be64390b5b8e944c03dd065f9f46b42", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InterceptVehicleFootprint.c": "5dea67d14ebab67231c485e14bc92f34c005a5f1bf6d9c0943db28e9857e958a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_KnownMines.c": "045468a052e485a91da601adcb42b504bb6e4ff13b096bc0666128e50a6aa9c6", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarBattery.c": "157024afc8fd3c1ffeea6ae923ff091e5773b9ffcf5f5864f8040d001e689110", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarFiring.c": "2606ed8c19d5569815dacd3248f012072bb76834f429ce7557d24d884724f733", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarLogistics.c": "b3624e4a00a2bdef16f6c100bbd79910e3bb8c2ae8ec5fe2ad5aa70bffecd303", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarPrediction.c": "05863b2b4f9f70cdb288f91c722cbea163c13f2a2927dc485482e5bd4fa7d57f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReadiness.c": "4c3799b3f2681e977669de0cbfaeb307d9a682b04365bfc9f59079e762965758", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSalvo.c": "c128850c7a78a4d8fee00ad38f48b265f1fbd1d9b24b092ddc5c205b0f0ad6da", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSpotting.c": "39b3c223ade610ed9f1d73040423339ac65c90b153f30c6f5c42290978c57427", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarStation.c": "cbbd7c86f722b664c85ab7c070ae1131d2ce5c41d1dacb4381bff9c1720a1866", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSupplyTransfer.c": "ad71084f507ad9c32d3055e7ec6844a1ec5ddf568c0216ab8391e902b56e417c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c": "01bae0bab685e9f0c86c3a8939d18ce6f20dc0b8c1a389d179d91e93008c6957", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c": "5f7ca5b31f3b405c2a6ca32ff91042f5b4dac6ab9640ce67fb10d7a74236ba69", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoTransfer.c": "0b195784497672fdaf651f336c14f7be98c257f98c85cfbeb4f96fe1a401999b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedMagazineSeed.c": "b42d0aac142907433df8bedc40de24c94813544016cf5f451846f1980250f995", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedResupply.c": "c26ad43705765be1c20eca37fbe2978b8c647151f6620ed37141657a4b7dc312", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirAssaultProbe.c": "c1d55b338b157b758e6ffb993d5f689029b28b13929797c91e5dcb15b5e561ea", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirLogisticsProbe.c": "58fe863775d0ad575cb566c78cef696c9826691cf49ef9adde76376be7316db1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirReconProbe.c": "c1216e0512a0268e4dbb82429e228334401c0c3cac52ba4486ae6dc91e41576d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftFieldProbe.c": "b64907c7566a894ca2f3c49ede5d972d4087a938da1a0ca87bcbd7c2203b2c52", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftRouteProbe.c": "8d0dca97e5106d1c84b64992c789e1af0689514beefc027e713ca6ab901fc470", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarSalvoProbe.c": "fb9ccc6b36247ab3ad828ffbb2556abf5c2838d93ea6cd1ad259c0a015142f5e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarStationProbe.c": "a110f0abc753cb1d2f781e457e637dd5346ecd2e924eb5eb3a5c7dca3d1e2340", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativePatrolHQProbe.c": "9784b551cbb91f017004fb728ce08b5c36bead0ffc83aa7149c2c46a7c4dc495", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeScoutProbe.c": "41b39b1abe5e51a5b8a428d533cccbfb0dda9d7a570228dc3489408c60543f17", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeTownProbe.c": "28876e65f9f8a7d96d8056f446b61e12e97d9bbf1a5ac0d4c40edee44e6c4a21", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ObjectiveDefence.c": "83ef91c2118521aedb4c1838b2e47909c80e0950086449b98ced168f1fd87080", + "addons/core/Scripts/Game/ERR/10_AI/ERR_OptionalMotorbikes.c": "87cf6544983386d29058a6f892aadbf242a517cfff4ed24348f56a72bcde8cd1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ParkedCarCatalog.c": "1d865c263e910071b127ccd1bdc8b58dd45768c4629194da49705f76995ff0e7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneFlight.c": "14fa2328e1d31cf59fb89cbb53ba33224be6cfcdd2813525fa9585f8b2e237c7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneRecon.c": "fe94c29fd9befd3c1bf3ab97b9b27458a8563697d4d46f72df43c6e642f3664e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconAirports.c": "7551347d776d6e0eec818d6468cacbca7ac53daee7317e0a1618ca3d39ebc762", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconCrewLocks.c": "83b63c21574140208792aaf3d24e3d22b255a078871382122110bb48520d4541", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconFlightComponent.c": "1386e2a2d2a635417ca517aa1d8ddd4f657dd415ff59be2465543cd8f601e7a9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RescueAssets.c": "fca1a4518baf09f0b2c97f3a51995001d9674849417fea9ca1233e8d1f578495", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RescueFlightComponent.c": "60db8029bbfbbb362b5bce61f509740eabea5925b93bc975e7c2b44addcf03f3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RoadblockMining.c": "47d0212cd20c0b320a47123d17f2b89f7d60b44072a00c69944ada7bb83c4e5a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_Roadblocks.c": "879f78beeb284d1298ec49dbca9624c5f3899ffc6fcd376e748bf55e4347d4bf", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ScoutSystem.c": "63287a252e4e7d5aefce840279f26ce3e1f286cb79cadb32596c37897cec7119", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeech.c": "ca87494ecd355052b46b72e2faf13660e458f3d376285bb0e4c20fd0112ef2e2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechAudio.c": "4734d614c5366ae3ff57717f514664c9dfdbe4408e16ba36f6b10d807361e313", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechContext.c": "d2baa94f036f7dde5cf24e004ad1fb9416f249cbf7d0c6c07c5898f7d21751be", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyColumn.c": "bd898aabcac5724d60dbecc4ff5ab6f062c66cf7c735ff59127c588ff94f898e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "5393efab9d663382e67b9b27a388063986a4f99c2607328c998f007588074ca4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "d2fe073b0c23c877afaa65e246544751eecabce4febd72412fc9a4ec18eb1c8c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupportScenario.c": "151eb6189701e559bd4f1359c91187f5a64deab1f2bacbd521c4f4cf3de6d878", + "addons/core/Scripts/Game/ERR/10_AI/ERR_TownGarrisons.c": "9b48331ff8bf7e5a111b498c59a57a5d0210125af983424535286a4aeda9a18d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_VehicleAlarmPerception.c": "45ac71d25e10a057a26a5b0fc7128935baaf47f4c0f87208a4420fa52086fd98", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelAdminProvider.c": "40adf8497b64cc74b1390149fe5ba789ee2f14e6fb3c325af8f5ffa8c806878e", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelDiscoveryFeedback.c": "741de1dbadfd46c154905a0918aad41386ddc139d843553db55d20d60700c020", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelEvidence.c": "ff436bd3c7aa0fcd5c24e940430c1ffdda934889953f63e877ae418bc9557d26", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelReroll.c": "d8b04de9ea789732cc78ebce9aa60786c86fe46d05f671cf251eefa68a214b59", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelService.c": "2911325c79a7a372628b18ffa0e110d11919ce2c2cd7b19277bfd608fdb03dfc", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_MineIntel.c": "3ce16cebaa9703b2f9803df7c11614f94de6460a9136dab8f80dcad41ae2b1c2", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_AtlasPresentation.c": "f0b36472b16477b8c3b5b62f55cfb2a3b3a08304b0779bc39244359af1abe203", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeAtlasAnimationProbe.c": "845b39276bfdbadd6bfd9b41f445fce1a9d40231d38ef32adc7a6654868e17f2", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeHeldMapProbe.c": "46c0210a3aef40fc34e4c9682d9364b1cc1e15d4373d8aabfeac7d9b8e55c351", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapComponent.c": "73298c94ecc8d227452b0eddfcaec7fe9df4748875fa7fafcc52544a43658f36", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapPages.c": "2286d327b87f127f052e06c22f553b30ea31d25127b860fc02a220aeb4ce3ea2", + "addons/core/Scripts/Game/ERR/30_Map/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_AdminCommands.c": "282fe1463add7af8771aa58507b254e69d2d06f50274d4c77321db073f8394f0", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeAlarmHearingProbe.c": "5dbb6a48909b76cd141e3a79ef01d2e68cafee55153821c4471f85c761fff94f", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyCoverProbe.c": "d2450140cf9bdf09210473234605b4c0d818ea5b91f9532209166a35c5d13701", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyProbe.c": "87df652b339df4fe4239617752ac5fd9f47aa4396ba94742a0af39a32b54e784", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashStartProbe.c": "957f40e36bfc025b8bc752b1f41dc177c8d0844c69ee5994321a47cf3ddea1ad", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQBodyProbe.c": "811244cc8297817efbfc3ee4edf01c868eae23c88127ba0c72e98ee7422da72f", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQMemoryProbe.c": "9bcd0b2e1007d40cb794aabe80368a2584ae58aad6a3ebbee070efc7b21a8147", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeInfantryTransferProbe.c": "9b2de4dc22bdadd51b0271219a971dc8dc07f70ed3534f306acf03ed81b29424", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeLocalHandoffProbe.c": "0d4d61c424a16008595f86fa61f3b848caf9bd6e9ebbacea9c10254d88ba378e", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMaintenanceProbe.c": "852b9b397efc3f919c97fec63bc3df1a850cd7833421af8441994afd191951d4", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedAmmoProbe.c": "7ddb634444c79ad9291d53a754dc0ed383342e36720ddaa4b7aa4bd4e7ee656d", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedCourierProbe.c": "12710e9e5548fe8856f7a52f3566338369a8a1eedf0bd92af16229271872ada5", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedInterceptProbe.c": "34b0b1e38a59f14c4e83d93ec412779945388e6f4d697bda2f6cb90f519a6372", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedSwapProbe.c": "a6721fcaaccadf8eddb06687c7d587d0a3e377d5d1bb0b8e72e630fede8690ac", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRadioProbe.c": "a4bd5cd9fe0594e05238b2d6dcd80466773f8fa160dc60bbe1eda70e3acdbe79", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRandomRadiusTrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "4dfb218419db4cd7a46d25cb1f2e578e75ad89efc43f99c6ca8ab8e591e139d7", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "89c2696071912500840f4bb91d754f695bf674335b51a7ee1d03727084fd4869", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyTravelProbe.c": "32e6074e912491f2643a24cb44311b9fe5b069c76e4e94a45e7409ac82d36507", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_OrdinaryScenarioLaunchChat.c": "a747af09599ce4d0c52051f18f00c4624d24d137e328341b580b82e896c6bf65", + "addons/core/Scripts/Game/Editor/Components/EditableEntity/RHS_CAS_EditableEntityComponent.c": "3788cbdc39c3da4f6564b73b7f49848077ad4504b6c28a1984c424247d1c6678", + "addons/core/Scripts/Game/Vehicle/RHS_DestructionTireComponent.c": "9b3de0966d7b8184bb70a14df2a448e06f34ca9db09b46da07277cb92ab7f8b2", + "addons/core/Scripts/GameLib/ERR/00_Core/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_BuildAtlasModel.c": "f6cb5e6f5afc9bb60a8a46d96b52c7506882faf0a880e0b20a01a2603b336d2c", + "addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_ValidateBaseWorldPlugin.c": "49a38c37b51e5318c7dcbcb01543dd9a6300d053f0d39808b3974f4edc45b871", + "addons/core/Scripts/WorkbenchGame/ERR/40_Chat/ERR_ValidateWorldPlugin.c": "d1f3fc372d0d16062a5983f2a6cffb6e72f202cb93fea5b33b4d77e0c852ecc7", + "addons/core/Sounds/ERR/Speech/radio_01.acp": "cf63378bf3950f5e6c1c1f46c057ad38a371b14b945b1201777820384805c3af", + "addons/core/Sounds/ERR/Speech/radio_01.acp.meta": "d5966526f35aa64dc980238f72f4f93f9d0e6a360f10e3f6538e97b7d086aa47", + "addons/core/Sounds/ERR/Speech/radio_01.wav": "cfe4a00000bc9b629a9e8e282ed64e7177673f829c5657b1ae2b2cb9e661d2ae", + "addons/core/Sounds/ERR/Speech/radio_01.wav.meta": "eaf33fa344fccf9aacab626117d03b96b135fa819d3e63ae300fac544291b571", + "addons/core/Sounds/ERR/Speech/radio_02.acp": "9111d118594094a8e09acdf80d8b107cc7d5d890b6ab086274e0e1004039e345", + "addons/core/Sounds/ERR/Speech/radio_02.acp.meta": "76b55d9abf7f599c5db3269a5829546a6d5f92e6350b2fe987245f9cd6b599fb", + "addons/core/Sounds/ERR/Speech/radio_02.wav": "6f0c94ae0e501afe6cc1aba804ba6a0403ba4de931debc28bf22970f591d0798", + "addons/core/Sounds/ERR/Speech/radio_02.wav.meta": "06ec85166aa4c54a6fafa1fa2eb2cc32f4a36dc8eecde8f9ba9912229e5e00e0", + "addons/core/Sounds/ERR/Speech/radio_03.acp": "019f939d65396f4a334a024bbf53c41479a9f8ce806610945af2be13e7352c70", + "addons/core/Sounds/ERR/Speech/radio_03.acp.meta": "8aa2f4f26f04bc3085ae046f543c047cdadf9af9e06a38920f1e1fd8a3aa02fe", + "addons/core/Sounds/ERR/Speech/radio_03.wav": "415a206bd1de167342cf1b82d59c708441b8d802395f941d15097c064133802a", + "addons/core/Sounds/ERR/Speech/radio_03.wav.meta": "de1d81fb653146404de5b6a6018c1cd73e902571b82d544de5b6cfccf21f5410", + "addons/core/Sounds/ERR/Speech/radio_04.acp": "77bcff7cc7ce49036a440e829fb4eab1dbe5252b0fc9ea24c42e6f6b68e2698e", + "addons/core/Sounds/ERR/Speech/radio_04.acp.meta": "dd61ee2545776cf23403240424470661c737048d01432d90b24f2c9e75f45d82", + "addons/core/Sounds/ERR/Speech/radio_04.wav": "a225810c7fba048517248fd9f7e9f7ab8aad5bac35e59f22e11e69166551f7f3", + "addons/core/Sounds/ERR/Speech/radio_04.wav.meta": "0ae046e2ac7f9653661ba99646d40dd78d52f113ea6554e1dbfd6e578572a4f4", + "addons/core/Sounds/ERR/Speech/radio_05.acp": "7dbc2b3b3d251eb8d3e749b0a7f32186b0421a95fa5585be493cf04b45510e3d", + "addons/core/Sounds/ERR/Speech/radio_05.acp.meta": "cbf3b48ed3865e30ba5d838d96ec4f1ee950cdcd51368f7a9259460e4b78cc1b", + "addons/core/Sounds/ERR/Speech/radio_05.wav": "90f5abe221165ac5cd7d88c9b3e01cf6fd4d00b594c84d09c6baf101fdb776ad", + "addons/core/Sounds/ERR/Speech/radio_05.wav.meta": "d8e3de0e1ae8670a01bcc272a1adf4199ffcea514ce024ee3286820dedab4d83", + "addons/core/Sounds/ERR/Speech/radio_06.acp": "e14da41c1cd186f35a4f385fab71ad85ad6fe718e67299a65466339ae23a2922", + "addons/core/Sounds/ERR/Speech/radio_06.acp.meta": "efc810a60e93453942adba476b423121f2a7dc1133b25d8764c1bec546a3949b", + "addons/core/Sounds/ERR/Speech/radio_06.wav": "b3f86b8dde535bc1a63301376c8d42775446d1b6117168557841565391fe0a14", + "addons/core/Sounds/ERR/Speech/radio_06.wav.meta": "07f53131f4ad153cc09051ba1de07f7b43d38f69781aad24371c4eeb331b280b", + "addons/core/Sounds/ERR/Speech/radio_07.acp": "bf3a48af07ad6e5da2ca6ed6c581fc6232e1bd62ebb905b934188366f2bc3d77", + "addons/core/Sounds/ERR/Speech/radio_07.acp.meta": "60aab59223c0ea734f7c1e88f803de30164ccef1a909730abed3eb76b3378ca2", + "addons/core/Sounds/ERR/Speech/radio_07.wav": "f3fd18ddaebe9eb3d0db9ac73c89a7b7a7f18b76e4b66d404d544be660a6825e", + "addons/core/Sounds/ERR/Speech/radio_07.wav.meta": "ef6c72aa32c1c46f7133782536744bdaf4eee03bcdb75aecb87accef6d1c4f2d", + "addons/core/Sounds/ERR/Speech/radio_08.acp": "a82c5dbcd7094085324d93d539c6f829c53dcf3781f40b8d65a10b7cb4125bae", + "addons/core/Sounds/ERR/Speech/radio_08.acp.meta": "69fb3400109e19d4f4d0fb371d056edbecc0a96a0a923174d1aba95dfeac1014", + "addons/core/Sounds/ERR/Speech/radio_08.wav": "ce3c2aff20dbea83aa6545a383c454969c5caeb53d5a88155ec182f789047d4a", + "addons/core/Sounds/ERR/Speech/radio_08.wav.meta": "72c5e117ab7b605b8370fe90923edee73593df6071c39b86556731387814a014", + "addons/core/Sounds/ERR/Speech/radio_09.acp": "73725377def1832742c7620fec46dc0100400d92b9cb79add8b4d44e94c46c0a", + "addons/core/Sounds/ERR/Speech/radio_09.acp.meta": "95456fe20def274a1972867024e9d0eb572f3878eae19c63522fcefe401dcb07", + "addons/core/Sounds/ERR/Speech/radio_09.wav": "3eb0be6393c431b526dbddc723cb608a7681a2dcd8af6910d9f2234aa98c923c", + "addons/core/Sounds/ERR/Speech/radio_09.wav.meta": "724dd301d1b25e41318503a815e87b54e7283735c51fd122af55c070f26adb37", + "addons/core/Sounds/ERR/Speech/radio_10.acp": "f976a0fecf73b3379ffb9728e96c68ca79800712919320e7ff7f3484cd2c9724", + "addons/core/Sounds/ERR/Speech/radio_10.acp.meta": "5411a9ffa23e42c8a2e8d4eba75d6e87631bcf542128327dfefd603a64d5b6ec", + "addons/core/Sounds/ERR/Speech/radio_10.wav": "2b2dac499a45a7779e79465d628a67b87078c0951db7db3e051feeb4342f2816", + "addons/core/Sounds/ERR/Speech/radio_10.wav.meta": "c3ac10a092dcb26ec637be6c9264a85eae1b6da55b9d8b44a14766a70ddf2933", + "addons/core/Sounds/ERR/Speech/soldier_1001.acp": "1af0d303063f37811a9b1a25424d887fe5eed4b5c57da71cf36ba6985f8cf002", + "addons/core/Sounds/ERR/Speech/soldier_1001.acp.meta": "2fbdda4d9fa83c6945985bd2f2215aa9f745b3a18adb0e7edafac1b01c161ba5", + "addons/core/Sounds/ERR/Speech/soldier_1001.wav": "a8935a5aded028f2fb03734f4423e731ea4f5b17394526df47c0407a3deddfe7", + "addons/core/Sounds/ERR/Speech/soldier_1001.wav.meta": "aff7a92a727d8bd4df033be2961fb85cafdc5c45fd272c5ea718bc07fb8e5cce", + "addons/core/Sounds/ERR/Speech/soldier_1002.acp": "1444636949683a430efe20a7f296e85e669cb8e26799c326f73a00c4f8d32fa5", + "addons/core/Sounds/ERR/Speech/soldier_1002.acp.meta": "d8eb34135a3b76f0a4f889f9662d954b3b0b3638c10c0732e25ca29d7b2ef412", + "addons/core/Sounds/ERR/Speech/soldier_1002.wav": "8535643e93757dd916f4158b5b03671cefc599489dbccf6bb0f7abf294fbae88", + "addons/core/Sounds/ERR/Speech/soldier_1002.wav.meta": "e8c8813e5a1989a0d7e4d2a5c90622c4b0f909aafb929f4737c82e5710220d1f", + "addons/core/Sounds/ERR/Speech/soldier_1003.acp": "5ab123f150debd6fda0b822fee7ffca5a0bdc168f4d8d2e28b3982972db05613", + "addons/core/Sounds/ERR/Speech/soldier_1003.acp.meta": "f89fa8e7ac42e7f675d29f0b241d181df572413c6c41bf31cfb98fa205baa87e", + "addons/core/Sounds/ERR/Speech/soldier_1003.wav": "5910896661ad67333d2374a16ca44ce831a5820feb337655df99c02df2915d5a", + "addons/core/Sounds/ERR/Speech/soldier_1003.wav.meta": "5281a71be599a70aeb9972ea85364e5ef32f824db94c71953d8a1912fb2a27c2", + "addons/core/Sounds/ERR/Speech/soldier_1004.acp": "10ac847b206834168e63d8d0f7ad25d7542a58a49d331af50aecf13e7e070ac9", + "addons/core/Sounds/ERR/Speech/soldier_1004.acp.meta": "8c073328d3f5f06ca583d97e9ce2453d8167ec7bc5643ab90783748a4cd9b6bf", + "addons/core/Sounds/ERR/Speech/soldier_1004.wav": "76375e462ba518c76f752d4b194c9370dffcebd8ce0037865133b37af3ff9a9e", + "addons/core/Sounds/ERR/Speech/soldier_1004.wav.meta": "563aae8d93efeaa7ca098c12bf0004da279321607793bb32a93b2530d6832d06", + "addons/core/Sounds/ERR/Speech/soldier_1005.acp": "ea3d874f84dd85f09871444c348b1c7f4948fc043c59cba4d3aea8b8eaa8b86e", + "addons/core/Sounds/ERR/Speech/soldier_1005.acp.meta": "40cbfddfa9937e319d412f3ecb66b75e2c1c88f2823a64e43a81a2939fb9021a", + "addons/core/Sounds/ERR/Speech/soldier_1005.wav": "3e20728fb61863278738f5366343cddd6fac1b8b114a14867f91ebb5cac547d8", + "addons/core/Sounds/ERR/Speech/soldier_1005.wav.meta": "e330fc819872b0a97a280a42d936ff75e30d21ea3ac96891988b48ded36af7b0", + "addons/core/Sounds/ERR/Speech/soldier_1100.acp": "86dc8e90d826947672342f44a6ff8d2fd4a8f014db0b215c0865b3728b14ea88", + "addons/core/Sounds/ERR/Speech/soldier_1100.acp.meta": "1a41730365335ebfabf6c75ab1c67ecb1d0d6c85db56d1d85f688a780a3ecf15", + "addons/core/Sounds/ERR/Speech/soldier_1100.wav": "eaf1deb5381f6bac165e364a652920fcf78438c351c564ebe50a216f3f3ba5a0", + "addons/core/Sounds/ERR/Speech/soldier_1100.wav.meta": "dcd087d3e0bec53abdd4e42218a3bbb234b7ae3cd2da05dcee71a298632a8da9", + "addons/core/Sounds/ERR/Speech/soldier_1101.acp": "2680131b5364efe39f3dee44ce1605dbc9e064cea9baf8247a8c5b55dcfa8d99", + "addons/core/Sounds/ERR/Speech/soldier_1101.acp.meta": "4feaa2b8e069ee2e9576d4009329f585b1b5ade9e47816882b78075f4897646f", + "addons/core/Sounds/ERR/Speech/soldier_1101.wav": "4bca012ec25d8456cd38d26606312f54b480b674365b76a9c9f54e408314570b", + "addons/core/Sounds/ERR/Speech/soldier_1101.wav.meta": "6ac6bd7a06be3fa35c513137b4584e405c0cd7e32d0c6912f2d7f9b5a3087d36", + "addons/core/Sounds/ERR/Speech/soldier_1102.acp": "08002dc26a4c07d6bf488d5f7c8c6587787c1755ce374b4053dad582eb2d77cb", + "addons/core/Sounds/ERR/Speech/soldier_1102.acp.meta": "2133e516f162d6aaa7f0d3a191421964ca6df7b00d0a50fa42ffaba70864bef4", + "addons/core/Sounds/ERR/Speech/soldier_1102.wav": "1432bb3c9d99910314a84d9773d2afafe4f5fbb143afb291b0deed55d25ee6d0", + "addons/core/Sounds/ERR/Speech/soldier_1102.wav.meta": "a6ca33938733e22789434db35ca2cdfb0fc4c51716feadf4a28a60ee9d1044b2", + "addons/core/Sounds/ERR/Speech/soldier_1103.acp": "c93e1e75c272d31107fde86205b859cf505e2acf7d8776fbd81357bc8b3625b9", + "addons/core/Sounds/ERR/Speech/soldier_1103.acp.meta": "f3d41ab27e932b10d46c3a2aa63f826825403a70640381a089db608c1c00a257", + "addons/core/Sounds/ERR/Speech/soldier_1103.wav": "c294454907a229d521c2285eec26dbb82f9782f2a7eca764e11713ff63f0e004", + "addons/core/Sounds/ERR/Speech/soldier_1103.wav.meta": "968d93e9dee2104aee94407604d021d8849a83dc3d115484088e81289654c246", + "addons/core/Sounds/ERR/Speech/soldier_1104.acp": "cb94ed3c95670f11f78f6470f1f50492fff6d2f0ac94602d054d474d52400cec", + "addons/core/Sounds/ERR/Speech/soldier_1104.acp.meta": "92d43bf610784953d8d94322b73ae235f7a8aeb83ece72733d795c8034275052", + "addons/core/Sounds/ERR/Speech/soldier_1104.wav": "952b3d71366c26fc12bdbb9014665bfc0402f30944c22b1b2369d26a93db7104", + "addons/core/Sounds/ERR/Speech/soldier_1104.wav.meta": "939562214b39250feaa8f6f6c6bd10c3d4e0b4c529f338490a2dc234919c0d31", + "addons/core/Sounds/ERR/Speech/soldier_1105.acp": "62c5d3d230a8a15cf2a4de193620ccdf83ca9973b550ace4e8edf7cc49f52851", + "addons/core/Sounds/ERR/Speech/soldier_1105.acp.meta": "6774063562b9c83975bc394dd3c72aa2a0d8001d0990ab8ff870ae2876889f93", + "addons/core/Sounds/ERR/Speech/soldier_1105.wav": "20e9e82d9897b598497da4722432f83ae03a5e6bf9a1f7a77caab712e3fc3130", + "addons/core/Sounds/ERR/Speech/soldier_1105.wav.meta": "6f21652352edbd59d1244ce9c2dcd1ad4ab65f022222381d9709c28148121c42", + "addons/core/Sounds/ERR/Speech/soldier_1200.acp": "c27db60629a41145697e041224cc2dde21c72d6a883fa305c71ec9c5b86bd84e", + "addons/core/Sounds/ERR/Speech/soldier_1200.acp.meta": "ea228ec869a7a0266f5604266f68c4166abc6cfeaa29180cb3b4351464b71079", + "addons/core/Sounds/ERR/Speech/soldier_1200.wav": "5a1561e821ef33a574c1f9ef95ccf76e69b832bf0a20bcbbf914760345921859", + "addons/core/Sounds/ERR/Speech/soldier_1200.wav.meta": "ccf3b62fd2eea460d576fa68863a901eb0025f47b1b76729a4289162d0dfa0c8", + "addons/core/Sounds/ERR/Speech/soldier_1201.acp": "45f220c5b6bac64db61eebcf54bb52da572f9f8f1ea0872c5af9fd3238c25a4e", + "addons/core/Sounds/ERR/Speech/soldier_1201.acp.meta": "3be417d66b05e11e0b520af136dfc45c86c17d5e35b56a611efbcf38e0d35003", + "addons/core/Sounds/ERR/Speech/soldier_1201.wav": "f058f0482cfe4034fdf37d9b596f7ba8172fae1c57aeb387ce153f8041895e45", + "addons/core/Sounds/ERR/Speech/soldier_1201.wav.meta": "abaebe719eff7e009eb4d0222060280877451126c02154706df6d13e4c5d3e11", + "addons/core/Sounds/ERR/Speech/soldier_1202.acp": "c08625886d8c6dc405cf96c640c9dafd4510ba5cef2c22b037c8c7b3eb5bea39", + "addons/core/Sounds/ERR/Speech/soldier_1202.acp.meta": "cf345e968edad1b825dd33b87267b63f770c169250f8c51195bffc3161d396bd", + "addons/core/Sounds/ERR/Speech/soldier_1202.wav": "c875f4e798ff5e24c3eb3b48bdfa1b8af03de9326a19c671eca86660297ad737", + "addons/core/Sounds/ERR/Speech/soldier_1202.wav.meta": "dd2d6411abe914bce71c6688a1647c2699303ca248191ec01c6325b366e5d7fb", + "addons/core/Sounds/ERR/Speech/soldier_1203.acp": "f0237a51ffe0e7d463154d321117a9b19c6914f6ee680ebf07a0ff9ab51fc340", + "addons/core/Sounds/ERR/Speech/soldier_1203.acp.meta": "0e93332191ac74be950ce8139b96ed6fdfe3ddbe68de8949826dc801d12c97f2", + "addons/core/Sounds/ERR/Speech/soldier_1203.wav": "6e7857dc96dfb556f011ba89f2f4ea659cfd7b605b88790c69e754d5cc51398a", + "addons/core/Sounds/ERR/Speech/soldier_1203.wav.meta": "0f564169dc05a95f7b01f64f72bdabf6de9ed3f37a2f44b4751f89b38eb18cd8", + "addons/core/Sounds/ERR/Speech/soldier_1204.acp": "94dbf98b5e05f1ebf6960495032c46203caaa4440dfb1ffd3beda2679fe6bec5", + "addons/core/Sounds/ERR/Speech/soldier_1204.acp.meta": "7cc8c61f4bb210c0576fac350d170f8f54a6e55531db6102c1a0fa7cb7a8a809", + "addons/core/Sounds/ERR/Speech/soldier_1204.wav": "bd170ca015b017114e42078dcc5c49d5626aef17d22e4a12b8282e9ee4908ae6", + "addons/core/Sounds/ERR/Speech/soldier_1204.wav.meta": "1c6ddb11c22a14d9d498074e2fb2864783f91afc552c4cd671452fa8df483de0", + "addons/core/Sounds/ERR/Speech/soldier_1205.acp": "47180a3445a265335d682eac6fa51fedca51d76f329adc39b1802092b311118b", + "addons/core/Sounds/ERR/Speech/soldier_1205.acp.meta": "c34346f4b10149b426ebb4e94db8c29883c9d0e36f2b42d07d41570eb8932554", + "addons/core/Sounds/ERR/Speech/soldier_1205.wav": "769c457805376e9c0172ddb525ead5f1d8774e15bd1f3f3b218a19f9d77b6883", + "addons/core/Sounds/ERR/Speech/soldier_1205.wav.meta": "31a2a7314b44afb3f0031376b2ad6df22649e8089bf1a3bbeb64cdc41156cff7", + "addons/core/Sounds/ERR/Speech/soldier_clear.acp": "f33f03f3d24182a95db7d02058f2dd6ae52098e3b5142a33ede833ee881d54ed", + "addons/core/Sounds/ERR/Speech/soldier_clear.acp.meta": "7d3643c9de2d81ab0f1b4898e781341c1962bd8505c20882233ef7c40159b23b", + "addons/core/Sounds/ERR/Speech/soldier_clear.wav": "d6527b8136aa720b721463210420f47de0dbc45acc4e4c390b6a44968c5f0acd", + "addons/core/Sounds/ERR/Speech/soldier_clear.wav.meta": "d9f9a921a85fe275c6cce649421a19946ff6aec49559796725c3858d9fe9b261", + "addons/core/Sounds/ERR/Speech/soldier_covering.acp": "7d4109edbd6c20f9e2af0b394fa12e8b3b40fc18bf2b5ac118beebb1fa4a79b1", + "addons/core/Sounds/ERR/Speech/soldier_covering.acp.meta": "320908bf7decea55b8d8b4a89b30e84e7d96a033d4a9cd1bd84912dce013f0d8", + "addons/core/Sounds/ERR/Speech/soldier_covering.wav": "f51e0086eaf0eece8b4061711088a413a2dbeae263deab7ea30fb1852dafda69", + "addons/core/Sounds/ERR/Speech/soldier_covering.wav.meta": "7bdf2d2c5f9cf741bae523e1ab0b9acc99b38ccd1228ebfbcba92f2b9a5cba9d", + "addons/core/Sounds/ERR/Speech/soldier_engaging.acp": "9f052e87edaf182030edb656821621cdeabbf13d65bc181308357530c9d93a74", + "addons/core/Sounds/ERR/Speech/soldier_engaging.acp.meta": "9e487fa3746c46b2993f1dfd1f0513f375571728704533674bee62586e25b72b", + "addons/core/Sounds/ERR/Speech/soldier_engaging.wav": "ac0f2d7d698732e3d7c270186e7aa2ab7e6bd4c908f36b07fb6f66a3cbe75ccf", + "addons/core/Sounds/ERR/Speech/soldier_engaging.wav.meta": "d571b9ebce196cc209078a83e4bde8f6a5f4b6d28c2945e2b47953ccb6889e97", + "addons/core/Sounds/ERR/Speech/soldier_moving.acp": "05503ca7af13a7ad03ed2a3aa562cc58504fdfff3148477f8d81b5a01abdf37c", + "addons/core/Sounds/ERR/Speech/soldier_moving.acp.meta": "a2474c87e4e1587226919dfdbd03739d938803d34f4a4f441889b0d8015513bd", + "addons/core/Sounds/ERR/Speech/soldier_moving.wav": "a61dda64e6fc2a11eac3e6008ee14b89f360bd67e258dce1191a71d9e2e26fad", + "addons/core/Sounds/ERR/Speech/soldier_moving.wav.meta": "bd87cd72ccb819584f9da09fb0d6973ffd6eb0bb5572c562978500e2af467217", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp": "c821c61afb2ddc12d3ecdb552a66d2a9ff89a5258a567ff2a99fed4f45a33520", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp.meta": "65a27b81a5b437163befd4dc566785a9dda4def1798495ca53c8f768a5d7a73f", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav": "ffe6ef5fdf30411749e0cb73186e3005b1ce6a52fcb7c836caeb1bca422ed3ed", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav.meta": "25b5680fd2a313c18e15ce6e0d3f709d78352b93206c22c7881be19b81faddd5", + "addons/core/Sounds/ERR/Speech/soldier_reloading.acp": "51c5cb464bab6637cf9e3b1880a010e05774d76a92298daf40b1d84970845be7", + "addons/core/Sounds/ERR/Speech/soldier_reloading.acp.meta": "ca351e809b1ba7c69b066d2c1d0a5d2afdcaa833c1163e6d13a0396437e98cf6", + "addons/core/Sounds/ERR/Speech/soldier_reloading.wav": "15b2749f79bc73fd0784bcd6e6076e1bc50da835e0c434cd43bd185d0735c732", + "addons/core/Sounds/ERR/Speech/soldier_reloading.wav.meta": "161c9ebee1d0496c7aa9501d00eba646094bf1ce89cda4efde6e3a0229a49e4f", + "addons/core/Sounds/ERR/Speech/soldier_target_down.acp": "77acc89c4ef0b912b969a2e5f6c41e071e04d10cfe89666fbc1296878dab62bf", + "addons/core/Sounds/ERR/Speech/soldier_target_down.acp.meta": "fe456d354ace93b0f2261de483e86ccc92991011b1738c5703d6d7bc0daa49a6", + "addons/core/Sounds/ERR/Speech/soldier_target_down.wav": "e2e60e8b83a24a548c90b84c5e1137adb7e792cf1d4ba6232ddfb1012fa78892", + "addons/core/Sounds/ERR/Speech/soldier_target_down.wav.meta": "064588b86589ac9437fbccafedeefae04bec3331dd8a229d1c6d27b5e524a9e9", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.acp": "5ffd3ff57550296274e9e93fb64efdf2fb06a51161d6deb221c1f3eb408d1459", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.acp.meta": "366a3c9e20f27c0f73bdff5827576df8924e99241061f933e72bd342e5bc7119", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.wav": "bbcf454d48adea47478d410b1baf14df3a5d018237272e70ae33ee62823f822f", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.wav.meta": "d1ac64242280521a7e40de51ae32a007878d7801401020e7a074a48e0f8ce62e", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.acp": "5af1c949d4662c2f33320165d2efdbd69cb183af1101aa246fe538bf0d91a33e", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.acp.meta": "aa7799e8a790539166a1d3a9c691416e7b2f6589d1674f5cf4b3e47523f15259", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.wav": "e4bd5e69fda289593fc6e6b8c2fae9a271a10d0a9bae877f18ba02dbbf75d1fc", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.wav.meta": "25a988c31e4fc3ae6540920df3d4548307a4a1e3b96b1303e9b7bdb4ac5eea27", + "addons/core/Sounds/ERR/Speech/welcome.acp": "f8a7b6cdd08b57b4b227a2d5b480a6c76857d7fc8ace3434478aec01c0de5a83", + "addons/core/Sounds/ERR/Speech/welcome.acp.meta": "d3ac98b02c0725d347b30d0ac7586cb22904d46b65a145e4a1131222484a6929", + "addons/core/Sounds/ERR/Speech/welcome.wav": "01de068469bd6746dba7634fb6b5b85b150621d3359c17fd01bcb916b34b1720", + "addons/core/Sounds/ERR/Speech/welcome.wav.meta": "bf33edad44bbb04df852501154f08a9a9900ce503248abc698127a51e9eec934", + "addons/core/UI/Textures/ERR/SiteMarkers.edds": "611ec6c68c2456c2af017c47135134d73122461017b315f64ed7ca9891f20c21", + "addons/core/UI/Textures/ERR/SiteMarkers.edds.meta": "90f40b38e52a79951b72da2960e30887d5ee8bbcefbada0c0ac950c1bfcf847f", + "addons/core/UI/Textures/ERR/SiteMarkers.imageset": "3f947d03b3492ada541032539cdb3f34a03d68ae83c0ef8796dc7fd091b5911d", + "addons/core/UI/Textures/ERR/SiteMarkers.imageset.meta": "1dc5285abd0062af288fb40b2f22b5b7c3925cf7270a096862335db250ac1453", + "addons/core/UI/Textures/ERR/SiteMarkers.png": "76b472982234bd27050a9430e6a53f4c14fa38f7388db3706ebef506eab4e660", + "addons/core/UI/layouts/ERR/AdminMenu.layout": "1bb91d6913386635e523336964db7935be32b499ce87cb4c2a4d52d411aa0fa9", + "addons/core/UI/layouts/ERR/AdminMenu.layout.meta": "9deeece996f43b1f1fed6b5ec89279645c7b6424250200a42580cc088142e9bf", + "addons/core/UI/layouts/ERR/AdminValue.layout": "cd811af6d2fb187f01c74e20ea07ad85669546b0ad70efae2ce52921ce26cbca", + "addons/core/UI/layouts/ERR/AdminValue.layout.meta": "56b3d2335db400c1308e07c4a35d278b23ef32013dfd6dc82951866327428d08", + "addons/core/UI/layouts/ERR/ContentRow.layout": "7bf19d12b1b5e2c165f8671e92ae9227b54b4d1e551de94fa67bd54d3a66fddb", + "addons/core/UI/layouts/ERR/ContentRow.layout.meta": "8c4bc13b41e7aee38e0ca640a97813ed1a6964a00e2cff9e1fe4ebd71fc2fdc6", + "addons/core/UI/layouts/ERR/ItemRow.layout": "3c7ae3acdf2fad0ba661a1152ea319392668d774adc09a2a8b61e9a0319db312", + "addons/core/UI/layouts/ERR/ItemRow.layout.meta": "33eaef9c403ea3a030e58ec17f78e46af457048243571ad5856fff04101fb60b", + "addons/core/UI/layouts/ERR/ItemWeightRow.layout": "dfa6b87420efc683cb278178553350daa7753004d64672741a3dc13b4316810d", + "addons/core/UI/layouts/ERR/ItemWeightRow.layout.meta": "eb4b28587abdf6100092fd6eee1695663fa6e1548d5e53017173c4a5f7320240", + "addons/core/UI/layouts/ERR/PauseModsButton.layout": "d21d436291e2c1b262e33dc228b0d60a1d188dc9e85cfda6d2373f8281431b79", + "addons/core/UI/layouts/ERR/PauseModsButton.layout.meta": "9ed6adabd8f53eb9a562d7186789876bba5c4202155ca894c1af866ca47354f3", + "addons/core/UI/layouts/ERR/PreparationFailure.layout": "b7c4a2e6aa2be0992b478bb4f969f80355753573fffbc15be44670f3b136ea2e", + "addons/core/UI/layouts/ERR/PreparationFailure.layout.meta": "17ca2c9a12f691680883cec368ff06f511c996e5da5c25498f5f0955887867b0", + "addons/core/UI/layouts/ERR/PreparationStatus.layout": "ec3369f4030e593d34043e70a311b0963606cf024cb452648671556f25f5b52a", + "addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc", + "addons/core/UI/layouts/ERR/RoundResults.layout": "8550ebc009024f619827a43fd766aff8b7fbf8bc87ef7593db0fd7f4d778c615", + "addons/core/UI/layouts/ERR/RoundResults.layout.meta": "7509e050b3910ee5730dd25c60aacf405110e943f4ab46e3fc2186b3b15a3cf9", + "addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout": "82d9ae77f076f945583791dfa0b01f1c925e6ff8aaebcf382fd56089fe61a115", + "addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout.meta": "8691fe2eaf46568bca4a9f8128b247a8da810bb87a5546aa7ca3334e740270d6", + "addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "aef5d565301046ae902033ec4eb4799ff1bdd9a37bc507898781d8790f04fc2a", + "addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "6bcb7fbb27b6282719dae8a37486e518d4cbaea385f2ea9af1918b36bb28b175", + "addons/core/addon.gproj": "6ccf0d3a2817a5f865e605d5abe89bd794e7c8654f2dd005d0f496f05d91e76a" +} diff --git a/docs/evidence/content-menu-2026-11-06/launch-source.json b/docs/evidence/content-menu-2026-11-06/launch-source.json new file mode 100644 index 00000000..a24c0f8e --- /dev/null +++ b/docs/evidence/content-menu-2026-11-06/launch-source.json @@ -0,0 +1,45 @@ +{ + "schema_version": 1, + "launch_id": "c5cbdc3f-80c4-4f30-aa80-294ad74d9076", + "captured_unix": 1793972316.6407251, + "source_root": "/home/jakub/devel/escapistsrereintroduced/.local/content-menu/source9", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1920", + "-H", + "1080", + "-w", + "1920", + "-h", + "1080", + "-r", + "30", + "--", + "/home/jakub/.local/share/Steam/steamapps/common/Proton - Experimental/proton", + "run", + "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger Tools/Workbench/ArmaReforgerWorkbenchSteamDiag.exe", + "-gproj", + "Z:/home/jakub/devel/escapistsrereintroduced/.local/content-menu/source9/addons/core/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/.local/content-menu/source9/addons", + "-profile", + "Z:/home/jakub/devel/escapistsrereintroduced/.local/content-menu/native9", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateWorldPlugin", + "-errPlay", + "1", + "-errSmoke", + "0", + "-errSmokeOutcome", + "normal-escape-route", + "-noThrow", + "-disableCrashReporter" + ], + "manifest_sha256": "eda6a4af3dee957c03145fc726acd44e261bc0c998723e79578a83dcc885c852" +} diff --git a/docs/evidence/content-menu-2026-11-06/mods-final.png b/docs/evidence/content-menu-2026-11-06/mods-final.png new file mode 100644 index 00000000..7ecdd5d5 Binary files /dev/null and b/docs/evidence/content-menu-2026-11-06/mods-final.png differ diff --git a/docs/evidence/content-menu-2026-11-06/mods.png b/docs/evidence/content-menu-2026-11-06/mods.png new file mode 100644 index 00000000..7000604e Binary files /dev/null and b/docs/evidence/content-menu-2026-11-06/mods.png differ diff --git a/docs/evidence/content-menu-2026-11-06/native-assertions.log b/docs/evidence/content-menu-2026-11-06/native-assertions.log new file mode 100644 index 00000000..f84745e5 --- /dev/null +++ b/docs/evidence/content-menu-2026-11-06/native-assertions.log @@ -0,0 +1,20 @@ +14:39:24.221 SCRIPT : ERR CONTENT: controller=1 +14:39:25.223 SCRIPT : ERR CONTENT STAGE: 0 page=0 vehicles=0 addon= +14:39:25.226 SCRIPT : ERR CONTENT MODS: rows=11 vehicleMods=4 +14:39:28.226 SCRIPT : ERR CONTENT STAGE: 1 page=3 vehicles=0 addon= +14:39:31.234 SCRIPT : ERR CONTENT STAGE: 2 page=17 vehicles=0 addon= +14:39:35.236 SCRIPT : ERR CONTENT STAGE: 3 page=17 vehicles=0 addon= +14:39:39.243 SCRIPT : ERR CONTENT STAGE: 4 page=17 vehicles=0 addon= +14:39:43.320 SCRIPT : ERR CONTENT STAGE: 5 page=17 vehicles=0 addon= +14:39:46.325 SCRIPT : ERR CONTENT STAGE: 6 page=17 vehicles=0 addon= +14:39:46.325 SCRIPT : ERR SMOKE PASS: real menu item disable, master mod restoration and empty search +14:39:46.325 SCRIPT : ERR CONTENT VEHICLE INDEX: 0 +14:39:49.334 SCRIPT : ERR CONTENT STAGE: 10 page=16 vehicles=0 addon= +14:39:52.342 SCRIPT : ERR CONTENT STAGE: 11 page=17 vehicles=0 addon= +14:39:52.342 SCRIPT : ERR SMOKE PASS: item search restored after visiting advanced weights +14:39:55.350 SCRIPT : ERR CONTENT STAGE: 7 page=27 vehicles=12 addon=58d0fb3206b6f859 +14:39:59.370 SCRIPT : ERR CONTENT STAGE: 8 page=27 vehicles=12 addon=58d0fb3206b6f859 +14:40:02.376 SCRIPT : ERR CONTENT STAGE: 9 page=27 vehicles=1 addon=58d0fb3206b6f859 +14:40:02.376 SCRIPT : ERR SMOKE PASS: vehicle disable, filtered list and persisted preferences reload +14:40:02.424 SCRIPT : ERR SMOKE PASS: all navigation pages fit and disabled vehicles are excluded from selection +14:40:02.425 SCRIPT : ERR SMOKE COMPLETE: content menu native admin actions and saved selections diff --git a/docs/evidence/content-menu-2026-11-06/native-fixture.c.txt b/docs/evidence/content-menu-2026-11-06/native-fixture.c.txt new file mode 100644 index 00000000..3712bb07 --- /dev/null +++ b/docs/evidence/content-menu-2026-11-06/native-fixture.c.txt @@ -0,0 +1,146 @@ +#ifdef WORKBENCH +modded class SCR_RespawnSystemComponent +{ + override void UpdateLoadingPlaceholder(float dt) + { + super.UpdateLoadingPlaceholder(dt); + if (ERR_AdminMenu.GetOpenMenu() && m_wLoadingPlaceholder) m_wLoadingPlaceholder.SetVisible(false); + } +} + +modded class ERR_GameMode +{ + protected override void StartScenario() {} + protected override void EOnInit(IEntity owner) + { + super.EOnInit(owner); + if (SCR_Global.IsEditMode() || !Replication.IsServer()) return; + GetGame().GetCallqueue().CallLater(ERR_ContentReviewBegin, 5000, false); + } + protected void ERR_ContentReviewBegin() + { + PrintFormat("ERR CONTENT: controller=%1",GetGame().GetPlayerController()!=null); + ERR_AdminMenu.Open(); + } +} +modded class ERR_AdminMenu +{ + protected int m_ContentReviewStage; + protected float m_ContentReviewAt; + protected string m_ContentReviewItem; + protected string m_ContentReviewVehicle; + protected string m_ContentReviewAddon="58d0fb3206b6f859"; + override void OnMenuOpen() + { + super.OnMenuOpen(); + GetGame().GetCallqueue().CallLater(ERR_ContentReviewTick,1000,true); + } + override void OnMenuClose() + { + GetGame().GetCallqueue().Remove(ERR_ContentReviewTick); + super.OnMenuClose(); + } + void ERR_ContentReviewFail(string reason) + { + Print("ERR SMOKE FAIL: content menu "+reason,LogLevel.ERROR); + GetGame().GetCallqueue().Remove(ERR_ContentReviewTick); + } + void ERR_ContentReviewTick() + { + float now=GetGame().GetWorld().GetWorldTime(); + if(!m_Ready || now disabledPool={ERR_CivilianTraffic.CarPrefab(0)}; + if(!ERR_VehicleSelection.Choose(disabledPool).IsEmpty()){ERR_ContentReviewFail("disabled mod still permits traffic candidate");return;} + SubmitItems("items mod "+m_ContentReviewAddon+" 1");m_ContentReviewStage=5;return; + } + if(m_ContentReviewStage==5) + { + if(!prefs.ModEnabled(m_ContentReviewAddon)||prefs.Enabled(m_ContentReviewAddon,m_ContentReviewItem)){ERR_ContentReviewFail("master restore lost item choice");return;} + SCR_EditBoxComponent.GetEditBoxComponent("ItemsSearch",GetRootWidget()).SetValue("err_no_such_item_9387");BrowseItems(0);m_ContentReviewStage=6;return; + } + if(m_ContentReviewStage==6) + { + if(!m_ItemRows.IsEmpty()){ERR_ContentReviewFail("search stale rows");return;} + Print("ERR SMOKE PASS: real menu item disable, master mod restoration and empty search"); + PrintFormat("ERR CONTENT VEHICLE INDEX: %1",m_VehicleMods.Find(m_ContentReviewAddon)); + ShowPage(ERR_AdminPage.WEIGHTS); SubmitItems("items list "+m_ContentReviewAddon+" 0");m_ContentReviewStage=10;return; + } + if(m_ContentReviewStage==10) + { + ShowPage(ERR_AdminPage.ALLOWED_ITEMS);m_ContentReviewStage=11;return; + } + if(m_ContentReviewStage==11) + { + if(!m_ItemRows.IsEmpty()){ERR_ContentReviewFail("search lost after advanced page");return;} + Print("ERR SMOKE PASS: item search restored after visiting advanced weights"); + OpenVehicleAddon(m_ContentReviewAddon);m_ContentReviewStage=7;return; + } + if(m_ContentReviewStage==7) + { + if(m_VehicleRows.IsEmpty())return; + if(!ERR_ProbeNavigation(ERR_AdminPage.VEHICLE_POOL)){ERR_ContentReviewFail("vehicle navigation");return;} + foreach(string key,Widget row:m_VehicleRows){m_ContentReviewVehicle=key;OnVehicleRowButton(SCR_ButtonTextComponent.GetButtonText("Disable",row));break;} + System.MakeScreenshot("$logs:content-vehicles");m_ContentReviewStage=8;return; + } + if(m_ContentReviewStage==8) + { + if(prefs.VehicleEnabled(m_ContentReviewAddon,m_ContentReviewVehicle)){ERR_ContentReviewFail("vehicle disable");return;} + ERR_ServerAddonItems vehicles=GetGame().ERR_ServerVehicles().Find(m_ContentReviewAddon); + foreach(ERR_ServerItem vehicle:vehicles.Items) + if(ERR_TerrainCatalog.Key(vehicle.Prefab)==m_ContentReviewVehicle) + { + array pool={vehicle.Prefab}; + if(!ERR_VehicleSelection.Choose(pool).IsEmpty()){ERR_ContentReviewFail("disabled vehicle still selected");return;} + } + ERR_ItemPreferences reloaded=new ERR_ItemPreferences(); + if(reloaded.VehicleEnabled(m_ContentReviewAddon,m_ContentReviewVehicle)||reloaded.Enabled(m_ContentReviewAddon,m_ContentReviewItem)||!reloaded.ModEnabled(m_ContentReviewAddon)){ERR_ContentReviewFail("saved configuration reload");return;} + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesFilter",GetRootWidget()).SetCurrentItem(2,false,false,false);BrowseVehicles(0);m_ContentReviewStage=9;return; + } + if(m_ContentReviewStage==9) + { + if(m_VehicleRows.Count()!=1 || !m_VehicleRows.Contains(m_ContentReviewVehicle)){ERR_ContentReviewFail("disabled vehicle filter");return;} + Print("ERR SMOKE PASS: vehicle disable, filtered list and persisted preferences reload"); + for(int page=0;page + _warnings.warn(self.warn_message, ResourceWarning) +.......... +---------------------------------------------------------------------- +Ran 16 tests in 0.137s + +OK +PASS: authoritative kills/deaths, duplicate-event protection, friendly kills, suicide, GM and vehicle exclusions, down/recovery edges, disconnected escapees and terminal gates +PASS: production roster reconciliation preserves disconnected names and reconnect counters, refuses connection-ID inheritance, freezes records and bounds retained participants +PASS: held/tapped AI horn limits, half-second pulses, 30-second cooldown, clock reset, player/passenger/aircraft/replica exclusion and ended mission cleanup +PASS: telemetry outcomes, exactly-once finish, opt-out gate, stale callbacks, HTTP status handling and bounded retry +PASS: durable installation credential, restart/endpoint/identity isolation, write failure, corruption, bounded retention and disabled-send gates +PASS: running dedicated configuration, automatic server config/lobby name, explicit override, startup absence, rename and payload bound +PASS: map/server/mission/event/outcome validation, bounded counters, stale delivery exclusion, current-round refresh and unavailable recovery +PASS: deployment init waits for mode, runs once, cancels on deletion/world change and bounds retries; respawn RPC registration stays immediate +PASS: native chat retained on both peers, nested ownership detached, absent chat supplied by replicated fallback, authored mission chat preserved +PASS: configurable independent restarts, idle clock reset and live setting changes; last disconnect, pending admission/spectator population, five-hour boundary, repeated empty rounds, preparation, authority and duplicate-end guards +PASS: faction aircraft profiles provide 12+ cargo capacity; FIA/ION crew comes only from the selected faction +PASS: fleet space is required before pickup registration; dispatch rechecks/replaces only the secondary within the original 48-candidate footprint budget +Policy-only arrival from 90 m offset / 150 m height at 15 Hz: original 65.60s, rescue 32.20s +Policy-only arrival from 90 m offset / 150 m height at 30 Hz: original 65.73s, rescue 32.30s +Policy-only arrival from 90 m offset / 150 m height at 60 Hz: original 65.72s, rescue 32.33s +Policy-only arrival from 90 m offset / 150 m height at 120 Hz: original 65.72s, rescue 32.33s +PASS: faster rescue descent, continuous near-ground braking, alignment gate, unchanged recovery/escort/default profile, and bounded settling at 15/30/60/120 Hz +PASS: split-fleet boarding, escort rejection, lost transport failure and both transports airborne for thirty seconds +PASS: actual nearest usable registered-fleet selection, patient reservation priority, independent ranges, audited benches/skids and captured-aircraft handshake guards +PASS: production Cessna boarding requires exact observed occupancy, activates before requesting, caps retries at three with 5s spacing, and preserves transition, ownership, health and seat restrictions; engine behavior is faked +PASS: traffic distance/grace, all-observer veto, player claims, foreign custody, bounded spawn cadence, failure/stall retention and shutdown preserve nearby/claimed entities +PASS: actual observer collection includes spectator targets and controlled bodies; missing views/controllers and open editor cameras veto spawn/cleanup +PASS: civilian traffic defaults to three; menu command resolves to persisted 0..6 setting with zero disabling new cars +PASS: bounded exit-road selection can turn along a coastline when the opposite road is unavailable; no-route case is withheld +PASS: managed traffic pins both native garbage entries; release/retirement removes only those pins, including partial creation +PASS: garage/yard family admission, bounded wall offsets, civilian and optional Rally catalog exclusions, vehicle-fit limits +PASS: yard road-width margin, missing road data, footprint water/slope and nonfinite-input vetoes +PASS: bodies and spectator targets are collected; unknown, nonfinite and editor views veto spawning/cleanup; no connected players yields an empty known view +PASS: permanent entry/movement/occupancy claims; far hidden grace cleanup; proximity/visibility/unknown-view resets; one staged operation per update, no same-frame catch-up, stop and client guards +PASS: saved garage menu settings configure the round once; unit conversion and cleanup radius scale correctly; count/chance zero disable startup; clients and stopped rounds do no work +PASS: exhausted/blocked opening keeps configured radius; distant objective fallback rejected; bounds, player clearance, separation, force cap and retry delay retained +PASS: separated rear vehicle approaches, opposite infantry sectors, radio-gated ownership, failed-order preservation, visual cover or bounded supported reconnaissance, bounded dismount/search/regroup and loss cleanup +PASS: production dismount/boarding allocation, all crew allowances, waypoint ownership, one-time vehicle detach/restore and capture/teardown guards +PASS: covering support requires the original conscious turret gunner, valid mounted driver, live crew and delivered assignment +PASS: alternate positions exclude failed and occupied stages, roll back on failed planning/allocation, and preserve the total time budget +PASS: blocked crew deadline survives combat interruptions, defers unsafe exits, resets after recovery; failed stages survive assignments with bounded expiry +PASS: native-callback cleanup, bounded retries and budget, pending quarantine, objective/ownership/lifecycle protection, no evidence retirement or forced entity deletion +PASS: radio intel boundary, exclusions, preparation cap, next-round configuration, sticky unlock, redirection/evidence, fixed retention, automatic recovery and lifecycle guards +PASS: actual terrain refusal reasons, counted summaries, site/attempt/time context, 30-second rate limit and per-site reset +PASS: actual low/negative dry terrain, height-correct shallow/lake/ocean/interior water refusal and downstream startup dry-ground gates +PASS: failure-only menu, repeated-frame/dialog focus, pause fallback, exact error, Esc routing, single local exit, stale/recovered mode guards and listener cleanup; native rendering unverified +PASS: only original fit loaded healthy uncaptured gunners stay mounted; driver can leave; infantry readiness excludes the retained gunner but regroup requires all survivors +PASS: actual HQ allocator selects reachable reports, distinct cover/flanks, simultaneous fronts, bounded reservations and failed-radio/placement rollback +PASS: shared own-force attack spacing, own-group refresh, exact release, expiry/deletion, finite capacity and fresh confirmed sighting-only flank permission +PASS: actual convoy foot transport detachment is idempotent; regroup restores only its live friendly uncaptured original truck +PASS: opposing native flank orders are transactional; arrived teams sweep twice, travelling/boarding teams retain orders, failed redirects retry and replayed contacts are ignored +PASS: expired-report approach, arrival-only search, completion, newer/older/replayed reports, visual priority, interrupted search and bounded travel +PASS: drone cooldown, capacity, freshness, replay, bounded retries, round cap, stop, optional API and radio boundaries +PASS: production camera cone/range rejects behind-camera and distant actors; control directions, damping and limits +PASS: production drone radio queue rejects wrong phase/authority/group, busy or unconscious radios and absent routes; snapshots only eligible observations +PASS: target equipment counts as character contact; unrelated blockers and cyclic hierarchies stay blocked +PASS: burial requires a conscious current player, actual held shovel, dead nearby unobstructed corpse and no vehicle; authority and duplicate deletion guards preserve player/tool +PASS: nearest reported idle team, blocked teams, guards, active/pending orders, combat, radio routes, stale status and distance limit +PASS: six editor listeners transferred idempotently, unrelated handlers retained, authority guard and lifecycle ordering +PASS: takeover reconnect creates only missing managers, restores native roles, never grants non-admin access, skips stale/disconnected/client states +PASS: Game Master button becomes enabled on native permission arrival and disabled on revocation; no permission bypass +PASS: native creation called once per editor; pending/duplicate ownership waits, host works, retry is bounded and stale-world callbacks cannot create editors +PASS: catalog-independent cleanup removes original subscriptions once, handles never-initialized/preload items, preserves live validation and opted-out/editor behavior +PASS: shared config transaction rejects client writes, preserves first-save/prior/fallback state across open, write, backup, partial-copy, readback and mismatch failures +PASS: actual Save/Commit preserves semantically valid backup across unrelated menu edits and repairs; unknown fields/default sections retained; actual terrain parser; other parsers, catalog and disk doubled +.....TTS request rejected: authentication failed (403) +TTS request completed (200) +....TTS request completed (200) +TTS request completed (200) +.. +---------------------------------------------------------------------- +Ran 11 tests in 1.075s + +OK +PASS: all 37 fixed messages have validated exact audio, native graph identities and source-bundle inclusion +PASS: production incremental decoder preserves binary data, bounds each slice, yields on elapsed time and rejects malformed or oversized payloads +PASS: production speech transfer checks order, exact part sizes and stable bounded totals without changing audio +PASS: production client callbacks only queue; shared updates prepare one bounded slice, preserve bytes, handle file failures and cancel safely before playback +PASS: production soldier timeout preserves queued/completed preparation, expires stalled requests and removes stopped graphs only once +PASS: actual welcome tick waits for URL/readiness/server permit, preserves local once-only state across worlds and refuses stopped callbacks +PASS: account greeting survives client/controller/round changes; owner validation, delayed readiness, idempotent retry, stale replies and bounded ledger +PASS: original body/equipment retained past old timeout; expiry, death, canonical account/body, occupied controller, failed handoff, missing/dead/expired body replacement and extraction/duplicate-audit guards +frame_ms=33.3333 buffered_step_variation=0.0336441 baseline=1.32469 +frame_ms=16.6667 buffered_step_variation=0.0660537 baseline=0.822226 +frame_ms=6.94444 buffered_step_variation=0.0253502 baseline=0.427864 +PASS: actual view buffer validates samples, follows position/roll/FOV, rejects stale/foreign/reordered data, buffers jitter without drift, bounds memory and expires gaps +PASS: actual relay rejects noncanonical sources, live/foreign/stale viewers, invalid/replayed/fast packets; bounds leases and owner-only target delivery +PASS: production scope sampling preserves ordinary views, selects active ADS only, carries zoom/zeroing/illumination and rejects mismatched/unstreamed optics; native APIs doubled +PASS: native head/helmet fade is local, target-scoped, restored on exit/switch and does not overwrite a later camera owner +PASS: actual orbit branch rotates and zooms without a target; anchor tracking, bounds, collision and menu gating; corpse/vehicle orbit and living player-view fallback preserved +PASS: production TTS settings/test/enable/failure/disable/timeout flows preserve fallback, secrets, authorization, saved state and late-callback cancellation +PASS: TTS admin authorization, limits, case preservation and menu control contract +PASS: actual atlas preparation shows disclosed markers on overview, regional and detail sheets; cover hidden; overlay matches map rectangle above print for square/wide/tall terrains +PASS: actual objective overlay lifecycle preserves separate ownership, late readiness/reopen, data refresh, pan/zoom/culling, supported sibling/shared-frame parents, coordinate offsets, native task-clear isolation and terminal cleanup; native rendering remains unverified +PASS: actual map element initializes each widget, retries missing widgets, updates position and changes only stale text/icon data; no native image-load claim +PASS: all atlas identifiers, including the quoted question mark, match the generator +PASS: actual native fixture root/config ownership and idempotent cleanup preserve foreign map, selector excludes ordinary route, fixed budgets/screenshots/UGC boundaries retained; native operations not executed +PASS: actual full Inspect rejects canvas parenting, wrong active container/canvas, omitted origin offset, wrong rendered box and stale coordinates; differing origins and DPI accepted +PASS: actual long-warning phases retain visible label through1500ms checkpoint then restore radio before close; synthetic marker separated from unmoved player +PASS: actual Center keeps marker offset within large and small native viewports at both fixture zooms without altering disclosed coordinates +PASS: missing, child-only, malformed, zero and duplicate prefab root IDs rejected +PASS: delayed scene/inventory arrival, deferred preload, identity checks, stale replies, timeout and observer cleanup +PASS: loading protection restores only its own damage change, rejects invalid admission actors, and tolerates repeat/deleted cleanup +PASS: actual inventory manifest, delayed/missing/wrong-owner item links, finite cap, consumed-stock refresh and preload ordering +PASS: spawn scene remains held through final acknowledgement and nearby use; leaving, reassignment, disconnect and teardown release it +PASS: production prison AI hold/release, repeat activation, authority/faction/player exclusion, dead actor and stop cleanup +PASS: actual protected/capped damage plus exact-actor terminal fixture bypass through delayed native damage, fail-closed ownership and untouched ordinary actor; no native claim +PASS: actual full planner selection/commit body, 360 equivalence scenarios, orders/reservations/cooldowns identical; one128-unit scan vs >10000 repeated unit visits; no FPS claim +PASS: actual observer monitor/recovery/cleanup rejects retained old controller, preserves new camera/editor/hints/timer, restarts once and retains normal recovery; native effects modeled from SDK, no runtime claim +PASS: former chat controller releases only its own callbacks and preserves replacement menu; current-owner stop/scope and repeated teardown remain intact +PASS: wrong observer fixture selector rejected before runtime/profile setup; no engine launched +PASS: native camera fixture uses current generated sites instead of the obsolete fixed extraction pickup +PASS: actual depot mixed-roster worker/item selection, ownership/refusal and radio/planning/two-leg state transitions, fixed deadline, late proof quarantine, finite import and no adoption after Stop +PASS: actual depot HQ lifecycle, existing planner priority, server/mode/owner gates, idempotent polling and owner replacement +PASS: actual HQ mine/magazine claim separation, real demand methods, exact token cleanup and original authority gates; native availability doubled +PASS: actual full magazine/inert-PMN4 depot leaf, exact custody, isolated callbacks, finite reservation, false/unknown and Stop quarantine, once-only delivery and caps; native movement unqualified +PASS: actual mine/magazine provenance and separated finite mine imports; actual authored identity capture, READY-only detached provenance, same shared stock admission, completed exact two-leg proof, lifetime caps and Stop no late adoption +PASS: anger per car, all thresholds and remainders, disable/re-enable, wave cap, staged retries, empty-round reset, no backlog, four seats and nearest-player road distance +PASS: motorbikes require all mounted addons and exactly two crew seats; base/wreck prefabs rejected +.. +---------------------------------------------------------------------- +Ran 2 tests in 0.001s + +OK +PASS: road width/bridge/length checks, prison and post spacing, setting bounds/default, finite startup and owned HQ admission +PASS: exact configurable width cutoff, separate quotas and independent disabling +PASS: every saved setting has a fresh-profile constructor default +PASS: actual roadblock scheduler yields initial deadline/attempt cap to background, budgets samples, pauses empty/full worlds, completes 30 after unlock, preserves safety and never replenishes losses; teardown cancels work +PASS: actual staged post creation spawns at most one entity per callback, commits only all four/eight guards, all planned props and waypoint, and rolls back player approach, obstructions, spawn/replication/ledger failure and cancellation; all committed props bypass distance streaming +PASS: both shipped checkpoint layouts preserve vehicle lane, opposing signs, staggered barriers, clear guard slots and separate props across 4–16m roads and all tested headings +PASS: actual prop clearance excludes owned geometry while retaining moved-guard, foreign-obstruction, water and terrain rejection +PASS: road-edge/intersection clearance, mine detour geometry, checkpoint hold authority and retask cancellation +PASS: actual crash geometry, detached definition setup, frozen server choice and guarded phase policy; integration/source ordering checked +PASS: actual GameMode readiness admission and common full-footprint survey require crash authorization and both surveyed areas +PASS: actual start defaults/parse/save, failure retention and authorized command wiring; current/next feedback, aliases and no random choice; native UI and core mode freezing are separate +PASS: native-rejected custom items remain available without startup delay; required map and async insertion safeguards retained +PASS: exact starting-stock edits, quantities/type/total limits, duplicate rejection, saved custom/default modes, authority/read-only/save-failure retention and authenticated catalog routing +PASS: actual immutable measured footprint/root/attachment matching, bounds/transforms, moving geometry, seated-body and cargo reciprocity, finite hierarchy caps; native geometry doubled +PASS: actual BMP singleton geometry and typed current order; one survey, full straight segment, width, known history, reservations, settlement/clearance and work caps; placement/footprint tested separately +PASS: actual five random-radius diagnostic wrappers, disabled transparency, cached opt-in, exact zero and exclusion branch, native arguments/returns/outarg preservation, single superclass call and shared16-log cap +PASS: zero-radius trace disabled by default, scoped before setup, exact opt-in emission; no native launch +PASS: complete actual supply-travel probe, immutable 6+2 formations and 25 actors, admission/travel deadlines, six observed native-boundary moves, stop/ownership/partial-substitution refusals +PASS: actual distinct supply-travel hook, fixed420s selector, original observer protection/restoration, failure/terminal cleanup and no legacy convoy setup +PASS: actual supply-travel selector requires Chat, one round and480s; existing outcomes unaffected; no native launch +usage: test_native_mounted_intercept.py [-h] [--steam STEAM] + [--external-addons EXTERNAL_ADDONS] + --compat COMPAT --profile PROFILE + [--smoke {coordinated-ai,crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,self-epinephrine,starter-backpack,speech-download,bundled-speech,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,sarka-hunters,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,roadblocks,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}] + [--roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--large-roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--speech-probe-url SPEECH_PROBE_URL] + [--trace-random-radius] + [--maintenance-refuel] + [--mounted-swap-eligibility] + [--mounted-bmp] [--mine-stock] + [--mounted-courier] + [--mounted-intercept] [--convoy-cover] + [--field-terrain-audit] + [--field-service-cancel] + [--route-service-cancel] + [--station-teardown-diagnostics] + [--flight-autohover] + [--flight-action-inputs] + [--flight-input-diagnostics] + [--recon-takeover-only] + [--body-recovery-only] + [--coordinated-blocked-only] + [--rounds ROUNDS] [--timeout TIMEOUT] + [--project {core,chat}] +test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds +usage: test_native_mounted_intercept.py [-h] [--steam STEAM] + [--external-addons EXTERNAL_ADDONS] + --compat COMPAT --profile PROFILE + [--smoke {coordinated-ai,crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,self-epinephrine,starter-backpack,speech-download,bundled-speech,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,sarka-hunters,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,roadblocks,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}] + [--roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--large-roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--speech-probe-url SPEECH_PROBE_URL] + [--trace-random-radius] + [--maintenance-refuel] + [--mounted-swap-eligibility] + [--mounted-bmp] [--mine-stock] + [--mounted-courier] + [--mounted-intercept] [--convoy-cover] + [--field-terrain-audit] + [--field-service-cancel] + [--route-service-cancel] + [--station-teardown-diagnostics] + [--flight-autohover] + [--flight-action-inputs] + [--flight-input-diagnostics] + [--recon-takeover-only] + [--body-recovery-only] + [--coordinated-blocked-only] + [--rounds ROUNDS] [--timeout TIMEOUT] + [--project {core,chat}] +test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds +usage: test_native_mounted_intercept.py [-h] [--steam STEAM] + [--external-addons EXTERNAL_ADDONS] + --compat COMPAT --profile PROFILE + [--smoke {coordinated-ai,crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,self-epinephrine,starter-backpack,speech-download,bundled-speech,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,sarka-hunters,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,roadblocks,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}] + [--roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--large-roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--speech-probe-url SPEECH_PROBE_URL] + [--trace-random-radius] + [--maintenance-refuel] + [--mounted-swap-eligibility] + [--mounted-bmp] [--mine-stock] + [--mounted-courier] + [--mounted-intercept] [--convoy-cover] + [--field-terrain-audit] + [--field-service-cancel] + [--route-service-cancel] + [--station-teardown-diagnostics] + [--flight-autohover] + [--flight-action-inputs] + [--flight-input-diagnostics] + [--recon-takeover-only] + [--body-recovery-only] + [--coordinated-blocked-only] + [--rounds ROUNDS] [--timeout TIMEOUT] + [--project {core,chat}] +test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds +usage: test_native_mounted_intercept.py [-h] [--steam STEAM] + [--external-addons EXTERNAL_ADDONS] + --compat COMPAT --profile PROFILE + [--smoke {coordinated-ai,crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,self-epinephrine,starter-backpack,speech-download,bundled-speech,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,sarka-hunters,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,roadblocks,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}] + [--roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--large-roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--speech-probe-url SPEECH_PROBE_URL] + [--trace-random-radius] + [--maintenance-refuel] + [--mounted-swap-eligibility] + [--mounted-bmp] [--mine-stock] + [--mounted-courier] + [--mounted-intercept] [--convoy-cover] + [--field-terrain-audit] + [--field-service-cancel] + [--route-service-cancel] + [--station-teardown-diagnostics] + [--flight-autohover] + [--flight-action-inputs] + [--flight-input-diagnostics] + [--recon-takeover-only] + [--body-recovery-only] + [--coordinated-blocked-only] + [--rounds ROUNDS] [--timeout TIMEOUT] + [--project {core,chat}] +test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds +usage: test_native_mounted_intercept.py [-h] [--steam STEAM] + [--external-addons EXTERNAL_ADDONS] + --compat COMPAT --profile PROFILE + [--smoke {coordinated-ai,crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,self-epinephrine,starter-backpack,speech-download,bundled-speech,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,sarka-hunters,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,roadblocks,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}] + [--roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--large-roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--speech-probe-url SPEECH_PROBE_URL] + [--trace-random-radius] + [--maintenance-refuel] + [--mounted-swap-eligibility] + [--mounted-bmp] [--mine-stock] + [--mounted-courier] + [--mounted-intercept] [--convoy-cover] + [--field-terrain-audit] + [--field-service-cancel] + [--route-service-cancel] + [--station-teardown-diagnostics] + [--flight-autohover] + [--flight-action-inputs] + [--flight-input-diagnostics] + [--recon-takeover-only] + [--body-recovery-only] + [--coordinated-blocked-only] + [--rounds ROUNDS] [--timeout TIMEOUT] + [--project {core,chat}] +test_native_mounted_intercept.py: error: --mounted-intercept and --convoy-cover are mutually exclusive +PASS: actual native interception witness requires real radio cursor/lineage, original actor identities, fixed movement/hold/expiry/resume and immutable deadline; no movement/delivery injection +PASS: actual CLI rejects wrong mode/project/rounds/899s/conflict before runtime; valid flag and terminal branch identify synthetic-observation qualification +PASS: visible base hook and actual fixture override delegate once; delivery proof uses retained pre-super route only on successful production transition +actual mounted HQ dispatch planning, radio, ownership and lifecycle checks passed +PASS: actual mounted intercept eligibility/order chronology, fixed destinations, native road selection bounds, width, segment heading, clearance and settlement delegation; no native driving claim +PASS: actual paired arc geometry,40m/80m spacing, separate original polylines, both-position validation and128road/4096segment budget; no native driving proof +PASS: actual typed original BMP singleton, loss/footprint/custody guards and native cancellation, UAZ-only pair admission, rollback, native allocation/revocation boundaries, per-member ownership, hold and expiry +PASS: actual Tick clock initialization admits fractional first ticks and expires without extending the original start +PASS: actual finite conservation/deadline/callback policies; read-only selection, bounded once-only inventory submission and no can refill; native transfer not executed +PASS: actual exact-context membership, bounded identity/reach gates, native start/cache/eligibility ordering and no duplicate/foreign action start; fuel manager identity and empty-can headroom guards checked +PASS: actual detached node/value snapshot and conservation refuse mismatched lengths before indexed reads, retain original identities under native out-array aliasing and log bounded counts once; native cause remains unknown +PASS: actual mine evidence sealing/recovery, historical coarse publication, caps, canonical ownership, marker join retry/owner-change/stop; native arming and replicated vector-array transport untested +PASS: actual full document recovery retains authored/sealed targets, one shared spent ledger, retry/exhaustion semantics and canonical multi-player ownership alongside supplemental mine intel +PASS: actual infantry search suspension, quiet grace, finite resume, expiry/replacement and defensive/ownership boundaries +PASS: infantry combat gate precedes radio delivery and preserves non-task transports +PASS: actual HQ contact transition wakes only fit squad members, cancels only task orders and logs changes once +PASS: actual finite medicine grants, authored stock deduction, full-backpack refusal/pouch fallback, no loot replenishment, unresolved-operation quarantine and ownership/stop guards +PASS: only recent native detected/identified threats suspend hunter travel; stale/disarmed/destroyed contacts cannot strand patrols +PASS: actual hunter combat transition cancels only its travel once, holds through renewed contact and resumes after quiet; unregistered startup preserved +PASS: actual movement recovery retries delivered orders three times, respects combat/speed/arrival/progress, then abandons the stalled vehicle +PASS: actual abandonment releases once, detaches transport, requests native exits only for fit original AI aboard, and leaves players/captured crews alone +PASS: captured sighting retention, immutable details, expiry, replay rejection, bounded sound uncertainty/cooldown, radio loss, priority and overdue-status fairness +PASS: arrow press/release, held keys, opposing keys, disabled/menu input and firearm-only retention +PASS: actual self-injection eligibility matrix and authority/rate limit; default-off persistence, authenticated menu route, owned finite injector and native effect/consumption boundaries +PASS: town trigger and hard 700m exclusion for all observers, empty/invalid positions and final-check crossings +PASS: object guard split, hard 1000m exclusion / 1400m activation, footprint support, slopes, holes and invalid traces +PASS: actual fixed-post admission reserves only stationary guards from HQ retasking and tightens their defend radius +PASS: production site classification accepts structures/descriptors and excludes industrial props, fragments, flags, ruins and vehicles +PASS: increased site populations preserve the 32 fixed / 16 mobile field-soldier budget, with guards at every site +PASS: exact finite site squads, invalid roster/count rejection, committed-site spacing and safe fallback boundary +PASS: mortar couriers use the mobile site team and refuse permanent-only garrisons +PASS: omitted preferred mortar depot selects a surviving owned camp/mobile team; no camp, foreign cache and permanent-only sites are unavailable; historical priority retained +PASS: real-session mortar deadline, failed-support convoy admission and hunter survivor/recovery gates +PASS: native-route retry preserves delivered target, limits attempts and suspends during combat +PASS: stale/deleted AI utility cannot receive Complete; mortar HQ preflight withholds unsafe orders; mounted convoy cover never creates infantry Defend +PASS: flight crew affiliation and group precede native boarding; preparation remains bounded even while passengers wait +PASS: factionless/deleted map targets do not abort perception; faction lookup tolerates teardown; deleting helicopter releases without capture/engine access +PASS: shoot adapter waits for a physical round; bounded same-shell retries, interrupted/never-started loads, committed no-retry, order/owner changes and normal native delegation +PASS: observed mortar corrections, radio delivery, bounded expiry, aim preservation and out-of-order impacts; native flight untested +PASS: splash reports retain HQ-estimated movement with matching position/time; stale, mismatched or unsupported estimates rejected +PASS: missing/invalid faction crew defers before any native spawn or allowance insertion; all registered RHS factions have explicit soldier and medic profiles +PASS: vehicle radio issued once; pending, refusal and looting cannot duplicate or fabricate a physical radio link +PASS: actual vehicle-radio link requires the original seated crew, physical manpack and live uncaptured mission vehicle; looting, dismount, release and teardown remove it +PASS: actual hunter release preserves survivors/HQ, releases driving ownership once, delegates capture/teardown, and excludes prison/patrol/mortar from generic objective defence +PASS: actual hunter cancellation releases exactly the pending source/message once; teardown clears ownership without HQ/game/world +PASS: actual player-entry hook latches original hunter capture before native callbacks; both release layers cancel ownership without new entities/refund; bounded current-owner guards and prior-release policy +PASS: real opening road geometry enforces wide azimuths; fresh delivered contact preempts patrol cooldown, respects radio failures and does not starve in-flight interception +PASS: delivered ground search survives the 60-second mortar cutoff, with five-minute/500m uncertainty bounds and no live target reads; mortar policy unchanged +PASS: reserve uses HQ reports/dispatch deadlines, preserves radio uncertainty, spends once, respects cooldown/availability/three-reserve/15-vehicle caps +PASS: searches expire ten minutes after observation, ignore replays, wait at arrival, widen within 1 km and bound road queries +PASS: actual scoped 10% tighter REGULAR aim error and alert perception; preserves equipment multiplier and restores vanilla behavior when unbound +PASS: physical inspection and parent-wreck retention; server-only searched/report delivery unlocks native cleanup once with a 300-second delay +PASS: 570 folders cover 57 unfinished sites evenly; known/automatic targets excluded, late camps included, and exact issued/authored documents preserved +PASS: bounded same-group empty-spawn retries, no casualty refill, queue retirement, delivery-gated intel, prepared-team reuse, throttled diagnostics and LOD release +PASS: four-team/twelve-wave bounds; two-thirds nearby radio defence; nearest selection, radio failures, expiry, perimeter separation, protected duties and independent response budgets +PASS: production airborne memory confidence, persistence, ground coverage, confirmed losses, artillery veto, cooldown and invalid-input rules +PASS: production bounded approach deadline, empty-drop reuse, partial-drop protection; cover retains the carried HQ target until its deadline; airport reload waits until the drop pass and cover have finished +PASS: air logistics reservation preserves delivered search until radio handoff, excludes guards/combat/in-flight orders, and quarantines unresolved native loads/moves +PASS: actual ammunition cargo selector handles empty rifle/machinegun/sniper magazines, preserves loaded variants, excludes auxiliary launchers and tolerates missing native metadata +PASS: original 15-minute launch/loss cadence, active/captured timer disarm, saved delay reset, stop, 300m orbit and bounded close-contact standoff at 30/60/120 Hz +PASS: actual aircraft-removal notification guards owner/server/active/stop and schedules one full delay without replay extension +PASS: actual helicopter delay applies resolved Random values, preserves countdown on save failure, and leaves active flights running +PASS: hill prominence/elevation, actual road edges/heights/bends and server-only finite scout admission, pending stock, timeout and no replacements/refills +PASS: mortar duty scope excludes players, other crews, stopped/client/inactive states; only destruction releases an active assignment, while the gunner may approach the gun +PASS: random mode restrictions, full numeric ranges, independent calendar dates and strict daylight boundaries +PASS: actual killais eligibility includes the 1000m boundary, excludes players/retained bodies/dead/non-character entities and checks full 3D distance +PASS: actual generation scheduler bounds each tick, enforces deadline/candidate ceiling, validates fallback, commits only accepted positions, skips only dispensable sites, preserves required objectives/intel, and resets the next search budget +PASS: actual background activation waits an hour empty without consuming placement time; disconnect does not reset active budget +PASS: actual separation keeps randomized extraction within the escape boundary in both placement orders, including fallback +PASS: scenario validation admits randomized extraction definitions and rejects unsupported randomized site kinds +PASS: terrain placement samples world bounds, retains streaming candidates, bounds waits/work, rejects foreign fallbacks, preserves objectives/intel and validates completion +PASS: actual navigation readiness supports static meshes, yields only for loadable streaming tiles and refuses unreachable positions +PASS: automatic extraction samples the whole terrain immediately and retains geometry/navigation/flatness and fleet-space checks without airport bias +PASS: universal connector, embedded/standalone exports, multiple terrains, stable IDs, native nav configs, missing-nav visibility, path validation and overwrite protection +PASS: airfield detection accepts physical runways/towers and bounded authored markers, rejects unrelated props, water and out-of-world markers, and samples terrain height +PASS: configured airport parsing, bounded readiness, stale admission rejection and cleanup wiring +PASS: automatic default, explicit header/CLI opt-out, editor/authored-mode guards, optional airport override precedence and fresh-round saving guard +PASS: singleton identity guards, paired faction deserialization and client world-cleanup wiring +PASS: task/map/respawn getters survive delayed old destruction and preserve ordinary-mode behavior +PASS: replication hierarchy refuses absent/aliased nodes and establishes delivery dependencies idempotently +PASS: standalone old faction delegates collected once, with null/deleted owners ignored +PASS: actual terrain takeover startup skips mode-less/menu worlds, always forwards super, retains eligible/unsupported/authored/client/editor semantics +PASS: native name callback preserves authored modes, opt-outs and failures; terrain suffix follows world changes, cached resolution and confirmed takeover text restores on cleanup without changing scenario identity or overwriting later edits +PASS: actual terrain parent traversal, Armenhof/Nogova names, Everon alias, missing-resource fallback, empty names and bounded cycles/depth +PASS: actual loading title/description hooks follow late takeover, apply text limits and empty updates, retain native progress and tolerate missing headers/widgets/game +PASS: saved terrain GUIDs, defaults, restart persistence, clearing, backup recovery, corrupt-file preservation, write failures, and client write denial +PASS: startup terrain capture protects client/editor/menu worlds, default behavior, same-map loads and reload-loop recovery +PASS: actual transition waits for native startup, disconnects without bans, requires an empty session, retains every loaded mod, bounds waiting and consumes requests once +PASS: actual faction resolution reserves explicit roles, samples without replacement, substitutes disabled selections, and rejects duplicate/unknown/missing choices and insufficient pools +PASS: Random all submits persistent random roles immediately; manual mixed choices, stale/unauthorized UI guards and debounce preserved +PASS: actual content policy gates parent packs, individual factions, faction identity and finite group rotation with vanilla fallback +PASS: actual delivered road eligibility, ahead projection without chords, reservations, stock road query bounds, terrain/water/obstruction refusal and clean outputs +PASS: actual delivered-task lineage, expiry, old-order retention, native commit, release, road precision expiry and duplicate delivery +PASS: actual original-roster local handoff,100m3D bound,busy carrier/budget exclusion,origin interruption including deletedsource,normal radio delivery and per-source replay history +PASS: actual visual intake retains source/time/position/id, rejects replay, prefers usable own route, excludes simultaneous callers and conservatively resets negative-sweep dwell +PASS: actual fixture local/radio gating, immutable source/time/position, interrupted-report exclusion and exact-owner cleanup +PASS: local-handoff runner refuses wrong project/round count/insufficient deadline before runtime work +PASS: actual fixture allocator terminal/unsubmitted guard, original-group lookup and both candidate gates +PASS: actual report-derived waypoint insertion/order and tighter positive radii; no formation navigation claim +PASS: actual Place/Stop waits native pose update, bounds four attempts, preserves original position, restores pending/settled placement and respects ownership/accepted-move quarantine +PASS: actual fixture current/original recipient ownership, unresolved transfer cleanup, exact-token release and idempotent Stop +PASS: actual fixture phased-cargo readiness, bounded callbacks, captured-stock mixed-caliber selection/continuation, reservation cleanup and component magazine counts +PASS: actual inventory-fixture setup uses ordinary prison unlock before constructing its convoy-waiting probe; failed unlock cannot run fixture +PASS: actual authored storage anchors, native trace flags, own-hierarchy exclusion, external wall/vehicle obstruction, range, unknown geometry and bounded context refusal +PASS: actual Compatible and bounded stock preflight before report/claim consumption, later compatible truck, launcher controls, convoy binding, finite identities, disjoint tokens, shared report replay/cooldown, original recipients and HQ cleanup +PASS: actual finite convoy supply pool; immutable slots, shared demand state, sparse/capped discovery and permanent shutdown +PASS: actual HQ rotates finite donors, skips unavailable/contacted trucks, uses delivered reports and dispatches at most one trip per planning cadence +PASS: actual original turret identity, native/canonical guards, scoped maximum-skill profile, reset, dismount/reboard, requested-skill preservation and restoration +PASS: bounded HQ startup/memory windows and outcome-specific full-route deadlines +PASS: explicit escape-route skips only administrator stress, preserving original full-fixture wait/failure paths +PASS: normal escape route keeps ordinary catalog and generated placement; historical selectors remain unchanged +PASS: actual patrol fixture leaves prison before responder HQ proof, followed by separate permanent-patrol observation +PASS: exact patrol-hq finite responder preparation and native search-radius receipt verification +PASS: actual read migrates old valid settings, preserves explicit disabled state, rejects invalid data; next-round feedback and fixed menu remain honest +PASS: actual automatic convoy timing/authority/admission/one-attempt/manual-task/stop policy; native deployment unproved +PASS: late authoritative failure reason refreshes open result; detach, mode change and success subscriptions preserved +infantry resupply actual rules, radio transitions, owned cleanup and unresolved-operation tests passed +PASS: actual resupply Roster preserves permanent release, original slot mapping and bounded ownership +PASS: actual designated zero/one original carrier selection, settled startup, shared finite claims, no refund after submission +PASS: actual HQ startup grant readiness forwarding is authoritative and fail-closed +PASS: actual finite PMN4 designated-zero/one entitlement, pinned original ownership, shared commit, physical custody, callback quarantine/deletion and no retry +PASS: actual bounded empty-return and finite delivery; phase-isolated callbacks, exact ownership proof, stop quarantine and original actor/vehicle boundaries +PASS: actual shared finite identity reservation; competing consumers, submission permanence, stale cleanup and96-item bound +PASS: actual carried-mounted swap, shared committed claim, physical slot reach, exact two-way proof, uncertainty and terminal cleanup +PASS: actual mounted pickup, exact finite ownership, pre-submission commit, physical custody, bounded callback and quarantine lifecycle; no native coverage claim +PASS: actual mounted courier admission, radio, individual orders, two-stage transfer, reboarding, token cleanup and quarantine lifecycle +PASS: actual scoped crew permit and native board completion/failure preserves foreign seats without teleport fallback +PASS: actual shared mounted stock/history ownership, atomic exact HQ pair claim, and bounded stopped-owner proof polling +PASS: actual carried/mounted early ammunition policy and status-first shared uplink; complete threshold, phases, cooldown, failures requested check-ins and non-urgent detached carried-mine status +PASS: actual group radio startup preservation, finite native grants, callback quarantine, frozen selection/actor ownership and bounded observation +PASS: actual maintenance native-stock check rejects missing/duplicate/wrong-identity/unowned/depleted/malformed stock and is read-only; native runtime not executed +.................. +---------------------------------------------------------------------- +Ran 18 tests in 0.300s + +OK +PASS: actual radio node rejects current incapacitation, death, ownership and faction changes despite cached inventory; one-second capability refresh remains explicit +PASS: Southern finite maintenance stock preserves weapons/clues and optional transport, historical Western fixture stays separate; native capacity/consumption untested +PASS: optional transport deferred behind required readiness, bounded once-only spawn/omission, isolated cleanup, occupied-candidate retention and required-default preservation +PASS: actual diagnostic fallback runs only on failed missing-context call, derives unique native pilot door, preserves stock eligibility and restores prior index on success/failure; diagnostics mutate no game state. +PASS: actual native-prelude cleanup restores only original changed damage, refuses stale/incapacitated/aboard teleport; bounded five-seat/four-door fixture wiring checked. Native execution remains pending. +PASS: actual CreateTransport requires successful scoped Configure after handbrake, preserves ordinary vehicles, tracks spawned entity before failures and never treats failed lock registration as ready. +PASS: actual preparation Configure guards/idempotence/breach preservation, security eligibility/final current-body server mutation and all scoped action guards; all five seat/four door resource overrides. Native hold, prefab merge, replication and boarding remain unverified. +PASS: production vehicle alarm single trigger/replica completion/no replay, fixed deadline/readiness wait, failed audio, dedicated server, moving exact handle, destruction/native end/deletion/clock and mission teardown. Native sound and multiplayer delivery require engine qualification. +PASS: production alarm emitter/receiver original time/location, explicit native queue only, 32-entry cap, 50m local witness eligibility, bound perception, native-super preservation; actual engine broadcast/hearing remains unverified. +PASS: actual optional candidate barrier, exact callback/custody proof and unchanged mine/primary snapshots; no native transfer claim +Native finite mine-stock runner: parser, scope, exclusions and command pass +PASS: actual bounded native mounted proof/detached payload/deadline/cleanup methods, production-only setup and isolated runner selector +PASS: actual one-existing-convoy candidate readiness, sender-root identity, incomplete cargo refusal and fixed three-candidate bound +PASS: actual BMP capture requires complete armed exact original resource; pinned delivery/slot checks and isolated CLI flag +PASS: actual opt-in pre-unlock isolation refuses wrong mode/phase/flag and existing hunters; no baseline service changes +PASS: actual once-only native dry query, exact before/after slots, native refusal, shutdown; shared bounded discovery and distinct opt-in verdict +PASS: actual completion selector and pre-cleanup variant capture preserve separate radio and eligibility verdicts +PASS: actual cargo diagnostic stages separate absent/foreign magazines, used/empty/invalid rounds, well mismatch and exact truck storage/attachment without mutation +PASS: actual native courier witness rejects missing radio/custody/swap/reboard evidence; CLI opt-in bounded; native success remains unqualified +PASS: actual courier constructor/Tick waits for preparation, returns before physical checks, preserves fixed deadline and sticky stop/failure; Enfusion startup awaits native verification +PASS: actual arranged native alarm fixture deadline, single emit, natural-route observation, original timestamp/area/detail assertions, natural observer proximity/activation wait, failure cleanup and independent canonical-body restoration; native delivery itself remains unqualified. +PASS: actual convoy cover observation/snapshot/uplink/HOLD/RESUME/cleanup transitions; native boundaries mocked, non-convoy runner opt-in refused +Enemy optics actual-service ownership, preservation, callback, deadline and bounded-inspection policies passed +PASS: actual delivered cover freshness/lineage/replay and canonical executor; owned waypoint-only hold, one resume at preserved route index, invalid ownership/crew/ledger refusal and fail-closed native recreation +PASS: actual Stinger show/set/help state precise actor-roll effects; read-only help, bounded values, malformed syntax and failed-save preservation; no rerolls/gameplay edits and no native persistence claim +PASS: new/retasked search and radio delivery ammo gates; active tasks and delivered release preserved +HQ convoy delivered-report planning and downlink regressions passed +PASS: actual own-inventory ammo inspection deduplicates loaded/carried/shared wells, separates chambers/launchers, freezes scalar snapshots and treats unsupported/capped/foreign inventory as unknown +PASS: actual carried PMN4 inventory, original-owner guards, bounded deduplication, independent unknown state and detached counts +PASS: actual mounted hierarchy sampling, ownership exclusion, deduplication, completeness/caps, quarter threshold and detached validation; no runtime policy or ammunition mutation +PASS: WORKBENCH opt-in diagnostics distinguish cycles/cap/storage/manager/mount failures without repeated native traversal +PASS: actual HQ original convoy-root admission rejects wrong force/server/group and never supplies replacement lookup +PASS: production mounted structural seat scan ignores >128 carried/cargo descendants, shares exact native mount/magazine ownership, preserves attachment seats and exact occupants, rejects unknown/cyclic/oversize structures; native binding still requires qualification. +PASS: native body fixture uses existing immutable actors, real production LOS/queued uplink, pre-delivery isolation, actual status overlap, bounded cleanup and no fabricated reports/spawns +PASS: actual native fixture lookup selects exact BODY kind/identity/message from bounded evaluations, never sighting-only Get +PASS: actual ammo snapshot comparison checks every scalar/category flag; native probe requires real roster rescan, loaded-round lower bound and separate immutable pending/Watch objects +PASS: actual delivered slot-union bodies preserve overlap/disjoint evidence, replay idempotence, status subset integrity, full-wipe closure and formation-local bounds +test_review_added_allowed_media_invalidates_snapshot (__main__.ReviewTests.test_review_added_allowed_media_invalidates_snapshot) ... ok +test_review_added_source_directory_rejected (__main__.ReviewTests.test_review_added_source_directory_rejected) ... ok +test_review_loose_root_resource_and_symlink_rejected (__main__.ReviewTests.test_review_loose_root_resource_and_symlink_rejected) ... ok +test_review_metadata_media_and_sidecars_remain_allowed_and_bound (__main__.ReviewTests.test_review_metadata_media_and_sidecars_remain_allowed_and_bound) ... ok +test_review_missing_link_rejected (__main__.ReviewTests.test_review_missing_link_rejected) ... ok +test_review_package_guard_sees_new_scripts (__main__.ReviewTests.test_review_package_guard_sees_new_scripts) ... ok +test_review_retargeted_private_link_rejected (__main__.ReviewTests.test_review_retargeted_private_link_rejected) ... ok + +---------------------------------------------------------------------- +Ran 7 tests in 0.069s + +OK +PASS: actual report methods reproduce old starvation; status-first scheduler delivers check-ins and requires 30s without combat or actual visible contacts before negative reports +PASS: actual actor group lookup retains controlled character membership when seated/inherited vehicle agents differ; missing control or parent refuses +................. +---------------------------------------------------------------------- +Ran 17 tests in 6.504s + +OK +PASS: actual convoy motion thresholds, native-only proof boundaries, physical cargo/crew ownership and pre-launch runner restrictions +PASS: actual new measured ClearFootprint 25/441 sample grids, measured extents/height, water/invalid world/terrain/trace refusal plus legacy filled rotated-footprint TraceBox and nine terrain/water samples; broad tree/cable bounds alone accepted, actual collision/nonfinite trace refused, nonzero sweep and ENTS/OCEAN flags, bounded diagnostic query and reset +PASS: actual road interpolation/projection/orientation, six35m starts,200m forward tail, preserved bends, short/far/degenerate/nonfinite/overdense/hairpin refusal and deterministic candidate ties +PASS: actual authenticated convoy dispatch, active/ready admission gates, canonical receipt, safe unconsumed preflight retry, pool refusal, retained partial failure and consumed no-retry +PASS: actual native readiness exact membership, one-time per-vehicle ledger admission/reservation, partial readiness retry without duplicate records and one-pass56-item cargo allocation without replenishment +PASS: actual per-vehicle readiness reasons, native agent/activity counts, intended-seat diagnostics, five-second throttle and read-only observation +PASS: actual convoy dispatch validates before receipt consumption, consumes once before native mutation, retains all10 partial-failure paths, accepts the selected non-USSR enemy, and allocates exact10 bodies without capacity shrinking +PASS: own memberless prefab disables automatic spawn before initialization; actual admission rejects populated, immediate or authored-slot templates before finite crew creation +PASS: actual native seated-group arrival outside35m, native waypoint removal, idempotent advance, and convoy waypoint idempotence/arrival/deadline, missing/dead/captured/reparented crew refusal, failed native waypoint release, original vehicle/member preservation and no replacement +PASS: actual convoy/team Release retains original active survivors and HQ identity, rejects takeover/terminal/unknown roster, preserves exact logistics quarantine and normal eligibility +PASS: actual convoy receipt identity/one-use, shared60-body and128-formation caps, outstanding/native-ledger accounting, exact10-body composition, source reuse, mode/client guards and no consumed receipt refunds +PASS: actual supply route cycling/arrival/stops, finite startup bounds, contact freshness, dismount hold, quiet interval, interrupted boarding, timeout and lost-truck release +PASS: moving-convoy perception boundaries and scoped individual/group abandonment priorities +PASS: actual supply startup reasons expose unchanged body budget/requirement, journal only failure changes, preserve retry cadence/caps and report the true final refusal +PASS: actual combat start releases only exact intercept claims before owning route/orders; foreign claim defers combat takeover +PASS: actual StartOne plus actual pool preserve unconsumed receipt retry, reject consumed replay, skip impossible new-budget surveys, retain equality, retry caps and journal dedup; no FPS claim +PASS: actual admission seeds use exact installed loaded prefab, reject replacement/foreign/projectile paths and preserve bounded immutable identity +PASS: actual primary-before-mounted one-shot batch, shared96/128 caps, physical snapshot headroom, original ownership, callback refusal and admission pinning +PASS: actual bounded HQ query validates only existing original binding without admission or replacement lookup +PASS: exact optional PMN4 startup, primary callback independence, original owner,128 capacity/callback limits, terminal no-retry and callback-proven freeze +PASS: production convoy spacing, physical arrival, stable follower targets, supply ownership, leader promotion and bounded stuck recovery +PASS: convoy combat keeps native manoeuvres for unchanged contacts and refreshes when contact moves +PASS: native convoy proof excludes pre-departure movement and ends via explicit fixture reset, not prohibited player death +PASS: boarding retries only after approach/seat progress stops, capped at three, with delayed native reissue and completed-team preservation +PASS: slow only owned vehicles near fit dismounted infantry; ignore passengers, casualties and released teams/vehicles +PASS: restore missing native driving registration only for healthy owned seated crews; preserve existing association and refuse invalid/released vehicles +PASS: actual convoy support preserves visual cover and ongoing approach, retries masked arrived positions, withholds unsafe moves and preserves ammo withdrawal +PASS: production support geometry rejects occupied, disallowed, blocked and too-close positions; only explicit intermediate approaches waive the firing-lane requirement +PASS: actual body observer enforces owned physical roster, local death-only candidates, native trace gating, budget/cadence/caps, immutable body-only snapshots, radio retries and confirmed suppression +PASS: own initial roster, explicit retained corpse evidence, unconscious/missing/ref transfer guards, fixed strength, no replacement adoption, detached samples, surviving radio sender, immutable convoy root/ledger, mounted capture release and lost-root unknown +PASS: delivered-only status snapshots, two missed check-ins/reply deadline, last reported coordinates, episode/replay guards, confirmed-loss idempotence, detached/validated mounted payload replacement 256-record cap and detached carried-mine radio delivery/chronology +PASS: actual failed-retask deadline rollback plus assignment cancellation/release preserves radio ownership, native waypoint lifecycle and failed-order retry boundaries +PASS: actual force ledger, finite casualties/identity/cap, routes/arrival/elevation/overshoot, server and physical guards, staggered 256-record simulated hour without world queries +PASS: actual equipment coordinator registration dedupe, startup delay, five member scans, finite component retries, unregister/stop terminal behavior and 256-group bound +PASS: actual percentage selection, native/preferred launcher preservation, failure/removal fallback, pending-operation quarantine, capture, finite two-mine grants and no replenishment +PASS: automatic inventory one-shot roll, exact item ownership, finite compatible ammo, rejection, capture/stop, deletion, loot and late callback quarantine +PASS: enabled/valid catalog eligibility, category restrictions, content filtering, GUID deduplication across factions and bounded catalogs and exact weighted ticket boundaries (100:1, zero excluded) +PASS: actual engineer native group-envelope admission and phase cancellation, preparation/deadline, original custody/identity, once-only callback removal, cancellation quarantine, withdrawal/clearance, native refusal and owned-action cleanup; native execution untested +PASS: actual mine selector respects road and settlement flank safety; native boundaries doubled +PASS: actual HQ and post ledger: second delivered post, one query/tick,2 active/32 jobs,4 consumed lifetime attempts, no-stock/query refusal consumption, pending old job and original identity constraints +PASS: actual mine post ledger immutable history, strict chronology/evidence, aliases, >160m separation, detached sites and finite4/32 consumed attempts +PASS: actual objective heading/threat/approach rules, persistent doctrine weight, fresh-contact coverage invalidation, stale-sweep rejection and atomic radio retask ownership +PASS: actual bounded delivered-negative coverage, replay/freshness/expiry/invalid guards, oldest eviction, small-circle and nearest-unswept selection, reserved-cell exclusion and cleanup +PASS: actual five/six bounded hypotheses, observation-relative ETA, future lead, hiding/reverse, local negative weighting, immutable report lineage, road bends/heights and finite cache budgets +PASS: actual10/40m local negative patches, same-cell hidden-ground preservation, proportional residual belief, replay, chronology, physical-report guards, caps and cleanup +PASS: actual operation selection/replay, pending reservations, detached reports, identity/sequence/time gates, terminal lifecycle, bounded ledger, finite roles, no shadow mutation or hidden-player inputs +PASS: actual squad judgment, stable caution, delivered casualty/contact/ammo trends, isolation, replay/time validation, recovery hysteresis, no invented healing or enemy knowledge +PASS: actual terrain survey chooses usable cover/concealment, preserves search and bound envelopes, honours finite support, delivered evidence, ownership, async tiles and shared geometry budget +PASS: actual-action speech, finite current cover, local search wording, silence after replacement/transfer/stale queue, stable cooldown and optional direct speech +PASS: actual hunter reservation ledger, pending/delivered replacement, independent six/eight caps, stale/empty status, finite observation deadline, no hidden force-position lookup +PASS: actual coordinated adapter report gates, local evidence, delivered-force snapshots, ownership/lease checks, continuous-contact arbitration, legacy isolation and shadow no-native-order boundary +PASS: actual execution lifecycle, original physical arrivals, failed movement, quiet footprint, local support expiry and delivered report acknowledgments +PASS: native support wiring requires own activity, soldier suppression, actual projectile event and immutable roster; no waypoint-completion arrival shortcut +PASS: actual finite native LOD leases restore prior overrides and protect transferred agents, player ownership and intervening overrides +PASS: actual waypoint pause/resume owns only its finite order, preserves unrelated routes and cannot resurrect a superseded or deleted hold +PASS: installed native priorities authorize group suppression71 over ordinary combat70, below native healing80; tagged soldier suppression91 yields ammo100, retreat110, medics111 and immediate danger (action SHA256=dbc652e6885f5d52d9dcdd465f74a7f8eb742eeb7f3a47d38fd11bb8b93ed1d8) +PASS: actual suppression and projectile methods retain a fixed eight-second last-seen area, deny blind support, require exact owned behavior, preserve finite ammo/shot budgets and bound retries +............. +---------------------------------------------------------------------- +Ran 13 tests in 0.783s + +OK +PASS: actual coordinated runner admission and explicit blocked-only engine flag; no native launch +PASS: actual HQ active/pending reservations, interruption, committed replacement, bounded coverage and unchanged force counts +PASS: actual bounded pursuit roles/objectives/scores, stale search degradation, physical/busy/home guards, finite lifetime and two-bearing escape gap; no hidden player reads or spawning +PASS: actual finite45..110 radius and both ordinary search queue snapshot expressions +PASS: actual HQ memory rules/service preserve delivered snapshots, chronology, replay bounds, decay, motion limits, identity and negative-search revisions +........... +---------------------------------------------------------------------- +Ran 11 tests in 0.301s + +OK +PASS: actual session Tick + journal router delivers each grant completion and new HQ line once, without repeats on empty/unavailable feeds or unauthorized ticks +..... +---------------------------------------------------------------------- +Ran 5 tests in 0.697s + +OK +PASS: actual current-controller/admin/mode authorization, per-round anti-replay, token-rotation refusal, command/snapshot throttles and client scope; owner-only replies and player-tool cleanup wiring +PASS: mission provider registration is idempotent, optional dispatch is ordered, status aggregates, journals preserve cursors, aliases stay with their addons and topic help is bounded +PASS: actual menu command routing covers all menu settings, rejects unsupported keys, gates companions, and matches unique authored widgets +PASS: explicit weapon retention buttons use the same ready/authorized server command path +PASS: restart toggle submits authorized settings commands; Mission controls fit without overlap +PASS: item editor, preset controls and dynamic item-row layout are structurally valid +PASS: selected choices remain green/red and fully visible when disabled; unselected choices return to neutral +PASS: probability editor and weighted item-row layout have all bound controls +PASS: panel fits narrow/large-DPI viewports, restores requested size, avoids repeated writes and preserves user DPI +PASS: catalog requests use authenticated sessions, independent admin page selections, loaded-mod allowlisting, bounded pages and allowlisted item mutations +PASS: whole-catalog multiword/case-insensitive search, name/path matching, enabled/disabled filters and large result sets +PASS: actual item rules, shared-source conflicts, missing/returning mods, bulk reset, independent named presets, bounds, malformed data and failed-save state preservation +PASS: actual summaries preserve queued/delivered meaning, clear counts and IDs; raw records, legacy display, cursor gaps and RPC limits remain intact +PASS: actual admin body authorization, god restoration, vanilla item deposit, callback completion/failure, timeout quarantine and stop/revocation paths +PASS: same-body revoke/regrant preserves pending insertions and timeout quarantine; new-body binding isolates late callbacks and never inherits god mode +PASS: actual Intel commands distinguish status/start/failure, preserve authorization gate and reject malformed requests; spent ledger is idempotent, server-only and bounded +PASS: actual reroll snapshot, authority, cancellation, ownership, accepted operations, quarantine, bounded work and stop methods; no native runtime claim +PASS: production Intel feedback coalescing, rough secrecy, rate limit, bounded dedupe, local/remote delivery and round cleanup; native UI/RPC not exercised +PASS: actual per-squad bounded report selector rotates visible targets, survives ordering/turnover, records only queued attempts, and preserves radio intake ordering +PASS: actual action denial/clearing, server request failure, single submitted-result feedback, current rescuer identity and terminal/stop suppression; native UI/RPC pending +PASS: actual physical denial precedence and transport-seat occupancy/reservation/access/lock checks +PASS: actual initial admission exhaustion and ServerTick grace; new/pending/empty/controller/life guards, normal death preserved +...................... +---------------------------------------------------------------------- +Ran 22 tests in 0.256s + +OK +...................... +---------------------------------------------------------------------- +Ran 22 tests in 25.378s + +OK +.................. +---------------------------------------------------------------------- +Ran 18 tests in 2.884s + +OK +......... +---------------------------------------------------------------------- +Ran 9 tests in 2.283s + +OK +............... +---------------------------------------------------------------------- +Ran 15 tests in 1.034s + +OK +PASS: actual field result/braking observer and Chat dispatch rules; one finite fixed candidate, deferred callback failure and guarded cleanup; no native measurement +PASS: actual opt-in terrain audit records one fixed1681-point grid, preserves original survey refusal/success and exact no-allocation scope; malformed heights stop without retry; no native data acquired +.... +---------------------------------------------------------------------- +Ran 4 tests in 0.628s + +OK +PASS: actual field PI/ramp/vector caps, antiwindup, braking hypothesis, immutable admission limits and segment bounds; no native physics tested +PASS: actual100m whole-field survey sampling/4096cap, rotated coverage, all-node terrain and native trace refusal; original certificate lineage retained; no native qualification +PASS: actual QualifyField preserves original identity/footprint/time, orders complete surveys before issuance, and refuses failed stages/moved body/expired or changed world; native boundaries faked +PASS: WORKBENCH first-refusal diagnostics preserve ordinary predicates, query order/count/budget and opt-in scope; no native logging run +PASS: actual field startup delegation, immutable lease/target, braking/settling/cancel transitions, early abort, callback scope, physical terminal policy and shared landing demand; native boundaries faked +PASS: actual inherited airborne pre-CLIMB cancellation enables verified native autohover once, refuses failed enable and never writes after capture +PASS: actual Core maintenance/default/tick/stop methods; empty/populated authority, terminal reentry, no tactical resume or new scheduler; native boundaries substituted +PASS: actual finite registration, unique claims/tokens, retention/cancel/stop, readiness gating, capture/expiry retirement and bounded cross-kind order history and typed field/route construction; native boundaries faked +PASS: actual WORKBENCH route observer returns exact retained route subtype and refuses absent/field controllers +..... +---------------------------------------------------------------------- +Ran 5 tests in 0.616s + +OK +...................... +---------------------------------------------------------------------- +Ran 22 tests in 0.174s + +OK +................ +---------------------------------------------------------------------- +Ran 16 tests in 10.034s + +OK +...... +---------------------------------------------------------------------- +Ran 6 tests in 0.018s + +OK +PASS: actual production bridge lookup, lease/world/mode/seat/capture guards, no allocation, native super ordering and read-only fixture hooks +............... +---------------------------------------------------------------------- +Ran 15 tests in 0.051s + +OK +............. +---------------------------------------------------------------------- +Ran 13 tests in 4.710s + +OK +PASS: actual route gain/caps/braking, callback selection, old landing/cancellation control and matching read-only telemetry +.............................. +---------------------------------------------------------------------- +Ran 30 tests in 0.387s + +OK +.............. +---------------------------------------------------------------------- +Ran 14 tests in 0.224s + +OK +......... +---------------------------------------------------------------------- +Ran 9 tests in 0.099s + +OK +PASS: actual gate observer binds native registered action/context and current life, reads accumulated progress, refuses stale bindings and never revives outside original bounds +PASS: actual read-only look observer methods enforce explicit scope, pinned native camera/body/identity, normalized pose, terminal cancellation and original sample/time bounds +........... +---------------------------------------------------------------------- +Ran 11 tests in 0.064s + +OK +....................... +---------------------------------------------------------------------- +Ran 23 tests in 0.030s + +OK +PASS: actual initial WAITING task/guide copy, configured duration, unchanged interruption and rounded progress; native task assertion pending +........ +---------------------------------------------------------------------- +Ran 8 tests in 0.014s + +OK +PASS: actual inventory adapter scope, grid placement, sole compatible host, refresh reuse, rollback, foreign hierarchy refusal and exactly-once native delegation; native compatibility pending +................................................................................. +---------------------------------------------------------------------- +Ran 81 tests in 0.520s + +OK +...... +---------------------------------------------------------------------- +Ran 6 tests in 0.076s + +OK +................. +---------------------------------------------------------------------- +Ran 17 tests in 0.004s + +OK +........... +---------------------------------------------------------------------- +Ran 11 tests in 0.088s + +OK +......... +---------------------------------------------------------------------- +Ran 9 tests in 0.322s + +OK +PASS: actual observer nonce, admission pins, baseline/menu sequencing, snapshots, bounded clocks/samples, cleanup and one-attempt latch; native untested +PASS: actual corridor caps/height/hold and whole-rectangle survey bounds, terrain refusal, native trace refusal and exact certificate lineage; native route unqualified +PASS: actual route entry, fixed corridor/target, hover hold, cancellation landing freeze, shared lease/capture/deadline gate and unchanged native startup/tick sequence +PASS: finite opt-in route fixture, original native input order, meaningful physical-arrival evidence and guarded cleanup; no native launch +PASS: actual Chat route step result dispatch and scoped completion/cleanup wiring; six real early-parser refusal paths leave no prefix/profile output +PASS: actual retained-service fixture entry, immutable controller/token/deadline/count bindings, observer getter and cleanup ownership ordering; native route validation pending +PASS: actual measured cancellation gate, one-shot retained service Stop, no premature drain, immutable lease, fresh real controller readback and separate physical cancellation result policy +PASS: actual rough-intel objective selection, exact precedence, source grid dimensions and unchanged other-phase dispatch; native UI pending +................................. +---------------------------------------------------------------------- +Ran 33 tests in 0.116s + +OK +............... +---------------------------------------------------------------------- +Ran 15 tests in 0.035s + +OK +PASS: actual preparation status scope, persistent updates, spinner restoration, placeholder replacement/deletion/destruction, native observation persistence/timeout; rendering remains native-pending +PASS: replaced respawn system receives frame updates, disabled updater wakes, stale/non-Escape binding refused; terminal and stale preload leases release black overlay +PASS: actual guide ownership and scoped timer cancellation, current-controller preservation/reacquisition, hint retry/dedup and observer boundaries; native UI not exercised +PASS: actual native-end shutdown, existing terminal snapshots, reentrancy, unchanged native end data and stale preparation guards +.... +---------------------------------------------------------------------- +Ran 4 tests in 1.288s + +OK +PASS: actual three-state result wording and UI refresh; stale winner IDs never manufacture escape +........... +---------------------------------------------------------------------- +Ran 11 tests in 0.105s + +OK +PASS: actual immutable target, bounded autohover demand, drift refusal, five-second hold and unchanged qualification/deadline +PASS: actual admission attempt budget bounds blocked/missing prerequisites; preparation, spent life and async pending remain protected +PASS: delayed admission retry retains controller ownership across same-account recycled connection IDs +PASS: actual scene deadline overrides delayed native preload only for rejection; late completion cannot assign, ordinary verified admission preserved +PASS: actual action permission matrix unchanged; useful phase/intel/consciousness denials, stale reason cleared, native door denial preserved; no native UI claim +..... +---------------------------------------------------------------------- +Ran 5 tests in 0.203s + +OK +PASS: actual aircraft cancellation/stage rules, ground-only completion, expiry/capture faults, input ownership and no physical shortcuts +PASS: actual exact-instance single-use qualification, native-clock staleness/movement refusal, footprint bounds and ownership-safe ground/fault cleanup +PASS: actual optional screenshot helper flag/identity/world/life revalidation, one queued attempt, delayed capture and mission/world cleanup; no native image/presentation claim +PASS: actual yard diagnostic exact registered prison ownership, eight native-bound corner projections, no root-sibling escape, bounded duplicate/deep/wide hierarchy traversal; native projection/mask still unmeasured +PASS: actual CurrentActor, SpawnPosition and observer-selection methods reject pending/unregistered/replaced/recycled/foreign bodies; canonical live selection and roster-corpse cycling, unconscious following and prison/geometry fallback preserved; native boundaries adapted +PASS: actual native-map fixture ownership, cleanup and callback evidence fail closed; native execution remains separate +PASS: actual shared-map callbacks bind exact map/config/root, preserve replacement UI/camera, defer focus, and remove only owned delayed work +PASS: actual Intel/HQ methods and one-shot qualified readiness handoff deliver late actors once; duplicate readiness, accepted spawn, pickup/drop, death and original negative rolls do not mint assignments +PASS: Workbench-only read accessor rejects unknown/nonserver identities; Chat observes all distinct ready crew before existing shell-depletion mutation +PASS: actual native-event latch survives deselection, requires exact activity/order, detaches before cleanup, preserves failure/timeout and never infers completion from physical shot count +......... +---------------------------------------------------------------------- +Ran 9 tests in 0.108s + +OK +PASS: actual refresh-fixture gates pin immutable observations/actual downlinks/original activity, reject unaccepted or relabelled commits, stop queueing early and require all queued contacts claimed before replay +.......................... +---------------------------------------------------------------------- +Ran 26 tests in 0.198s + +OK +PASS: actual refresh scheduler/delivery/cancellation/projectile methods reject interrupted or replayed reports, retain committed ownership, preserve immutable snapshots/aim geometry and isolate stopped or replaced orders; native radio/crew behavior remains separate +..................... +---------------------------------------------------------------------- +Ran 21 tests in 0.036s + +OK +........... +---------------------------------------------------------------------- +Ran 11 tests in 0.036s + +OK +PASS: actual full-salvo gates require eight fresh committed physical launches, natural closure and exact finite inventory; reject partial/extra/replayed events +PASS: actual reason/availability guidance and refresh matrix; no-target copy omits cycling, hint retry retained, existing command/admin paths unchanged; native UI pending +PASS: actual client camera policy closes immediately on healing or mission end; late unconscious metadata cannot keep the view active +PASS: actual open-chat capture/context renewal and camera/menu priority, text-entry isolation, held-key release; actual revival camera handoff with editor close/retry, missing camera, replacement body and stopped round +................usage: test_native_package.py [-h] [--project {core}] --session SESSION + --compat COMPAT [--steam STEAM] + [--timeout TIMEOUT] + [--external-addons EXTERNAL_ADDONS] + [--silent-workbench | --exit-after-init] + [--continue-on-failure] +test_native_package.py: error: argument --exit-after-init: not allowed with argument --silent-workbench +................................ +---------------------------------------------------------------------- +Ran 48 tests in 21.976s + +OK +....... +---------------------------------------------------------------------- +Ran 7 tests in 0.243s + +OK +.................. +---------------------------------------------------------------------- +Ran 18 tests in 5.914s + +OK +.... +---------------------------------------------------------------------- +Ran 4 tests in 0.314s + +OK +.... +---------------------------------------------------------------------- +Ran 4 tests in 0.061s + +OK +PASS: actual finite-courier age, token, exact ownership/callback and delivered-status admission reject stale, replayed, captured, canceled and ambiguous work +PASS: actual native-gun ownership gate rejects player/foreign/replaced/dead occupant, faction change, missing seat and missing registry +PASS: four-battery courier selection preserves pending trip/report/transfer identity, skips unavailable crews, and selects the next depleted battery without new stock +PASS: 64 bounded distinct storage candidates; native gates, five-store barrier and finite-stock ownership retained; native placement pending +PASS: 128 coarse+80 local refinement+169 airport grid candidates retain all native clearance gates; real terrain untested +PASS: actual prison registration/crossing policies reject missing/duplicate/destroyed initial gate, incomplete ownership/scan, outside-only body, jumps and stale samples; physical exit independent of later gate damage +PASS: actual prison door execution blocks direct AI/UI bypass while locked and delegates unchanged native action once after unlock and permission approval +.................. +---------------------------------------------------------------------- +Ran 18 tests in 1.876s + +OK +..... +---------------------------------------------------------------------- +Ran 5 tests in 1.106s + +OK +PASS: native local-admission snapshot rejects changed life/key/body/participant/pending state; authentication is not simulated +PASS: actual mortar report ledger prevents duplicate response after cancellation, expiry and interleaved reports; native scheduler separate +......... +---------------------------------------------------------------------- +Ran 9 tests in 0.013s + +OK +.... +---------------------------------------------------------------------- +Ran 4 tests in 0.135s + +OK +PASS: actual aim renewal requires fresh same-report solve and original-command equivalence; native firing untested +......... +---------------------------------------------------------------------- +Ran 9 tests in 0.064s + +OK +PASS: actual startup/generation/ownership/timeout/callback policies and native-counter wait; integration preserves one-shot allocation and pending-crew cancellation +PASS: rapid mortar cycle counts eight physical rounds once and waits for native completion without a ninth aim or shell +PASS: actual probe binds native events to fresh immutable commits, permits delayed emission, rejects unrelated expiry closure and premature stop +PASS: actual noSplash Load body requires both explicit diagnostic and noSplash, preserves vanilla otherwise, and handles repeated Load/reload +PASS: actual fixture method permits one native resilience operation and restores either prior protection state, including failure paths +PASS: actual safe-exit boundary policy, native action/door selection, stop/cache cleanup, separate old mechanism and opt-in runner contracts +PASS: actual one-shot deadline/stability policies and preparation ownership, fuel, cleanup integration contracts +PASS: pending-only cancellation retires copied instance intent, preserves physical/control actors, and stops once +PASS: actual short-cast hit, upward support normal, no self support and no dynamic support +PASS: actual committed-ticket structure preserves reservation after death, rejects missing bodies/seats and ends at observation expiry +PASS: actual pending callback expires an empty-server reservation once, preserves its full lease, and cancels on completion/Stop +PASS: rescue lease expiry/reordering, fresh five-second settling, independent rescue ranges and grounded upright aircraft motion boundaries +PASS: requested guard population requires complete physical conscious membership before deadline +...................................... +---------------------------------------------------------------------- +Ran 38 tests in 0.018s + +OK +.......... +---------------------------------------------------------------------- +Ran 10 tests in 0.002s + +OK +..... +---------------------------------------------------------------------- +Ran 5 tests in 0.980s + +OK +PASS: authored radio/optional-site bounds and physical horizontal/vertical boundaries +... +---------------------------------------------------------------------- +Ran 3 tests in 0.001s + +OK +PASS: all phase transitions, terminal states, defence boundaries, stale/future observations, intel discovery +PASS: Core document-discovery alias, companion-only alias exclusion, strict integer parsing and setting boundaries +PASS: player admission phase/life/identity/controller matrix, preload displacement limits, pending reservation overlap and owner exclusion +PASS: actual gate and pre-inventory document guards reject noncanonical/faction/life/disconnect/server mismatches; canonical reconnect and unconscious carried intel preserved +PASS: WB-only native fault injection restores both body mutations before checks/returns and requires eligible held-document negative/positive proof; runtime pending +PASS: actual discovery coordinates disclose stable 500m cell center until identified, then exact point, including negative/boundary coordinates +PASS: hidden/anonymous/rough/identified markers, toggle transitions, prepared sites, no identity leakage, intel discovery and replicated authority wiring +PASS: actual local admission context/selection/latch, same-round late identity, replacement/mode failure, fresh round and untouched network path +PASS: prison search packs 16 unique 3m-spaced inside-wall centers, prioritizes inner/edge positions and never bypasses clearance +PASS: physical body occupancy rejects overlap, permits diagonal neighboring slots, and excludes own body and unrelated broad-phase bounds +PASS: recovery state excludes dead bodies, preserves reservations, requires controlled rescuers and distinguishes empty/all-dead teams +PASS: actual native-probe lifecycle/counters with doubled boundaries; fixed deadline, exact seven sources, true forwarding, async close, no late updates and selector wiring +PASS: actual one-argument adapter, explicit refresh, native initialization flag, duplicate/blood ownership, rebind/detach/destruction and foreign-mode transparency +PASS: authority-scoped slow recovery, bleeding pauses resilience, medicine unaffected, player-only lethal damage cap without healing +PASS: bleeding severity survives low health, retains armour, causes no knockout and restores the actual damage/blood-loss cap +PASS: viable passive recovery survives native delay; bleeding, disabled/full effects and low-blood resilience do not block defeat +PASS: actual combat injector admission/effect alignment; mild blood-only refusal, native threshold equality and all existing useful treatments preserved; engine consumption untested +PASS: every minute round-trips, malformed clocks rejected, defaults limited to added keys, progression bounds and day duration aligned +PASS: native settings policy matches calendar boundaries 1900-2050, date/profile parsing is strict, authored defaults preserve old worlds +PASS: view-distance bounds, default, save failures, command parsing, temporary ownership, server/platform limits and lifecycle wiring +..... +---------------------------------------------------------------------- +Ran 5 tests in 0.567s + +OK +. +---------------------------------------------------------------------- +Ran 1 test in 0.330s + +OK +PASS: radio authorization/discovery/phase matrix, exact distance limits, defender handover, interruption, empty samples, clock regression and duration boundary +PASS: actual radio feedback policy, initial wait, interruption persistence, resumption and terminal/new-round reset +............... +---------------------------------------------------------------------- +Ran 15 tests in 2.166s + +OK +.............................................. +---------------------------------------------------------------------- +Ran 46 tests in 0.895s + +OK +PASS: legacy values preserved, unsupported fields reported, invalid data rejected, existing files protected, runtime bounds aligned +PASS: failed initial settings promotion leaves defaults writable after restart; prior/fallback saves survive copy, readback and mismatch faults +PASS: real-carrier shortest-hop paths, 500m boundary, three-hop cap, no-manpack failure, three-second originating-call interruption, unchanged downlink hop timing, completed-hop survival, interrupted final uplink, radio loss, capture, motion, timeout, reset and network bounds +PASS: migrated aircraft availability policy (controller migration still pending) +PASS: migrated salvo offsets are deterministic, spread and bounded (native firing and complete salvo qualification are separate) +PASS: 48 prefabs have unique saved root entity IDs +PASS: 299 original script entries tracked across 18 unfinished responsibilities +PASS: 1 isolated addons, acyclic dependencies, 158 unique resources, exact vanilla/authorized external references +All repository checks passed. Native compilation and multiplayer tests are separate requirements. diff --git a/docs/evidence/content-menu-2026-11-06/runner.json b/docs/evidence/content-menu-2026-11-06/runner.json new file mode 100644 index 00000000..650c5e40 --- /dev/null +++ b/docs/evidence/content-menu-2026-11-06/runner.json @@ -0,0 +1,34 @@ +{ + "stopped_unix": 1793972409.1451256, + "console_sha256": "1f5aae3e9252385c708255fa5b400ecabfaaa6477d91993e1aa12ea178e6d3c0", + "end_source_sha256": "eda6a4af3dee957c03145fc726acd44e261bc0c998723e79578a83dcc885c852", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "c5cbdc3f-80c4-4f30-aa80-294ad74d9076", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "eda6a4af3dee957c03145fc726acd44e261bc0c998723e79578a83dcc885c852", + "external_addons_unchanged_after_run": true, + "external_addon_count": 7, + "external_addon_inputs": "external-addons-inputs.json", + "started_unix": 1793972316.640831, + "result": "smoke-completed", + "result_before_cleanup": "smoke-completed", + "cleanup_confirmed": true, + "cleanup_report": { + "cleanup_confirmed": true, + "idle_verified": true, + "errors": [], + "orphan_cleanup": { + "attempted": false, + "reason": "noncanonical-private-prefix" + } + }, + "runner_error": null, + "session": "/home/jakub/devel/escapistsrereintroduced/.local/content-menu/native9/logs/logs_2026-11-06_14-38-38", + "rounds_required": 1, + "project": "chat", + "display": "headless Gamescope 1920x1080/30Hz", + "dedicated_server": false, + "audio": "silent sink and per-test-stream mute" +} diff --git a/docs/evidence/content-menu-2026-11-06/source-comparison.json b/docs/evidence/content-menu-2026-11-06/source-comparison.json new file mode 100644 index 00000000..a6fe2b89 --- /dev/null +++ b/docs/evidence/content-menu-2026-11-06/source-comparison.json @@ -0,0 +1,22 @@ +{ + "matched_production_files": { + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "cac52cfb9f31ba42daed671e55bf5d55ea0840139deba5d13a0e156ec90559ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuPages.c": "fc07549ba14900998223e8c1a95f57ddb0f365d0d687ac4907b0d97ffe1612b8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c": "01d5620298efff575be3c1026ea7dad7e6feb41a96a3d5dc846af8d001e038ec", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c": "d9df3b2dd8fca119ecee466dc71d336b5a70ee7d5fced368cf34e250d22075de", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c": "6459e7ea7c10781efa30374470f36829ba214406cf6a461fcbcb432b6fc39522", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c": "2deded62be82adcf9866dacf8065f0c6a9a643bdd60a1c3e87990e1c70254c48", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c": "5e607807af07b92f62fef2743a9d1734df924bc43d6a67c1f3dc9fa412fc4615", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "2acdce016628a362dba311965c3417f7e42bf0edbad58ec129b986a3c1c08811", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c": "f0900e42100c9a58402cfdd48b7f27689144f53e03d3ae3dcd4bbebc13a5f61f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c": "7e7fabafe98bbf04f9dc306b1df331713244d4ed779d0daca51ead613f8b23e3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c": "0e080b4a0f2d419e886e5f0a68d9f99ab85250b3c2f9ec6636243cdd34cb2ed8", + "addons/core/UI/layouts/ERR/AdminMenu.layout": "1bb91d6913386635e523336964db7935be32b499ce87cb4c2a4d52d411aa0fa9", + "addons/core/UI/layouts/ERR/ContentRow.layout": "7bf19d12b1b5e2c165f8671e92ae9227b54b4d1e551de94fa67bd54d3a66fddb", + "addons/core/UI/layouts/ERR/ItemRow.layout": "3c7ae3acdf2fad0ba661a1152ea319392668d774adc09a2a8b61e9a0319db312", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehicleCatalog.c": "64f09e15be6acc9e7b44b5fce1107b6f6c34107efc526aab65159722e764161a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehiclesMenu.c": "11c6a1a14c46472819f9ff2e66ba0cd193797127822534b9d6c98cd095d481c1" + }, + "fixture_only": "ERR_ZZZContentReviewProbe.c", + "project_difference": "Rally dependency enabled in disposable addon.gproj" +} diff --git a/docs/evidence/content-menu-2026-11-06/vehicles.png b/docs/evidence/content-menu-2026-11-06/vehicles.png new file mode 100644 index 00000000..c4f28a5d Binary files /dev/null and b/docs/evidence/content-menu-2026-11-06/vehicles.png differ diff --git a/docs/evidence/rhs-retired-2026-11-06/README.md b/docs/evidence/rhs-retired-2026-11-06/README.md new file mode 100644 index 00000000..d84e19fe --- /dev/null +++ b/docs/evidence/rhs-retired-2026-11-06/README.md @@ -0,0 +1,25 @@ +# RHS 1.9 override retirement — 6 November 2026 + +Removed the generated CAS SetAuthor and destruction-tire script replacements +from the active addon. Updated RHS Status Quo and both content packs are +0.17.5281. Their dependency identities and required resource GUIDs were verified; +the external manifest now records those versions and project hashes. + +Native GameLib/Game/Workbench compilation and game-mode initialization passed +without either override. No script errors or VM exceptions were reported. The +small test fixture suppresses ordinary scenario startup; this is compilation / +initialization evidence, not a new gameplay or multiplayer qualification. +The hidden, muted private-prefix run completed and its owned-process cleanup and +source/external immutability checks passed. Existing external localization/DLC +resource errors still cause a nonzero overall runner exit; see native-result.log. + +The retired generator exits with a retirement message. Repository checks reject +either stale override; a temporary-directory check verified both refusal paths. +External dependency/resource tests (11) and development-source bundle tests (18) +passed; generated menu outputs are current. Both removed files are absent from +the immutable native source manifest. All production addon files match that run, +except the disposable project's additional Rally dependency. + +The separate Reaper/RHS character-slot workaround remains. Published Workshop +packages/listings have not been changed; retirement description text is prepared +locally. No Git push or Workshop upload was performed. diff --git a/docs/evidence/rhs-retired-2026-11-06/checks.log b/docs/evidence/rhs-retired-2026-11-06/checks.log new file mode 100644 index 00000000..bead81a3 --- /dev/null +++ b/docs/evidence/rhs-retired-2026-11-06/checks.log @@ -0,0 +1,11 @@ +........... +---------------------------------------------------------------------- +Ran 11 tests in 0.375s + +OK +.................. +---------------------------------------------------------------------- +Ran 18 tests in 7.137s + +OK +Menu layouts and palette are up to date. diff --git a/docs/evidence/rhs-retired-2026-11-06/external-addons-inputs.json b/docs/evidence/rhs-retired-2026-11-06/external-addons-inputs.json new file mode 100644 index 00000000..2a78326d --- /dev/null +++ b/docs/evidence/rhs-retired-2026-11-06/external-addons-inputs.json @@ -0,0 +1,851 @@ +{ + "1337C0DE5DABBEEF": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack01_1337C0DE5DABBEEF", + "title": "RHS: Status Quo - Content Pack 01", + "version": "0.17.5281", + "files": { + "ServerData.json": { + "stat": [ + 47, + 916830, + 236, + 1793966354242463962, + 1793966354242463962 + ], + "sha256": "cc4cc1b0d1d06fc4f1ced0117845930d8ed5291f63ca89577a47518018444706" + }, + "addon.gproj": { + "stat": [ + 47, + 40147728, + 339, + 1793966331111982831, + 1793966354215463398 + ], + "sha256": "09baf9fff74b1a8aadb03786d6d9ebe7159ddf074f7d46b35123501325332d98" + }, + "addon.gproj_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147698, + 362, + 1793966311083569723, + 1793966311083569723 + ], + "sha256": "2155ab32d13dd234b511ae5a390c1a5a4377ee9f3bde8a011b7b474c7da9b855" + }, + "data.pak": { + "stat": [ + 47, + 40147713, + 1992950655, + 1793966345831288514, + 1793966354160462249 + ], + "sha256": "46e22e1f561de7435912a9263e06cce6d6f81bb82c0c1da92d5937758b35963f" + }, + "data.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147695, + 232639, + 1793966310556558900, + 1793966310556558900 + ], + "sha256": "1398f6275e2adb99ac13705a43071734105853f83ed427cff3f6a333a5f6907f" + }, + "data001.pak": { + "stat": [ + 47, + 40147722, + 1992538370, + 1793966346382299991, + 1793966354214463377 + ], + "sha256": "97314ce4854b3a35dc5cd181378af27281b2897586d59b1e5b108aff9a3c2eda" + }, + "data001.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147696, + 349868, + 1793966310769563274, + 1793966310769563274 + ], + "sha256": "9800ba8266e30b2a81e59b119b1261a7a3b441adcc211dff9c08dda704853e83" + }, + "data002.pak": { + "stat": [ + 47, + 40147707, + 1992467288, + 1793966346414300657, + 1793966353764453977 + ], + "sha256": "4aadf524b9144c4f2886edf3442db02f36cecc93913926f815755a5f7d307d0b" + }, + "data002.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147694, + 332026, + 1793966310371555100, + 1793966310371555100 + ], + "sha256": "9e33445c078f4dccd8ace6eb5a98e0ff04071c157b3182e1fcc315ee47c6ee0c" + }, + "data003.pak": { + "stat": [ + 47, + 40147725, + 364992473, + 1793966333186025798, + 1793966354215463398 + ], + "sha256": "e40e45672321aa36c0650bec960b7dd00ce55bdeff0fd27eb2ccfaa1c12070f5" + }, + "data003.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147697, + 96625, + 1793966310953567053, + 1793966310953567053 + ], + "sha256": "881f85eed91e415e78bf28caa43b77d0ccc0ca8b5b1c8b89831058c1088c9671" + }, + "meta": { + "stat": [ + 47, + 911092, + 8398, + 1793966354241463941, + 1793966354241463941 + ], + "sha256": "7bab7f27e0808955b9e5feecbf94febc8de11d6e12e56f60c1e17c68791aa3d2" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40147731, + 567493, + 1793966331188984425, + 1793966354215463398 + ], + "sha256": "29c053dcec2fd7f1e5187188f91eb1b652296e5d8a0f98a9ffd2bb48dcab374b" + }, + "resourceDatabase.rdb_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147699, + 368, + 1793966311208572292, + 1793966311208572292 + ], + "sha256": "a8fb8e19912a9450e68f702befa6d61320479bfce5b02faccea866b01b305ac4" + }, + "thumbnail.png": { + "stat": [ + 47, + 40147703, + 18180, + 1793966330833526806, + 1793966353682252124 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147692, + 366, + 1793966310025547994, + 1793966310025547994 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + }, + "595F2BF2F44836FB": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-StatusQuo_595F2BF2F44836FB", + "title": "RHS: Status Quo", + "version": "0.17.5281", + "files": { + "ServerData.json": { + "stat": [ + 47, + 910012, + 8466, + 1793966281368963106, + 1793966281368963106 + ], + "sha256": "7a507c69efaca22a8ee61dda96ac8a7e337e3ad2b4cabd5ae203bec43d9e44d6" + }, + "addon.gproj": { + "stat": [ + 47, + 40146987, + 1101, + 1793966269260853248, + 1793966281217205538 + ], + "sha256": "51fda0afde5ebcd4dc88c6c9451d960b67aceaee437f02f1cc80aef724e3779c" + }, + "addon.gproj_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146979, + 364, + 1793966268094694637, + 1793966268094694637 + ], + "sha256": "c67690023c7ecfda231509b46545febea451145a060277b8178c14ebaebb82b8" + }, + "data.pak": { + "stat": [ + 47, + 40146990, + 203659379, + 1793966280554946596, + 1793966281282961360 + ], + "sha256": "0aa031f2f9103e4663b99698a8712d2bb9a35601a0a8611e0acb2680cc2e46da" + }, + "data.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146980, + 1429277, + 1793966268286698509, + 1793966268286698509 + ], + "sha256": "50866475ea8bfb505b492852b22da7e082a1fa90171a7200d93067baabe14036" + }, + "meta": { + "stat": [ + 47, + 902077, + 17982, + 1793966281341962557, + 1793966281341962557 + ], + "sha256": "d062f6ede1b0ada0957339060074a87a119a67936e8f99f3422bdbb1f42fe28a" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146995, + 834332, + 1793966269484722676, + 1793966281284961401 + ], + "sha256": "32d8435e20292c6f6d8c3b48e3d76239ca84881bcbd4f1f9fe56bf2fc64b1c71" + }, + "resourceDatabase.rdb_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146982, + 368, + 1793966268409700990, + 1793966268409700990 + ], + "sha256": "fd95cde11bd5c9bf8840fd43d2a20e257fc03907ed778f20b923e9f5b6fb840d" + }, + "thumbnail.png": { + "stat": [ + 47, + 40147000, + 18180, + 1793966269260853248, + 1793966281284961401 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146983, + 366, + 1793966268537703572, + 1793966268537703572 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + }, + "5E389BB9F58B79A6": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/SpaceCore_5E389BB9F58B79A6", + "title": "WCS_SpaceCore", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 919166, + 273, + 1793966267029981947, + 1793966267029981947 + ], + "sha256": "758d38e13ee5254ed5c01c8f8d1b872af58481d0b839b55e5ee365ac96193691" + }, + "addon.gproj": { + "stat": [ + 47, + 40146953, + 2957, + 1793966266428418870, + 1793966267018672944 + ], + "sha256": "2db2e318e6f45bede0d1173d77af03314f888aedfb31bc767d569ccfb6e70a34" + }, + "addon.gproj_9.0.1_manifest.json": { + "stat": [ + 47, + 40146942, + 364, + 1793966266181656079, + 1793966266181656079 + ], + "sha256": "67d15a8e8623130546332c6d6433314cbdf38e034a66330b9c7a739a94731e21" + }, + "data.pak": { + "stat": [ + 47, + 40146950, + 25392420, + 1793966266923671030, + 1793966267018672944 + ], + "sha256": "d89a5253dbd6707176e7d515cea3e4701725c8197afb20aded18bb231aa6434f" + }, + "data.pak_9.0.1_manifest.json": { + "stat": [ + 47, + 40146941, + 32668, + 1793966266050653438, + 1793966266050653438 + ], + "sha256": "b4b9d9b1ca3534e5d09bed4ac8ce990a2f765f6386791e0241c3dd9a4bb7c308" + }, + "meta": { + "stat": [ + 47, + 918678, + 2510, + 1793966267027673125, + 1793966267027673125 + ], + "sha256": "203fd32b2a44e941808b0c621b5e885687262099d83c7b876c2e805c3ef6d313" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146956, + 22656, + 1793966266553663574, + 1793966267019672964 + ], + "sha256": "88b92c9ed25b3e2b0794a9d2ebd3449f616d2810f330a6330683eca7d533c769" + }, + "resourceDatabase.rdb_9.0.1_manifest.json": { + "stat": [ + 47, + 40146943, + 366, + 1793966266305658577, + 1793966266305658577 + ], + "sha256": "73614d689e2701b75bc009e9e4f4fd0a1c4b0df0061f4a299371cbb148c9f607" + }, + "thumbnail.png": { + "stat": [ + 47, + 40146947, + 689401, + 1793966266428661055, + 1793966267011366549 + ], + "sha256": "8da2e133303f21bb16a2abd25d5bd6c2a4a6f5eccedae74a98358db485a170d1" + }, + "thumbnail.png_9.0.1_manifest.json": { + "stat": [ + 47, + 40146940, + 368, + 1793966265925650920, + 1793966265925650920 + ], + "sha256": "5aaa5989b5f44b48ff03082a0d4004ae71420db6eebeb56282af7d98f36c7000" + } + } + }, + "5E524E4FEECCA92B": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/BMP-1IFV_5E524E4FEECCA92B", + "title": "WCS_BMP-1", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 918673, + 193, + 1793966264963885489, + 1793966264963885489 + ], + "sha256": "bf2d1bf174c0385e65fa28e5991b49f6b86ee6c1463ca5fec742fa5d5bb1264c" + }, + "addon.gproj": { + "stat": [ + 47, + 40146895, + 2900, + 1793966263344149147, + 1793966264913686889 + ], + "sha256": "ad44151140adf62e99eaa639984c2b9c400be17481e934186d61c307b5221259" + }, + "addon.gproj_9.0.1_manifest.json": { + "stat": [ + 47, + 40146888, + 364, + 1793966262546582905, + 1793966262546582905 + ], + "sha256": "3065c7c353cb7623ee85f83d462d4dac37c92efad1a0255f2661470e6cedfd0f" + }, + "data.pak": { + "stat": [ + 47, + 40146898, + 120212943, + 1793966264519622607, + 1793966264949631264 + ], + "sha256": "d9d23369b41d3bdcb1e4a98a03bf27b944e688459f773f2cd8ab8484d434b63c" + }, + "data.pak_9.0.1_manifest.json": { + "stat": [ + 47, + 40146889, + 32902, + 1793966262705586103, + 1793966262705586103 + ], + "sha256": "fddebd10d715fc1f2255aa0b6d72184ec9a1da5a725033923ac82d60772a095f" + }, + "gallery0_776x436.jpg": { + "stat": [ + 47, + 23106914, + 64588, + 1788720671481676966, + 1788720671481676966 + ], + "sha256": "63649f5239059dd12234250b8c8e313b14ca134e30e4309fbd1eb45f92e77097" + }, + "gallery1_776x436.jpg": { + "stat": [ + 47, + 23106915, + 47808, + 1788720671495639547, + 1788720671495639547 + ], + "sha256": "81f89b026a1bf341f8cd3bb19facd67e8d0f56073c924e026983836fee6bfb4c" + }, + "meta": { + "stat": [ + 47, + 918496, + 2928, + 1793966264961631505, + 1793966264961631505 + ], + "sha256": "552e3e90048cfa515be78f992371b5b4ef29f1266f9a91b76369ec5bc8d95a27" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146904, + 20362, + 1793966263427600628, + 1793966264951631303 + ], + "sha256": "f29ecdc46a023287f2be40a502e3f0117be5a9278ab0eef7a0ce4628d30692e5" + }, + "resourceDatabase.rdb_9.0.1_manifest.json": { + "stat": [ + 47, + 40146891, + 366, + 1793966262950591030, + 1793966262950591030 + ], + "sha256": "4619fe9c8439d518292e6c511fd2be970893eda93eeb8554089823ebd4abaae3" + }, + "thumbnail.png": { + "stat": [ + 47, + 40146901, + 708338, + 1793966263345598978, + 1793966264950631284 + ], + "sha256": "103a98bf476d510ab3081abb371170ae6cf65aea65b9095636d651170a5b0038" + }, + "thumbnail.png_9.0.1_manifest.json": { + "stat": [ + 47, + 40146890, + 368, + 1793966262825588516, + 1793966262825588516 + ], + "sha256": "5bf1e0f8794a4e2e862658a10071360df63ed6a440ee2ca5514afbc2e97e375e" + } + } + }, + "629B2BA37EFFD577": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/WCS_Armaments_629B2BA37EFFD577", + "title": "WCS_Armaments", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 920134, + 197, + 1793966262210522872, + 1793966262210522872 + ], + "sha256": "4f9a7b1c661f78832b570e3b050d05d643b531deb944336b99fc018028460b5d" + }, + "addon.gproj": { + "stat": [ + 47, + 40146643, + 2926, + 1793966255452440454, + 1793966262199575927 + ], + "sha256": "e6ffcf559a2e7898848349c090300ea8eca8cb2e13ecef456a108bcc82efc8b1" + }, + "addon.gproj_9.0.1_manifest.json": { + "stat": [ + 47, + 40146630, + 364, + 1793966254019411735, + 1793966254019411735 + ], + "sha256": "ba8f2b36575408f11b2107fc4b0f9449c9dc057629ebf894c7bdbc77f53cbc1f" + }, + "data.pak": { + "stat": [ + 47, + 40146634, + 442600639, + 1793966260630544384, + 1793966262197575885 + ], + "sha256": "26f63ca2134fb092a014e096664bea436720ec6af8d38788875bbb66417a8002" + }, + "data.pak_9.0.1_manifest.json": { + "stat": [ + 47, + 40146627, + 315478, + 1793966253656404464, + 1793966253656404464 + ], + "sha256": "c9f5b6bf65507836bb8243a83726f62eb53a190992f951da11e74919eb48dbab" + }, + "meta": { + "stat": [ + 47, + 919170, + 2601, + 1793966262208576106, + 1793966262208576106 + ], + "sha256": "8299678c3779dc13ea2a2d234407ea1ffae0d690398b45279261e8f68fef9a75" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146637, + 205606, + 1793966255643444284, + 1793966262198575906 + ], + "sha256": "d229ebb54d52c7417c7bcf05c934d41d51b3d936d610118239217962aa869562" + }, + "resourceDatabase.rdb_9.0.1_manifest.json": { + "stat": [ + 47, + 40146628, + 368, + 1793966253776406868, + 1793966253776406868 + ], + "sha256": "c69021b58814cec675c6f98da27d2810fe523e8fef71b023e3a4610739aca03d" + }, + "thumbnail.png": { + "stat": [ + 47, + 40146640, + 689544, + 1793966255454440494, + 1793966262199575927 + ], + "sha256": "ccd771dba7f3f222e9733e688e6dd9e4c5edae2accdd80a6876241094e23f3dd" + }, + "thumbnail.png_9.0.1_manifest.json": { + "stat": [ + 47, + 40146629, + 368, + 1793966253899409332, + 1793966253899409332 + ], + "sha256": "e58ef73e4a794e56ecd04bfd84940ec539e5ca481d6b69ffb20f9fedcd3c2e77" + } + } + }, + "65930CB4CD0237B2": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/ParachuteFramework_65930CB4CD0237B2", + "title": "Parachute Framework", + "version": "1.2.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 23608865, + 764, + 1788881939235881733, + 1788881939235881733 + ], + "sha256": "ec665641799be1f97100937ce87c894a88bee99526fac0695303c339121e8bd1" + }, + "addon.gproj": { + "stat": [ + 47, + 23608826, + 124, + 1788881938831871187, + 1788881938831871187 + ], + "sha256": "183fbb521382a95ad33af9efc547147a80241bd536a29d124c93064b5ae5e8bc" + }, + "addon.gproj_1.2.0_manifest.json": { + "stat": [ + 47, + 23608818, + 362, + 1788881938288857014, + 1788881938288857014 + ], + "sha256": "5030f4430dbd237d93fbcc49ab5c667241b803f1beee4060498e882ea85c9d7f" + }, + "data.pak": { + "stat": [ + 47, + 23608829, + 5048302, + 1788881939131386944, + 1788881939131386944 + ], + "sha256": "ccb22523ba0040cb9d9206a7ab0ae7e5b4411b1704bde39e3e4a7953416e3042" + }, + "data.pak_1.2.0_manifest.json": { + "stat": [ + 47, + 23608820, + 4696, + 1788881938426860616, + 1788881938426860616 + ], + "sha256": "168504d70f88650b0e7acbdcc80ef384ee5b90e2f044839f837b1220b767afcb" + }, + "meta": { + "stat": [ + 47, + 23608819, + 5088, + 1788881955440304751, + 1788881955440304751 + ], + "sha256": "178156f61a332f596dc3783c4d02b0ab5d50a47d4aa1572395760d0fe062500b" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 23608835, + 3188, + 1788881939082877739, + 1788881939082877739 + ], + "sha256": "0994a4b1fcfacdd8d8f69759ba6bde878d633545e380a5774a05e4cac3b6b2c4" + }, + "resourceDatabase.rdb_1.2.0_manifest.json": { + "stat": [ + 47, + 23608822, + 364, + 1788881938690867507, + 1788881938690867507 + ], + "sha256": "6a0793ea2080ae22fac1efd6d3da3ddb3100fd0b60869098e5572be66318c883" + }, + "thumbnail.png": { + "stat": [ + 47, + 23608832, + 2255011, + 1788881939194880662, + 1788881939194880662 + ], + "sha256": "715ac1bf4b6abefb2726cc4c61e903e63ae3a2bfec1e8a85be6cb81eb308407a" + }, + "thumbnail.png_1.2.0_manifest.json": { + "stat": [ + 47, + 23608821, + 370, + 1788881938560864114, + 1788881938560864114 + ], + "sha256": "2bd7127d58adee39c3aa1e2212436499b10adf4fe2faa0b3ed5fcadbfaaae768" + } + } + }, + "BADC0DEDABBEDA5E": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack02_BADC0DEDABBEDA5E", + "title": "RHS: Status Quo - Content Pack 02", + "version": "0.17.5281", + "files": { + "ServerData.json": { + "stat": [ + 47, + 911088, + 236, + 1793966308641519583, + 1793966308641519583 + ], + "sha256": "64b0ff774b52b41cc3711fed424f3e377de4854652b4197f257893f892775e3e" + }, + "addon.gproj": { + "stat": [ + 47, + 40147536, + 337, + 1793966290112140796, + 1793966307987506163 + ], + "sha256": "196b2bc1da74c0b5154c7346c63989df237da487f29cff7b2094f53e0f17ff18" + }, + "addon.gproj_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147526, + 362, + 1793966282662989362, + 1793966282662989362 + ], + "sha256": "44a5d0e2cb0ff23da171ef0c929d1083d8ba71b2680a43ab7c3e53d6c40e74f3" + }, + "data.pak": { + "stat": [ + 47, + 40147548, + 1995519845, + 1793966301329369751, + 1793966308616519071 + ], + "sha256": "292e73f28ff1fc49f9a6503537615b124e7b447345e3230391f0a19322acd350" + }, + "data.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147529, + 166380, + 1793966283062997480, + 1793966283062997480 + ], + "sha256": "6782e9310e8f40bf64b79c967bed419125575b1401a63d1fdb979758d5cffe54" + }, + "data001.pak": { + "stat": [ + 47, + 40147543, + 264943574, + 1793966292531190079, + 1793966308063507722 + ], + "sha256": "494ae75e15d681346e6b3637b7cc8b03a8313cc1326bf61048a24d524fef1eb7" + }, + "data001.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147528, + 42695, + 1793966282903994252, + 1793966282903994252 + ], + "sha256": "3b8d813857f9d2c66053bd7c9a99a8f5a85e2421dd9b1634bcc18c55694daf18" + }, + "meta": { + "stat": [ + 47, + 910016, + 7867, + 1793966308640519563, + 1793966308640519563 + ], + "sha256": "c40492c4bb30eab03b030a34a0e12d594aab5cc62e2ab3a0a4602e5ea29c74e1" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40147539, + 116443, + 1793966290235143301, + 1793966307987506163 + ], + "sha256": "e50f65fb8f49d84fe4819e8bd2b4520b62ca21e1c608099487c070d8834356a2" + }, + "resourceDatabase.rdb_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147527, + 368, + 1793966282782991797, + 1793966282782991797 + ], + "sha256": "1e2f8bad8ad8e44e1d1ebed49e22e81f3ea6e80788540090888afe4c94ee82a4" + }, + "thumbnail.png": { + "stat": [ + 47, + 40147533, + 18180, + 1793966289918911310, + 1793966307986845317 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147525, + 366, + 1793966282534986763, + 1793966282534986763 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + } +} diff --git a/docs/evidence/rhs-retired-2026-11-06/fixture.c.txt b/docs/evidence/rhs-retired-2026-11-06/fixture.c.txt new file mode 100644 index 00000000..cb45a980 --- /dev/null +++ b/docs/evidence/rhs-retired-2026-11-06/fixture.c.txt @@ -0,0 +1,17 @@ +#ifdef WORKBENCH +modded class ERR_GameMode +{ + protected override void StartScenario() {} + protected override void EOnInit(IEntity owner) + { + super.EOnInit(owner); + if(SCR_Global.IsEditMode() || !Replication.IsServer())return; + GetGame().GetCallqueue().CallLater(ERR_RHSRetirementComplete,10000,false); + } + protected void ERR_RHSRetirementComplete() + { + Print("ERR SMOKE PASS: updated RHS compiled and game mode initialized without either embedded 1.9 override"); + Print("ERR SMOKE COMPLETE: RHS compatibility overrides removed"); + } +} +#endif diff --git a/docs/evidence/rhs-retired-2026-11-06/generator-check.log b/docs/evidence/rhs-retired-2026-11-06/generator-check.log new file mode 100644 index 00000000..3092e101 --- /dev/null +++ b/docs/evidence/rhs-retired-2026-11-06/generator-check.log @@ -0,0 +1 @@ +Retired: use updated RHS Status Quo. Remove the old RHS 1.9 compatibility addon/overrides; do not regenerate them. diff --git a/docs/evidence/rhs-retired-2026-11-06/launch-source-sha256.json b/docs/evidence/rhs-retired-2026-11-06/launch-source-sha256.json new file mode 100644 index 00000000..3b802f34 --- /dev/null +++ b/docs/evidence/rhs-retired-2026-11-06/launch-source-sha256.json @@ -0,0 +1,724 @@ +{ + "addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt": "16b263bcb2fb3ae361367a600753a829425620d2e6b350a891c51fba47437ab6", + "addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt.meta": "f2a44ece28891240e6bfa1d01af29428adcadbe82c80e287eb33cd5e58f1f90a", + "addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat": "0a536cd31d1917965ab36d33e273a881be384eb8b863eb5da03d1666e141d45a", + "addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat.meta": "9f4d59cd6d103547e3e494baf7cc8fce70f31f87c66fe6d26b70011bbd27e38b", + "addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat": "88a2c1061c01eb96ce8a0f753bd3e89e1d7af01471ccc4abb4774a7aa9a532fb", + "addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat.meta": "e0093b7df155499444f93a1148a07f66cc755489192db17c81f4035d17378efb", + "addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat.meta": "33a9eaa49871813f2e8537f071ea0f5a4422eb08d536355a47314b6b6d845b19", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf": "48dc42771b7e44994839dfabe9b007c23e37bd9be900196c757f42351e5c6b04", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf.meta": "c081aec31c927c0c374dcc0f8eb3eaec498f71cb0e2ac746879b926f8dc7d00e", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr": "8ec57b278c9d63324d00f7af62abf75230c5ef631d1cc070661585ee235c8a1f", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr.meta": "b045e26f86116703d1b3599fdf747b413cc0064d8101eff659ded0355eff31fe", + "addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat": "372247aac7b84ddf6c66e276d03321d22496e65726f55e490ee7287a90151318", + "addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat.meta": "ea10c7bd630b31febf511fb28a42cc73597fcc1e3010597dc074c651813ede94", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.fbx": "03a654900103878223ab5c4a42e71d17022ca4885ced71b99c67d8c91652b5fc", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.txo": "9838bcb2e4ff1cd649586535ca7d5ad2497e6118cdfb76b8aadabded9cafb938", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob": "a4602d65e84cec1b23b6b09b5bc5847cbd52efe82925986c6eaf1c43bec1ac78", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob.meta": "04f4039be7950ca393ea74469898dabcfec4dc8b8f9e08068898c00333445878", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.fbx": "4ca13bbeafaa0dc0bf007ae9024b8d6c2a5279afc62e0ebc227e2bec2ad67a30", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.txo": "8ed37705192d3d9b18f26b5deb51af6f2a6d694e7e2dcdbd04b317497610b50d", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob": "fe6ea401412fdbb3bb46367cf7dc9215f7d01c6373c8ac954cbf23f2a6927bf7", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob.meta": "492a44fc323d3df469753d4bbbc35ceb3d362e734f48083ba633b3de5dd42d8b", + "addons/core/Configs/ERR/AdminMenus.conf": "5a4b405060135efd0f7faf913c7f061f6250a1e6e9d27f2bb394281d784b20e6", + "addons/core/Configs/ERR/AdminMenus.conf.meta": "5faf5ddc0a51c1d0f82d60af00d91edc22fe9c39aac50d8d04b772a2c9271be1", + "addons/core/Configs/ERR/Content/Registry.conf": "546a5a407c9e6c25c9157ae4392898fa3f40c04c7956649e62201f9ac0ba187c", + "addons/core/Configs/ERR/Content/Registry.conf.meta": "046aa988bf8e972afcf7a60b6f2312f605f016f98625dbbd9cd75ebf9ea88800", + "addons/core/Configs/ERR/EveronSites.conf": "781a9a3f4d2d4ea5b913fbfd15c2f1a991efdee7e033b7ba4241ad632609f52f", + "addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56", + "addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb", + "addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035", + "addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b", + "addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b", + "addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30", + "addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611", + "addons/core/Configs/ERR/GameOverScreens.conf": "1bb83c26a57d64595e91c3ba7926987e22b33dce2c6c876016e3ec2d04f9eb2a", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/ObserverInput.conf": "1efd2e1823f80e6b8a3e4a697cdeb72dd87888ec5a2d16ae289937575b880072", + "addons/core/Configs/ERR/ObserverInput.conf.meta": "9714dce6c38ee81bcc513c8ebef51d7af63fd15bcdda2e40946937c625dc3ba4", + "addons/core/Configs/ERR/Telemetry.conf": "12d895ba4fcd159e23c2f3e94dc59e6f1e54702470cf0b1dad7d04f15572cf7a", + "addons/core/Configs/ERR/Telemetry.conf.meta": "afd52b410ce1a1026f4b0900b10aae2ee50c30764a212a59668233f4f8b8c5a1", + "addons/core/Configs/ERR/Tests/LegacySites.conf": "3864eb638d0ed4dd313013d2d787f975ae6ce4bbe238569919f76b73d5f7ca42", + "addons/core/Configs/ERR/Tests/LegacySites.conf.meta": "097ac7daef4fc18344699a8471fdd77f9d158f8c70bab394068d7a08e4777ac0", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Materials/ERRM_MapRenderTarget.emat": "4ab251037d40a850e3767c0de85136842bcd4fd130eda47bf8e19352b0d030e3", + "addons/core/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/core/Missions/ERR_Everon.conf": "c6cce48484301a76b81f3a0cd76a4012f5808b901754d4114034e92beeefcff3", + "addons/core/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/core/Prefabs/Characters/Core/Character_Base.et": "74a6f03a1e76173a0cfa20b23c711d02e70bac810d6743e16c60476bfe5be457", + "addons/core/Prefabs/Characters/Core/Character_Base.et.meta": "c6b142d1985719236268cdf12ac522fee4b1206871a6f22b568d9198d1fcc077", + "addons/core/Prefabs/ERR/AssaultParachute.et": "b556997989605e2a05982418b7e9f26d12d427eb3ea6e3bc50e85c67ea7aa4b8", + "addons/core/Prefabs/ERR/AssaultParachute.et.meta": "e9dea2d533ad1ce6ce689e0e2815c97a6382e1b90c35ce1efa88a885527e8e18", + "addons/core/Prefabs/ERR/CombatEpinephrine.et": "aa57d78bae861dc4a0fc509f7916190d2f2f0b36a1c3867f9bf9a071717cd7f5", + "addons/core/Prefabs/ERR/CombatEpinephrine.et.meta": "0e19ebd1dd4d81f739125a4dcbff898424ffe39572c2668bd56455d939b3f604", + "addons/core/Prefabs/ERR/ConvoyCrew.et": "29a525a29605386dfcf292dc2316e9fc7650ce39db9fbaa4ce4372ad0de66db4", + "addons/core/Prefabs/ERR/ConvoyCrew.et.meta": "0a909a15b7dcca34202ded136b3bdbbe8898153c9589e1cce1388433d362da02", + "addons/core/Prefabs/ERR/CrashSite.et": "8d06afe6e2db8986f06a7c5d6649e52df009f9eead7345bf2b477f50a0725b3c", + "addons/core/Prefabs/ERR/CrashSite.et.meta": "0f54fe80ed96394374c1922e1d0b05f7e0200ce5b979ff58325b033f51641f69", + "addons/core/Prefabs/ERR/CrashWreck.et": "f5de4785c0e3cdf02f1d5372e9b01171bd5a37acb9c36aa2a94bae3f429b2272", + "addons/core/Prefabs/ERR/CrashWreck.et.meta": "bde3299bdbbddb91d2ef471b61035b6cced29899cff4cd90c080fe584ce63f26", + "addons/core/Prefabs/ERR/Epinephrine.et": "e09c70b3d47a4dc5b92fd332c8222b99554b28a8a0c93cb5caac18eec4501571", + "addons/core/Prefabs/ERR/Epinephrine.et.meta": "f1861f0b0ccace1b7b3d9c29768e37a83bf0c6fae5a411b1bd61d6b2eec7ed89", + "addons/core/Prefabs/ERR/Extraction.et": "4d24c7811415c06386205e5bf5c132a23fcf21e96c75c7657ccd5f3ac914ac50", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "d34a8bbc5dce259c4a467c7bfa2ba746683bbeb9448de8c226856e65319f4911", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "e403d5cb3a5966f0cea81f15e0e825d482ba1a7a27b12498319ba45a414963b0", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "a2b7e632714e646a7010592cc7ac75f0afff7da6c995bf91aaf65d9473a6af3f", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et": "0157bc235eeb78a0e1373b561fd22a1dcb225c833ff7c2d4abae688bca0ec92a", + "addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et.meta": "da6f065cb2414b5a4cbe9ef0f0b1295b2466f26ad406c0bddb83845d4598efb3", + "addons/core/Prefabs/ERR/MortarCrew.et": "21086e886fe3199624208c9a866f883ec109f7d08746c2b56b497e59857fb656", + "addons/core/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "5118ecaf9d2038eea44a4b785f05d2e78781dc1387249aa58a6782c7e6752e14", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "d3eca8fe9197c57a27a285cdb3baf168b037b198d92b39df28a338ae2cfd0c74", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "c0ca5219aa2d6322ba7d094b92000640b259112ff6611a745c0713c8875d09d4", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonBackpack.et": "ae750f08fc9af645561f59d7e5809bd22f4cec26ca8fa6409d09730765958c91", + "addons/core/Prefabs/ERR/PrisonBackpack.et.meta": "7da6aa45467250edc910ad7230dc244d1b041e8a6f55881eb3747ce51f9212ba", + "addons/core/Prefabs/ERR/PrisonDoor.et": "b0ff94443fe334032113a663917de23f920a8b73ffadc9c8e9f11b545022b3d2", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonPatrol.et": "dc88c31cf5c415573a874f74e13572f0add9e6122c8fcad507fe82860d789c47", + "addons/core/Prefabs/ERR/PrisonPatrol.et.meta": "5528e0d778dce5ed39c3e504c6427625527127b23269d20fbf12ca2bffe52ffe", + "addons/core/Prefabs/ERR/PrisonWall.et": "9b410b7c85bb001be4601ad93f750e17b8318b850306d84f29c4dc1b02723d7c", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "e6d345ac98ad9ec742bf6c3b8686839c3256df9833d31bb4bdf605cd41d0ba5c", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "99b1d80b49d1e7f9d30aa4283772a36fd66e962369f288f5fe329c7fc911bb1b", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/RadioCamp.et": "5e6216bf8e6e160da5d9f966c8f7c2081bf6dd16dfac1b89d682a14b3b8a6716", + "addons/core/Prefabs/ERR/RadioCamp.et.meta": "3cb8d3d553ab6d8d111a74f721cf4e69ee1011cbb90248b83cdc7275697276bd", + "addons/core/Prefabs/ERR/ReconCrew.et": "33953379ceb725bcd0cbe505cd643c94adaed17dbbfa95dadd404d6b8e345715", + "addons/core/Prefabs/ERR/ReconCrew.et.meta": "2653e8c5b1cdb857de5badd5959ddd9826a6a298ab3c166628dbb835d7104d90", + "addons/core/Prefabs/ERR/ReconHelicopter.et": "c609ee59ab145e0a1936f95726b86df643f5cc425c43924029e9c1abc69ebbd0", + "addons/core/Prefabs/ERR/ReconHelicopter.et.meta": "d80f1c3d6a6f9104562b89729996c1c92ad240f08cdcf48d4c390a09d2047c08", + "addons/core/Prefabs/ERR/ReconPilotEast.et": "d961f329823b991eafed80d085de1bd89b44a4575be98d8dac385d6b77741ba2", + "addons/core/Prefabs/ERR/ReconPilotEast.et.meta": "d73df3c896359a54514d2efcd851f579feca7a2619b76c2a38f607649a31a4f1", + "addons/core/Prefabs/ERR/ReconPilotWest.et": "8f8221927269352e55c8026ee5b00e026c281c79af6684b386f24e7dc4675fb8", + "addons/core/Prefabs/ERR/ReconPilotWest.et.meta": "4785f23bb492c6af420ee7896ddbfc9767e0db1e06de95207df2dc949a1b1814", + "addons/core/Prefabs/ERR/RescueEscortION.et": "aa5cae65250936da239c865fe1070c68a1d20b49bcef37f6bd29021f22c274a9", + "addons/core/Prefabs/ERR/RescueEscortION.et.meta": "34eef8053198a49df774792322c6d3cba81f689e56b6a418aed5a14de0913537", + "addons/core/Prefabs/ERR/RescueEscortWest.et": "6f9671fb68e2716479d96be74b80ffb29fec535f1333c5e4dc4d7b684dca1ccb", + "addons/core/Prefabs/ERR/RescueEscortWest.et.meta": "45a87304712d6a18afb0ddc5b3ccbb70da395541e21aafe9d6d3641c392eaab3", + "addons/core/Prefabs/ERR/RescueHelicopter.et": "d9b3b01a0cdb6ed779f40f14f03dfd8fe732382931cdee02ea643f260783313c", + "addons/core/Prefabs/ERR/RescueHelicopter.et.meta": "f47b4a9a72faddcb5817e396dab7c115ac05a5455e5dc8ca4c6a3e9d5fc4093c", + "addons/core/Prefabs/ERR/RescueHelicopterAFRF.et": "cbd9c88b0a0c798096c78770cdef834cebfbdfd62fa12d96b56e74c5ac60dcb3", + "addons/core/Prefabs/ERR/RescueHelicopterAFRF.et.meta": "5cf8cdd7f34e2bffccedfab0cc0cf266d3c8a6856215e797874c531eb2a3ebf2", + "addons/core/Prefabs/ERR/RescueHelicopterFIA.et": "6aa11ddd56ebc9d0aefd06e1f55c7c61136d5c703b6eddc9cc84f3bcd8c8c26b", + "addons/core/Prefabs/ERR/RescueHelicopterFIA.et.meta": "ac0b32de9818aab77ff42d244cd5165112a7764eb6d289dcfe12ec77ea0c9b3b", + "addons/core/Prefabs/ERR/RescueHelicopterION.et": "a910548e7346439af90bb87e445f056aa1799572a69f87f45addbc17dc01fd85", + "addons/core/Prefabs/ERR/RescueHelicopterION.et.meta": "426a478d15718c0193490d5381f732e4c559348f2e5e9c7eb9473a4ca3017add", + "addons/core/Prefabs/ERR/RescueHelicopterWest.et": "dbf3827f58c27d957aac23f505a24c0af2a8f6c6555a82d0962a0ee5d47efb42", + "addons/core/Prefabs/ERR/RescueHelicopterWest.et.meta": "963b5b22139a2f3496e937855854c3ffe01604b86a93f1fb63b547bc1ba29068", + "addons/core/Prefabs/ERR/ScoutEast.et": "b4593aab494c4f21637757b3daff4f349da77b4c48ec5e8a4a2917a6a12cf811", + "addons/core/Prefabs/ERR/ScoutEast.et.meta": "7c72af632537f687e92f30b52d97fc7d70dadd39d33f37e0b1004f9596f55012", + "addons/core/Prefabs/ERR/ScoutGroup.et": "8dc0fce8ee3decc1c367411b00b6d8518df9d8458281cec0881464a2ce906af0", + "addons/core/Prefabs/ERR/ScoutGroup.et.meta": "62e43fd152ce57aa4ceb2187a49e4aecdeb9f428b3a1e8318f86bb83dbf8a259", + "addons/core/Prefabs/ERR/ScoutRadioPack.et": "f1c4911e2556c0e0caa8b896982190c5e7d0433e850b4610e19442caf9117607", + "addons/core/Prefabs/ERR/ScoutRadioPack.et.meta": "825506e3d814d30a52d5dbf64124470641c07a0453543ba71426841e6c783635", + "addons/core/Prefabs/ERR/ScoutWest.et": "2681b5a3f8621adb44195f0dbca6f3e79ef7decad8f9d0dd0e1a801ec2549627", + "addons/core/Prefabs/ERR/ScoutWest.et.meta": "22a6607b4b8fe606ca75a634a0b2ac3178e7bedae7f9ff01e7a4989f3b39a3da", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "761d845fc1c086da58fd87c8933bf58d46d1ff5e17cca5950141743d07c8ce16", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "4c97b0514fe7e723046f40f0b396f6573b12eb9981ca5df70b9e8aa3cf29323e", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "f33681281d26676fac88736091834d5a7b87fe0fa01883582542df964dcfc694", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Prefabs/ERR/TerrainConnector.et": "cf9cb28f5a3f41931380864a29ac979aa1d5e843456f564ac7a7de78f88e1aa8", + "addons/core/Prefabs/ERR/TerrainConnector.et.meta": "9f37c979ae282aabca29ce84beb0db851ee8b9a19f7f3a64d387c175616127f3", + "addons/core/Prefabs/ERR/TerrainTakeover.et": "63e26db48c624056350f9ee123ae5b815bc2fad392060a9c26cfcd86c0af872a", + "addons/core/Prefabs/ERR/TerrainTakeover.et.meta": "64e953e378ab1d2a75ee7246f876f4ef93ae8a4e3fddb5002d7ba37268cb959d", + "addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et": "aa857f7e8e0585839c7e9b2e3616702180779e68c6fb149d94a83c05bd52449b", + "addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et.meta": "a213272011050a881c87fdd94b229e002ece24f26f25db5fe53824f8a5b147a8", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et": "29f157849f413261494a63d4d5b0a97e8bbe61cb076efcd59d6c940653f23352", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et.meta": "544c94cf1c26757a10654de7856cd6cc48b821ce3bdc02add13cfe6514269915", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et": "cd4acdcecad299445952aea0adefc85f2b9e9b43f8186f100e0505c5621b3656", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et.meta": "123955da03462befb90e293b3bb856d49cc761166611b38ff47cb48ec2fbe95c", + "addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et": "11185bc813c00c5bda09c0afaad78849a1c81d89843e8f7f3a14c0776b8296a9", + "addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et.meta": "8cdfeb51c3774ed790a223ce74872cfbc4588fb6812a0e98136eb607dcc17d9d", + "addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "57dfbd215f28478a791b2e029832ddf3c363658d5dd5590cee4db9ec6a8b690a", + "addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Actors.c": "7258b838f8365e4fa575c4f2ccc8532e22a33946405ebb490120534d5ca65607", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "cac52cfb9f31ba42daed671e55bf5d55ea0840139deba5d13a0e156ec90559ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuFields.c": "55466b735c5c8f1041ac600338d55847372a71af48ba1ffbde8cce4286e55b19", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuPages.c": "fc07549ba14900998223e8c1a95f57ddb0f365d0d687ac4907b0d97ffe1612b8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuView.c": "6c34557350659782bc1a098169dbbabf1f71502c35cdf711b83ce0efad907142", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminPlayerTools.c": "56780d78bf423f54f482d8620f821b8d3eb0199194482b4f12e37f5ec3f55ef5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminProvider.c": "62e05aceb49da07fed7aa89fb6b2f8eb3efc373ac09eff286fba983c3ad570eb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c": "277df355d00458bf4a337b68feeb926ec4aa12c1546a604d039121a1bde7d995", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c": "27c88e9317ada33351042f0d1bdbd8e406fd798de34d1057544f1c6165a289b2", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AirfieldPlacement.c": "0601d8da570e1f63e43ea7df451d0e997872e4e163669fd8ad37bedd59de7b9b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_BakedSpeech.c": "d11fff16f86fd3447126701af84c3800860d721263b3c2c16d3b91d686d8b2fc", + "addons/core/Scripts/Game/ERR/00_Core/ERR_BuryBodyAction.c": "adbf4cee5b5f5317b185f17738205f28b701a15364e643cc9fb443866a121109", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c": "8010394e7731d3bc2ce436cf795a37819e16d4d605e8d152027cf391e811d37c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingFeedback.c": "ac554a946cd14f73a5bf79005b8a3f770c9caaf0a6ea409134077b8d96f9433f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingGameMode.c": "1e670937736330716a467157d0f45bace512047d7e87d8678f4ae0ee123969c3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingOwner.c": "3f430930c2598951b75cba157a57967189686ca7a86aff8ecedd20f181262bbb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingService.c": "6efcfb4bb1bdf0da84400eef28a24f6c61e7f446073af2c9667b6f26f0bc47b5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ChatClient.c": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CommunityStatistics.c": "84f2615fac1375bbe3738edd13a413ef1d524dea5ce0195b05b3a957aae84435", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentDefinition.c": "bc1dd4ed27ec894cf4bd617fb226cb8140b544aaa9ef6d8654e815d81e7f6fd0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c": "d9df3b2dd8fca119ecee466dc71d336b5a70ee7d5fced368cf34e250d22075de", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentPolicy.c": "3a4987345d5a7159234a7e1a08bf5ac40dd5a23031e9b1953fc43a0501d9924b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": "3e2734dfb935a4e93d79b66ca4a7c883723a1fc348e3595432dbf2bfca643923", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c": "832aebf6e754dba54ba28b8f480180d32ced968a2d2f192424c4007a862c2b43", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DebugAI.c": "bc5529c60591a6c36c39cdb753b1af948690fc3c3c725f38a8d595b41a499235", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DebugIntel.c": "a9f6e7e42a3214879a21052e897f9afc0653c12ff15d5bee7766e26a1af6ab17", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryMap.c": "8a8653b322c948c462002077272dae79e2f45a24e883767b3ad9c1f24caad237", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryService.c": "552d9e40f72a135f19d25a17fbecf475b8bba8d8b62ec6b6d055c65499a0b637", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DocumentComponent.c": "885c8ab4fc9e64c3f8b40056536096c8c32b011cb340b25ca00353a96da15c69", + "addons/core/Scripts/Game/ERR/00_Core/ERR_EnvironmentService.c": "c0fae5bf51ccf507bc84d44adc2d1dff021cd83653c0468b7645a4f343e3fc8d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": "14a75e040f510773313c7e70b57f338821bc1ded650bc65133968dcad6e49c7c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_EscapeGameOverScreenInfo.c": "4746b0715c6e9a527038b47d54d2ff305becea219da6b736f6998d81901143c9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionPlacement.c": "6d388fe21f08b25cbdb5dfa4e198d94a4c80c5092f8d17630a4654e18bf8b3f5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionRadio.c": "ad7fd91d8bb96f05f3be04a03fd00c20ab9413adb12d649d3020c6f7994319e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "c48e79a117990f83839704ae221af05fc7995b956af2d4b4f9ed2a6b91ec335a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionMenu.c": "1deab4c396c307fc17dbaa8731b2943ffb73c37dc0121a5cba5c239c34901ba3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c": "04b8bd8a042cf743ab8a87ec3711f9758e7b0112995a9d363e81a63df4eabe5e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ForceLedger.c": "0ecaf1c5a52568e751678b0b1236e91e6adb538f8fbf010d38b61a312d1bf253", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ForceSimulation.c": "2bbb8888c752a3ffc042f3059937526d25ae288af5b4db024cc683025a2605ce", + "addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "d26e665cf5b9c0e1dc6c5e2da200a99711ef9272718d330f5aa66b09cede40d1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c": "4943f761d0274e163a1da325ac4f750de9180947b05b79ee173e12141bfd6661", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryHitZoneCompat.c": "23c34f901311dce63a79aafe83c11e2fc25bd3fddb0cde38bd313eb90878ca90", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c": "1319637add7f9fdb122ac130784c5426d90a32380d870df03efcce7f297c55e9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationLifecycle.c": "0feee55cc5ddf13e00fe73ae3926ec2cadd5ba861d793a939164287ccbe1861d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_JournalText.c": "1ad00a77cb0be741c7b6ef5dad2d8a8c1ff1fcca3b093df2e132ead0b69f74e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_LoadCasualtyAction.c": "1521af55a34110ce1c971b5226a618a9c6d931622abaae4946d9c0d27c05a273", + "addons/core/Scripts/Game/ERR/00_Core/ERR_LocalAdmission.c": "a076922d1ae966cf5cc67b198166ca6b1288358fb7f641207a4681e6a610a2ae", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Location.c": "6323facd2d5b32382b466a2aa0140064632a8c1de0597e0738cb09a3fcfd7abb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_MenuTheme.c": "90d9babfec7978b3d7f5baffedbbe5c1b54a9742f576f51e6232043e32d1cc9a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_MissionRules.c": "17d1f48878b02a457eebbe5ff87c4267488d68d2a9b3121dda77a8bc8e69c8c6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c": "2deded62be82adcf9866dacf8065f0c6a9a643bdd60a1c3e87990e1c70254c48", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminSettingsProbe.c": "73e58561e08e50008d33f81eed606dd4e8109fb69a627e892d28ca468d641f7d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAggressionProbe.c": "dcda8528a64d35e6aa2f030b59503a49ea8a85ffcc33beaecdf8da00c003b50e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAirfieldMarkersProbe.c": "980025c07d042c2f109e2c99ccee0316b596806ba2c4fcd9446b6ad7580d1d1f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeBaseSmoke.c": "f7697361c6a056a62aff86de7f7d69e9ccf47b92121dcb96ed012ad136e47e30", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContentProbe.c": "cb0ccfe1e1575f9ed80a8054058b471f3543378db059e6af2fed8eb42a262638", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContractsProbe.c": "60aa767d9455f2f4958a6a47bd68bbd8ab0466adc8f1dd9ae433c40ae96c68ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCoordinatedAIProbe.c": "9104a7a5154bf34906f135f00c5793229e343da6a1ed19dd572e3c1d9821d393", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDefinitionProbe.c": "904d8d4c3e7b91d49dadfe495fc7b4f02f300e4aaf7efa348df5ca17ec4a6e8a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnemyLoadoutProbe.c": "0885ca69f6fa7f53414ce1792cfc3c49916886b8173783c634135c13c5d37429", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentProbe.c": "9e2e66ac5d9778a1c65445348e3300cbb90b68b3f669f3ddf1d2b78a858430eb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionCatalogProbe.c": "e3011fa47b67122d7b2c23af8f91b7a217599d6cc114c4f9de628744b9c948d3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionSelectionProbe.c": "946879d822e7be2d48e03a3140aa1aad3e3d44dd18507fa3cdedb4c6d7dd81b9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGeneratedSitesProbe.c": "a3202ee4658e98539122926755caf689a693a79642e8c88d3146c247dd961138", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInfantryCombatProbe.c": "3e4c4382ab91f470357268927b954fd101685df6b2244df483f0422d6c0d7da2", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInventoryHitZoneProbe.c": "604eacdc66cd52bc8a0115862ee7884a8b0f83bdb50609397de671eacd476543", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalCombatProbe.c": "59c5b04dd32370f8cf5c62fe6931d64209825522127a068b1957e9d1556274e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalProbe.c": "4b73e7cf35e9c8fddb089678a320ea58272e1b6611318d0a762754c171eff785", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveMapProbe.c": "37e66177ee0f16fc33d3d18321211206bc4f095fccbd17b177d4b8cc1ba4e057", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOpeningToolsProbe.c": "0c5d6b96ed5a7cb1cf0d098d534dc7190449ed09339062e6b584729d53a61b4c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOptionalSiteProbe.c": "59d86432c19fd85da30a63087cf1f15375c8ee30178ed7e2765c1bda4cc4d035", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePatrolProbe.c": "5a2af71cc4cfccc7dd7c23584398a38290eba1a8894cd46f6967252ff3a7087c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonBreachProbe.c": "4889e0d3799a6a21b9f84bcb2f2ae78dce16269cccd1329f8d1fcc1a23e7c22c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioCampProbe.c": "67f1a088f9b20e5f0f11ed3aa083ffa772bffd7c74d85b7a307344ac3d47e09a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioDefenceProbe.c": "ff1e27a0ce75b123a86e7df31354831880ca62ea90b6c5d7c60d3ba168e1fff0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioInteractionProbe.c": "7b27552d233813894f65c08eb9f04b547c4ca9ff96a2370a763cb94bd4a555c3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRecoveryProbe.c": "d6691f22432b3ce37d07d448aeb3ce7feb5cd09e852e0167b5e4676afd24bb21", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRescueProbe.c": "78f4dc11a179a5b924c0ec1939f0fc1e61d4e6f6647729c48a9f126ee32d1714", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeResultProbe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRoadblocksProbe.c": "6f44725b049f2545a9ce3c94ae3e9134e16077fa017a438fe4f073b453292c1e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSarkaProbe.c": "511816c4b86c9f1392bc4a1d83ad11e082280bec16356d8ab24ac1f2094bba93", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteGarrisonsProbe.c": "1a5ff8747d7501862085b5e9162043fee3b05e82c73c516ad8093aaada53dc60", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSpeechDownloadProbe.c": "5377da12cabd58b9105851a2348d7496316db371bfc4346a5fb3f84f245ec013", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTimeProbe.c": "4a2c6ffd947334a0a71eac083d10c853c524b00042e9ea0987497c4cee60c3d5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c": "7a3fe04aa1c5ed1061ff63d9d5180e8b925932b62d76c1ffb49bd3dc23530993", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportSurvey.c": "e5abdb69c0675a20f4287afb24b9e3c877e91b162c77c32d81ef61e2a8b72577", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c": "59bce863142e4fba4b6fb2f544bb8a58061f0e99b1a38e5ac291cea919563763", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveMapPresentation.c": "70339c05c550b72a4fd5890a871c5d8e6a9e574813d61696194c5fbb1475ac8f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveText.c": "d2fd3670c89d679fcb1359ebccf67b58734fe5168e31fc239bdeffa7f8ff0607", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Objectives.c": "b9cd5bb3b193c20401175c4328405be1b121e8a60b7b5999910b6a71f834af8a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "7c478eff3575eb1bd8a85c08955d4ca7f63b57969cd7b2b76dfd6c42136de1af", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "c287a1891451dce0836c6e859eb962c154aad9621a46e50400f44fb83f97d95e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverScope.c": "97d29535a0ca1571ceb86996f58b68e5ba0944edfe30370455c52a321772f85e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverTargets.c": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryGateObserver.c": "1e376ca83c0005cf532539e14d7f47363c47b7c5b03fe3d55405a59208705fd7", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryInputObserver.c": "808a46cc1e4b31b65dbbbcdd55493f594ebb3974bbec38b4a2402334c653c0ef", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryLookObserver.c": "d5a1b636938d65e9d11c78b31487f2924400c34d98e2ec812954a2a224da7dc0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryScenarioLaunch.c": "8d8da4c1222dcc6adfee350490f4399b4129cfce7a42b45fd7fba52febfd3eda", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PassengerHandbrake.c": "3078487e077aaed1567894f6df12386aae440b790b6c134118d3afc2c4da156d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Performance.c": "037ffa482e3765bb537629e34f10919d85d4b6bfb0abf56ccc7c0d44fce8872f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerAdminCommands.c": "eca9baa3b07da48a740851583540840f8bf5f65f7be854902a3778f76967faad", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerGuide.c": "dc52f551a1d3705fceb64ea18d882009d9e9548c01f08ae1c7ef3083b19ab2d3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerReconnect.c": "478fd041e8a13132df25202088f42d0810d36680060dd7a0424d8f40a5b1ca44", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "dc785a8a1d78a285fe55ce76f87b78a9f522eeb9f7d9655dfe9b5c4348a26a18", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationFailureMenu.c": "5c31219740bbc26cb903a91f4fe22866c465b38220391093c72a3b094ca30f34", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationStatus.c": "c5cc9125986e2285282f3f7fa9068ca72f00d7e26465d00213e734039c0e34e4", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonAI.c": "67f8b444824634fc37fc253c60fd24b56d06d971f48e56a8d53095c97aaf0070", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonEscapeService.c": "ed180448cb516bc4ec521aedd366810a47787628c7f5ee9c9afdbd185d980751", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonPatrol.c": "284618391ee2da84dbcda4a99ca3c072eae3d67b8a9ef40a86827b9ea00810f9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ProfileConfig.c": "b5aca526a860ed9ed609dc3fad99ebb34d2f6fbd537575a167390472efd4ba89", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RadioDefenceService.c": "f5f0bf1352141f933d0edb5630e30541e001dc07e1d2c8529b29cc159c126b13", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ReaperRHSCompat.c": "bcdf98c05ac6cdf0c7eaa854531b02e9ee4f53fbb346ae01d58114e572e7dd4f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryForecast.c": "0eda507fb58860c0eac1d957319d1e80e9576a870d22931c86081db748df44b6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryService.c": "182037828b74938746022ebe03bbd9cf849d52e31067c0b33f392f03969d6162", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RescueLanding.c": "e6f63ee8860335de1125e0a62eae3b8406faf5a5ad2c8d9c6f9a6da077986e56", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatistics.c": "60e6839cc50fa02df1795a00b93fd431160f9201bdbb6f1e3b9b50271306e9fb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatisticsLifecycle.c": "b813a9ccea9a61c9c6d7d4806cf18adfb323d483622ca1225930207ca2436d12", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ScenarioComponent.c": "ca6b20d5c4599e31957e5cb464d21bb3a4bac517dd539711f9d4f380e48a0e15", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SelectionStyle.c": "b9ea5158e51559dc13812cdfa8939ac36b58c79b9e4115c72465d869fdf264a8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SelfEpinephrine.c": "da5850374b51e89016c4557d06f3c7c087b6e6e36fa9734b22c7c6c50d757914", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c": "047d8c4c36bfa32e1afed13f8199f01681ebd362c72d87da8868cb6959661973", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "b81283ec17fdd9f72096901f8bc2a3c87fb8fa4c8fd488579ba0817328b9dafd", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c": "f0900e42100c9a58402cfdd48b7f27689144f53e03d3ae3dcd4bbebc13a5f61f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehicleCatalog.c": "bbc346188ed280d34b1b519ab7c96c6bc35df9ec3e4bfd03591cb9b8008f89f7", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehiclesMenu.c": "d873cdd81b2350acac7068c4d59d5603437561e061a3b9ff2cde2356239da322", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "fc5cbd7f52632228c071b9f14cce7979ef55298672e441f665f0efa97f083249", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDefinition.c": "d421d70b32bd2b55cd8e4966c04af3d5bc381ac811d3b4b2efa4bc0a8af8bd2c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDiscoveryRules.c": "dcbce3b7aee89bfc47a50e9de89209758af1f1bb462b99af67a8ad7a26e9f229", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "2b283ad19b046fd6b33245d466b197bd05b4c472e128a747e6b1e725f4a34c2a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteSquads.c": "183883783a4e8399cf62851a4cc65a5d091d25131bc53b4323cf17286315b2e0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnClientScene.c": "b56f99a91cdc53bdb93d320d10839339022d7e61e6b101eee8296271abd7d3cb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnFinalization.c": "6ec741f8d19ee316d3c67b0dd2216698584bf2cde3634a3d6a7c3cdc3a3935b8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c": "6d9243f66b4ca8c53d53fedff9dea8986c815e90c1f97de58200cd759aa8b49f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnPlacement.c": "fc5b61f1877aeaee75fbfd6aed3cd0b4c5277ae8543bc38a0c09836353d54b27", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneInventory.c": "76b79d5bd9d1f367e1ed19724302b7d49f8b0ede85cf19e89c452582ef651f8f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneLease.c": "20de7f96bacc9037580d88d4424664b4554b2c082d82e7d29913e9dfe390b594", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechMenu.c": "33f9ef80b4d6cdbf3646eab602d15ae0d05884bb20b3a7222b0648752339cda5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechService.c": "74ea305ac0c9a9d145646a5c73cba58e4920ab472943ae73b3dbd71d8216f752", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpack.c": "4a36799d3a3defd674822974cd96647c0accb2a854631dd5488c35e2ef697f7c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpackMenu.c": "07c90db1a84893759dae71f40b7ae3109827646e48fade542190d21598ac271e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartRules.c": "ab7c21ef700343cbe769d8d51d91f167db37285b466d6af9873e121b3adf4ade", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartSetup.c": "58a6b617b22910d0ce9255f82091dc11cd1284417a66adf1cdaa7b661c1ed01c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Telemetry.c": "b1dc3ecab89f5e6db1ff4ba613b43755a5ae44f3612249288cd134ad850719f6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryCredentials.c": "9835caf69d4615d6a3fc840d9dc3cb0f507a0c5a2a6490893c21761f9cb4a216", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryLifecycle.c": "15d2d90d4457339dacd61c1bb23b619243b8af10731687c35ecc300125a642f5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryServerName.c": "7744762c4586e2543601fb0899847bed311c439cfda3dcaba825adf870628693", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainCatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainControllerInit.c": "8071e38812ac61f9b480d9e91f9ebc7712b360d431f5555da83027db6cdf2471", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": "93fc55f2c33e95adbcf2bead3430aa14bdb55154315760bcc9647f89dc8286ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSelection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "4ac347d4d91951bcc7175a965ccea25f3782edb6e352354cce506d6b626e5ac0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSupportStations.c": "c4fe4265963ec88e24379c143edae251452c84e43a3102f5da120205f9a39c9d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "ac31af5ff2937f8a1fd89ac03732a8a473b27b09c83a07923f17986b0f9db841", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "70f192d5d749b4211c5604575d2b9d7e39deca589b5841ffdd03f99baeca1280", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "ab1d64c8073e4daebf14f4ad2c745d874032675ebcac3fdb0fdae4626acb8dbf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverPresentation.c": "91d450215eb6ed2da74446b5fbb805356e3881e3cb43e37fe45308e30b22be9c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverSettings.c": "da22775930b13e41d4a71409e37af3bb99e4cc1d94bdea0e3b59fbdcd4d40132", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TimeService.c": "63867760876d523a1794f619118a52c5cd387d5d92756cd286b2c16a348a6c7b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "cfc63058a20fad99e76c59b64d0d288cc3441fd3486ff63a6dde9998b4ab103d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousWeapon.c": "24d31bc857486638e55c605283c17cde0cdbd3c5c6021eac1ec93611387b10d1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityActions.c": "bd7d0aeb4abcc9d8044e4888f9a92f9e5fc97c098bdfa3bbad57e1a29697a779", + "addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityComponent.c": "2ffec4e646584ec546147fc4b08249825cb32b531aba26467b586d760485adc3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ViewDistance.c": "8514f72f8207f12570d2317e64094a45507a1647dfd45a1501499ef81e90189f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeIdentity.c": "8624bac67c1990f87b3fb799361e5facd31c2e03cb621563b9c73c4fe9d7f87b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeVoice.c": "a6a9a816dee1c766675990c158a757cf9ea8628a7b2b0de991af67ff4cd23e47", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZBakedSpeechProbe.c": "533c89b6a258dccb61d7ff6abe0a43da58d52ffae60735a38c2545fbb4480afb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZSelfEpinephrineProbe.c": "a13e14d1ef525209d4609a2532c6d72135377ce058298937b632a91eeb6392fe", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZStartBackpackProbe.c": "6778cd98392f4e73dfe974782e626d98472251c1266698020d63edf8fe735bcf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZZZContentReviewProbe.c": "3c23e798850236de5e5c2084eddc1614daf4c9f51a762c697ae1df91dde71d34", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AIDriverHorn.c": "db9f100c6cc10efc6f5b86e8fe9adb75657ebabee6f8bf0c89b997c2e947750a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAmmoMission.c": "0a471a40c8f7dfb797d8d35e41c5b1ff91e8d2ab13b43cf866e46c0e4ab4ed9d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultLoad.c": "de7b6c485167ab68ab0b37b96fe161ee821c2efd41362172b810448a02110e68", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultSystem.c": "2eaf9816eee3e1cd2ac70744a6ef7ea5a90d0a3eebdf925e384028a7edde6a42", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirReconSystem.c": "f8a0e3cf4552d8133efd33c2126ea15a7694676773a7047c15e00021c1d9721e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirSupportPolicy.c": "c1a7ac8759ca8ec8b43cbccf303255a2f0b69de447d0d991e44b6bd3db415d51", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftAmmo.c": "2be282406d0c45ab2e35b0ced791b5e494c662588f536701a4e82e6f5fb7c913", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldEnvelope.c": "0f53c7d9ab167a804eb904d63725decebb53fd5796fdf27864a75abed5679838", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldFlight.c": "c04e264cff9963821852094c451502d31bf9c96d4deae2e8ff8a2373b53b5665", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldRules.c": "30be68f4ca2db7e169f6f0432815821179cddf9159f7b150341dc8eb479bbd17", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftService.c": "3f05209227986b5c6bfb193f8f53783cfd4ef083bce898e22257c3e63daed913", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirfieldSupport.c": "c6d88ede0b1b6bac5a7075b6e2e783ccfa8850210aabd28bfa4bcdb698cc5f87", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AssaultParachute.c": "a93c996059e7166988e9d1b0b498cbfd36f19a1cf8520cb4e9215a8884752e18", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AttackSpace.c": "e7be303231b5946d78c61480a5de3f5b37a63d0d2281a9a30a21e59f072904d0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AutomaticEquipment.c": "8658421f846fcd3402289103762edaccbe3ca26280d7d72df2846c32ae8a4cdc", + "addons/core/Scripts/Game/ERR/10_AI/ERR_BodyRecovery.c": "f5fc311ecac4533c2d053a686c51e71216e69130a34483f27146627172914c99", + "addons/core/Scripts/Game/ERR/10_AI/ERR_CessnaBridge.c": "f1adb0f9b92f6ed94a8e9897b64e2fccba0f28552525a93f1ab893faa4fc5da2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c": "b6509be9cc891ba4c1fc0f3fed8b09ebb31ca69bf2e5b28b50a6060706baed73", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBoardingProgress.c": "328f8a5eabb8174b7727eee1d675db83a2eb0be7b8e834db4e950a645ca5d7a3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBudget.c": "fc7e254056c1da4aadd26d4f56d51ee375d5d3331f5f7e5183581108c7474a10", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyCombat.c": "5c4b7576b28d51edea868cbb91a0ab31a40e6ddb558f1b8a38e07e20fdb2969d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyMineStock.c": "4497d6b790a45df2b76d18541ddaf299b406def88b868caa29f096849026a42c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyPlacement.c": "af4799e3028448e1a73f944989313e5d10c6262521bd29a8cdd5236842717963", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyRoadPlan.c": "fae404f85cae63e63976938a5fdb73efc988ba25c5846564f12edca04fb88551", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "5abc35861aebf2e4ad00de11f040d01f784c6f2184de2e10beaf46a74ec8758c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_DroneBridge.c": "9ad23a763c5995b2ac6f68ed02def487b0ba887e8ca68f0e546d1b6812504cc9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_DroneRecon.c": "dc685b57c884d733e0ff90cf7937f5664ec08545f4cbf59d63bc8a84383dc442", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "dfb6a7aeda23adb8aff2292753b694770affc9855bff9fb11d50bb534f9219eb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyGunnerSkill.c": "adf8bac5a6f7e40b2f9caff5fe9be590c4e4ce2b2b387ba39e741a3c4f4cc564", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c": "a48f32dbd7f209bf08fce2840aaffc1781c571fc679763be58987f6b082e776c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMapMarking.c": "0f161fd3e08a54e3e1063679127549e482c40253a022e9d06cd9ee4d740b8625", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMedicine.c": "68b65c98214e1a27383e155727901a4f70e9c065bb0cf133bdcf7fe6d5a57a40", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyOptics.c": "215e8a05594c541861b48e093520c00091708eb0f3635dcee5d0b5e1160230eb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyRadio.c": "3a97e5c3de9ff33873d97c6b2d84ae505cfc4f3146e047b928e76ec3b22c8789", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemySkillAwareness.c": "00c450d033e43fc45c9e2cb64a1d81161d123cc594a4292cfc5f68eb6c17ee60", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMine.c": "067bed625a3f4d0fa189f46476988e90528c59b2351ec0ea71916317b06efabb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMinePosts.c": "bcddb72845189b52e5ed71c687d7dd4b0b40b91b7306c3f6edf84a631002fc5b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMineSite.c": "d838f5693d4fa5d252d529e59777f560674c02532f1041a5598e938b3a850839", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EquipmentLog.c": "df9eec7f94e4bf1b30b9463604e9b97ba3cbff36028a80b81327b0b021cbb2a9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c": "673661374e0854fd896d3d51aba84c07088057c941751b311daa4a97b899633e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "c51fccd0ecdb0a1d6ba99ae965e2e572fc1ea65a5d8dc2e1e2a058698dae45c3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c": "6abb278409527bb67db084138a773de240d99ba7f63f9ac740f8167615d53f1d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "21daa9ed8cb5f2dc08a0fa85e305fa4b4f3e7b01e16c71fd1ca98d66a4e8b652", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "8879febe59fd99584add06690b29853f7cf14b580bb15c9a955cf1a2ce033908", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoReporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoSampler.c": "8bb0ec1422887feaa340307d3c60bae50fc82d424fce6390876e580ff8b75e8b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQBodyObserver.c": "f59421c1e0c83f0f480d7dd4d048b4b0a41193ed8fe8f2f627d2b6a696420ea1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoverage.c": "0ef1ed718797114d95c636c8fa5a9e46a5f2a7ccbe3f432049b0c7d37f1eebd0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQDeliveredCasualties.c": "1f738127e55e843ee2705007cedb5c08741f52f63c75eca7c80242177af82273", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQDoctrine.c": "6335728e89ed40ce11b811f00b61bfea76e94dd3379e4357cbfc438b05522bb0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQExecution.c": "d286b8273faec0acf87366bf53ad2517d5b7d909741e981cdf283cd1f4f50314", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQHunterOperations.c": "b9200b6de3a3a61de94ad720aca94aca64db542acc64ba65e7b8061a5e4884e7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQHypotheses.c": "060796bbbed604f9733d23e131c9836702870c6e25c81cc0b396c885eb06ade2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQJournal.c": "53563ff54fc4e0656713d6eaec5e88ddf69fd4bfa8ef6a67cfa13380d24031e1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalAwareness.c": "124260280ac8eda0e920bfcfc86932c9b21df6b1f7a6aa8acfc43feea3da149f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalHandoff.c": "2dd700dae9d9b232d22ca63ff01af75a3f5cc213ac24b7c0a43ffa38bc0b9ffa", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMemory.c": "ec2047a477fb4273e22ae6bb68e7365f321f55c583b5d2c48c4abf2ac38e3b7d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMineSampler.c": "2a0fdc4d27e947a1d77b02ae23f757c7fa074eb456f817b7df0766583d757f55", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": "97dfab7381385959b0906be13fa2575253ac43be91a271a5d41edaf4106366ac", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "12769b56019e9fa5b8141498a1c33814ba5262253193495e72f85972365961a7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "5f45545c11de5e183969203cdf07e29089697ddc89752a9c5aea0fa2a1a33a97", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQNetwork.c": "0b73be993628a55e3b21c8670d540e39c938093dd5cb4d586e800ac530509b25", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQObservation.c": "57ad3f0b68d150791e30a7e4bd7dfedfb1ddd78a1c76f228e67b33ea9cb7144e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperationSpeech.c": "6f133c104223ce23262c2927db9e16df0f76f1ee647085114baef1d51417f4f3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c": "280e91feecc4e5b6d0886fc4201b12117b58c56857d4386b6c4cb963557274bf", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQReport.c": "4c0c1f0e33f621d1e02375cf4f56b0e8c4ba6fd851912d3d16081949bae46158", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c": "f87727aa1c722a180c7b71fa2d896601b6250978a21bd2d1e973501fee81373b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQSquadJudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQStatusSampler.c": "b937eaed913a5095afa8e678dc1c36b5c805541bf8cd5be927069533d6baed1c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQTacticalGround.c": "eba9a9cabdaa80b936aa5e7025544e8b011fb597b96cbdb8d781583c025afbe8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQTask.c": "29359f52734cbf3400e12696057bbb7aa54466a018fc88c42015b6eb9bb9990c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQWatch.c": "abe634cf6003ae920ec1ed18e305ed462920204960894520d3dd11f7e5ef1c33", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCloseContact.c": "56f22051566354ccdc61531af4869b62458a30d945e4d21de5aadf7079d2245b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCombat.c": "df1c319d10efd07ed6f971cf0e41d8d7e377b04ea7f0fe143bf94df733fd1d9c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCrewRecovery.c": "22e192ca222017d4d7a27210c6e42cf0f128827bca00b37924c9c8d6866b62a4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterGunTeam.c": "0e66d82964ef8eeba29de11d5bb2af954ad72a8090855ac4c1b28fe1e66c0d69", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c": "7791513b8b41f4d2ba1b593b5219d7f6e2bf036e352f8e4eb1a8029fc97ab7c8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterSarkaRules.c": "8c8c96e2f985f553e303f7e459b73a2a5cd0051951b22aa0ed364bc2ae19e194", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c": "c938b8beb3f72ca1b2a76b48052dee70fe52651593dcdc16b7993a9398bc92e8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterTactics.c": "274ae619589b85cf64df1510631ab914aa9fe8c50fc2a76e6e8c5aa5a2c8d9ba", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoAccess.c": "ab4262f78d54782c5ecbf5fff4ebe3da16d72329658d7e18c0c35387dc8b3c7d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoTransfer.c": "99fa26beb0c0869d0cd694500f3bfc0705c2c1cf674dea90d98fb93a59570ef7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryCombat.c": "5d7a8e579edf95003133ddb6e509202dba56ac9e68385247e1ac0256c1b319ec", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "ca8eee2704e7758172e33014404bb1307c683f19b561b840d4592f6312051e62", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c": "c8e454573cf064ff392291d6feebf1f23be64390b5b8e944c03dd065f9f46b42", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InterceptVehicleFootprint.c": "5dea67d14ebab67231c485e14bc92f34c005a5f1bf6d9c0943db28e9857e958a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_KnownMines.c": "045468a052e485a91da601adcb42b504bb6e4ff13b096bc0666128e50a6aa9c6", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarBattery.c": "157024afc8fd3c1ffeea6ae923ff091e5773b9ffcf5f5864f8040d001e689110", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarFiring.c": "2606ed8c19d5569815dacd3248f012072bb76834f429ce7557d24d884724f733", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarLogistics.c": "b3624e4a00a2bdef16f6c100bbd79910e3bb8c2ae8ec5fe2ad5aa70bffecd303", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarPrediction.c": "05863b2b4f9f70cdb288f91c722cbea163c13f2a2927dc485482e5bd4fa7d57f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReadiness.c": "4c3799b3f2681e977669de0cbfaeb307d9a682b04365bfc9f59079e762965758", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSalvo.c": "c128850c7a78a4d8fee00ad38f48b265f1fbd1d9b24b092ddc5c205b0f0ad6da", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSpotting.c": "39b3c223ade610ed9f1d73040423339ac65c90b153f30c6f5c42290978c57427", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarStation.c": "cbbd7c86f722b664c85ab7c070ae1131d2ce5c41d1dacb4381bff9c1720a1866", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSupplyTransfer.c": "ad71084f507ad9c32d3055e7ec6844a1ec5ddf568c0216ab8391e902b56e417c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c": "01bae0bab685e9f0c86c3a8939d18ce6f20dc0b8c1a389d179d91e93008c6957", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c": "5f7ca5b31f3b405c2a6ca32ff91042f5b4dac6ab9640ce67fb10d7a74236ba69", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoTransfer.c": "0b195784497672fdaf651f336c14f7be98c257f98c85cfbeb4f96fe1a401999b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedMagazineSeed.c": "b42d0aac142907433df8bedc40de24c94813544016cf5f451846f1980250f995", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedResupply.c": "c26ad43705765be1c20eca37fbe2978b8c647151f6620ed37141657a4b7dc312", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirAssaultProbe.c": "c1d55b338b157b758e6ffb993d5f689029b28b13929797c91e5dcb15b5e561ea", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirLogisticsProbe.c": "58fe863775d0ad575cb566c78cef696c9826691cf49ef9adde76376be7316db1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirReconProbe.c": "c1216e0512a0268e4dbb82429e228334401c0c3cac52ba4486ae6dc91e41576d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftFieldProbe.c": "b64907c7566a894ca2f3c49ede5d972d4087a938da1a0ca87bcbd7c2203b2c52", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftRouteProbe.c": "8d0dca97e5106d1c84b64992c789e1af0689514beefc027e713ca6ab901fc470", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarSalvoProbe.c": "fb9ccc6b36247ab3ad828ffbb2556abf5c2838d93ea6cd1ad259c0a015142f5e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarStationProbe.c": "a110f0abc753cb1d2f781e457e637dd5346ecd2e924eb5eb3a5c7dca3d1e2340", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativePatrolHQProbe.c": "9784b551cbb91f017004fb728ce08b5c36bead0ffc83aa7149c2c46a7c4dc495", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeScoutProbe.c": "41b39b1abe5e51a5b8a428d533cccbfb0dda9d7a570228dc3489408c60543f17", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeTownProbe.c": "28876e65f9f8a7d96d8056f446b61e12e97d9bbf1a5ac0d4c40edee44e6c4a21", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ObjectiveDefence.c": "83ef91c2118521aedb4c1838b2e47909c80e0950086449b98ced168f1fd87080", + "addons/core/Scripts/Game/ERR/10_AI/ERR_OptionalMotorbikes.c": "87cf6544983386d29058a6f892aadbf242a517cfff4ed24348f56a72bcde8cd1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ParkedCarCatalog.c": "1d865c263e910071b127ccd1bdc8b58dd45768c4629194da49705f76995ff0e7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneFlight.c": "14fa2328e1d31cf59fb89cbb53ba33224be6cfcdd2813525fa9585f8b2e237c7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneRecon.c": "fe94c29fd9befd3c1bf3ab97b9b27458a8563697d4d46f72df43c6e642f3664e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconAirports.c": "7551347d776d6e0eec818d6468cacbca7ac53daee7317e0a1618ca3d39ebc762", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconCrewLocks.c": "83b63c21574140208792aaf3d24e3d22b255a078871382122110bb48520d4541", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconFlightComponent.c": "1386e2a2d2a635417ca517aa1d8ddd4f657dd415ff59be2465543cd8f601e7a9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RescueAssets.c": "fca1a4518baf09f0b2c97f3a51995001d9674849417fea9ca1233e8d1f578495", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RescueFlightComponent.c": "60db8029bbfbbb362b5bce61f509740eabea5925b93bc975e7c2b44addcf03f3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RoadblockMining.c": "47d0212cd20c0b320a47123d17f2b89f7d60b44072a00c69944ada7bb83c4e5a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_Roadblocks.c": "879f78beeb284d1298ec49dbca9624c5f3899ffc6fcd376e748bf55e4347d4bf", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ScoutSystem.c": "63287a252e4e7d5aefce840279f26ce3e1f286cb79cadb32596c37897cec7119", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeech.c": "ca87494ecd355052b46b72e2faf13660e458f3d376285bb0e4c20fd0112ef2e2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechAudio.c": "4734d614c5366ae3ff57717f514664c9dfdbe4408e16ba36f6b10d807361e313", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechContext.c": "d2baa94f036f7dde5cf24e004ad1fb9416f249cbf7d0c6c07c5898f7d21751be", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyColumn.c": "bd898aabcac5724d60dbecc4ff5ab6f062c66cf7c735ff59127c588ff94f898e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "5393efab9d663382e67b9b27a388063986a4f99c2607328c998f007588074ca4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "d2fe073b0c23c877afaa65e246544751eecabce4febd72412fc9a4ec18eb1c8c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupportScenario.c": "151eb6189701e559bd4f1359c91187f5a64deab1f2bacbd521c4f4cf3de6d878", + "addons/core/Scripts/Game/ERR/10_AI/ERR_TownGarrisons.c": "9b48331ff8bf7e5a111b498c59a57a5d0210125af983424535286a4aeda9a18d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_VehicleAlarmPerception.c": "45ac71d25e10a057a26a5b0fc7128935baaf47f4c0f87208a4420fa52086fd98", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelAdminProvider.c": "40adf8497b64cc74b1390149fe5ba789ee2f14e6fb3c325af8f5ffa8c806878e", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelDiscoveryFeedback.c": "741de1dbadfd46c154905a0918aad41386ddc139d843553db55d20d60700c020", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelEvidence.c": "ff436bd3c7aa0fcd5c24e940430c1ffdda934889953f63e877ae418bc9557d26", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelReroll.c": "d8b04de9ea789732cc78ebce9aa60786c86fe46d05f671cf251eefa68a214b59", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelService.c": "2911325c79a7a372628b18ffa0e110d11919ce2c2cd7b19277bfd608fdb03dfc", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_MineIntel.c": "3ce16cebaa9703b2f9803df7c11614f94de6460a9136dab8f80dcad41ae2b1c2", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_AtlasPresentation.c": "f0b36472b16477b8c3b5b62f55cfb2a3b3a08304b0779bc39244359af1abe203", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeAtlasAnimationProbe.c": "845b39276bfdbadd6bfd9b41f445fce1a9d40231d38ef32adc7a6654868e17f2", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeHeldMapProbe.c": "46c0210a3aef40fc34e4c9682d9364b1cc1e15d4373d8aabfeac7d9b8e55c351", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapComponent.c": "73298c94ecc8d227452b0eddfcaec7fe9df4748875fa7fafcc52544a43658f36", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapPages.c": "2286d327b87f127f052e06c22f553b30ea31d25127b860fc02a220aeb4ce3ea2", + "addons/core/Scripts/Game/ERR/30_Map/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_AdminCommands.c": "282fe1463add7af8771aa58507b254e69d2d06f50274d4c77321db073f8394f0", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeAlarmHearingProbe.c": "5dbb6a48909b76cd141e3a79ef01d2e68cafee55153821c4471f85c761fff94f", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyCoverProbe.c": "d2450140cf9bdf09210473234605b4c0d818ea5b91f9532209166a35c5d13701", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyProbe.c": "87df652b339df4fe4239617752ac5fd9f47aa4396ba94742a0af39a32b54e784", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashStartProbe.c": "957f40e36bfc025b8bc752b1f41dc177c8d0844c69ee5994321a47cf3ddea1ad", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQBodyProbe.c": "811244cc8297817efbfc3ee4edf01c868eae23c88127ba0c72e98ee7422da72f", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQMemoryProbe.c": "9bcd0b2e1007d40cb794aabe80368a2584ae58aad6a3ebbee070efc7b21a8147", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeInfantryTransferProbe.c": "9b2de4dc22bdadd51b0271219a971dc8dc07f70ed3534f306acf03ed81b29424", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeLocalHandoffProbe.c": "0d4d61c424a16008595f86fa61f3b848caf9bd6e9ebbacea9c10254d88ba378e", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMaintenanceProbe.c": "852b9b397efc3f919c97fec63bc3df1a850cd7833421af8441994afd191951d4", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedAmmoProbe.c": "7ddb634444c79ad9291d53a754dc0ed383342e36720ddaa4b7aa4bd4e7ee656d", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedCourierProbe.c": "12710e9e5548fe8856f7a52f3566338369a8a1eedf0bd92af16229271872ada5", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedInterceptProbe.c": "34b0b1e38a59f14c4e83d93ec412779945388e6f4d697bda2f6cb90f519a6372", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedSwapProbe.c": "a6721fcaaccadf8eddb06687c7d587d0a3e377d5d1bb0b8e72e630fede8690ac", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRadioProbe.c": "a4bd5cd9fe0594e05238b2d6dcd80466773f8fa160dc60bbe1eda70e3acdbe79", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRandomRadiusTrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "4dfb218419db4cd7a46d25cb1f2e578e75ad89efc43f99c6ca8ab8e591e139d7", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "89c2696071912500840f4bb91d754f695bf674335b51a7ee1d03727084fd4869", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyTravelProbe.c": "32e6074e912491f2643a24cb44311b9fe5b069c76e4e94a45e7409ac82d36507", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_OrdinaryScenarioLaunchChat.c": "a747af09599ce4d0c52051f18f00c4624d24d137e328341b580b82e896c6bf65", + "addons/core/Scripts/GameLib/ERR/00_Core/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_BuildAtlasModel.c": "f6cb5e6f5afc9bb60a8a46d96b52c7506882faf0a880e0b20a01a2603b336d2c", + "addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_ValidateBaseWorldPlugin.c": "49a38c37b51e5318c7dcbcb01543dd9a6300d053f0d39808b3974f4edc45b871", + "addons/core/Scripts/WorkbenchGame/ERR/40_Chat/ERR_ValidateWorldPlugin.c": "d1f3fc372d0d16062a5983f2a6cffb6e72f202cb93fea5b33b4d77e0c852ecc7", + "addons/core/Sounds/ERR/Speech/radio_01.acp": "cf63378bf3950f5e6c1c1f46c057ad38a371b14b945b1201777820384805c3af", + "addons/core/Sounds/ERR/Speech/radio_01.acp.meta": "d5966526f35aa64dc980238f72f4f93f9d0e6a360f10e3f6538e97b7d086aa47", + "addons/core/Sounds/ERR/Speech/radio_01.wav": "cfe4a00000bc9b629a9e8e282ed64e7177673f829c5657b1ae2b2cb9e661d2ae", + "addons/core/Sounds/ERR/Speech/radio_01.wav.meta": "eaf33fa344fccf9aacab626117d03b96b135fa819d3e63ae300fac544291b571", + "addons/core/Sounds/ERR/Speech/radio_02.acp": "9111d118594094a8e09acdf80d8b107cc7d5d890b6ab086274e0e1004039e345", + "addons/core/Sounds/ERR/Speech/radio_02.acp.meta": "76b55d9abf7f599c5db3269a5829546a6d5f92e6350b2fe987245f9cd6b599fb", + "addons/core/Sounds/ERR/Speech/radio_02.wav": "6f0c94ae0e501afe6cc1aba804ba6a0403ba4de931debc28bf22970f591d0798", + "addons/core/Sounds/ERR/Speech/radio_02.wav.meta": "06ec85166aa4c54a6fafa1fa2eb2cc32f4a36dc8eecde8f9ba9912229e5e00e0", + "addons/core/Sounds/ERR/Speech/radio_03.acp": "019f939d65396f4a334a024bbf53c41479a9f8ce806610945af2be13e7352c70", + "addons/core/Sounds/ERR/Speech/radio_03.acp.meta": "8aa2f4f26f04bc3085ae046f543c047cdadf9af9e06a38920f1e1fd8a3aa02fe", + "addons/core/Sounds/ERR/Speech/radio_03.wav": "415a206bd1de167342cf1b82d59c708441b8d802395f941d15097c064133802a", + "addons/core/Sounds/ERR/Speech/radio_03.wav.meta": "de1d81fb653146404de5b6a6018c1cd73e902571b82d544de5b6cfccf21f5410", + "addons/core/Sounds/ERR/Speech/radio_04.acp": "77bcff7cc7ce49036a440e829fb4eab1dbe5252b0fc9ea24c42e6f6b68e2698e", + "addons/core/Sounds/ERR/Speech/radio_04.acp.meta": "dd61ee2545776cf23403240424470661c737048d01432d90b24f2c9e75f45d82", + "addons/core/Sounds/ERR/Speech/radio_04.wav": "a225810c7fba048517248fd9f7e9f7ab8aad5bac35e59f22e11e69166551f7f3", + "addons/core/Sounds/ERR/Speech/radio_04.wav.meta": "0ae046e2ac7f9653661ba99646d40dd78d52f113ea6554e1dbfd6e578572a4f4", + "addons/core/Sounds/ERR/Speech/radio_05.acp": "7dbc2b3b3d251eb8d3e749b0a7f32186b0421a95fa5585be493cf04b45510e3d", + "addons/core/Sounds/ERR/Speech/radio_05.acp.meta": "cbf3b48ed3865e30ba5d838d96ec4f1ee950cdcd51368f7a9259460e4b78cc1b", + "addons/core/Sounds/ERR/Speech/radio_05.wav": "90f5abe221165ac5cd7d88c9b3e01cf6fd4d00b594c84d09c6baf101fdb776ad", + "addons/core/Sounds/ERR/Speech/radio_05.wav.meta": "d8e3de0e1ae8670a01bcc272a1adf4199ffcea514ce024ee3286820dedab4d83", + "addons/core/Sounds/ERR/Speech/radio_06.acp": "e14da41c1cd186f35a4f385fab71ad85ad6fe718e67299a65466339ae23a2922", + "addons/core/Sounds/ERR/Speech/radio_06.acp.meta": "efc810a60e93453942adba476b423121f2a7dc1133b25d8764c1bec546a3949b", + "addons/core/Sounds/ERR/Speech/radio_06.wav": "b3f86b8dde535bc1a63301376c8d42775446d1b6117168557841565391fe0a14", + "addons/core/Sounds/ERR/Speech/radio_06.wav.meta": "07f53131f4ad153cc09051ba1de07f7b43d38f69781aad24371c4eeb331b280b", + "addons/core/Sounds/ERR/Speech/radio_07.acp": "bf3a48af07ad6e5da2ca6ed6c581fc6232e1bd62ebb905b934188366f2bc3d77", + "addons/core/Sounds/ERR/Speech/radio_07.acp.meta": "60aab59223c0ea734f7c1e88f803de30164ccef1a909730abed3eb76b3378ca2", + "addons/core/Sounds/ERR/Speech/radio_07.wav": "f3fd18ddaebe9eb3d0db9ac73c89a7b7a7f18b76e4b66d404d544be660a6825e", + "addons/core/Sounds/ERR/Speech/radio_07.wav.meta": "ef6c72aa32c1c46f7133782536744bdaf4eee03bcdb75aecb87accef6d1c4f2d", + "addons/core/Sounds/ERR/Speech/radio_08.acp": "a82c5dbcd7094085324d93d539c6f829c53dcf3781f40b8d65a10b7cb4125bae", + "addons/core/Sounds/ERR/Speech/radio_08.acp.meta": "69fb3400109e19d4f4d0fb371d056edbecc0a96a0a923174d1aba95dfeac1014", + "addons/core/Sounds/ERR/Speech/radio_08.wav": "ce3c2aff20dbea83aa6545a383c454969c5caeb53d5a88155ec182f789047d4a", + "addons/core/Sounds/ERR/Speech/radio_08.wav.meta": "72c5e117ab7b605b8370fe90923edee73593df6071c39b86556731387814a014", + "addons/core/Sounds/ERR/Speech/radio_09.acp": "73725377def1832742c7620fec46dc0100400d92b9cb79add8b4d44e94c46c0a", + "addons/core/Sounds/ERR/Speech/radio_09.acp.meta": "95456fe20def274a1972867024e9d0eb572f3878eae19c63522fcefe401dcb07", + "addons/core/Sounds/ERR/Speech/radio_09.wav": "3eb0be6393c431b526dbddc723cb608a7681a2dcd8af6910d9f2234aa98c923c", + "addons/core/Sounds/ERR/Speech/radio_09.wav.meta": "724dd301d1b25e41318503a815e87b54e7283735c51fd122af55c070f26adb37", + "addons/core/Sounds/ERR/Speech/radio_10.acp": "f976a0fecf73b3379ffb9728e96c68ca79800712919320e7ff7f3484cd2c9724", + "addons/core/Sounds/ERR/Speech/radio_10.acp.meta": "5411a9ffa23e42c8a2e8d4eba75d6e87631bcf542128327dfefd603a64d5b6ec", + "addons/core/Sounds/ERR/Speech/radio_10.wav": "2b2dac499a45a7779e79465d628a67b87078c0951db7db3e051feeb4342f2816", + "addons/core/Sounds/ERR/Speech/radio_10.wav.meta": "c3ac10a092dcb26ec637be6c9264a85eae1b6da55b9d8b44a14766a70ddf2933", + "addons/core/Sounds/ERR/Speech/soldier_1001.acp": "1af0d303063f37811a9b1a25424d887fe5eed4b5c57da71cf36ba6985f8cf002", + "addons/core/Sounds/ERR/Speech/soldier_1001.acp.meta": "2fbdda4d9fa83c6945985bd2f2215aa9f745b3a18adb0e7edafac1b01c161ba5", + "addons/core/Sounds/ERR/Speech/soldier_1001.wav": "a8935a5aded028f2fb03734f4423e731ea4f5b17394526df47c0407a3deddfe7", + "addons/core/Sounds/ERR/Speech/soldier_1001.wav.meta": "aff7a92a727d8bd4df033be2961fb85cafdc5c45fd272c5ea718bc07fb8e5cce", + "addons/core/Sounds/ERR/Speech/soldier_1002.acp": "1444636949683a430efe20a7f296e85e669cb8e26799c326f73a00c4f8d32fa5", + "addons/core/Sounds/ERR/Speech/soldier_1002.acp.meta": "d8eb34135a3b76f0a4f889f9662d954b3b0b3638c10c0732e25ca29d7b2ef412", + "addons/core/Sounds/ERR/Speech/soldier_1002.wav": "8535643e93757dd916f4158b5b03671cefc599489dbccf6bb0f7abf294fbae88", + "addons/core/Sounds/ERR/Speech/soldier_1002.wav.meta": "e8c8813e5a1989a0d7e4d2a5c90622c4b0f909aafb929f4737c82e5710220d1f", + "addons/core/Sounds/ERR/Speech/soldier_1003.acp": "5ab123f150debd6fda0b822fee7ffca5a0bdc168f4d8d2e28b3982972db05613", + "addons/core/Sounds/ERR/Speech/soldier_1003.acp.meta": "f89fa8e7ac42e7f675d29f0b241d181df572413c6c41bf31cfb98fa205baa87e", + "addons/core/Sounds/ERR/Speech/soldier_1003.wav": "5910896661ad67333d2374a16ca44ce831a5820feb337655df99c02df2915d5a", + "addons/core/Sounds/ERR/Speech/soldier_1003.wav.meta": "5281a71be599a70aeb9972ea85364e5ef32f824db94c71953d8a1912fb2a27c2", + "addons/core/Sounds/ERR/Speech/soldier_1004.acp": "10ac847b206834168e63d8d0f7ad25d7542a58a49d331af50aecf13e7e070ac9", + "addons/core/Sounds/ERR/Speech/soldier_1004.acp.meta": "8c073328d3f5f06ca583d97e9ce2453d8167ec7bc5643ab90783748a4cd9b6bf", + "addons/core/Sounds/ERR/Speech/soldier_1004.wav": "76375e462ba518c76f752d4b194c9370dffcebd8ce0037865133b37af3ff9a9e", + "addons/core/Sounds/ERR/Speech/soldier_1004.wav.meta": "563aae8d93efeaa7ca098c12bf0004da279321607793bb32a93b2530d6832d06", + "addons/core/Sounds/ERR/Speech/soldier_1005.acp": "ea3d874f84dd85f09871444c348b1c7f4948fc043c59cba4d3aea8b8eaa8b86e", + "addons/core/Sounds/ERR/Speech/soldier_1005.acp.meta": "40cbfddfa9937e319d412f3ecb66b75e2c1c88f2823a64e43a81a2939fb9021a", + "addons/core/Sounds/ERR/Speech/soldier_1005.wav": "3e20728fb61863278738f5366343cddd6fac1b8b114a14867f91ebb5cac547d8", + "addons/core/Sounds/ERR/Speech/soldier_1005.wav.meta": "e330fc819872b0a97a280a42d936ff75e30d21ea3ac96891988b48ded36af7b0", + "addons/core/Sounds/ERR/Speech/soldier_1100.acp": "86dc8e90d826947672342f44a6ff8d2fd4a8f014db0b215c0865b3728b14ea88", + "addons/core/Sounds/ERR/Speech/soldier_1100.acp.meta": "1a41730365335ebfabf6c75ab1c67ecb1d0d6c85db56d1d85f688a780a3ecf15", + "addons/core/Sounds/ERR/Speech/soldier_1100.wav": "eaf1deb5381f6bac165e364a652920fcf78438c351c564ebe50a216f3f3ba5a0", + "addons/core/Sounds/ERR/Speech/soldier_1100.wav.meta": "dcd087d3e0bec53abdd4e42218a3bbb234b7ae3cd2da05dcee71a298632a8da9", + "addons/core/Sounds/ERR/Speech/soldier_1101.acp": "2680131b5364efe39f3dee44ce1605dbc9e064cea9baf8247a8c5b55dcfa8d99", + "addons/core/Sounds/ERR/Speech/soldier_1101.acp.meta": "4feaa2b8e069ee2e9576d4009329f585b1b5ade9e47816882b78075f4897646f", + "addons/core/Sounds/ERR/Speech/soldier_1101.wav": "4bca012ec25d8456cd38d26606312f54b480b674365b76a9c9f54e408314570b", + "addons/core/Sounds/ERR/Speech/soldier_1101.wav.meta": "6ac6bd7a06be3fa35c513137b4584e405c0cd7e32d0c6912f2d7f9b5a3087d36", + "addons/core/Sounds/ERR/Speech/soldier_1102.acp": "08002dc26a4c07d6bf488d5f7c8c6587787c1755ce374b4053dad582eb2d77cb", + "addons/core/Sounds/ERR/Speech/soldier_1102.acp.meta": "2133e516f162d6aaa7f0d3a191421964ca6df7b00d0a50fa42ffaba70864bef4", + "addons/core/Sounds/ERR/Speech/soldier_1102.wav": "1432bb3c9d99910314a84d9773d2afafe4f5fbb143afb291b0deed55d25ee6d0", + "addons/core/Sounds/ERR/Speech/soldier_1102.wav.meta": "a6ca33938733e22789434db35ca2cdfb0fc4c51716feadf4a28a60ee9d1044b2", + "addons/core/Sounds/ERR/Speech/soldier_1103.acp": "c93e1e75c272d31107fde86205b859cf505e2acf7d8776fbd81357bc8b3625b9", + "addons/core/Sounds/ERR/Speech/soldier_1103.acp.meta": "f3d41ab27e932b10d46c3a2aa63f826825403a70640381a089db608c1c00a257", + "addons/core/Sounds/ERR/Speech/soldier_1103.wav": "c294454907a229d521c2285eec26dbb82f9782f2a7eca764e11713ff63f0e004", + "addons/core/Sounds/ERR/Speech/soldier_1103.wav.meta": "968d93e9dee2104aee94407604d021d8849a83dc3d115484088e81289654c246", + "addons/core/Sounds/ERR/Speech/soldier_1104.acp": "cb94ed3c95670f11f78f6470f1f50492fff6d2f0ac94602d054d474d52400cec", + "addons/core/Sounds/ERR/Speech/soldier_1104.acp.meta": "92d43bf610784953d8d94322b73ae235f7a8aeb83ece72733d795c8034275052", + "addons/core/Sounds/ERR/Speech/soldier_1104.wav": "952b3d71366c26fc12bdbb9014665bfc0402f30944c22b1b2369d26a93db7104", + "addons/core/Sounds/ERR/Speech/soldier_1104.wav.meta": "939562214b39250feaa8f6f6c6bd10c3d4e0b4c529f338490a2dc234919c0d31", + "addons/core/Sounds/ERR/Speech/soldier_1105.acp": "62c5d3d230a8a15cf2a4de193620ccdf83ca9973b550ace4e8edf7cc49f52851", + "addons/core/Sounds/ERR/Speech/soldier_1105.acp.meta": "6774063562b9c83975bc394dd3c72aa2a0d8001d0990ab8ff870ae2876889f93", + "addons/core/Sounds/ERR/Speech/soldier_1105.wav": "20e9e82d9897b598497da4722432f83ae03a5e6bf9a1f7a77caab712e3fc3130", + "addons/core/Sounds/ERR/Speech/soldier_1105.wav.meta": "6f21652352edbd59d1244ce9c2dcd1ad4ab65f022222381d9709c28148121c42", + "addons/core/Sounds/ERR/Speech/soldier_1200.acp": "c27db60629a41145697e041224cc2dde21c72d6a883fa305c71ec9c5b86bd84e", + "addons/core/Sounds/ERR/Speech/soldier_1200.acp.meta": "ea228ec869a7a0266f5604266f68c4166abc6cfeaa29180cb3b4351464b71079", + "addons/core/Sounds/ERR/Speech/soldier_1200.wav": "5a1561e821ef33a574c1f9ef95ccf76e69b832bf0a20bcbbf914760345921859", + "addons/core/Sounds/ERR/Speech/soldier_1200.wav.meta": "ccf3b62fd2eea460d576fa68863a901eb0025f47b1b76729a4289162d0dfa0c8", + "addons/core/Sounds/ERR/Speech/soldier_1201.acp": "45f220c5b6bac64db61eebcf54bb52da572f9f8f1ea0872c5af9fd3238c25a4e", + "addons/core/Sounds/ERR/Speech/soldier_1201.acp.meta": "3be417d66b05e11e0b520af136dfc45c86c17d5e35b56a611efbcf38e0d35003", + "addons/core/Sounds/ERR/Speech/soldier_1201.wav": "f058f0482cfe4034fdf37d9b596f7ba8172fae1c57aeb387ce153f8041895e45", + "addons/core/Sounds/ERR/Speech/soldier_1201.wav.meta": "abaebe719eff7e009eb4d0222060280877451126c02154706df6d13e4c5d3e11", + "addons/core/Sounds/ERR/Speech/soldier_1202.acp": "c08625886d8c6dc405cf96c640c9dafd4510ba5cef2c22b037c8c7b3eb5bea39", + "addons/core/Sounds/ERR/Speech/soldier_1202.acp.meta": "cf345e968edad1b825dd33b87267b63f770c169250f8c51195bffc3161d396bd", + "addons/core/Sounds/ERR/Speech/soldier_1202.wav": "c875f4e798ff5e24c3eb3b48bdfa1b8af03de9326a19c671eca86660297ad737", + "addons/core/Sounds/ERR/Speech/soldier_1202.wav.meta": "dd2d6411abe914bce71c6688a1647c2699303ca248191ec01c6325b366e5d7fb", + "addons/core/Sounds/ERR/Speech/soldier_1203.acp": "f0237a51ffe0e7d463154d321117a9b19c6914f6ee680ebf07a0ff9ab51fc340", + "addons/core/Sounds/ERR/Speech/soldier_1203.acp.meta": "0e93332191ac74be950ce8139b96ed6fdfe3ddbe68de8949826dc801d12c97f2", + "addons/core/Sounds/ERR/Speech/soldier_1203.wav": "6e7857dc96dfb556f011ba89f2f4ea659cfd7b605b88790c69e754d5cc51398a", + "addons/core/Sounds/ERR/Speech/soldier_1203.wav.meta": "0f564169dc05a95f7b01f64f72bdabf6de9ed3f37a2f44b4751f89b38eb18cd8", + "addons/core/Sounds/ERR/Speech/soldier_1204.acp": "94dbf98b5e05f1ebf6960495032c46203caaa4440dfb1ffd3beda2679fe6bec5", + "addons/core/Sounds/ERR/Speech/soldier_1204.acp.meta": "7cc8c61f4bb210c0576fac350d170f8f54a6e55531db6102c1a0fa7cb7a8a809", + "addons/core/Sounds/ERR/Speech/soldier_1204.wav": "bd170ca015b017114e42078dcc5c49d5626aef17d22e4a12b8282e9ee4908ae6", + "addons/core/Sounds/ERR/Speech/soldier_1204.wav.meta": "1c6ddb11c22a14d9d498074e2fb2864783f91afc552c4cd671452fa8df483de0", + "addons/core/Sounds/ERR/Speech/soldier_1205.acp": "47180a3445a265335d682eac6fa51fedca51d76f329adc39b1802092b311118b", + "addons/core/Sounds/ERR/Speech/soldier_1205.acp.meta": "c34346f4b10149b426ebb4e94db8c29883c9d0e36f2b42d07d41570eb8932554", + "addons/core/Sounds/ERR/Speech/soldier_1205.wav": "769c457805376e9c0172ddb525ead5f1d8774e15bd1f3f3b218a19f9d77b6883", + "addons/core/Sounds/ERR/Speech/soldier_1205.wav.meta": "31a2a7314b44afb3f0031376b2ad6df22649e8089bf1a3bbeb64cdc41156cff7", + "addons/core/Sounds/ERR/Speech/soldier_clear.acp": "f33f03f3d24182a95db7d02058f2dd6ae52098e3b5142a33ede833ee881d54ed", + "addons/core/Sounds/ERR/Speech/soldier_clear.acp.meta": "7d3643c9de2d81ab0f1b4898e781341c1962bd8505c20882233ef7c40159b23b", + "addons/core/Sounds/ERR/Speech/soldier_clear.wav": "d6527b8136aa720b721463210420f47de0dbc45acc4e4c390b6a44968c5f0acd", + "addons/core/Sounds/ERR/Speech/soldier_clear.wav.meta": "d9f9a921a85fe275c6cce649421a19946ff6aec49559796725c3858d9fe9b261", + "addons/core/Sounds/ERR/Speech/soldier_covering.acp": "7d4109edbd6c20f9e2af0b394fa12e8b3b40fc18bf2b5ac118beebb1fa4a79b1", + "addons/core/Sounds/ERR/Speech/soldier_covering.acp.meta": "320908bf7decea55b8d8b4a89b30e84e7d96a033d4a9cd1bd84912dce013f0d8", + "addons/core/Sounds/ERR/Speech/soldier_covering.wav": "f51e0086eaf0eece8b4061711088a413a2dbeae263deab7ea30fb1852dafda69", + "addons/core/Sounds/ERR/Speech/soldier_covering.wav.meta": "7bdf2d2c5f9cf741bae523e1ab0b9acc99b38ccd1228ebfbcba92f2b9a5cba9d", + "addons/core/Sounds/ERR/Speech/soldier_engaging.acp": "9f052e87edaf182030edb656821621cdeabbf13d65bc181308357530c9d93a74", + "addons/core/Sounds/ERR/Speech/soldier_engaging.acp.meta": "9e487fa3746c46b2993f1dfd1f0513f375571728704533674bee62586e25b72b", + "addons/core/Sounds/ERR/Speech/soldier_engaging.wav": "ac0f2d7d698732e3d7c270186e7aa2ab7e6bd4c908f36b07fb6f66a3cbe75ccf", + "addons/core/Sounds/ERR/Speech/soldier_engaging.wav.meta": "d571b9ebce196cc209078a83e4bde8f6a5f4b6d28c2945e2b47953ccb6889e97", + "addons/core/Sounds/ERR/Speech/soldier_moving.acp": "05503ca7af13a7ad03ed2a3aa562cc58504fdfff3148477f8d81b5a01abdf37c", + "addons/core/Sounds/ERR/Speech/soldier_moving.acp.meta": "a2474c87e4e1587226919dfdbd03739d938803d34f4a4f441889b0d8015513bd", + "addons/core/Sounds/ERR/Speech/soldier_moving.wav": "a61dda64e6fc2a11eac3e6008ee14b89f360bd67e258dce1191a71d9e2e26fad", + "addons/core/Sounds/ERR/Speech/soldier_moving.wav.meta": "bd87cd72ccb819584f9da09fb0d6973ffd6eb0bb5572c562978500e2af467217", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp": "c821c61afb2ddc12d3ecdb552a66d2a9ff89a5258a567ff2a99fed4f45a33520", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp.meta": "65a27b81a5b437163befd4dc566785a9dda4def1798495ca53c8f768a5d7a73f", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav": "ffe6ef5fdf30411749e0cb73186e3005b1ce6a52fcb7c836caeb1bca422ed3ed", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav.meta": "25b5680fd2a313c18e15ce6e0d3f709d78352b93206c22c7881be19b81faddd5", + "addons/core/Sounds/ERR/Speech/soldier_reloading.acp": "51c5cb464bab6637cf9e3b1880a010e05774d76a92298daf40b1d84970845be7", + "addons/core/Sounds/ERR/Speech/soldier_reloading.acp.meta": "ca351e809b1ba7c69b066d2c1d0a5d2afdcaa833c1163e6d13a0396437e98cf6", + "addons/core/Sounds/ERR/Speech/soldier_reloading.wav": "15b2749f79bc73fd0784bcd6e6076e1bc50da835e0c434cd43bd185d0735c732", + "addons/core/Sounds/ERR/Speech/soldier_reloading.wav.meta": "161c9ebee1d0496c7aa9501d00eba646094bf1ce89cda4efde6e3a0229a49e4f", + "addons/core/Sounds/ERR/Speech/soldier_target_down.acp": "77acc89c4ef0b912b969a2e5f6c41e071e04d10cfe89666fbc1296878dab62bf", + "addons/core/Sounds/ERR/Speech/soldier_target_down.acp.meta": "fe456d354ace93b0f2261de483e86ccc92991011b1738c5703d6d7bc0daa49a6", + "addons/core/Sounds/ERR/Speech/soldier_target_down.wav": "e2e60e8b83a24a548c90b84c5e1137adb7e792cf1d4ba6232ddfb1012fa78892", + "addons/core/Sounds/ERR/Speech/soldier_target_down.wav.meta": "064588b86589ac9437fbccafedeefae04bec3331dd8a229d1c6d27b5e524a9e9", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.acp": "5ffd3ff57550296274e9e93fb64efdf2fb06a51161d6deb221c1f3eb408d1459", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.acp.meta": "366a3c9e20f27c0f73bdff5827576df8924e99241061f933e72bd342e5bc7119", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.wav": "bbcf454d48adea47478d410b1baf14df3a5d018237272e70ae33ee62823f822f", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.wav.meta": "d1ac64242280521a7e40de51ae32a007878d7801401020e7a074a48e0f8ce62e", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.acp": "5af1c949d4662c2f33320165d2efdbd69cb183af1101aa246fe538bf0d91a33e", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.acp.meta": "aa7799e8a790539166a1d3a9c691416e7b2f6589d1674f5cf4b3e47523f15259", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.wav": "e4bd5e69fda289593fc6e6b8c2fae9a271a10d0a9bae877f18ba02dbbf75d1fc", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.wav.meta": "25a988c31e4fc3ae6540920df3d4548307a4a1e3b96b1303e9b7bdb4ac5eea27", + "addons/core/Sounds/ERR/Speech/welcome.acp": "f8a7b6cdd08b57b4b227a2d5b480a6c76857d7fc8ace3434478aec01c0de5a83", + "addons/core/Sounds/ERR/Speech/welcome.acp.meta": "d3ac98b02c0725d347b30d0ac7586cb22904d46b65a145e4a1131222484a6929", + "addons/core/Sounds/ERR/Speech/welcome.wav": "01de068469bd6746dba7634fb6b5b85b150621d3359c17fd01bcb916b34b1720", + "addons/core/Sounds/ERR/Speech/welcome.wav.meta": "bf33edad44bbb04df852501154f08a9a9900ce503248abc698127a51e9eec934", + "addons/core/UI/Textures/ERR/SiteMarkers.edds": "611ec6c68c2456c2af017c47135134d73122461017b315f64ed7ca9891f20c21", + "addons/core/UI/Textures/ERR/SiteMarkers.edds.meta": "90f40b38e52a79951b72da2960e30887d5ee8bbcefbada0c0ac950c1bfcf847f", + "addons/core/UI/Textures/ERR/SiteMarkers.imageset": "3f947d03b3492ada541032539cdb3f34a03d68ae83c0ef8796dc7fd091b5911d", + "addons/core/UI/Textures/ERR/SiteMarkers.imageset.meta": "1dc5285abd0062af288fb40b2f22b5b7c3925cf7270a096862335db250ac1453", + "addons/core/UI/Textures/ERR/SiteMarkers.png": "76b472982234bd27050a9430e6a53f4c14fa38f7388db3706ebef506eab4e660", + "addons/core/UI/layouts/ERR/AdminMenu.layout": "9a2c9d6e2526d9318b4587bb69741f828f7f0f26607e5ef3791455fff6a701e3", + "addons/core/UI/layouts/ERR/AdminMenu.layout.meta": "9deeece996f43b1f1fed6b5ec89279645c7b6424250200a42580cc088142e9bf", + "addons/core/UI/layouts/ERR/AdminValue.layout": "cd811af6d2fb187f01c74e20ea07ad85669546b0ad70efae2ce52921ce26cbca", + "addons/core/UI/layouts/ERR/AdminValue.layout.meta": "56b3d2335db400c1308e07c4a35d278b23ef32013dfd6dc82951866327428d08", + "addons/core/UI/layouts/ERR/ContentRow.layout": "7bf19d12b1b5e2c165f8671e92ae9227b54b4d1e551de94fa67bd54d3a66fddb", + "addons/core/UI/layouts/ERR/ContentRow.layout.meta": "8c4bc13b41e7aee38e0ca640a97813ed1a6964a00e2cff9e1fe4ebd71fc2fdc6", + "addons/core/UI/layouts/ERR/ItemRow.layout": "3c7ae3acdf2fad0ba661a1152ea319392668d774adc09a2a8b61e9a0319db312", + "addons/core/UI/layouts/ERR/ItemRow.layout.meta": "33eaef9c403ea3a030e58ec17f78e46af457048243571ad5856fff04101fb60b", + "addons/core/UI/layouts/ERR/ItemWeightRow.layout": "dfa6b87420efc683cb278178553350daa7753004d64672741a3dc13b4316810d", + "addons/core/UI/layouts/ERR/ItemWeightRow.layout.meta": "eb4b28587abdf6100092fd6eee1695663fa6e1548d5e53017173c4a5f7320240", + "addons/core/UI/layouts/ERR/PauseModsButton.layout": "d21d436291e2c1b262e33dc228b0d60a1d188dc9e85cfda6d2373f8281431b79", + "addons/core/UI/layouts/ERR/PauseModsButton.layout.meta": "9ed6adabd8f53eb9a562d7186789876bba5c4202155ca894c1af866ca47354f3", + "addons/core/UI/layouts/ERR/PreparationFailure.layout": "b7c4a2e6aa2be0992b478bb4f969f80355753573fffbc15be44670f3b136ea2e", + "addons/core/UI/layouts/ERR/PreparationFailure.layout.meta": "17ca2c9a12f691680883cec368ff06f511c996e5da5c25498f5f0955887867b0", + "addons/core/UI/layouts/ERR/PreparationStatus.layout": "ec3369f4030e593d34043e70a311b0963606cf024cb452648671556f25f5b52a", + "addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc", + "addons/core/UI/layouts/ERR/RoundResults.layout": "8550ebc009024f619827a43fd766aff8b7fbf8bc87ef7593db0fd7f4d778c615", + "addons/core/UI/layouts/ERR/RoundResults.layout.meta": "7509e050b3910ee5730dd25c60aacf405110e943f4ab46e3fc2186b3b15a3cf9", + "addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout": "82d9ae77f076f945583791dfa0b01f1c925e6ff8aaebcf382fd56089fe61a115", + "addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout.meta": "8691fe2eaf46568bca4a9f8128b247a8da810bb87a5546aa7ca3334e740270d6", + "addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "aef5d565301046ae902033ec4eb4799ff1bdd9a37bc507898781d8790f04fc2a", + "addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "6bcb7fbb27b6282719dae8a37486e518d4cbaea385f2ea9af1918b36bb28b175", + "addons/core/addon.gproj": "6ccf0d3a2817a5f865e605d5abe89bd794e7c8654f2dd005d0f496f05d91e76a" +} diff --git a/docs/evidence/rhs-retired-2026-11-06/launch-source.json b/docs/evidence/rhs-retired-2026-11-06/launch-source.json new file mode 100644 index 00000000..e6215607 --- /dev/null +++ b/docs/evidence/rhs-retired-2026-11-06/launch-source.json @@ -0,0 +1,45 @@ +{ + "schema_version": 1, + "launch_id": "72c1fbf7-2df3-4999-b82e-c311d45e0c64", + "captured_unix": 1793974621.5725198, + "source_root": "/home/jakub/devel/escapistsrereintroduced/.local/rhs-retirement/source", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1920", + "-H", + "1080", + "-w", + "1920", + "-h", + "1080", + "-r", + "30", + "--", + "/home/jakub/.local/share/Steam/steamapps/common/Proton - Experimental/proton", + "run", + "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger Tools/Workbench/ArmaReforgerWorkbenchSteamDiag.exe", + "-gproj", + "Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-retirement/source/addons/core/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-retirement/source/addons", + "-profile", + "Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-retirement/native", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateWorldPlugin", + "-errPlay", + "1", + "-errSmoke", + "0", + "-errSmokeOutcome", + "normal-escape-route", + "-noThrow", + "-disableCrashReporter" + ], + "manifest_sha256": "5eb4a6371e5b915be8970e341590f7fd4fc80dcf3481e0616300a44371d3f1b8" +} diff --git a/docs/evidence/rhs-retired-2026-11-06/native-result.log b/docs/evidence/rhs-retired-2026-11-06/native-result.log new file mode 100644 index 00000000..1986562e --- /dev/null +++ b/docs/evidence/rhs-retired-2026-11-06/native-result.log @@ -0,0 +1,53 @@ +Test audio routed to silent output and muted (stream 55443) +Test audio routed to silent output and muted (stream 55485) +{ + "stopped_unix": 1793974689.0559237, + "console_sha256": "646e42a0216b18e3e8b9a6da1b5f4eb61548a03ec69919d24e6eb0e5571f8bed", + "end_source_sha256": "5eb4a6371e5b915be8970e341590f7fd4fc80dcf3481e0616300a44371d3f1b8", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "72c1fbf7-2df3-4999-b82e-c311d45e0c64", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "5eb4a6371e5b915be8970e341590f7fd4fc80dcf3481e0616300a44371d3f1b8", + "external_addons_unchanged_after_run": true, + "external_addon_count": 7, + "external_addon_inputs": "external-addons-inputs.json", + "started_unix": 1793974621.5727522, + "result": "smoke-completed", + "result_before_cleanup": "smoke-completed", + "cleanup_confirmed": true, + "cleanup_report": { + "cleanup_confirmed": true, + "idle_verified": true, + "errors": [], + "orphan_cleanup": { + "attempted": false, + "reason": "noncanonical-private-prefix" + } + }, + "runner_error": null, + "session": "/home/jakub/devel/escapistsrereintroduced/.local/rhs-retirement/native/logs/logs_2026-11-06_15-17-03", + "rounds_required": 1, + "project": "chat", + "display": "headless Gamescope 1920x1080/30Hz", + "dedicated_server": false, + "audio": "silent sink and per-test-stream mute" +} +{ + "log": "/home/jakub/devel/escapistsrereintroduced/.local/rhs-retirement/native/logs/logs_2026-11-06_15-17-03/console.log", + "smoke_completions": 1, + "assertions_passed": 1, + "script_or_runtime_failures": [], + "engine_errors": [ + "15:17:05.210 RESOURCES (E): Wrong GUID/name for resource @\"{0AFDD005CD669892}Language/rhs_localization.st\" in property \"StringTableSource\"", + "15:17:05.210 RESOURCES (E): Wrong GUID/name for resource @\"{41FA2A08B6971D4C}Language/wcs_armament_localization.st\" in property \"StringTableSource\"", + "15:17:05.210 RESOURCES (E): Wrong GUID/name for resource @\"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st\" in property \"StringTableSource\"", + "15:17:05.211 RESOURCES (E): Wrong GUID/name for resource @\"{E50E557B468C7073}Language/wcs_bmp1_localization.st\" in property \"StringTableSource\"", + "15:17:13.321 DEFAULT (E): Failed to request DLC ownership information.", + "15:17:51.683 WORLD (E): Unknown keyword/data 'm_HardLandingVelocity' at offset 133(0x85)", + "15:17:51.683 WORLD (E): Unknown keyword/data 'm_DeathLandingVelocity' at offset 163(0xa3)" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/rhs-retired-2026-11-06/runner.json b/docs/evidence/rhs-retired-2026-11-06/runner.json new file mode 100644 index 00000000..7c73d5a9 --- /dev/null +++ b/docs/evidence/rhs-retired-2026-11-06/runner.json @@ -0,0 +1,34 @@ +{ + "stopped_unix": 1793974689.0559237, + "console_sha256": "646e42a0216b18e3e8b9a6da1b5f4eb61548a03ec69919d24e6eb0e5571f8bed", + "end_source_sha256": "5eb4a6371e5b915be8970e341590f7fd4fc80dcf3481e0616300a44371d3f1b8", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "72c1fbf7-2df3-4999-b82e-c311d45e0c64", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "5eb4a6371e5b915be8970e341590f7fd4fc80dcf3481e0616300a44371d3f1b8", + "external_addons_unchanged_after_run": true, + "external_addon_count": 7, + "external_addon_inputs": "external-addons-inputs.json", + "started_unix": 1793974621.5727522, + "result": "smoke-completed", + "result_before_cleanup": "smoke-completed", + "cleanup_confirmed": true, + "cleanup_report": { + "cleanup_confirmed": true, + "idle_verified": true, + "errors": [], + "orphan_cleanup": { + "attempted": false, + "reason": "noncanonical-private-prefix" + } + }, + "runner_error": null, + "session": "/home/jakub/devel/escapistsrereintroduced/.local/rhs-retirement/native/logs/logs_2026-11-06_15-17-03", + "rounds_required": 1, + "project": "chat", + "display": "headless Gamescope 1920x1080/30Hz", + "dedicated_server": false, + "audio": "silent sink and per-test-stream mute" +} diff --git a/docs/evidence/rhs-retired-2026-11-06/script.log b/docs/evidence/rhs-retired-2026-11-06/script.log new file mode 100644 index 00000000..66ad4ded --- /dev/null +++ b/docs/evidence/rhs-retired-2026-11-06/script.log @@ -0,0 +1,90 @@ +--------------------------------------------- +Log Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-retirement\native\logs\logs_2026-11-06_15-17-03\script.log started at 2026-11-06 15:17:06 (2026-11-06 14:17:06 UTC) + +15:17:06.112 SCRIPT : SCRIPT : Initializing scripts +15:17:06.112 SCRIPT : SCRIPT : ScriptProjectManager init +15:17:08.932 SCRIPT : SCRIPT : Compiling GameLib scripts +15:17:08.989 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +15:17:08.989 SCRIPT : Module: GameLib; loaded 513x files; 704x classes; used 887K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 35487d81 +15:17:08.990 SCRIPT : SCRIPT : Compiling Game scripts +15:17:09.969 SCRIPT : Compiling Game scripts +15:17:09.969 SCRIPT (W): @"Scripts/Game/Parachutes/ParachuteDeployed.c,7": Pointer type 'Physics' can only be used with local variables +15:17:10.175 SCRIPT (W): @"Scripts/Game/Components/Vehicles/RHS_VehicleAntennaComponent.c,82": Pointer type 'Animation' can only be used with local variables +15:17:10.635 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,787": 'GetPlayerPlatformKind' is obsolete +15:17:10.635 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,788": 'GetPlayerPlatformId' is obsolete +15:17:11.134 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SiteService.c,363": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:17:11.154 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +15:17:11.211 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +15:17:11.373 SCRIPT (W): @"Scripts/Game/Components/Magazines/SCR_MagazineComponent.c,134": Variable 'prefabPath' is not used +15:17:11.393 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +15:17:11.393 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +15:17:11.393 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +15:17:11.393 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +15:17:11.428 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,77": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:17:11.441 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +15:17:11.529 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +15:17:11.529 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +15:17:11.531 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +15:17:11.572 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,186": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:17:11.603 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,311": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:17:11.603 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,323": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:17:11.605 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +15:17:11.605 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +15:17:11.648 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c,138": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:17:11.695 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +15:17:12.133 SCRIPT : Module: WorkbenchGame; loaded 187x files; 692x classes; used 2796K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 53d2bfa5 +15:17:12.144 SCRIPT : Module: Game; loaded 6965x files; 14468x classes; used 45292K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,SHOW_DISCLAIMER,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,GAME_MODE_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG,WCS_DEFINES_ARMAMENTS,WCS_DEFINES_SPACECORE"; CRC32: 15013bce +15:17:13.321 SCRIPT : Unable to register a script command due keyword duplicity: ban +15:17:13.321 SCRIPT : Unable to register a script command due keyword duplicity: kick +15:17:28.810 SCRIPT : Reintroduced [config]: using $profile:Escapists.json; legacy files retained but no longer used. +15:17:30.489 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562 +15:17:30.490 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531 +15:17:30.490 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516 +15:17:30.490 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5 +15:17:30.490 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453 +15:17:30.491 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406 +15:17:30.492 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438 +15:17:30.492 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438 +15:17:30.492 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422 +15:17:30.492 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391 +15:17:30.492 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344 +15:17:30.492 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344 +15:17:30.493 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344 +15:17:30.493 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344 +15:17:30.493 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328 +15:17:30.493 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281 +15:17:30.493 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25 +15:17:30.493 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281 +15:17:30.493 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25 +15:17:30.495 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234 +15:17:30.495 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188 +15:17:30.495 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156 +15:17:30.495 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172 +15:17:30.496 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156 +15:17:30.496 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141 +15:17:30.496 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094 +15:17:30.519 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625 +15:17:34.666 SCRIPT : Unable to register a script command due keyword duplicity: ban +15:17:34.666 SCRIPT : Unable to register a script command due keyword duplicity: kick +15:17:46.929 SCRIPT : Reintroduced [loading]: respawn animation and preparation display attached to Escape +15:17:51.676 SCRIPT : Map load time: 2474ms +15:17:51.688 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_PUNISHMENT_KILLING_SET'. There should only be one of each key! +15:17:51.688 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_TYPE_DISABLED'. There should only be one of each key! +15:17:51.691 SCRIPT (W): Can't open config file "" +15:17:51.702 SCRIPT (W): Slot_WeaponInfo Has no Content! +15:17:51.703 SCRIPT (W): Slot_Chat Has no Content! +15:17:51.703 SCRIPT (W): Slot_VON Has no Content! +15:17:51.703 SCRIPT (W): Slot_AvailableActions Has no Content! +15:17:51.703 SCRIPT (W): Slot_Vehicle Has no Content! +15:17:51.703 SCRIPT (W): Slot_GameVersion Has no Content! +15:17:51.703 SCRIPT (W): Slot_Notifications Has no Content! +15:17:51.703 SCRIPT (W): Slot_Hints Has no Content! +15:17:51.727 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {259EE7B78C51B624}UAZ469.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants. +15:17:51.727 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants. +15:17:51.728 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants. +15:17:51.734 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +15:17:51.877 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +15:17:51.893 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +15:17:52.102 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:18:02.257 SCRIPT : ERR SMOKE PASS: updated RHS compiled and game mode initialized without either embedded 1.9 override +15:18:02.257 SCRIPT : ERR SMOKE COMPLETE: RHS compatibility overrides removed diff --git a/docs/evidence/rhs-retired-2026-11-06/source-comparison.json b/docs/evidence/rhs-retired-2026-11-06/source-comparison.json new file mode 100644 index 00000000..78c3396e --- /dev/null +++ b/docs/evidence/rhs-retired-2026-11-06/source-comparison.json @@ -0,0 +1,8 @@ +{ + "production_files_matched_except_project": 720, + "removed_overrides_absent": [ + "addons/core/Scripts/Game/Editor/Components/EditableEntity/RHS_CAS_EditableEntityComponent.c", + "addons/core/Scripts/Game/Vehicle/RHS_DestructionTireComponent.c" + ], + "test_only": "Rally dependency in project and initialization-only probe" +} diff --git a/docs/evidence/rhs-standalone-published-2026-11-05/README.md b/docs/evidence/rhs-standalone-published-2026-11-05/README.md new file mode 100644 index 00000000..2ffcff80 --- /dev/null +++ b/docs/evidence/rhs-standalone-published-2026-11-05/README.md @@ -0,0 +1,14 @@ +# Standalone RHS publication — 5 November 2026 + +Published RHS 1.9 Compatibility 1.0.0, Workshop ID E119F1C05A274B83. +The Systems category selected correctly in a fresh private Workbench profile +after backing up the disposable prefix DbgUIState.bin. This does not isolate +which reset resolved the original category problem. The user editor was untouched. + +The listing is public, uses APL-ND, includes RHS attribution/EULA and the gear +preview. Upload and backend processing both succeeded. The packed two scripts +match the previously tested patch. No WCS or Propeller fix is included. + +The UI runner was intentionally stopped after publication; prefix-scoped cleanup +confirmed idle. Escape remains 0.0.141 and already embeds the same two fixes. +The main-mission changelog helper is not applicable to this different addon ID. diff --git a/docs/evidence/rhs-standalone-published-2026-11-05/console.log b/docs/evidence/rhs-standalone-published-2026-11-05/console.log new file mode 100644 index 00000000..e8a2e669 --- /dev/null +++ b/docs/evidence/rhs-standalone-published-2026-11-05/console.log @@ -0,0 +1,231 @@ +--------------------------------------------- +Log Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-19-work\rhs-publish-retry\logs\logs_2026-11-05_18-34-08\console.log started at 2026-11-05 18:34:08 (2026-11-05 17:34:08 UTC) + +18:34:08.271 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-19-work\rhs-publish-retry\logs\logs_2026-11-05_18-34-08' to filesystem under name logs +18:34:08.272 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-19-work\rhs-publish-retry\profile' to filesystem under name profile +18:34:08.272 ENGINE : FileSystem: Current working directory: 'Z:\home\jakub\.local\share\Steam\steamapps\common\Arma Reforger Tools\Workbench\' +18:34:08.273 PROFILING : Workbench Create Engine took: 8.264400 ms +18:34:09.307 INIT : INIT : Workbench Init Engine +18:34:09.307 ENGINE : Initializing engine, version 193322 +18:34:09.307 ENGINE : CLI Params: -gproj Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-addon/addon.gproj -addonsDir Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons -profile Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry -logconsole -noSound -disableCrashReport -wbModule ResourceManager +18:34:09.317 ENGINE : Addon dirs: +18:34:09.317 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-addon/' +18:34:09.317 ENGINE : dir: './addons' +18:34:09.317 ENGINE : dir: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons' +18:34:09.317 ENGINE : Available addons: +18:34:09.317 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-addon/addon.gproj' guid: 'E119F1C05A274B83' +18:34:09.317 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' (packed) +18:34:09.317 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' (packed) +18:34:09.317 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_1337C0DE5DABBEEF/addon.gproj' guid: '1337C0DE5DABBEEF' (packed) +18:34:09.317 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_595F2BF2F44836FB/addon.gproj' guid: '595F2BF2F44836FB' (packed) +18:34:09.317 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_5E389BB9F58B79A6/addon.gproj' guid: '5E389BB9F58B79A6' (packed) +18:34:09.317 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_5E524E4FEECCA92B/addon.gproj' guid: '5E524E4FEECCA92B' (packed) +18:34:09.317 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_629B2BA37EFFD577/addon.gproj' guid: '629B2BA37EFFD577' (packed) +18:34:09.317 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_65930CB4CD0237B2/addon.gproj' guid: '65930CB4CD0237B2' (packed) +18:34:09.317 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_BADC0DEDABBEDA5E/addon.gproj' guid: 'BADC0DEDABBEDA5E' (packed) +18:34:09.317 ENGINE : FileSystem: Adding relative directory 'Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-19-addon' to filesystem under name ERR_RHS19Fix +18:34:09.322 ENGINE : FileSystem: Adding package 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_595F2BF2F44836FB/' (pak count: 1) to filesystem under name RHS_Core +18:34:09.324 ENGINE : FileSystem: Adding package 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_BADC0DEDABBEDA5E/' (pak count: 2) to filesystem under name RHS_Content_02 +18:34:09.328 ENGINE : FileSystem: Adding package 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_1337C0DE5DABBEEF/' (pak count: 4) to filesystem under name RHS_Content_01 +18:34:09.433 ENGINE : FileSystem: Adding package 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ArmaReforger/' (pak count: 15) to filesystem under name ArmaReforger +18:34:09.436 ENGINE : FileSystem: Adding package './addons/core/' (pak count: 2) to filesystem under name core +18:34:09.436 ENGINE : CPU vendor : AuthenticAMD +18:34:09.436 ENGINE : CPU type : 2 +18:34:09.436 ENGINE : CPU name : AMD Ryzen 7 3800XT 8-Core Processor +18:34:09.436 ENGINE : CPU cache info : L1 [Inst 32KB, Data 32KB], L2 [Unif 512KB], L3 [Unif 16384KB] +18:34:09.436 ENGINE : CPU count logical : 16 +18:34:09.436 ENGINE : CPU count physical : 8 +18:34:09.436 ENGINE : CPU features : mmx sse sse2 sse3 ssse3 sse4_1 sse4_2 popcnt aesni pclmulqdq osxsave avx sha avx2 +18:34:09.436 RESOURCES : ResourceDB: loading cache (id=0 name=ERR_RHS19Fix path=Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-19-addon/resourceDatabase.rdb) +18:34:09.436 RESOURCES : ResourceDB: loading cache (id=1 name=RHS_Core path=Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_595F2BF2F44836FB/resourceDatabase.rdb) +18:34:09.444 RESOURCES : ResourceDB: loading cache (id=2 name=RHS_Content_02 path=Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_BADC0DEDABBEDA5E/resourceDatabase.rdb) +18:34:09.446 RESOURCES : ResourceDB: loading cache (id=3 name=RHS_Content_01 path=Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_1337C0DE5DABBEEF/resourceDatabase.rdb) +18:34:09.453 RESOURCES : ResourceDB: loading cache (id=4 name=ArmaReforger path=Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ArmaReforger/resourceDatabase.rdb) +18:34:09.581 RESOURCES : ResourceDB: loading cache (id=5 name=core path=./addons/core/resourceDatabase.rdb) +18:34:09.583 RESOURCES : ResourceDB: loading cache (id=6 name=profile path=Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-19-work\rhs-publish-retry\profile/resourceDatabase.rdb) +18:34:09.583 RESOURCES : ResourceDB: loading cache (id=7 name=logs path=Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-19-work\rhs-publish-retry\logs\logs_2026-11-05_18-34-08/resourceDatabase.rdb) +18:34:09.746 RESOURCES : RESOURCES : ResourceDB: full scan +18:34:09.751 RESOURCES : RESOURCES : scanning... +18:34:09.751 RESOURCES : RESOURCES : scanning @"ERR_RHS19Fix" +18:34:09.763 RESOURCES : RESOURCES : scanning @"RHS_Core" +18:34:09.774 RESOURCES : RESOURCES : scanning @"RHS_Content_02" +18:34:09.778 RESOURCES : RESOURCES : scanning @"RHS_Content_01" +18:34:09.787 RESOURCES : RESOURCES : scanning @"ArmaReforger" +18:34:09.988 RESOURCES : RESOURCES : scanning @"core" +18:34:09.992 RESOURCES : RESOURCES : scanning @"profile" +18:34:09.992 RESOURCES : RESOURCES : scanning @"logs" +18:34:09.992 RESOURCES : RESOURCES : processing meta-files... +18:34:10.060 RESOURCES : 114145 meta-files cached, 0 loaded again +18:34:10.060 RESOURCES : RESOURCES : processing files... +18:34:10.061 INIT : Workbench startup +18:34:10.061 INIT : Workbench Init Engine +18:34:10.061 RESOURCES : ResourceDB: full scan +18:34:10.061 RESOURCES : processing files... +18:34:10.061 RESOURCES (W): resource not registered: @"$RHS_Core:system/thermal/thermalProfileTreeCrownDefault.conf". Setting null GUID +18:34:10.074 RESOURCES (W): resource not registered: @"$logs:external-addons-inputs.json". Setting null GUID +18:34:10.074 RESOURCES (W): resource not registered: @"$logs:launch-source-sha256.json". Setting null GUID +18:34:10.074 RESOURCES (W): resource not registered: @"$logs:launch-source.json". Setting null GUID +18:34:10.074 RESOURCES : RESOURCES : processing folders... +18:34:10.082 RESOURCES : RESOURCES : creating GUID-item mapping... +18:34:10.098 RESOURCES : RESOURCES : building tree... +18:34:10.152 PROFILING : ResourceDB: full scan took: 406.126200 ms +18:34:10.153 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_RHS19Fix path=Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-19-addon/resourceDatabase.rdb) +18:34:10.155 RESOURCES : ResourceDB: written 526/526 bytes +18:34:10.155 RESOURCES : ResourceDB: cache successfully saved +18:34:10.155 RESOURCES : ResourceDB: saving cache (id=6 name=profile path=Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-19-work\rhs-publish-retry\profile/resourceDatabase.rdb) +18:34:10.157 RESOURCES : ResourceDB: written 51/51 bytes +18:34:10.157 RESOURCES : ResourceDB: cache successfully saved +18:34:10.157 RESOURCES : ResourceDB: saving cache (id=7 name=logs path=Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-19-work\rhs-publish-retry\logs\logs_2026-11-05_18-34-08/resourceDatabase.rdb) +18:34:10.158 RESOURCES : ResourceDB: written 208/208 bytes +18:34:10.158 RESOURCES : ResourceDB: cache successfully saved +18:34:10.158 ENGINE : GameProject load +18:34:10.158 ENGINE : Loaded addons: +18:34:10.158 ENGINE : gproj: './addons/core/core.gproj' guid: '5614BBCCBB55ED1C' +18:34:10.158 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ArmaReforger/ArmaReforger.gproj' guid: '58D0FB3206B6F859' +18:34:10.158 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_1337C0DE5DABBEEF/addon.gproj' guid: '1337C0DE5DABBEEF' +18:34:10.158 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_BADC0DEDABBEDA5E/addon.gproj' guid: 'BADC0DEDABBEDA5E' +18:34:10.158 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_595F2BF2F44836FB/addon.gproj' guid: '595F2BF2F44836FB' +18:34:10.158 ENGINE : gproj: 'Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-addon/addon.gproj' guid: 'E119F1C05A274B83' +18:34:10.160 ENGINE : GameProject load +18:34:10.160 INIT : GameProject load project data @"Z:/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/addons/ERRI_595F2BF2F44836FB/addon.gproj" +18:34:10.160 RESOURCES (E): Wrong GUID/name for resource @"{0AFDD005CD669892}Language/rhs_localization.st" in property "StringTableSource" +18:34:10.161 ENGINE : Loading custom engine user config '$profile:.save/app1874910_user76561198020202999/settings/ReforgerEngineSettings.conf' +18:34:10.161 ENGINE : No Enfusion settings file loaded. Continuing with defaults +18:34:10.260 RENDER : (OK) Adapter 'AMD Radeon RX 6950 XT (RADV NAVI21)' supports feature level 12_0 +18:34:10.261 RENDER : Basic screen setup: +18:34:10.261 RENDER : Back buffer format : TEXFMT_R8G8B8A8_SRGB (29) +18:34:10.261 RENDER : MSAA : none +18:34:10.274 RENDER : AMD AGS library initialized, version 6.1.0 x DLL 6.1.0 +18:34:10.274 RENDER : Extendeded AMD info for AMD Radeon RX 6950 XT (RADV NAVI21) (primary device) +18:34:10.274 RENDER : * architecture RDNA2, 80 CUs, 40 WGPs (for RDNA), 64 ROPs +18:34:10.274 RENDER : * core clocks 2000 MHz, memory 1124 MHz +18:34:10.274 RENDER : * TFlops 20.5, memory bandwidth (562.0 GB/s) +18:34:10.274 RENDER : AMD AGS correctly initialized +18:34:10.275 RENDER : GPU_ATI (0x1002) (AMD Radeon RX 6950 XT (RADV NAVI21)) with 1 GPU detected, VRAM 16128MB (fast 0MB), shared 64362MB, driver version 99.19.02-230831a-396538C-AMD-Software-Adrenalin-Edition +18:34:10.275 RENDER : Detected output devices: +18:34:10.275 RENDER : * 1 device/s connected to AMD Radeon RX 6950 XT (RADV NAVI21): +18:34:10.275 RENDER : Generic Non-PnP Monitor (\\.\DISPLAY1), 1280x720 (offset 0x0), 30Hz +18:34:10.275 RENDER : Concurrent frames limit 2 +18:34:10.351 RENDER : DX12 device successfully created by AMD AGS library +18:34:10.351 RENDER : * user markers not supported in this version AMD SW +18:34:10.351 RENDER : Graphics device features +18:34:10.351 RENDER : Needed: +18:34:10.351 RENDER : * Highest supported shader model: 6.8 (6.0 needed) +18:34:10.351 RENDER : Optional: +18:34:10.351 RENDER : * Allow tearing (VSYNC) : 1 +18:34:10.351 RENDER : * 16 bits : 1 +18:34:10.351 RENDER : * Resource heap tier : 3 +18:34:10.351 RENDER : * Persistent heaps (DRED) : 1 +18:34:10.351 RENDER : * DRED 1.2 is supported by compiler +18:34:10.372 RENDER : Main RT format setup. +18:34:10.372 RENDER : Main RT format for quality 0 : TEXFMT_R11G11B10_FLOAT (26) +18:34:10.372 RENDER : Main RT format for quality 1 : TEXFMT_R16G16B16A16_FLOAT (10) +18:34:10.374 ENGINE : Job system settings: coreCount=16, shortJobContextCount=16, shortJobThreadCount=15, longJobThreadCount=16 +18:34:10.399 PROFILING : Settings changed took: 0.013300 ms +18:34:10.405 RENDER : RENDER : Reload shaders +18:34:10.405 RENDER : Enfusion shader version 37 +18:34:10.405 INIT : INIT : ShaderListReload +18:34:10.405 PROFILING : ShaderListReload took: 0.000500 ms +18:34:10.687 RENDER : Loaded 4592 newer shader binaries +18:34:10.687 PROFILING : Reload shaders took: 282.325800 ms +18:34:10.687 ENGINE : Initializing inputs. +18:34:10.701 RENDER : Super resolution method available: AMD FSR 1 +18:34:10.701 NETWORK : Initializing networking. +18:34:10.701 NETWORK : Using new GameRplScheduler. +18:34:10.702 SCRIPT : SCRIPT : Initializing scripts +18:34:10.702 SCRIPT : SCRIPT : ScriptProjectManager init +18:34:12.235 PROFILING : ScriptProjectManager init took: 1534.020100 ms +18:34:12.274 PROFILING : Initializing scripts took: 1572.994200 ms +18:34:12.295 ENGINE : Enfusion engine successfully created. +18:34:12.295 PROFILING : Workbench Init Engine took: 2989.597500 ms +18:34:12.295 INIT : INIT : Workbench Create Game +18:34:12.329 GUI : Using default language (en_us) +18:34:12.329 GUI : Loading 'en_us' localization file. +18:34:12.329 INIT : INIT : Loading StringTable +18:34:12.359 PROFILING : Loading StringTable took: 30.198200 ms +18:34:12.359 SCRIPT : SCRIPT : Compiling GameLib scripts +18:34:12.425 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +18:34:12.425 SCRIPT : Module: GameLib; loaded 512x files; 704x classes; used 887K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: a2fafa86 +18:34:12.426 PROFILING : Compiling GameLib scripts took: 66.651700 ms +18:34:12.426 SCRIPT : SCRIPT : Compiling Game scripts +18:34:13.526 INIT : Workbench Create Game +18:34:13.526 SCRIPT : Compiling Game scripts +18:34:13.526 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,787": 'GetPlayerPlatformKind' is obsolete +18:34:13.526 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,788": 'GetPlayerPlatformId' is obsolete +18:34:13.782 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +18:34:13.812 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +18:34:13.899 SCRIPT (W): @"Scripts/Game/Components/Magazines/SCR_MagazineComponent.c,134": Variable 'prefabPath' is not used +18:34:13.911 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +18:34:13.911 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +18:34:13.911 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +18:34:13.911 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +18:34:13.993 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +18:34:13.993 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +18:34:13.995 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +18:34:14.034 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +18:34:14.034 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +18:34:14.081 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +18:34:14.444 SCRIPT : Module: WorkbenchGame; loaded 184x files; 690x classes; used 2792K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 7a91374f +18:34:14.451 SCRIPT : Module: Game; loaded 6193x files; 12247x classes; used 35594K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,SHOW_DISCLAIMER,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,GAME_MODE_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG"; CRC32: 3a6fbb0c +18:34:14.498 PROFILING : Compiling Game scripts took: 2072.183900 ms +18:34:14.503 INIT : Creating game instance(ArmaReforgerScripted), version 1.9.0.37 built 2026-10-27 15:39:59 UTC. +18:34:14.557 ENGINE : Game successfully created. +18:34:14.558 PROFILING : Workbench Create Game took: 2262.603000 ms +18:34:14.566 DEFAULT : Using thumbnail cache directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_RHS19Fix/thumbnails +18:34:15.475 DEFAULT : Using autosave directory: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Projects/ERR_RHS19Fix/autosaves +18:34:15.477 PROFILING : Workbench startup took: 7256.685500 ms +18:34:18.653 DEFAULT : Checking pending workshop invites... +18:34:18.889 DEFAULT : Pending workshop invites request done (1) +18:37:03.044 DEFAULT : Checking pending workshop invites... +18:37:03.306 DEFAULT : Pending workshop invites request done (1) +18:41:13.371 DEFAULT : Creating bundle... +18:41:13.382 DEFAULT : Checking required files... +18:41:13.413 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_RHS19Fix path=Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-19-addon/resourceDatabase.rdb) +18:41:13.415 RESOURCES : ResourceDB: written 526/526 bytes +18:41:13.415 RESOURCES : ResourceDB: cache successfully saved +18:41:13.415 RESOURCES : ResourceDB: saving cache (id=6 name=profile path=Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-19-work\rhs-publish-retry\profile/resourceDatabase.rdb) +18:41:13.417 RESOURCES : ResourceDB: written 51/51 bytes +18:41:13.417 RESOURCES : ResourceDB: cache successfully saved +18:41:13.417 RESOURCES : ResourceDB: saving cache (id=7 name=logs path=Z:\home\jakub\devel\escapistsrereintroduced\.local\rhs-19-work\rhs-publish-retry\logs\logs_2026-11-05_18-34-08/resourceDatabase.rdb) +18:41:13.419 RESOURCES : ResourceDB: written 208/208 bytes +18:41:13.419 RESOURCES : ResourceDB: cache successfully saved +18:41:13.419 RESOURCES : Packaging project started. +18:41:13.430 DEFAULT : DEFAULT : Scanning source directory +18:41:13.432 PROFILING : Scanning source directory took: 1.303600 ms +18:41:13.432 DEFAULT : DEFAULT : Scanning intermediate directory +18:41:13.432 PROFILING : Scanning intermediate directory took: 0.160200 ms +18:41:13.432 DEFAULT : DEFAULT : Refreshing intermediate directory +18:41:13.434 DEFAULT : Refreshed 2 files in intermediate directory. +18:41:13.434 PROFILING : Refreshing intermediate directory took: 2.290900 ms +18:41:13.434 DEFAULT : DEFAULT : Assigning files to selections +18:41:13.434 DEFAULT : Selection 'data': 2 files +18:41:13.434 DEFAULT : Default/unassigned selection: 0 files +18:41:13.434 PROFILING : Assigning files to selections took: 0.027500 ms +18:41:13.434 DEFAULT : DEFAULT : Calculating chunk pak layouts +18:41:13.434 PROFILING : Calculating chunk pak layouts took: 0.006000 ms +18:41:13.434 DEFAULT : DEFAULT : Writing pak files +18:41:13.435 PROFILING : Writing pak files took: 0.524100 ms +18:41:13.435 RESOURCES : Packaging done. Result: 1 +18:41:13.436 RESOURCES : Gproj file copy successful +18:41:13.437 DEFAULT : Created PAK files: +18:41:13.437 RESOURCES : 1: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Publishing/E119F1C05A274B83/data.pak +18:41:13.439 RESOURCES : Packaging project successful +18:41:13.441 RESOURCES : ResourceDB: saving cache (id=0 name=ERR_RHS19Fix path=C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Publishing/E119F1C05A274B83/resourceDatabase.rdb) +18:41:13.442 RESOURCES : ResourceDB: written 466/466 bytes +18:41:13.442 RESOURCES : ResourceDB: cache successfully saved +18:41:13.466 RESOURCES : Saving manifest successful: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Publishing/E119F1C05A274B83/manifest.json +18:41:13.466 DEFAULT : Bundle successfully saved into: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Publishing/E119F1C05A274B83 +18:41:13.469 RESOURCES : Creating bundle successful +18:41:13.469 DEFAULT : Validating bundle... +18:41:13.480 DEFAULT : Validating bundle successful +18:41:46.191 DEFAULT : Publishing project to Workshop... +18:41:46.197 DEFAULT : Validating bundle... +18:41:46.208 DEFAULT : Validating bundle successful +18:41:48.592 DEFAULT : Uploading status: 20% +18:41:48.634 DEFAULT : Uploading status: 25% +18:41:49.021 DEFAULT : Uploading status: 70% +18:41:49.212 DEFAULT : Uploading status: 100% +18:41:50.189 DEFAULT : Uploading finished +18:41:50.189 DEFAULT : Project uploaded successfully +18:41:50.189 DEFAULT : Checking addon processing status... +18:44:13.235 DEFAULT : Addon processing successful diff --git a/docs/evidence/rhs-standalone-published-2026-11-05/external-addons-inputs.json b/docs/evidence/rhs-standalone-published-2026-11-05/external-addons-inputs.json new file mode 100644 index 00000000..cae3fc13 --- /dev/null +++ b/docs/evidence/rhs-standalone-published-2026-11-05/external-addons-inputs.json @@ -0,0 +1,851 @@ +{ + "1337C0DE5DABBEEF": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack01_1337C0DE5DABBEEF", + "title": "RHS: Status Quo - Content Pack 01", + "version": "0.16.5236", + "files": { + "ServerData.json": { + "stat": [ + 47, + 916830, + 209, + 1791217537263294562, + 1791217537263294562 + ], + "sha256": "191c50eba8ec43670d1adf9c600b4eaa1eccce659b8572a4f10ead4e7abe612e" + }, + "addon.gproj": { + "stat": [ + 47, + 32064141, + 335, + 1791217514094252612, + 1791217536463650049 + ], + "sha256": "65197c50ff6e906a5732564e8b440d80ef1cdbcffead9eb388e1e2b56c1322bc" + }, + "addon.gproj_0.16.5236_manifest.json": { + "stat": [ + 47, + 32064122, + 362, + 1791217492996283583, + 1791217492996283583 + ], + "sha256": "17b87e0976ac2da1032f1661a884f6d59b56c00823b2fcfdc2a698ea8bcc92cc" + }, + "data.pak": { + "stat": [ + 47, + 32064165, + 1992950655, + 1791217529019417115, + 1791217536749658990 + ], + "sha256": "6f03d41961efe91af0060c0362c8a65c31d34c4f0ba173a4ddc8eb8ee965c4cb" + }, + "data.pak_0.16.5236_manifest.json": { + "stat": [ + 47, + 32064123, + 232639, + 1791217493181289432, + 1791217493181289432 + ], + "sha256": "e1b26dacd2d4054b748824f737693975b07bc9ff383b5e973a8915f58c01591e" + }, + "data001.pak": { + "stat": [ + 47, + 32064187, + 1992538370, + 1791217526882350163, + 1791217537231674056 + ], + "sha256": "6426f25d25633e9d3e34fd064e56a02230f5c7b85176dd73d8914eeb772ef8c8" + }, + "data001.pak_0.16.5236_manifest.json": { + "stat": [ + 47, + 32064126, + 349868, + 1791217493712306218, + 1791217493712306218 + ], + "sha256": "027b0a089cf9c9b099ea8f06a4bfb025a383de718df13df71313089215655d12" + }, + "data002.pak": { + "stat": [ + 47, + 32064182, + 1992467294, + 1791217529310426228, + 1791217537064668837 + ], + "sha256": "5596b2bf81be625ae76e4a22e2d802e730c9fe4ae127c7fa713dd002d45b899d" + }, + "data002.pak_0.16.5236_manifest.json": { + "stat": [ + 47, + 32064125, + 332026, + 1791217493496299390, + 1791217493496299390 + ], + "sha256": "a918a87020efea578db5698f03698d07b3b7f3ebb2c5804202766e6e6d2c8021" + }, + "data003.pak": { + "stat": [ + 47, + 32064138, + 364877149, + 1791217516523025099, + 1791217536462650018 + ], + "sha256": "ba633b5025f357a37f74f2484b8cfe0d51a88b1e732fdf95d982e9d17b66828e" + }, + "data003.pak_0.16.5236_manifest.json": { + "stat": [ + 47, + 32064121, + 96448, + 1791217492872279662, + 1791217492872279662 + ], + "sha256": "ceca6220d153deaf4cd4ea9aecb4d1a9db63e4f4f950deb2acfc03cbe52ae431" + }, + "meta": { + "stat": [ + 47, + 911092, + 8188, + 1791217537260674963, + 1791217537260674963 + ], + "sha256": "ab21fee89c49e2622f33c3f614b4a0b8671985a9d3bc138baaec92bb4574bb33" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 32064190, + 567385, + 1791217514761969753, + 1791217537232674088 + ], + "sha256": "a71a5e6639ad4c44787eed5916dc4e153886326382d05c20cef179fd8c532fcb" + }, + "resourceDatabase.rdb_0.16.5236_manifest.json": { + "stat": [ + 47, + 32064127, + 368, + 1791217493836310139, + 1791217493836310139 + ], + "sha256": "d0a77a21db87a11b0a67e3adca189e4868c2f348d918fd04af6b8a6bb5b9fb31" + }, + "thumbnail.png": { + "stat": [ + 47, + 32064168, + 18180, + 1791217514094761493, + 1791217536749658990 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.16.5236_manifest.json": { + "stat": [ + 47, + 32064124, + 366, + 1791217493307293415, + 1791217493307293415 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + }, + "595F2BF2F44836FB": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-StatusQuo_595F2BF2F44836FB", + "title": "RHS: Status Quo", + "version": "0.16.5237", + "files": { + "ServerData.json": { + "stat": [ + 47, + 910012, + 3022, + 1791300979137534085, + 1791300979137534085 + ], + "sha256": "94bcd198ec248f7e1317838378d902fe8e098d052a4cb9575a68029d8f3ae21a" + }, + "addon.gproj": { + "stat": [ + 47, + 32244359, + 1101, + 1791300968688283305, + 1791300979087532885 + ], + "sha256": "51fda0afde5ebcd4dc88c6c9451d960b67aceaee437f02f1cc80aef724e3779c" + }, + "addon.gproj_0.16.5237_manifest.json": { + "stat": [ + 47, + 32244348, + 364, + 1791300967569256451, + 1791300967569256451 + ], + "sha256": "c67690023c7ecfda231509b46545febea451145a060277b8178c14ebaebb82b8" + }, + "data.pak": { + "stat": [ + 47, + 32244356, + 203465487, + 1791300978292513803, + 1791300979065532357 + ], + "sha256": "dcceaad42c6ac6ffaef277a2e7ec799a1b4f1d5c27e885d83728245c52a82e9e" + }, + "data.pak_0.16.5237_manifest.json": { + "stat": [ + 47, + 32244347, + 1414398, + 1791300967419252851, + 1791300967419252851 + ], + "sha256": "973213b9295b25179f079ff0e01baa7f49418d1f24bedba331930177b6c60496" + }, + "meta": { + "stat": [ + 47, + 902077, + 12812, + 1792584948525389732, + 1792584948525389732 + ], + "sha256": "35a3f1e3c74b73b57235ec5ae2fe4a798740501272afdbf06cf2b3b3e3680eb4" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 32244362, + 826592, + 1791300968575280593, + 1791300979087532885 + ], + "sha256": "b7977b6dad5dcf8b140a860dc425184cc04ba24b310124184c6bad232109bc03" + }, + "resourceDatabase.rdb_0.16.5237_manifest.json": { + "stat": [ + 47, + 32244349, + 368, + 1791300967709259811, + 1791300967709259811 + ], + "sha256": "0296f06bb84669527e3580aa4e2fc053ee27ee39a8c9bb1bd87762e9b7f8fdc7" + }, + "thumbnail.png": { + "stat": [ + 47, + 32244353, + 18180, + 1791300968572481488, + 1791300978991147498 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.16.5237_manifest.json": { + "stat": [ + 47, + 32244346, + 366, + 1791300966985242436, + 1791300966985242436 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + }, + "5E389BB9F58B79A6": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/SpaceCore_5E389BB9F58B79A6", + "title": "WCS_SpaceCore", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 919166, + 197, + 1791905536676880291, + 1791905536676880291 + ], + "sha256": "7590c843333aec0f90fb2663dab5f0f764fac6baa96cda65038d15777e18b581" + }, + "addon.gproj": { + "stat": [ + 47, + 33588062, + 2957, + 1791905535812995569, + 1791905536666241292 + ], + "sha256": "2db2e318e6f45bede0d1173d77af03314f888aedfb31bc767d569ccfb6e70a34" + }, + "addon.gproj_8.4.0_manifest.json": { + "stat": [ + 47, + 33588053, + 364, + 1791905535321183833, + 1791905535321183833 + ], + "sha256": "67d15a8e8623130546332c6d6433314cbdf38e034a66330b9c7a739a94731e21" + }, + "data.pak": { + "stat": [ + 47, + 33588059, + 25392053, + 1791905536569237148, + 1791905536663241163 + ], + "sha256": "0e783e0179a90d2764361c1833824b64b0d0270a09716599ff593a318f0f14cd" + }, + "data.pak_8.4.0_manifest.json": { + "stat": [ + 47, + 33588052, + 31209, + 1791905535162177040, + 1791905535162177040 + ], + "sha256": "6719a69faacb0cd291b816ff2f26ce87c54fdda3d3718897d64d143d97e887cf" + }, + "meta": { + "stat": [ + 47, + 918678, + 2338, + 1791905536675241676, + 1791905536675241676 + ], + "sha256": "ac0338fc8260380e7b399b73e24b2c963420694a3fd9eaa0c0acf93baec938bd" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 33588065, + 23196, + 1791905536041214598, + 1791905536667241335 + ], + "sha256": "f8e7de8778bec66ba13e1ebe7f1ddb29667cc9738e0ccf3f977180ff7e05d449" + }, + "resourceDatabase.rdb_8.4.0_manifest.json": { + "stat": [ + 47, + 33588054, + 366, + 1791905535503191610, + 1791905535503191610 + ], + "sha256": "730c5097d76cde9084a700a426f917569dda13b553dc88aaaf2ee876e3607fa1" + }, + "thumbnail.png": { + "stat": [ + 47, + 33588068, + 689401, + 1791905535814204899, + 1791905536667241335 + ], + "sha256": "8da2e133303f21bb16a2abd25d5bd6c2a4a6f5eccedae74a98358db485a170d1" + }, + "thumbnail.png_8.4.0_manifest.json": { + "stat": [ + 47, + 33588055, + 368, + 1791905535684199344, + 1791905535684199344 + ], + "sha256": "5aaa5989b5f44b48ff03082a0d4004ae71420db6eebeb56282af7d98f36c7000" + } + } + }, + "5E524E4FEECCA92B": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/BMP-1IFV_5E524E4FEECCA92B", + "title": "WCS_BMP-1", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 918673, + 193, + 1791902411944955262, + 1791902411944955262 + ], + "sha256": "66d9aadb7bc9f87ec89f252ab0fc418b3164108ea06ba4702a873ab98cd2bce3" + }, + "addon.gproj": { + "stat": [ + 47, + 33574555, + 2900, + 1791902410577627717, + 1791902411894052339 + ], + "sha256": "ad44151140adf62e99eaa639984c2b9c400be17481e934186d61c307b5221259" + }, + "addon.gproj_8.4.0_manifest.json": { + "stat": [ + 47, + 33574548, + 364, + 1791902409731031220, + 1791902409731031220 + ], + "sha256": "3065c7c353cb7623ee85f83d462d4dac37c92efad1a0255f2661470e6cedfd0f" + }, + "data.pak": { + "stat": [ + 47, + 33574558, + 120024479, + 1791902411497121011, + 1791902411928073379 + ], + "sha256": "7accd95e940856220f8e65f7b73c63385e73b5804da811761c7eeac9408abcb8" + }, + "data.pak_8.4.0_manifest.json": { + "stat": [ + 47, + 33574549, + 29851, + 1791902409891034290, + 1791902409891034290 + ], + "sha256": "95ffd8ab723c92c027f847e552dae12fce3448ce2187ba5ef5e548f3e6a3fa0b" + }, + "gallery0_776x436.jpg": { + "stat": [ + 47, + 23106914, + 64588, + 1788720671481676966, + 1788720671481676966 + ], + "sha256": "63649f5239059dd12234250b8c8e313b14ca134e30e4309fbd1eb45f92e77097" + }, + "gallery1_776x436.jpg": { + "stat": [ + 47, + 23106915, + 47808, + 1788720671495639547, + 1788720671495639547 + ], + "sha256": "81f89b026a1bf341f8cd3bb19facd67e8d0f56073c924e026983836fee6bfb4c" + }, + "meta": { + "stat": [ + 47, + 918496, + 2928, + 1791902411943073667, + 1791902411943073667 + ], + "sha256": "dd115af27f420e89401e532ace686df8f13976d437bbcf6ba4f57af4ad9e73d0" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 33574561, + 19326, + 1791902410661049065, + 1791902411933073476 + ], + "sha256": "f0ad9d9f9339fd946be962e93543c696992b30159cc9d4cf7cadec5f87967d6e" + }, + "resourceDatabase.rdb_8.4.0_manifest.json": { + "stat": [ + 47, + 33574550, + 366, + 1791902410064037609, + 1791902410064037609 + ], + "sha256": "f66140ac6ccf012f21e3ff1919b4981b3fd06c42f7efc53d666b70705dfe9b4a" + }, + "thumbnail.png": { + "stat": [ + 47, + 33574564, + 708338, + 1791902410579047492, + 1791902411934073495 + ], + "sha256": "103a98bf476d510ab3081abb371170ae6cf65aea65b9095636d651170a5b0038" + }, + "thumbnail.png_8.4.0_manifest.json": { + "stat": [ + 47, + 33574551, + 368, + 1791902410190040027, + 1791902410190040027 + ], + "sha256": "5bf1e0f8794a4e2e862658a10071360df63ed6a440ee2ca5514afbc2e97e375e" + } + } + }, + "629B2BA37EFFD577": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/WCS_Armaments_629B2BA37EFFD577", + "title": "WCS_Armaments", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 920134, + 197, + 1791902409425068465, + 1791902409425068465 + ], + "sha256": "6bddc06413108d624039e3ec7566ada8242b579a09b0bafe894877282e2a95f8" + }, + "addon.gproj": { + "stat": [ + 47, + 33574250, + 2926, + 1791902402861114545, + 1791902409412025099 + ], + "sha256": "e6ffcf559a2e7898848349c090300ea8eca8cb2e13ecef456a108bcc82efc8b1" + }, + "addon.gproj_8.4.0_manifest.json": { + "stat": [ + 47, + 33574239, + 364, + 1791902401264868815, + 1791902401264868815 + ], + "sha256": "ba8f2b36575408f11b2107fc4b0f9449c9dc057629ebf894c7bdbc77f53cbc1f" + }, + "data.pak": { + "stat": [ + 47, + 33574247, + 441631740, + 1791902407839994936, + 1791902409400024869 + ], + "sha256": "e18ab4bb3f390dd6116d8c7e686fe21349c6c993a77b7ea6361d4027d7683788" + }, + "data.pak_8.4.0_manifest.json": { + "stat": [ + 47, + 33574235, + 298655, + 1791902401137866379, + 1791902401137866379 + ], + "sha256": "c0a4abb0dbd590b845af29dd9cd8c4b28beba961052138da894d57230e27c171" + }, + "meta": { + "stat": [ + 47, + 919170, + 2505, + 1791902409423025310, + 1791902409423025310 + ], + "sha256": "7f3d6fb9d09d3f0a435eb10f711d63408fe7d0ec5b62f6723ee7da97d1e0c289" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 33574256, + 195796, + 1791902403029902666, + 1791902409414025137 + ], + "sha256": "92f6c40aeebab4c2148173ff61d4312340111a2e7b675b9e4bbced2814ed2154" + }, + "resourceDatabase.rdb_8.4.0_manifest.json": { + "stat": [ + 47, + 33574243, + 368, + 1791902401530873916, + 1791902401530873916 + ], + "sha256": "65ecf9dae6a8b3c864965b392b83ea520bc1f2910b4fdc83c3cfe16282647454" + }, + "thumbnail.png": { + "stat": [ + 47, + 33574253, + 689544, + 1791902402861899444, + 1791902409413025118 + ], + "sha256": "ccd771dba7f3f222e9733e688e6dd9e4c5edae2accdd80a6876241094e23f3dd" + }, + "thumbnail.png_8.4.0_manifest.json": { + "stat": [ + 47, + 33574240, + 368, + 1791902401396871347, + 1791902401396871347 + ], + "sha256": "e58ef73e4a794e56ecd04bfd84940ec539e5ca481d6b69ffb20f9fedcd3c2e77" + } + } + }, + "65930CB4CD0237B2": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/ParachuteFramework_65930CB4CD0237B2", + "title": "Parachute Framework", + "version": "1.2.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 23608865, + 764, + 1788881939235881733, + 1788881939235881733 + ], + "sha256": "ec665641799be1f97100937ce87c894a88bee99526fac0695303c339121e8bd1" + }, + "addon.gproj": { + "stat": [ + 47, + 23608826, + 124, + 1788881938831871187, + 1788881938831871187 + ], + "sha256": "183fbb521382a95ad33af9efc547147a80241bd536a29d124c93064b5ae5e8bc" + }, + "addon.gproj_1.2.0_manifest.json": { + "stat": [ + 47, + 23608818, + 362, + 1788881938288857014, + 1788881938288857014 + ], + "sha256": "5030f4430dbd237d93fbcc49ab5c667241b803f1beee4060498e882ea85c9d7f" + }, + "data.pak": { + "stat": [ + 47, + 23608829, + 5048302, + 1788881939131386944, + 1788881939131386944 + ], + "sha256": "ccb22523ba0040cb9d9206a7ab0ae7e5b4411b1704bde39e3e4a7953416e3042" + }, + "data.pak_1.2.0_manifest.json": { + "stat": [ + 47, + 23608820, + 4696, + 1788881938426860616, + 1788881938426860616 + ], + "sha256": "168504d70f88650b0e7acbdcc80ef384ee5b90e2f044839f837b1220b767afcb" + }, + "meta": { + "stat": [ + 47, + 23608819, + 5088, + 1788881955440304751, + 1788881955440304751 + ], + "sha256": "178156f61a332f596dc3783c4d02b0ab5d50a47d4aa1572395760d0fe062500b" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 23608835, + 3188, + 1788881939082877739, + 1788881939082877739 + ], + "sha256": "0994a4b1fcfacdd8d8f69759ba6bde878d633545e380a5774a05e4cac3b6b2c4" + }, + "resourceDatabase.rdb_1.2.0_manifest.json": { + "stat": [ + 47, + 23608822, + 364, + 1788881938690867507, + 1788881938690867507 + ], + "sha256": "6a0793ea2080ae22fac1efd6d3da3ddb3100fd0b60869098e5572be66318c883" + }, + "thumbnail.png": { + "stat": [ + 47, + 23608832, + 2255011, + 1788881939194880662, + 1788881939194880662 + ], + "sha256": "715ac1bf4b6abefb2726cc4c61e903e63ae3a2bfec1e8a85be6cb81eb308407a" + }, + "thumbnail.png_1.2.0_manifest.json": { + "stat": [ + 47, + 23608821, + 370, + 1788881938560864114, + 1788881938560864114 + ], + "sha256": "2bd7127d58adee39c3aa1e2212436499b10adf4fe2faa0b3ed5fcadbfaaae768" + } + } + }, + "BADC0DEDABBEDA5E": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack02_BADC0DEDABBEDA5E", + "title": "RHS: Status Quo - Content Pack 02", + "version": "0.16.5236", + "files": { + "ServerData.json": { + "stat": [ + 47, + 911088, + 209, + 1791217577175957552, + 1791217577175957552 + ], + "sha256": "344a5ceec8c8c98aad2ac5831febebd0facb93ddd02422ad24060ecd09bd9d7e" + }, + "addon.gproj": { + "stat": [ + 47, + 32064850, + 336, + 1791217562080448337, + 1791217577146066199 + ], + "sha256": "6ebd73d663ed6dbf981cd8bc7d19cfd5bcd3c9dec3b9a706fa331d992ef200b4" + }, + "addon.gproj_0.16.5236_manifest.json": { + "stat": [ + 47, + 32064829, + 362, + 1791217554184202802, + 1791217554184202802 + ], + "sha256": "72d988d5881efdf7d8781b2dc978a0243e1a3d587ced56563299855724137232" + }, + "data.pak": { + "stat": [ + 47, + 32064844, + 1992510440, + 1791217570711716195, + 1791217577146066199 + ], + "sha256": "b67a44100a378580fd85b20009cb3ec0080809c676a8b5a1cb742e9b38ecc6c6" + }, + "data.pak_0.16.5236_manifest.json": { + "stat": [ + 47, + 32064827, + 173766, + 1791217553936195082, + 1791217553936195082 + ], + "sha256": "993b2ae337e9ac1739ae8ec463059046d4c04478150741d2b2f7cc6bf69936f7" + }, + "data001.pak": { + "stat": [ + 47, + 32064836, + 238642257, + 1791217563390489027, + 1791217577146066199 + ], + "sha256": "0fdef61ed28e54cf79586d11fcc06784e419df64e8a3a189f28bdc165a40b182" + }, + "data001.pak_0.16.5236_manifest.json": { + "stat": [ + 47, + 32064826, + 29970, + 1791217553778190164, + 1791217553778190164 + ], + "sha256": "f2e6ba88d0c10dc3270ff36c0782ec18d3b556b9d66905b88c28674abfad4020" + }, + "meta": { + "stat": [ + 47, + 910016, + 7720, + 1791217577173916383, + 1791217577173916383 + ], + "sha256": "f15f5ef2900d28a101f6a2e7ce9e59d97c12bcf22413b11d8f81915a95b1c0b1" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 32064847, + 113129, + 1791217562363457128, + 1791217577146066199 + ], + "sha256": "cd6d683ab9b1bcb46936e113311e9ea68875a4411e4341c9761d961544c544d1" + }, + "resourceDatabase.rdb_0.16.5236_manifest.json": { + "stat": [ + 47, + 32064828, + 368, + 1791217554060198943, + 1791217554060198943 + ], + "sha256": "e0ff6ea4509dd43f625f774a23a9a829356ac2a8244d02199fa639684139f3f8" + }, + "thumbnail.png": { + "stat": [ + 47, + 32064853, + 18180, + 1791217562080448337, + 1791217577146066199 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.16.5236_manifest.json": { + "stat": [ + 47, + 32064831, + 366, + 1791217554308206661, + 1791217554308206661 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + } +} diff --git a/docs/evidence/rhs-standalone-published-2026-11-05/manifest.json b/docs/evidence/rhs-standalone-published-2026-11-05/manifest.json new file mode 100644 index 00000000..27fd8076 --- /dev/null +++ b/docs/evidence/rhs-standalone-published-2026-11-05/manifest.json @@ -0,0 +1 @@ +{"version":1,"files":[{"name":"data.pak","size":6150,"contentType":"application/enfusion-pak","sha256":"ce5367d92d62d5683bf0b11844968a26eb7986ce2587fefb0d17ab49c888a6f8"},{"name":"addon.gproj","size":152,"contentType":"application/enfusion-gproj","sha256":"6e9ac7e5b83df0bd3c28d117e464123baf7d67f3efdeae6409cf0416796d55fe"},{"name":"resourceDatabase.rdb","size":466,"contentType":"application/enfusion-rdb","sha256":"36c35d9722ff7c60b8d0ab56153b48bad5fd21d79c1a10c2c8affff58f03ff0e"},{"name":"previewImage.png","size":2348651,"contentType":"image/png","sha256":"f38bbe231778f3c9b4374b2b3a01b894ebb0910f2120db47d3445c04578dff9f"}],"asset":{"id":"E119F1C05A274B83","version":"1.0.0","name":"RHS 1.9 Compatibility","bundledAt":"2026-11-05T18:41:13.447Z","type":"addon","totalFileSize":2355419,"platformCompatibility":1,"gameVersion":"1.9.0.37","minGameVersion":1,"private":false,"unlisted":false,"previews":["previewImage.png"],"description":"RHS 1.9 Script Compatibility\n\nUnofficial compatibility patch for RHS Status Quo 0.16.5237 on Arma Reforger 1.9.0.37.\nRequires the original RHS Status Quo addon and its content packs.\n\nUpdates the CAS editor component's SetAuthor signature and the tire component's\nwheel-index accessor so the installed RHS scripts compile on 1.9. It does not\nretune vehicle handling or add support for every new 1.9 feature.\n\nOriginal RHS scripts and content are by Red Hammer Studios. This is a community\ncompatibility addon and is not an official RHS release.\n\nRHS terms: https://docs.rhsmods.org/rhs-status-quo-user-documentation/arma-reforger/rhs-status-quo/eula\n\nBuilt specifically for the versions above. Reassess or remove this patch when\nRHS publishes its own compatible update, because these replacements can otherwise\nhide newer upstream script changes.\n","summary":"Unofficial RHS Status Quo 0.16.5237 script compatibility fixes for Arma Reforger 1.9.0.37.","license":"Arma Public License No Derivatives (APL-ND)","tags":["COMPATIBILITY","1.9","SYSTEMS","RHS","FIX"],"dependencies":[{"assetId":"595F2BF2F44836FB","version":null}]}} \ No newline at end of file diff --git a/docs/evidence/rhs-standalone-published-2026-11-05/package-inventory.json b/docs/evidence/rhs-standalone-published-2026-11-05/package-inventory.json new file mode 100644 index 00000000..cf235cd2 --- /dev/null +++ b/docs/evidence/rhs-standalone-published-2026-11-05/package-inventory.json @@ -0,0 +1,43 @@ +{ + "archive": ".local/rhs-19-work/compat/pfx/drive_c/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Publishing/E119F1C05A274B83/data.pak", + "archive_bytes": 6150, + "archive_sha256": "ce5367d92d62d5683bf0b11844968a26eb7986ce2587fefb0d17ab49c888a6f8", + "entries": [ + { + "compression": "zlib", + "content_bytes": 6668, + "offset": 56, + "opaque_tail_hex": "07e2ca6a", + "path": "Scripts/Game/Editor/Components/EditableEntity/RHS_CAS_EditableEntityComponent.c", + "sha256": "3788cbdc39c3da4f6564b73b7f49848077ad4504b6c28a1984c424247d1c6678", + "stored_bytes": 1610 + }, + { + "compression": "zlib", + "content_bytes": 19677, + "offset": 1666, + "opaque_tail_hex": "07e2ca6a", + "path": "Scripts/Game/Vehicle/RHS_DestructionTireComponent.c", + "sha256": "9b3de0966d7b8184bb70a14df2a448e06f34ca9db09b46da07277cb92ab7f8b2", + "stored_bytes": 4271 + } + ], + "entry_count": 2, + "expanded_bytes": 26345, + "format": "FORM/PAC1 observed HEAD 03000100", + "head_hex": "030001003c2e3d02727b601047015a0c010b035d0055025100000000", + "limits": { + "archive_bytes": 4294967296, + "depth": 64, + "entries": 250000, + "entry_bytes": 1073741824, + "expansion_ratio": 1024, + "total_bytes": 8589934592, + "tree_bytes": 33554432 + }, + "platform_or_resource_semantics_verified": false, + "release_qualified": false, + "scope": "Bounded structural/content-hash inspection only; no extraction, native load or gameplay proof", + "structural_inventory_verified": true, + "tree_node_count": 8 +} diff --git a/docs/evidence/rhs-standalone-published-2026-11-05/publication-status.json b/docs/evidence/rhs-standalone-published-2026-11-05/publication-status.json new file mode 100644 index 00000000..855c4410 --- /dev/null +++ b/docs/evidence/rhs-standalone-published-2026-11-05/publication-status.json @@ -0,0 +1,14 @@ +{ + "addon": "RHS 1.9 Compatibility", + "id": "E119F1C05A274B83", + "version": "1.0.0", + "category_selected": "SYSTEMS", + "license": "Arma Public License No Derivatives (APL-ND)", + "preview": ".local/rhs-19-addon/preview.png", + "upload_success": true, + "processing_confirmed": true, + "escape_version_unchanged": "0.0.141", + "note": "Fresh private Workbench profile with backed-up/reset DbgUIState.bin; existing user Workbench untouched.", + "published": true, + "cleanup_confirmed": true +} diff --git a/docs/evidence/rhs-standalone-published-2026-11-05/recovery-cleanup.json b/docs/evidence/rhs-standalone-published-2026-11-05/recovery-cleanup.json new file mode 100644 index 00000000..da26d590 --- /dev/null +++ b/docs/evidence/rhs-standalone-published-2026-11-05/recovery-cleanup.json @@ -0,0 +1 @@ +{"prefix": "/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/compat", "owned_processes_terminated": [], "idle_verified": true} diff --git a/docs/evidence/rhs-standalone-published-2026-11-05/runner.json b/docs/evidence/rhs-standalone-published-2026-11-05/runner.json new file mode 100644 index 00000000..84305717 --- /dev/null +++ b/docs/evidence/rhs-standalone-published-2026-11-05/runner.json @@ -0,0 +1,34 @@ +{ + "stopped_unix": 1793900746.5277748, + "console_sha256": "2ce30fc5fc7c232704b70eb4b92d6c94fb37df9297b3dfe22e74e4d9fc2737a3", + "end_source_sha256": "01739daea8e2cf8c35123393ac77b773add84933319563db21eeedee68a3418f", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "3719ae50-1cad-4602-a74d-f234b774915c", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "01739daea8e2cf8c35123393ac77b773add84933319563db21eeedee68a3418f", + "external_addons_unchanged_after_run": true, + "external_addon_count": 7, + "external_addon_inputs": "external-addons-inputs.json", + "started_unix": 1793900046.8570962, + "result": "interrupted", + "result_before_cleanup": "interrupted", + "cleanup_confirmed": true, + "cleanup_report": { + "cleanup_confirmed": true, + "idle_verified": true, + "errors": [], + "orphan_cleanup": { + "attempted": false, + "reason": "noncanonical-private-prefix" + } + }, + "runner_error": null, + "session": "/home/jakub/devel/escapistsrereintroduced/.local/rhs-19-work/rhs-publish-retry/logs/logs_2026-11-05_18-34-08", + "rounds_required": 1, + "project": "core", + "display": "headless Gamescope 1280x720/30Hz", + "dedicated_server": false, + "audio": "silent sink and per-test-stream mute" +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/README.md b/docs/evidence/vehicle-roles-2026-11-06/README.md new file mode 100644 index 00000000..be945427 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/README.md @@ -0,0 +1,67 @@ +# Discovered vehicle assignments — 2026-11-06 + +Content → Vehicles now provides a **Use for** selector for garages/yards, +civilian traffic, enemy patrols, convoy armed escorts and convoy supply trucks. +Installed server vehicle catalogs and complete vehicle prefabs are scanned in +small batches; new vehicles remain unassigned until an administrator enables a +use. Existing pool defaults remain. Source-mod exclusions, per-use choices and +presets persist through the shared server preferences. + +## Verification + +- Full `python3 tools/check.py` suite passed (`repository-checks.log`). +- Focused checks repeated after final traffic-budget and wording corrections: + preferences, command authorization/allowlists, convoy dispatch transactions, + real selection policy, traffic lifecycle, garage geometry and generated menu. + See `focused-final.log`. +- Discovery found 321 ground vehicles in the installed dependency closure, plus + three temporary uncatalogued vehicle prefabs in the disposable test addon. +- `menu-run` exercised the real admin menu: item/master controls, state filters, + all 29 navigation pages, selecting a new vehicle for patrols, independent + assignments, stale-role action rejection and persisted preference reload. +- The same run assigned a new car to garage and traffic selection, verified its + actual garage footprint, and allocated production crews for a patrol car, + armed escort and supply truck. All three physically drove more than 20m. +- `final-run` compiled the exact final production addon sources and repeated all + page geometry checks plus discovery, per-use selection, garage fit, production + crews and physical driving. Rejected traffic candidates consume a native + creation attempt before their early return, preserving the 64-attempt ceiling. + +The temporary prefabs inherit an S105, armed UAZ and ammunition Ural, with new +GUIDs not known to the mission. They are found through the ordinary prefab scan, +not a hardcoded production list. They and the fixture script exist only in the +disposable source snapshots. Screenshots show the real menu, including the +fixture vehicle. An earlier run also allocated five crew and drove a new UAZ +patrol derivative; the final fixture uses a smaller car to check garage fit. + +## Scope + +This verifies local Workbench integration, not a dedicated multiplayer session, +every third-party mod, every garage location or a complete live supply-convoy +mission. Native physical tests use production crew allocation with fixture road +starts/orders; finite convoy dispatch and refusal behavior also have policy tests. +The garage check proves selection and physical dimensions, not a new full yard +placement/claim/cleanup run. Existing lifecycle tests remain in force. + +Convoy assignments affect the three light escorts and supply truck. The special +BMP slot stays fixed because its interception/mounted-ammunition logic depends +on that exact resource. Patrol assignments affect the main HQ vehicle roster; +optional bike and Sarka waves retain their existing settings. AI component +support is checked without spawning; physical crew and size checks still veto +incompatible mod vehicles. Such vehicles are unavailable for that use until the +next round. No Workshop addons are downloaded or unloaded by these controls. + +All native runs used hidden Gamescope, muted audio, a cloned private Proton prefix +and new test profiles. Runner records include immutable launch/external-input +hashes and confirmed owned-process cleanup. No user Workbench was closed. + +Installed RHS content packs 01/02 were 0.17.5281. Their fingerprints were accepted +only in the disposable audit, without changing the repository dependency +manifest. Native scripts compiled without errors. The runner still reports +external resource errors (localization GUID references, DLC ownership request, +and old vehicle fields); successful smoke completion does not mean clean engine +logs or certification of the whole external-mod set. + +`source-comparison.json` compares the final tested production files to the +workspace. The fixture source and prefab resources accompany each run. The +release version remains 0.0.143; this change has not been pushed or published. diff --git a/docs/evidence/vehicle-roles-2026-11-06/escort-filter.png b/docs/evidence/vehicle-roles-2026-11-06/escort-filter.png new file mode 100644 index 00000000..044f448f Binary files /dev/null and b/docs/evidence/vehicle-roles-2026-11-06/escort-filter.png differ diff --git a/docs/evidence/vehicle-roles-2026-11-06/escort-independent.png b/docs/evidence/vehicle-roles-2026-11-06/escort-independent.png new file mode 100644 index 00000000..fb0006aa Binary files /dev/null and b/docs/evidence/vehicle-roles-2026-11-06/escort-independent.png differ diff --git a/docs/evidence/vehicle-roles-2026-11-06/final-run/external-addons-inputs.json b/docs/evidence/vehicle-roles-2026-11-06/final-run/external-addons-inputs.json new file mode 100644 index 00000000..838084af --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/final-run/external-addons-inputs.json @@ -0,0 +1,851 @@ +{ + "1337C0DE5DABBEEF": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack01_1337C0DE5DABBEEF", + "title": "RHS: Status Quo - Content Pack 01", + "version": "0.17.5281", + "files": { + "ServerData.json": { + "stat": [ + 47, + 916830, + 236, + 1793966354242463962, + 1793966354242463962 + ], + "sha256": "cc4cc1b0d1d06fc4f1ced0117845930d8ed5291f63ca89577a47518018444706" + }, + "addon.gproj": { + "stat": [ + 47, + 40147728, + 339, + 1793966331111982831, + 1793966354215463398 + ], + "sha256": "09baf9fff74b1a8aadb03786d6d9ebe7159ddf074f7d46b35123501325332d98" + }, + "addon.gproj_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147698, + 362, + 1793966311083569723, + 1793966311083569723 + ], + "sha256": "2155ab32d13dd234b511ae5a390c1a5a4377ee9f3bde8a011b7b474c7da9b855" + }, + "data.pak": { + "stat": [ + 47, + 40147713, + 1992950655, + 1793966345831288514, + 1793966354160462249 + ], + "sha256": "46e22e1f561de7435912a9263e06cce6d6f81bb82c0c1da92d5937758b35963f" + }, + "data.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147695, + 232639, + 1793966310556558900, + 1793966310556558900 + ], + "sha256": "1398f6275e2adb99ac13705a43071734105853f83ed427cff3f6a333a5f6907f" + }, + "data001.pak": { + "stat": [ + 47, + 40147722, + 1992538370, + 1793966346382299991, + 1793966354214463377 + ], + "sha256": "97314ce4854b3a35dc5cd181378af27281b2897586d59b1e5b108aff9a3c2eda" + }, + "data001.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147696, + 349868, + 1793966310769563274, + 1793966310769563274 + ], + "sha256": "9800ba8266e30b2a81e59b119b1261a7a3b441adcc211dff9c08dda704853e83" + }, + "data002.pak": { + "stat": [ + 47, + 40147707, + 1992467288, + 1793966346414300657, + 1793966353764453977 + ], + "sha256": "4aadf524b9144c4f2886edf3442db02f36cecc93913926f815755a5f7d307d0b" + }, + "data002.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147694, + 332026, + 1793966310371555100, + 1793966310371555100 + ], + "sha256": "9e33445c078f4dccd8ace6eb5a98e0ff04071c157b3182e1fcc315ee47c6ee0c" + }, + "data003.pak": { + "stat": [ + 47, + 40147725, + 364992473, + 1793966333186025798, + 1793966354215463398 + ], + "sha256": "e40e45672321aa36c0650bec960b7dd00ce55bdeff0fd27eb2ccfaa1c12070f5" + }, + "data003.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147697, + 96625, + 1793966310953567053, + 1793966310953567053 + ], + "sha256": "881f85eed91e415e78bf28caa43b77d0ccc0ca8b5b1c8b89831058c1088c9671" + }, + "meta": { + "stat": [ + 47, + 911092, + 8398, + 1793966354241463941, + 1793966354241463941 + ], + "sha256": "7bab7f27e0808955b9e5feecbf94febc8de11d6e12e56f60c1e17c68791aa3d2" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40147731, + 567493, + 1793966331188984425, + 1793966354215463398 + ], + "sha256": "29c053dcec2fd7f1e5187188f91eb1b652296e5d8a0f98a9ffd2bb48dcab374b" + }, + "resourceDatabase.rdb_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147699, + 368, + 1793966311208572292, + 1793966311208572292 + ], + "sha256": "a8fb8e19912a9450e68f702befa6d61320479bfce5b02faccea866b01b305ac4" + }, + "thumbnail.png": { + "stat": [ + 47, + 40147703, + 18180, + 1793966330833526806, + 1793966353682252124 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147692, + 366, + 1793966310025547994, + 1793966310025547994 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + }, + "595F2BF2F44836FB": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-StatusQuo_595F2BF2F44836FB", + "title": "RHS: Status Quo", + "version": "0.16.5237", + "files": { + "ServerData.json": { + "stat": [ + 47, + 910012, + 8466, + 1793966281368963106, + 1793966281368963106 + ], + "sha256": "7a507c69efaca22a8ee61dda96ac8a7e337e3ad2b4cabd5ae203bec43d9e44d6" + }, + "addon.gproj": { + "stat": [ + 47, + 40146987, + 1101, + 1793966269260853248, + 1793966281217205538 + ], + "sha256": "51fda0afde5ebcd4dc88c6c9451d960b67aceaee437f02f1cc80aef724e3779c" + }, + "addon.gproj_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146979, + 364, + 1793966268094694637, + 1793966268094694637 + ], + "sha256": "c67690023c7ecfda231509b46545febea451145a060277b8178c14ebaebb82b8" + }, + "data.pak": { + "stat": [ + 47, + 40146990, + 203659379, + 1793966280554946596, + 1793966281282961360 + ], + "sha256": "0aa031f2f9103e4663b99698a8712d2bb9a35601a0a8611e0acb2680cc2e46da" + }, + "data.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146980, + 1429277, + 1793966268286698509, + 1793966268286698509 + ], + "sha256": "50866475ea8bfb505b492852b22da7e082a1fa90171a7200d93067baabe14036" + }, + "meta": { + "stat": [ + 47, + 902077, + 17982, + 1793966281341962557, + 1793966281341962557 + ], + "sha256": "d062f6ede1b0ada0957339060074a87a119a67936e8f99f3422bdbb1f42fe28a" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146995, + 834332, + 1793966269484722676, + 1793966281284961401 + ], + "sha256": "32d8435e20292c6f6d8c3b48e3d76239ca84881bcbd4f1f9fe56bf2fc64b1c71" + }, + "resourceDatabase.rdb_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146982, + 368, + 1793966268409700990, + 1793966268409700990 + ], + "sha256": "fd95cde11bd5c9bf8840fd43d2a20e257fc03907ed778f20b923e9f5b6fb840d" + }, + "thumbnail.png": { + "stat": [ + 47, + 40147000, + 18180, + 1793966269260853248, + 1793966281284961401 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146983, + 366, + 1793966268537703572, + 1793966268537703572 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + }, + "5E389BB9F58B79A6": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/SpaceCore_5E389BB9F58B79A6", + "title": "WCS_SpaceCore", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 919166, + 273, + 1793966267029981947, + 1793966267029981947 + ], + "sha256": "758d38e13ee5254ed5c01c8f8d1b872af58481d0b839b55e5ee365ac96193691" + }, + "addon.gproj": { + "stat": [ + 47, + 40146953, + 2957, + 1793966266428418870, + 1793966267018672944 + ], + "sha256": "2db2e318e6f45bede0d1173d77af03314f888aedfb31bc767d569ccfb6e70a34" + }, + "addon.gproj_9.0.1_manifest.json": { + "stat": [ + 47, + 40146942, + 364, + 1793966266181656079, + 1793966266181656079 + ], + "sha256": "67d15a8e8623130546332c6d6433314cbdf38e034a66330b9c7a739a94731e21" + }, + "data.pak": { + "stat": [ + 47, + 40146950, + 25392420, + 1793966266923671030, + 1793966267018672944 + ], + "sha256": "d89a5253dbd6707176e7d515cea3e4701725c8197afb20aded18bb231aa6434f" + }, + "data.pak_9.0.1_manifest.json": { + "stat": [ + 47, + 40146941, + 32668, + 1793966266050653438, + 1793966266050653438 + ], + "sha256": "b4b9d9b1ca3534e5d09bed4ac8ce990a2f765f6386791e0241c3dd9a4bb7c308" + }, + "meta": { + "stat": [ + 47, + 918678, + 2510, + 1793966267027673125, + 1793966267027673125 + ], + "sha256": "203fd32b2a44e941808b0c621b5e885687262099d83c7b876c2e805c3ef6d313" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146956, + 22656, + 1793966266553663574, + 1793966267019672964 + ], + "sha256": "88b92c9ed25b3e2b0794a9d2ebd3449f616d2810f330a6330683eca7d533c769" + }, + "resourceDatabase.rdb_9.0.1_manifest.json": { + "stat": [ + 47, + 40146943, + 366, + 1793966266305658577, + 1793966266305658577 + ], + "sha256": "73614d689e2701b75bc009e9e4f4fd0a1c4b0df0061f4a299371cbb148c9f607" + }, + "thumbnail.png": { + "stat": [ + 47, + 40146947, + 689401, + 1793966266428661055, + 1793966267011366549 + ], + "sha256": "8da2e133303f21bb16a2abd25d5bd6c2a4a6f5eccedae74a98358db485a170d1" + }, + "thumbnail.png_9.0.1_manifest.json": { + "stat": [ + 47, + 40146940, + 368, + 1793966265925650920, + 1793966265925650920 + ], + "sha256": "5aaa5989b5f44b48ff03082a0d4004ae71420db6eebeb56282af7d98f36c7000" + } + } + }, + "5E524E4FEECCA92B": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/BMP-1IFV_5E524E4FEECCA92B", + "title": "WCS_BMP-1", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 918673, + 193, + 1793966264963885489, + 1793966264963885489 + ], + "sha256": "bf2d1bf174c0385e65fa28e5991b49f6b86ee6c1463ca5fec742fa5d5bb1264c" + }, + "addon.gproj": { + "stat": [ + 47, + 40146895, + 2900, + 1793966263344149147, + 1793966264913686889 + ], + "sha256": "ad44151140adf62e99eaa639984c2b9c400be17481e934186d61c307b5221259" + }, + "addon.gproj_9.0.1_manifest.json": { + "stat": [ + 47, + 40146888, + 364, + 1793966262546582905, + 1793966262546582905 + ], + "sha256": "3065c7c353cb7623ee85f83d462d4dac37c92efad1a0255f2661470e6cedfd0f" + }, + "data.pak": { + "stat": [ + 47, + 40146898, + 120212943, + 1793966264519622607, + 1793966264949631264 + ], + "sha256": "d9d23369b41d3bdcb1e4a98a03bf27b944e688459f773f2cd8ab8484d434b63c" + }, + "data.pak_9.0.1_manifest.json": { + "stat": [ + 47, + 40146889, + 32902, + 1793966262705586103, + 1793966262705586103 + ], + "sha256": "fddebd10d715fc1f2255aa0b6d72184ec9a1da5a725033923ac82d60772a095f" + }, + "gallery0_776x436.jpg": { + "stat": [ + 47, + 23106914, + 64588, + 1788720671481676966, + 1788720671481676966 + ], + "sha256": "63649f5239059dd12234250b8c8e313b14ca134e30e4309fbd1eb45f92e77097" + }, + "gallery1_776x436.jpg": { + "stat": [ + 47, + 23106915, + 47808, + 1788720671495639547, + 1788720671495639547 + ], + "sha256": "81f89b026a1bf341f8cd3bb19facd67e8d0f56073c924e026983836fee6bfb4c" + }, + "meta": { + "stat": [ + 47, + 918496, + 2928, + 1793966264961631505, + 1793966264961631505 + ], + "sha256": "552e3e90048cfa515be78f992371b5b4ef29f1266f9a91b76369ec5bc8d95a27" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146904, + 20362, + 1793966263427600628, + 1793966264951631303 + ], + "sha256": "f29ecdc46a023287f2be40a502e3f0117be5a9278ab0eef7a0ce4628d30692e5" + }, + "resourceDatabase.rdb_9.0.1_manifest.json": { + "stat": [ + 47, + 40146891, + 366, + 1793966262950591030, + 1793966262950591030 + ], + "sha256": "4619fe9c8439d518292e6c511fd2be970893eda93eeb8554089823ebd4abaae3" + }, + "thumbnail.png": { + "stat": [ + 47, + 40146901, + 708338, + 1793966263345598978, + 1793966264950631284 + ], + "sha256": "103a98bf476d510ab3081abb371170ae6cf65aea65b9095636d651170a5b0038" + }, + "thumbnail.png_9.0.1_manifest.json": { + "stat": [ + 47, + 40146890, + 368, + 1793966262825588516, + 1793966262825588516 + ], + "sha256": "5bf1e0f8794a4e2e862658a10071360df63ed6a440ee2ca5514afbc2e97e375e" + } + } + }, + "629B2BA37EFFD577": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/WCS_Armaments_629B2BA37EFFD577", + "title": "WCS_Armaments", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 920134, + 197, + 1793966262210522872, + 1793966262210522872 + ], + "sha256": "4f9a7b1c661f78832b570e3b050d05d643b531deb944336b99fc018028460b5d" + }, + "addon.gproj": { + "stat": [ + 47, + 40146643, + 2926, + 1793966255452440454, + 1793966262199575927 + ], + "sha256": "e6ffcf559a2e7898848349c090300ea8eca8cb2e13ecef456a108bcc82efc8b1" + }, + "addon.gproj_9.0.1_manifest.json": { + "stat": [ + 47, + 40146630, + 364, + 1793966254019411735, + 1793966254019411735 + ], + "sha256": "ba8f2b36575408f11b2107fc4b0f9449c9dc057629ebf894c7bdbc77f53cbc1f" + }, + "data.pak": { + "stat": [ + 47, + 40146634, + 442600639, + 1793966260630544384, + 1793966262197575885 + ], + "sha256": "26f63ca2134fb092a014e096664bea436720ec6af8d38788875bbb66417a8002" + }, + "data.pak_9.0.1_manifest.json": { + "stat": [ + 47, + 40146627, + 315478, + 1793966253656404464, + 1793966253656404464 + ], + "sha256": "c9f5b6bf65507836bb8243a83726f62eb53a190992f951da11e74919eb48dbab" + }, + "meta": { + "stat": [ + 47, + 919170, + 2601, + 1793966262208576106, + 1793966262208576106 + ], + "sha256": "8299678c3779dc13ea2a2d234407ea1ffae0d690398b45279261e8f68fef9a75" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146637, + 205606, + 1793966255643444284, + 1793966262198575906 + ], + "sha256": "d229ebb54d52c7417c7bcf05c934d41d51b3d936d610118239217962aa869562" + }, + "resourceDatabase.rdb_9.0.1_manifest.json": { + "stat": [ + 47, + 40146628, + 368, + 1793966253776406868, + 1793966253776406868 + ], + "sha256": "c69021b58814cec675c6f98da27d2810fe523e8fef71b023e3a4610739aca03d" + }, + "thumbnail.png": { + "stat": [ + 47, + 40146640, + 689544, + 1793966255454440494, + 1793966262199575927 + ], + "sha256": "ccd771dba7f3f222e9733e688e6dd9e4c5edae2accdd80a6876241094e23f3dd" + }, + "thumbnail.png_9.0.1_manifest.json": { + "stat": [ + 47, + 40146629, + 368, + 1793966253899409332, + 1793966253899409332 + ], + "sha256": "e58ef73e4a794e56ecd04bfd84940ec539e5ca481d6b69ffb20f9fedcd3c2e77" + } + } + }, + "65930CB4CD0237B2": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/ParachuteFramework_65930CB4CD0237B2", + "title": "Parachute Framework", + "version": "1.2.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 23608865, + 764, + 1788881939235881733, + 1788881939235881733 + ], + "sha256": "ec665641799be1f97100937ce87c894a88bee99526fac0695303c339121e8bd1" + }, + "addon.gproj": { + "stat": [ + 47, + 23608826, + 124, + 1788881938831871187, + 1788881938831871187 + ], + "sha256": "183fbb521382a95ad33af9efc547147a80241bd536a29d124c93064b5ae5e8bc" + }, + "addon.gproj_1.2.0_manifest.json": { + "stat": [ + 47, + 23608818, + 362, + 1788881938288857014, + 1788881938288857014 + ], + "sha256": "5030f4430dbd237d93fbcc49ab5c667241b803f1beee4060498e882ea85c9d7f" + }, + "data.pak": { + "stat": [ + 47, + 23608829, + 5048302, + 1788881939131386944, + 1788881939131386944 + ], + "sha256": "ccb22523ba0040cb9d9206a7ab0ae7e5b4411b1704bde39e3e4a7953416e3042" + }, + "data.pak_1.2.0_manifest.json": { + "stat": [ + 47, + 23608820, + 4696, + 1788881938426860616, + 1788881938426860616 + ], + "sha256": "168504d70f88650b0e7acbdcc80ef384ee5b90e2f044839f837b1220b767afcb" + }, + "meta": { + "stat": [ + 47, + 23608819, + 5088, + 1788881955440304751, + 1788881955440304751 + ], + "sha256": "178156f61a332f596dc3783c4d02b0ab5d50a47d4aa1572395760d0fe062500b" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 23608835, + 3188, + 1788881939082877739, + 1788881939082877739 + ], + "sha256": "0994a4b1fcfacdd8d8f69759ba6bde878d633545e380a5774a05e4cac3b6b2c4" + }, + "resourceDatabase.rdb_1.2.0_manifest.json": { + "stat": [ + 47, + 23608822, + 364, + 1788881938690867507, + 1788881938690867507 + ], + "sha256": "6a0793ea2080ae22fac1efd6d3da3ddb3100fd0b60869098e5572be66318c883" + }, + "thumbnail.png": { + "stat": [ + 47, + 23608832, + 2255011, + 1788881939194880662, + 1788881939194880662 + ], + "sha256": "715ac1bf4b6abefb2726cc4c61e903e63ae3a2bfec1e8a85be6cb81eb308407a" + }, + "thumbnail.png_1.2.0_manifest.json": { + "stat": [ + 47, + 23608821, + 370, + 1788881938560864114, + 1788881938560864114 + ], + "sha256": "2bd7127d58adee39c3aa1e2212436499b10adf4fe2faa0b3ed5fcadbfaaae768" + } + } + }, + "BADC0DEDABBEDA5E": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack02_BADC0DEDABBEDA5E", + "title": "RHS: Status Quo - Content Pack 02", + "version": "0.17.5281", + "files": { + "ServerData.json": { + "stat": [ + 47, + 911088, + 236, + 1793966308641519583, + 1793966308641519583 + ], + "sha256": "64b0ff774b52b41cc3711fed424f3e377de4854652b4197f257893f892775e3e" + }, + "addon.gproj": { + "stat": [ + 47, + 40147536, + 337, + 1793966290112140796, + 1793966307987506163 + ], + "sha256": "196b2bc1da74c0b5154c7346c63989df237da487f29cff7b2094f53e0f17ff18" + }, + "addon.gproj_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147526, + 362, + 1793966282662989362, + 1793966282662989362 + ], + "sha256": "44a5d0e2cb0ff23da171ef0c929d1083d8ba71b2680a43ab7c3e53d6c40e74f3" + }, + "data.pak": { + "stat": [ + 47, + 40147548, + 1995519845, + 1793966301329369751, + 1793966308616519071 + ], + "sha256": "292e73f28ff1fc49f9a6503537615b124e7b447345e3230391f0a19322acd350" + }, + "data.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147529, + 166380, + 1793966283062997480, + 1793966283062997480 + ], + "sha256": "6782e9310e8f40bf64b79c967bed419125575b1401a63d1fdb979758d5cffe54" + }, + "data001.pak": { + "stat": [ + 47, + 40147543, + 264943574, + 1793966292531190079, + 1793966308063507722 + ], + "sha256": "494ae75e15d681346e6b3637b7cc8b03a8313cc1326bf61048a24d524fef1eb7" + }, + "data001.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147528, + 42695, + 1793966282903994252, + 1793966282903994252 + ], + "sha256": "3b8d813857f9d2c66053bd7c9a99a8f5a85e2421dd9b1634bcc18c55694daf18" + }, + "meta": { + "stat": [ + 47, + 910016, + 7867, + 1793966308640519563, + 1793966308640519563 + ], + "sha256": "c40492c4bb30eab03b030a34a0e12d594aab5cc62e2ab3a0a4602e5ea29c74e1" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40147539, + 116443, + 1793966290235143301, + 1793966307987506163 + ], + "sha256": "e50f65fb8f49d84fe4819e8bd2b4520b62ca21e1c608099487c070d8834356a2" + }, + "resourceDatabase.rdb_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147527, + 368, + 1793966282782991797, + 1793966282782991797 + ], + "sha256": "1e2f8bad8ad8e44e1d1ebed49e22e81f3ea6e80788540090888afe4c94ee82a4" + }, + "thumbnail.png": { + "stat": [ + 47, + 40147533, + 18180, + 1793966289918911310, + 1793966307986845317 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147525, + 366, + 1793966282534986763, + 1793966282534986763 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + } +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestCar.et b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestCar.et new file mode 100644 index 00000000..f1fea995 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestCar.et @@ -0,0 +1,2 @@ +Vehicle : "{AD80FB47D868C775}Prefabs/Vehicles/Wheeled/S105/S105_green.et" { +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestCar.et.meta b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestCar.et.meta new file mode 100644 index 00000000..f5d83583 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestCar.et.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{F001C0DE00000001}Prefabs/Vehicles/ERR_RoleTestCar.et" + Configurations { + EntityTemplateResourceClass PC {} + EntityTemplateResourceClass HEADLESS {} + } +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestEscort.et b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestEscort.et new file mode 100644 index 00000000..80c94047 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestEscort.et @@ -0,0 +1,2 @@ +Vehicle : "{0B4DEA8078B78A9B}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469_PKM.et" { +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestEscort.et.meta b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestEscort.et.meta new file mode 100644 index 00000000..b715b556 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestEscort.et.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{F001C0DE00000002}Prefabs/Vehicles/ERR_RoleTestEscort.et" + Configurations { + EntityTemplateResourceClass PC {} + EntityTemplateResourceClass HEADLESS {} + } +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestTruck.et b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestTruck.et new file mode 100644 index 00000000..d9880f7b --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestTruck.et @@ -0,0 +1,2 @@ +Vehicle : "{3336BE330C4F355B}Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_ammo.et" { +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestTruck.et.meta b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestTruck.et.meta new file mode 100644 index 00000000..86536134 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture-prefabs/ERR_RoleTestTruck.et.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{F001C0DE00000003}Prefabs/Vehicles/ERR_RoleTestTruck.et" + Configurations { + EntityTemplateResourceClass PC {} + EntityTemplateResourceClass HEADLESS {} + } +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture.c.txt b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture.c.txt new file mode 100644 index 00000000..9b0f0155 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/final-run/fixture.c.txt @@ -0,0 +1,303 @@ +#ifdef WORKBENCH +modded class SCR_RespawnSystemComponent +{ + override void UpdateLoadingPlaceholder(float dt) + { + super.UpdateLoadingPlaceholder(dt); + if (ERR_AdminMenu.GetOpenMenu() && m_wLoadingPlaceholder) m_wLoadingPlaceholder.SetVisible(false); + } +} + +modded class ERR_GameMode +{ + protected override void StartScenario() {} + protected override void EOnInit(IEntity owner) + { + super.EOnInit(owner); + if (SCR_Global.IsEditMode() || !Replication.IsServer()) return; + GetGame().GetCallqueue().CallLater(ERR_ContentReviewBegin, 5000, false); + } + protected void ERR_ContentReviewBegin() + { + PrintFormat("ERR CONTENT: controller=%1",GetGame().GetPlayerController()!=null); + ERR_AdminMenu.Open(); + } +} +modded class ERR_AdminMenu +{ + protected int m_ContentReviewStage; + protected float m_ContentReviewAt; + protected string m_ContentReviewItem; + protected string m_ContentReviewVehicle; + protected string m_ContentReviewAddon="58d0fb3206b6f859"; + override void OnMenuOpen() + { + super.OnMenuOpen(); + GetGame().GetCallqueue().CallLater(ERR_ContentReviewTick,1000,true); + } + override void OnMenuClose() + { + GetGame().GetCallqueue().Remove(ERR_ContentReviewTick); + super.OnMenuClose(); + } + void ERR_ContentReviewFail(string reason) + { + Print("ERR SMOKE FAIL: content menu "+reason,LogLevel.ERROR); + GetGame().GetCallqueue().Remove(ERR_ContentReviewTick); + } + void ERR_ContentReviewTick() + { + float now=GetGame().GetWorld().GetWorldTime(); + if(!m_Ready || now disabledPool={ERR_CivilianTraffic.CarPrefab(0)}; + if(!ERR_VehicleSelection.Choose(disabledPool).IsEmpty()){ERR_ContentReviewFail("disabled mod still permits traffic candidate");return;} + SubmitItems("items mod "+m_ContentReviewAddon+" 1");m_ContentReviewStage=5;return; + } + if(m_ContentReviewStage==5) + { + if(!prefs.ModEnabled(m_ContentReviewAddon)||prefs.Enabled(m_ContentReviewAddon,m_ContentReviewItem)){ERR_ContentReviewFail("master restore lost item choice");return;} + SCR_EditBoxComponent.GetEditBoxComponent("ItemsSearch",GetRootWidget()).SetValue("err_no_such_item_9387");BrowseItems(0);m_ContentReviewStage=6;return; + } + if(m_ContentReviewStage==6) + { + if(!m_ItemRows.IsEmpty()){ERR_ContentReviewFail("search stale rows");return;} + Print("ERR SMOKE PASS: real menu item disable, master mod restoration and empty search"); + PrintFormat("ERR CONTENT VEHICLE INDEX: %1",m_VehicleMods.Find(m_ContentReviewAddon)); + ShowPage(ERR_AdminPage.WEIGHTS); SubmitItems("items list "+m_ContentReviewAddon+" 0");m_ContentReviewStage=10;return; + } + if(m_ContentReviewStage==10) + { + ShowPage(ERR_AdminPage.ALLOWED_ITEMS);m_ContentReviewStage=11;return; + } + if(m_ContentReviewStage==11) + { + if(!m_ItemRows.IsEmpty()){ERR_ContentReviewFail("search lost after advanced page");return;} + Print("ERR SMOKE PASS: item search restored after visiting advanced weights"); + OpenVehicleAddon(m_ContentReviewAddon);m_ContentReviewStage=7;return; + } + if(m_ContentReviewStage==7) + { + SCR_ComboBoxComponent enabledFilter=SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesFilter",GetRootWidget()); + if(enabledFilter.GetCurrentIndex()!=1){enabledFilter.SetCurrentItem(1,false,false,false);BrowseVehicles(0);return;} + if(m_VehicleRows.IsEmpty())return; + if(!ERR_ProbeNavigation(ERR_AdminPage.VEHICLE_POOL)){ERR_ContentReviewFail("vehicle navigation");return;} + foreach(string key,Widget row:m_VehicleRows){m_ContentReviewVehicle=key;OnVehicleRowButton(SCR_ButtonTextComponent.GetButtonText("Disable",row));break;} + System.MakeScreenshot("$logs:content-vehicles");m_ContentReviewStage=8;return; + } + if(m_ContentReviewStage==8) + { + if(prefs.VehicleRole(m_ContentReviewAddon,m_ContentReviewVehicle,0)!=0){ERR_ContentReviewFail("vehicle disable");return;} + ERR_ServerAddonItems vehicles=GetGame().ERR_ServerVehicles().Find(m_ContentReviewAddon); + foreach(ERR_ServerItem vehicle:vehicles.Items) + if(ERR_TerrainCatalog.Key(vehicle.Prefab)==m_ContentReviewVehicle) + { + array pool={vehicle.Prefab}; + if(ERR_VehicleSelection.RoleAllowed(pool[0],0)){ERR_ContentReviewFail("disabled vehicle still selected");return;} + } + ERR_ItemPreferences reloaded=new ERR_ItemPreferences(); + if(reloaded.VehicleRole(m_ContentReviewAddon,m_ContentReviewVehicle,0)!=0||reloaded.Enabled(m_ContentReviewAddon,m_ContentReviewItem)||!reloaded.ModEnabled(m_ContentReviewAddon)){ERR_ContentReviewFail("saved configuration reload");return;} + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesFilter",GetRootWidget()).SetCurrentItem(2,false,false,false);BrowseVehicles(0);m_ContentReviewStage=9;return; + } + if(m_ContentReviewStage==12) + { + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesMod",GetRootWidget()).SetCurrentItem(m_VehicleMods.Find("2528466de220d91c"),false,false,false); + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesRole",GetRootWidget()).SetCurrentItem(2,false,false,false); + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesFilter",GetRootWidget()).SetCurrentItem(0,false,false,false); + SCR_EditBoxComponent.GetEditBoxComponent("VehiclesSearch",GetRootWidget()).SetValue("RoleTestCar"); + ShowPage(ERR_AdminPage.VEHICLE_POOL);BrowseVehicles(0);m_ContentReviewStage=13;return; + } + if(m_ContentReviewStage==13) + { + Widget row=m_VehicleRows.Get("f001c0de00000001"); + if(!row||!VehicleSelectionReady()||m_ShownVehicleRole!=2){ERR_ContentReviewFail("role browser selected wrong result");return;} + OnVehicleRowButton(SCR_ButtonTextComponent.GetButtonText("Enable",row));m_ContentReviewStage=14;return; + } + if(m_ContentReviewStage==14) + { + if(!GetGame().ERR_ServerVehicles().Allowed(ERR_VehicleRolePhysicalProbe.Car(),2)||GetGame().ERR_ServerVehicles().Allowed(ERR_VehicleRolePhysicalProbe.Car(),0)){ERR_ContentReviewFail("per-use enabling through menu");return;} + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesRole",GetRootWidget()).SetCurrentItem(3,false,false,false); + if(VehicleSelectionReady()){ERR_ContentReviewFail("stale role buttons accepted");return;} + BrowseVehicles(0);m_ContentReviewStage=15;return; + } + if(m_ContentReviewStage==15) + { + ERR_ItemPreferences reloadRoles=new ERR_ItemPreferences(); + if(m_ShownVehicleRole!=3||reloadRoles.VehicleRole("2528466de220d91c","f001c0de00000001",2)!=1||reloadRoles.VehicleRole("2528466de220d91c","f001c0de00000001",3)!=-1){ERR_ContentReviewFail("independent roles/save reload");return;} + Print("ERR SMOKE PASS: real menu assigns a discovered vehicle to patrols, preserves independent uses, blocks stale role actions and reloads saved assignments"); + SubmitItems("vehicles role 2528466de220d91c 2 f001c0de00000001 0");m_ContentReviewStage=16;return; + } + if(m_ContentReviewStage==16) + { + ERR_VehicleRolePhysicalProbe.Begin();GetGame().GetCallqueue().Remove(ERR_ContentReviewTick);return; + } + if(m_ContentReviewStage==9) + { + if(m_VehicleRows.IsEmpty()){ERR_ContentReviewFail("disabled vehicle filter");return;} + Print("ERR SMOKE PASS: vehicle disable, filtered list and persisted preferences reload"); + for(int page=0;page Units = {}; + static ref array Starts = {}; + static float Began; + static bool Failed; + static ResourceName Car() { return "{F001C0DE00000001}Prefabs/Vehicles/ERR_RoleTestCar.et"; } + static ResourceName Escort() { return "{F001C0DE00000002}Prefabs/Vehicles/ERR_RoleTestEscort.et"; } + static ResourceName Truck() { return "{F001C0DE00000003}Prefabs/Vehicles/ERR_RoleTestTruck.et"; } + static void Fail(string message) + { + Failed = true; Print("ERR SMOKE FAIL: vehicle roles " + message, LogLevel.ERROR); + GetGame().GetCallqueue().Remove(Tick); + } + static void Begin() + { + ERR_GameMode mode = ERR_GameMode.Get(); + ERR_ServerVehicleCatalog catalog = GetGame().ERR_ServerVehicles(); + ERR_ItemPreferences preferences = GetGame().ERR_ItemSelections(); + string addon = "2528466de220d91c"; + array prefabs = {Car(), Escort(), Truck()}; + array roles = {2, 3, 4}; + ERR_ConvoyService convoy = new ERR_ConvoyService(mode, null); + ERR_HunterService hunterService = new ERR_HunterService(mode, null); + for (int i = 0; i < 3; i++) + { + ResourceName prefab = prefabs[i]; int role = roles[i]; string key = ERR_TerrainCatalog.Key(prefab); + PrintFormat("ERR ROLE FOUND: %1 contains=%2 capable=%3 sources=%4",prefab,catalog.Contains(addon,key),catalog.Capable(key,role),SCR_AddonTool.GetResourceAddons(prefab)); + Resource inspected=Resource.Load(prefab);IEntitySource source=SCR_BaseContainerTools.FindEntitySource(inspected); + if(source)for(int c=0;c agents={};unit.Group.GetAgents(agents); + foreach(AIAgent agent:agents){agent.SetPermanentLOD(0);agent.ActivateAI();} + vector target,angles;vector transform[4];unit.Entity.GetTransform(transform); + if(!ERR_SupplyConvoySystem.ApproachDirected(Starts[i]+transform[2]*150,target,angles)){movedAll=false;continue;} + unit.Waypoint=AIWaypoint.Cast(ERR_Actors.Spawn(ERR_Resources.MoveWaypoint(),target)); + if(!unit.Waypoint){Fail("move waypoint");return;} + ERR_GameMode.Get().Own(unit.Waypoint);unit.Group.AddWaypoint(unit.Waypoint);unit.Registered=true; + } + float distance=vector.DistanceXZ(Starts[i],unit.Entity.GetOrigin()); + if(distance<20)movedAll=false; + if(now-Began>120000){Fail("driving timeout role="+i.ToString()+" distance="+distance.ToString());return;} + } + if(!movedAll)return; + Print("ERR SMOKE PASS: newly discovered patrol, escort and supply vehicles physically driven more than20m with production crews"); + Print("ERR SMOKE COMPLETE: vehicle roles discovery assignments native crews and driving"); + GetGame().GetCallqueue().Remove(Tick); + } +} +#endif diff --git a/docs/evidence/vehicle-roles-2026-11-06/final-run/launch-source-sha256.json b/docs/evidence/vehicle-roles-2026-11-06/final-run/launch-source-sha256.json new file mode 100644 index 00000000..4a6c53e7 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/final-run/launch-source-sha256.json @@ -0,0 +1,732 @@ +{ + "addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt": "16b263bcb2fb3ae361367a600753a829425620d2e6b350a891c51fba47437ab6", + "addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt.meta": "f2a44ece28891240e6bfa1d01af29428adcadbe82c80e287eb33cd5e58f1f90a", + "addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat": "0a536cd31d1917965ab36d33e273a881be384eb8b863eb5da03d1666e141d45a", + "addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat.meta": "9f4d59cd6d103547e3e494baf7cc8fce70f31f87c66fe6d26b70011bbd27e38b", + "addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat": "88a2c1061c01eb96ce8a0f753bd3e89e1d7af01471ccc4abb4774a7aa9a532fb", + "addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat.meta": "e0093b7df155499444f93a1148a07f66cc755489192db17c81f4035d17378efb", + "addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat.meta": "33a9eaa49871813f2e8537f071ea0f5a4422eb08d536355a47314b6b6d845b19", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf": "48dc42771b7e44994839dfabe9b007c23e37bd9be900196c757f42351e5c6b04", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf.meta": "c081aec31c927c0c374dcc0f8eb3eaec498f71cb0e2ac746879b926f8dc7d00e", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr": "8ec57b278c9d63324d00f7af62abf75230c5ef631d1cc070661585ee235c8a1f", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr.meta": "b045e26f86116703d1b3599fdf747b413cc0064d8101eff659ded0355eff31fe", + "addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat": "372247aac7b84ddf6c66e276d03321d22496e65726f55e490ee7287a90151318", + "addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat.meta": "ea10c7bd630b31febf511fb28a42cc73597fcc1e3010597dc074c651813ede94", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.fbx": "03a654900103878223ab5c4a42e71d17022ca4885ced71b99c67d8c91652b5fc", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.txo": "9838bcb2e4ff1cd649586535ca7d5ad2497e6118cdfb76b8aadabded9cafb938", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob": "a4602d65e84cec1b23b6b09b5bc5847cbd52efe82925986c6eaf1c43bec1ac78", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob.meta": "04f4039be7950ca393ea74469898dabcfec4dc8b8f9e08068898c00333445878", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.fbx": "4ca13bbeafaa0dc0bf007ae9024b8d6c2a5279afc62e0ebc227e2bec2ad67a30", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.txo": "8ed37705192d3d9b18f26b5deb51af6f2a6d694e7e2dcdbd04b317497610b50d", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob": "fe6ea401412fdbb3bb46367cf7dc9215f7d01c6373c8ac954cbf23f2a6927bf7", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob.meta": "492a44fc323d3df469753d4bbbc35ceb3d362e734f48083ba633b3de5dd42d8b", + "addons/core/Configs/ERR/AdminMenus.conf": "5a4b405060135efd0f7faf913c7f061f6250a1e6e9d27f2bb394281d784b20e6", + "addons/core/Configs/ERR/AdminMenus.conf.meta": "5faf5ddc0a51c1d0f82d60af00d91edc22fe9c39aac50d8d04b772a2c9271be1", + "addons/core/Configs/ERR/Content/Registry.conf": "546a5a407c9e6c25c9157ae4392898fa3f40c04c7956649e62201f9ac0ba187c", + "addons/core/Configs/ERR/Content/Registry.conf.meta": "046aa988bf8e972afcf7a60b6f2312f605f016f98625dbbd9cd75ebf9ea88800", + "addons/core/Configs/ERR/EveronSites.conf": "781a9a3f4d2d4ea5b913fbfd15c2f1a991efdee7e033b7ba4241ad632609f52f", + "addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56", + "addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb", + "addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035", + "addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b", + "addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b", + "addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30", + "addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611", + "addons/core/Configs/ERR/GameOverScreens.conf": "1bb83c26a57d64595e91c3ba7926987e22b33dce2c6c876016e3ec2d04f9eb2a", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/ObserverInput.conf": "1efd2e1823f80e6b8a3e4a697cdeb72dd87888ec5a2d16ae289937575b880072", + "addons/core/Configs/ERR/ObserverInput.conf.meta": "9714dce6c38ee81bcc513c8ebef51d7af63fd15bcdda2e40946937c625dc3ba4", + "addons/core/Configs/ERR/Telemetry.conf": "12d895ba4fcd159e23c2f3e94dc59e6f1e54702470cf0b1dad7d04f15572cf7a", + "addons/core/Configs/ERR/Telemetry.conf.meta": "afd52b410ce1a1026f4b0900b10aae2ee50c30764a212a59668233f4f8b8c5a1", + "addons/core/Configs/ERR/Tests/LegacySites.conf": "3864eb638d0ed4dd313013d2d787f975ae6ce4bbe238569919f76b73d5f7ca42", + "addons/core/Configs/ERR/Tests/LegacySites.conf.meta": "097ac7daef4fc18344699a8471fdd77f9d158f8c70bab394068d7a08e4777ac0", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Materials/ERRM_MapRenderTarget.emat": "4ab251037d40a850e3767c0de85136842bcd4fd130eda47bf8e19352b0d030e3", + "addons/core/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/core/Missions/ERR_Everon.conf": "c6cce48484301a76b81f3a0cd76a4012f5808b901754d4114034e92beeefcff3", + "addons/core/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/core/Prefabs/Characters/Core/Character_Base.et": "74a6f03a1e76173a0cfa20b23c711d02e70bac810d6743e16c60476bfe5be457", + "addons/core/Prefabs/Characters/Core/Character_Base.et.meta": "c6b142d1985719236268cdf12ac522fee4b1206871a6f22b568d9198d1fcc077", + "addons/core/Prefabs/ERR/AssaultParachute.et": "b556997989605e2a05982418b7e9f26d12d427eb3ea6e3bc50e85c67ea7aa4b8", + "addons/core/Prefabs/ERR/AssaultParachute.et.meta": "e9dea2d533ad1ce6ce689e0e2815c97a6382e1b90c35ce1efa88a885527e8e18", + "addons/core/Prefabs/ERR/CombatEpinephrine.et": "aa57d78bae861dc4a0fc509f7916190d2f2f0b36a1c3867f9bf9a071717cd7f5", + "addons/core/Prefabs/ERR/CombatEpinephrine.et.meta": "0e19ebd1dd4d81f739125a4dcbff898424ffe39572c2668bd56455d939b3f604", + "addons/core/Prefabs/ERR/ConvoyCrew.et": "29a525a29605386dfcf292dc2316e9fc7650ce39db9fbaa4ce4372ad0de66db4", + "addons/core/Prefabs/ERR/ConvoyCrew.et.meta": "0a909a15b7dcca34202ded136b3bdbbe8898153c9589e1cce1388433d362da02", + "addons/core/Prefabs/ERR/CrashSite.et": "8d06afe6e2db8986f06a7c5d6649e52df009f9eead7345bf2b477f50a0725b3c", + "addons/core/Prefabs/ERR/CrashSite.et.meta": "0f54fe80ed96394374c1922e1d0b05f7e0200ce5b979ff58325b033f51641f69", + "addons/core/Prefabs/ERR/CrashWreck.et": "f5de4785c0e3cdf02f1d5372e9b01171bd5a37acb9c36aa2a94bae3f429b2272", + "addons/core/Prefabs/ERR/CrashWreck.et.meta": "bde3299bdbbddb91d2ef471b61035b6cced29899cff4cd90c080fe584ce63f26", + "addons/core/Prefabs/ERR/Epinephrine.et": "e09c70b3d47a4dc5b92fd332c8222b99554b28a8a0c93cb5caac18eec4501571", + "addons/core/Prefabs/ERR/Epinephrine.et.meta": "f1861f0b0ccace1b7b3d9c29768e37a83bf0c6fae5a411b1bd61d6b2eec7ed89", + "addons/core/Prefabs/ERR/Extraction.et": "4d24c7811415c06386205e5bf5c132a23fcf21e96c75c7657ccd5f3ac914ac50", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "d34a8bbc5dce259c4a467c7bfa2ba746683bbeb9448de8c226856e65319f4911", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "e403d5cb3a5966f0cea81f15e0e825d482ba1a7a27b12498319ba45a414963b0", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "a2b7e632714e646a7010592cc7ac75f0afff7da6c995bf91aaf65d9473a6af3f", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et": "0157bc235eeb78a0e1373b561fd22a1dcb225c833ff7c2d4abae688bca0ec92a", + "addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et.meta": "da6f065cb2414b5a4cbe9ef0f0b1295b2466f26ad406c0bddb83845d4598efb3", + "addons/core/Prefabs/ERR/MortarCrew.et": "21086e886fe3199624208c9a866f883ec109f7d08746c2b56b497e59857fb656", + "addons/core/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "5118ecaf9d2038eea44a4b785f05d2e78781dc1387249aa58a6782c7e6752e14", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "d3eca8fe9197c57a27a285cdb3baf168b037b198d92b39df28a338ae2cfd0c74", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "c0ca5219aa2d6322ba7d094b92000640b259112ff6611a745c0713c8875d09d4", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonBackpack.et": "ae750f08fc9af645561f59d7e5809bd22f4cec26ca8fa6409d09730765958c91", + "addons/core/Prefabs/ERR/PrisonBackpack.et.meta": "7da6aa45467250edc910ad7230dc244d1b041e8a6f55881eb3747ce51f9212ba", + "addons/core/Prefabs/ERR/PrisonDoor.et": "b0ff94443fe334032113a663917de23f920a8b73ffadc9c8e9f11b545022b3d2", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonPatrol.et": "dc88c31cf5c415573a874f74e13572f0add9e6122c8fcad507fe82860d789c47", + "addons/core/Prefabs/ERR/PrisonPatrol.et.meta": "5528e0d778dce5ed39c3e504c6427625527127b23269d20fbf12ca2bffe52ffe", + "addons/core/Prefabs/ERR/PrisonWall.et": "9b410b7c85bb001be4601ad93f750e17b8318b850306d84f29c4dc1b02723d7c", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "e6d345ac98ad9ec742bf6c3b8686839c3256df9833d31bb4bdf605cd41d0ba5c", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "99b1d80b49d1e7f9d30aa4283772a36fd66e962369f288f5fe329c7fc911bb1b", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/RadioCamp.et": "5e6216bf8e6e160da5d9f966c8f7c2081bf6dd16dfac1b89d682a14b3b8a6716", + "addons/core/Prefabs/ERR/RadioCamp.et.meta": "3cb8d3d553ab6d8d111a74f721cf4e69ee1011cbb90248b83cdc7275697276bd", + "addons/core/Prefabs/ERR/ReconCrew.et": "33953379ceb725bcd0cbe505cd643c94adaed17dbbfa95dadd404d6b8e345715", + "addons/core/Prefabs/ERR/ReconCrew.et.meta": "2653e8c5b1cdb857de5badd5959ddd9826a6a298ab3c166628dbb835d7104d90", + "addons/core/Prefabs/ERR/ReconHelicopter.et": "c609ee59ab145e0a1936f95726b86df643f5cc425c43924029e9c1abc69ebbd0", + "addons/core/Prefabs/ERR/ReconHelicopter.et.meta": "d80f1c3d6a6f9104562b89729996c1c92ad240f08cdcf48d4c390a09d2047c08", + "addons/core/Prefabs/ERR/ReconPilotEast.et": "d961f329823b991eafed80d085de1bd89b44a4575be98d8dac385d6b77741ba2", + "addons/core/Prefabs/ERR/ReconPilotEast.et.meta": "d73df3c896359a54514d2efcd851f579feca7a2619b76c2a38f607649a31a4f1", + "addons/core/Prefabs/ERR/ReconPilotWest.et": "8f8221927269352e55c8026ee5b00e026c281c79af6684b386f24e7dc4675fb8", + "addons/core/Prefabs/ERR/ReconPilotWest.et.meta": "4785f23bb492c6af420ee7896ddbfc9767e0db1e06de95207df2dc949a1b1814", + "addons/core/Prefabs/ERR/RescueEscortION.et": "aa5cae65250936da239c865fe1070c68a1d20b49bcef37f6bd29021f22c274a9", + "addons/core/Prefabs/ERR/RescueEscortION.et.meta": "34eef8053198a49df774792322c6d3cba81f689e56b6a418aed5a14de0913537", + "addons/core/Prefabs/ERR/RescueEscortWest.et": "6f9671fb68e2716479d96be74b80ffb29fec535f1333c5e4dc4d7b684dca1ccb", + "addons/core/Prefabs/ERR/RescueEscortWest.et.meta": "45a87304712d6a18afb0ddc5b3ccbb70da395541e21aafe9d6d3641c392eaab3", + "addons/core/Prefabs/ERR/RescueHelicopter.et": "d9b3b01a0cdb6ed779f40f14f03dfd8fe732382931cdee02ea643f260783313c", + "addons/core/Prefabs/ERR/RescueHelicopter.et.meta": "f47b4a9a72faddcb5817e396dab7c115ac05a5455e5dc8ca4c6a3e9d5fc4093c", + "addons/core/Prefabs/ERR/RescueHelicopterAFRF.et": "cbd9c88b0a0c798096c78770cdef834cebfbdfd62fa12d96b56e74c5ac60dcb3", + "addons/core/Prefabs/ERR/RescueHelicopterAFRF.et.meta": "5cf8cdd7f34e2bffccedfab0cc0cf266d3c8a6856215e797874c531eb2a3ebf2", + "addons/core/Prefabs/ERR/RescueHelicopterFIA.et": "6aa11ddd56ebc9d0aefd06e1f55c7c61136d5c703b6eddc9cc84f3bcd8c8c26b", + "addons/core/Prefabs/ERR/RescueHelicopterFIA.et.meta": "ac0b32de9818aab77ff42d244cd5165112a7764eb6d289dcfe12ec77ea0c9b3b", + "addons/core/Prefabs/ERR/RescueHelicopterION.et": "a910548e7346439af90bb87e445f056aa1799572a69f87f45addbc17dc01fd85", + "addons/core/Prefabs/ERR/RescueHelicopterION.et.meta": "426a478d15718c0193490d5381f732e4c559348f2e5e9c7eb9473a4ca3017add", + "addons/core/Prefabs/ERR/RescueHelicopterWest.et": "dbf3827f58c27d957aac23f505a24c0af2a8f6c6555a82d0962a0ee5d47efb42", + "addons/core/Prefabs/ERR/RescueHelicopterWest.et.meta": "963b5b22139a2f3496e937855854c3ffe01604b86a93f1fb63b547bc1ba29068", + "addons/core/Prefabs/ERR/ScoutEast.et": "b4593aab494c4f21637757b3daff4f349da77b4c48ec5e8a4a2917a6a12cf811", + "addons/core/Prefabs/ERR/ScoutEast.et.meta": "7c72af632537f687e92f30b52d97fc7d70dadd39d33f37e0b1004f9596f55012", + "addons/core/Prefabs/ERR/ScoutGroup.et": "8dc0fce8ee3decc1c367411b00b6d8518df9d8458281cec0881464a2ce906af0", + "addons/core/Prefabs/ERR/ScoutGroup.et.meta": "62e43fd152ce57aa4ceb2187a49e4aecdeb9f428b3a1e8318f86bb83dbf8a259", + "addons/core/Prefabs/ERR/ScoutRadioPack.et": "f1c4911e2556c0e0caa8b896982190c5e7d0433e850b4610e19442caf9117607", + "addons/core/Prefabs/ERR/ScoutRadioPack.et.meta": "825506e3d814d30a52d5dbf64124470641c07a0453543ba71426841e6c783635", + "addons/core/Prefabs/ERR/ScoutWest.et": "2681b5a3f8621adb44195f0dbca6f3e79ef7decad8f9d0dd0e1a801ec2549627", + "addons/core/Prefabs/ERR/ScoutWest.et.meta": "22a6607b4b8fe606ca75a634a0b2ac3178e7bedae7f9ff01e7a4989f3b39a3da", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "761d845fc1c086da58fd87c8933bf58d46d1ff5e17cca5950141743d07c8ce16", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "4c97b0514fe7e723046f40f0b396f6573b12eb9981ca5df70b9e8aa3cf29323e", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "f33681281d26676fac88736091834d5a7b87fe0fa01883582542df964dcfc694", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Prefabs/ERR/TerrainConnector.et": "cf9cb28f5a3f41931380864a29ac979aa1d5e843456f564ac7a7de78f88e1aa8", + "addons/core/Prefabs/ERR/TerrainConnector.et.meta": "9f37c979ae282aabca29ce84beb0db851ee8b9a19f7f3a64d387c175616127f3", + "addons/core/Prefabs/ERR/TerrainTakeover.et": "63e26db48c624056350f9ee123ae5b815bc2fad392060a9c26cfcd86c0af872a", + "addons/core/Prefabs/ERR/TerrainTakeover.et.meta": "64e953e378ab1d2a75ee7246f876f4ef93ae8a4e3fddb5002d7ba37268cb959d", + "addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et": "aa857f7e8e0585839c7e9b2e3616702180779e68c6fb149d94a83c05bd52449b", + "addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et.meta": "a213272011050a881c87fdd94b229e002ece24f26f25db5fe53824f8a5b147a8", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et": "29f157849f413261494a63d4d5b0a97e8bbe61cb076efcd59d6c940653f23352", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et.meta": "544c94cf1c26757a10654de7856cd6cc48b821ce3bdc02add13cfe6514269915", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et": "cd4acdcecad299445952aea0adefc85f2b9e9b43f8186f100e0505c5621b3656", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et.meta": "123955da03462befb90e293b3bb856d49cc761166611b38ff47cb48ec2fbe95c", + "addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et": "11185bc813c00c5bda09c0afaad78849a1c81d89843e8f7f3a14c0776b8296a9", + "addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et.meta": "8cdfeb51c3774ed790a223ce74872cfbc4588fb6812a0e98136eb607dcc17d9d", + "addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "57dfbd215f28478a791b2e029832ddf3c363658d5dd5590cee4db9ec6a8b690a", + "addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/core/Prefabs/Vehicles/ERR_RoleTestCar.et": "2668ff0a0e80b12f80cdc04632b39b870c55d0d2ab38daf923e267d223d88198", + "addons/core/Prefabs/Vehicles/ERR_RoleTestCar.et.meta": "b8fb2ac3185c16a5c006a21fb7c7dd5c8a467cb01e1cb8a837f7b816fbacb77b", + "addons/core/Prefabs/Vehicles/ERR_RoleTestEscort.et": "1c99ccc57d5dc1622153638bead8fa031ce2cb9444355a88b5bad957de59172a", + "addons/core/Prefabs/Vehicles/ERR_RoleTestEscort.et.meta": "858fe6f5ff8e46992474342dbb68995b95dc1356780fcb1bc777c5417c592aad", + "addons/core/Prefabs/Vehicles/ERR_RoleTestTruck.et": "7f4f051525b4d6447f6df3e75da65a0c89c7513bee831baac8febb0ad2ab5769", + "addons/core/Prefabs/Vehicles/ERR_RoleTestTruck.et.meta": "bd4a554d93805b90b4affe61b1db5d7da8e6a480d62dd61a111b32450807778e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Actors.c": "7258b838f8365e4fa575c4f2ccc8532e22a33946405ebb490120534d5ca65607", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "cac52cfb9f31ba42daed671e55bf5d55ea0840139deba5d13a0e156ec90559ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuFields.c": "55466b735c5c8f1041ac600338d55847372a71af48ba1ffbde8cce4286e55b19", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuPages.c": "fc07549ba14900998223e8c1a95f57ddb0f365d0d687ac4907b0d97ffe1612b8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuView.c": "6c34557350659782bc1a098169dbbabf1f71502c35cdf711b83ce0efad907142", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminPlayerTools.c": "56780d78bf423f54f482d8620f821b8d3eb0199194482b4f12e37f5ec3f55ef5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminProvider.c": "62e05aceb49da07fed7aa89fb6b2f8eb3efc373ac09eff286fba983c3ad570eb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c": "277df355d00458bf4a337b68feeb926ec4aa12c1546a604d039121a1bde7d995", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c": "27c88e9317ada33351042f0d1bdbd8e406fd798de34d1057544f1c6165a289b2", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AirfieldPlacement.c": "0601d8da570e1f63e43ea7df451d0e997872e4e163669fd8ad37bedd59de7b9b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_BakedSpeech.c": "d11fff16f86fd3447126701af84c3800860d721263b3c2c16d3b91d686d8b2fc", + "addons/core/Scripts/Game/ERR/00_Core/ERR_BuryBodyAction.c": "adbf4cee5b5f5317b185f17738205f28b701a15364e643cc9fb443866a121109", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c": "8010394e7731d3bc2ce436cf795a37819e16d4d605e8d152027cf391e811d37c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingFeedback.c": "ac554a946cd14f73a5bf79005b8a3f770c9caaf0a6ea409134077b8d96f9433f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingGameMode.c": "1e670937736330716a467157d0f45bace512047d7e87d8678f4ae0ee123969c3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingOwner.c": "3f430930c2598951b75cba157a57967189686ca7a86aff8ecedd20f181262bbb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingService.c": "6efcfb4bb1bdf0da84400eef28a24f6c61e7f446073af2c9667b6f26f0bc47b5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ChatClient.c": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CommunityStatistics.c": "84f2615fac1375bbe3738edd13a413ef1d524dea5ce0195b05b3a957aae84435", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentDefinition.c": "bc1dd4ed27ec894cf4bd617fb226cb8140b544aaa9ef6d8654e815d81e7f6fd0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c": "d9df3b2dd8fca119ecee466dc71d336b5a70ee7d5fced368cf34e250d22075de", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentPolicy.c": "3a4987345d5a7159234a7e1a08bf5ac40dd5a23031e9b1953fc43a0501d9924b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": "3e2734dfb935a4e93d79b66ca4a7c883723a1fc348e3595432dbf2bfca643923", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c": "832aebf6e754dba54ba28b8f480180d32ced968a2d2f192424c4007a862c2b43", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DebugAI.c": "bc5529c60591a6c36c39cdb753b1af948690fc3c3c725f38a8d595b41a499235", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DebugIntel.c": "a9f6e7e42a3214879a21052e897f9afc0653c12ff15d5bee7766e26a1af6ab17", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryMap.c": "8a8653b322c948c462002077272dae79e2f45a24e883767b3ad9c1f24caad237", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryService.c": "552d9e40f72a135f19d25a17fbecf475b8bba8d8b62ec6b6d055c65499a0b637", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DocumentComponent.c": "885c8ab4fc9e64c3f8b40056536096c8c32b011cb340b25ca00353a96da15c69", + "addons/core/Scripts/Game/ERR/00_Core/ERR_EnvironmentService.c": "c0fae5bf51ccf507bc84d44adc2d1dff021cd83653c0468b7645a4f343e3fc8d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": "14a75e040f510773313c7e70b57f338821bc1ded650bc65133968dcad6e49c7c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_EscapeGameOverScreenInfo.c": "4746b0715c6e9a527038b47d54d2ff305becea219da6b736f6998d81901143c9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionPlacement.c": "6d388fe21f08b25cbdb5dfa4e198d94a4c80c5092f8d17630a4654e18bf8b3f5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionRadio.c": "ad7fd91d8bb96f05f3be04a03fd00c20ab9413adb12d649d3020c6f7994319e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "c48e79a117990f83839704ae221af05fc7995b956af2d4b4f9ed2a6b91ec335a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionMenu.c": "1deab4c396c307fc17dbaa8731b2943ffb73c37dc0121a5cba5c239c34901ba3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c": "04b8bd8a042cf743ab8a87ec3711f9758e7b0112995a9d363e81a63df4eabe5e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ForceLedger.c": "0ecaf1c5a52568e751678b0b1236e91e6adb538f8fbf010d38b61a312d1bf253", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ForceSimulation.c": "2bbb8888c752a3ffc042f3059937526d25ae288af5b4db024cc683025a2605ce", + "addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "d26e665cf5b9c0e1dc6c5e2da200a99711ef9272718d330f5aa66b09cede40d1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c": "4943f761d0274e163a1da325ac4f750de9180947b05b79ee173e12141bfd6661", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryHitZoneCompat.c": "23c34f901311dce63a79aafe83c11e2fc25bd3fddb0cde38bd313eb90878ca90", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c": "1319637add7f9fdb122ac130784c5426d90a32380d870df03efcce7f297c55e9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationLifecycle.c": "0feee55cc5ddf13e00fe73ae3926ec2cadd5ba861d793a939164287ccbe1861d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_JournalText.c": "1ad00a77cb0be741c7b6ef5dad2d8a8c1ff1fcca3b093df2e132ead0b69f74e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_LoadCasualtyAction.c": "1521af55a34110ce1c971b5226a618a9c6d931622abaae4946d9c0d27c05a273", + "addons/core/Scripts/Game/ERR/00_Core/ERR_LocalAdmission.c": "a076922d1ae966cf5cc67b198166ca6b1288358fb7f641207a4681e6a610a2ae", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Location.c": "6323facd2d5b32382b466a2aa0140064632a8c1de0597e0738cb09a3fcfd7abb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_MenuTheme.c": "90d9babfec7978b3d7f5baffedbbe5c1b54a9742f576f51e6232043e32d1cc9a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_MissionRules.c": "17d1f48878b02a457eebbe5ff87c4267488d68d2a9b3121dda77a8bc8e69c8c6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c": "2deded62be82adcf9866dacf8065f0c6a9a643bdd60a1c3e87990e1c70254c48", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminSettingsProbe.c": "73e58561e08e50008d33f81eed606dd4e8109fb69a627e892d28ca468d641f7d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAggressionProbe.c": "dcda8528a64d35e6aa2f030b59503a49ea8a85ffcc33beaecdf8da00c003b50e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAirfieldMarkersProbe.c": "980025c07d042c2f109e2c99ccee0316b596806ba2c4fcd9446b6ad7580d1d1f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeBaseSmoke.c": "f7697361c6a056a62aff86de7f7d69e9ccf47b92121dcb96ed012ad136e47e30", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContentProbe.c": "cb0ccfe1e1575f9ed80a8054058b471f3543378db059e6af2fed8eb42a262638", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContractsProbe.c": "60aa767d9455f2f4958a6a47bd68bbd8ab0466adc8f1dd9ae433c40ae96c68ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCoordinatedAIProbe.c": "9104a7a5154bf34906f135f00c5793229e343da6a1ed19dd572e3c1d9821d393", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDefinitionProbe.c": "904d8d4c3e7b91d49dadfe495fc7b4f02f300e4aaf7efa348df5ca17ec4a6e8a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnemyLoadoutProbe.c": "0885ca69f6fa7f53414ce1792cfc3c49916886b8173783c634135c13c5d37429", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentProbe.c": "9e2e66ac5d9778a1c65445348e3300cbb90b68b3f669f3ddf1d2b78a858430eb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionCatalogProbe.c": "e3011fa47b67122d7b2c23af8f91b7a217599d6cc114c4f9de628744b9c948d3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionSelectionProbe.c": "946879d822e7be2d48e03a3140aa1aad3e3d44dd18507fa3cdedb4c6d7dd81b9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGeneratedSitesProbe.c": "a3202ee4658e98539122926755caf689a693a79642e8c88d3146c247dd961138", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInfantryCombatProbe.c": "3e4c4382ab91f470357268927b954fd101685df6b2244df483f0422d6c0d7da2", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInventoryHitZoneProbe.c": "604eacdc66cd52bc8a0115862ee7884a8b0f83bdb50609397de671eacd476543", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalCombatProbe.c": "59c5b04dd32370f8cf5c62fe6931d64209825522127a068b1957e9d1556274e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalProbe.c": "4b73e7cf35e9c8fddb089678a320ea58272e1b6611318d0a762754c171eff785", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveMapProbe.c": "37e66177ee0f16fc33d3d18321211206bc4f095fccbd17b177d4b8cc1ba4e057", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOpeningToolsProbe.c": "0c5d6b96ed5a7cb1cf0d098d534dc7190449ed09339062e6b584729d53a61b4c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOptionalSiteProbe.c": "59d86432c19fd85da30a63087cf1f15375c8ee30178ed7e2765c1bda4cc4d035", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePatrolProbe.c": "5a2af71cc4cfccc7dd7c23584398a38290eba1a8894cd46f6967252ff3a7087c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonBreachProbe.c": "4889e0d3799a6a21b9f84bcb2f2ae78dce16269cccd1329f8d1fcc1a23e7c22c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioCampProbe.c": "67f1a088f9b20e5f0f11ed3aa083ffa772bffd7c74d85b7a307344ac3d47e09a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioDefenceProbe.c": "ff1e27a0ce75b123a86e7df31354831880ca62ea90b6c5d7c60d3ba168e1fff0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioInteractionProbe.c": "7b27552d233813894f65c08eb9f04b547c4ca9ff96a2370a763cb94bd4a555c3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRecoveryProbe.c": "d6691f22432b3ce37d07d448aeb3ce7feb5cd09e852e0167b5e4676afd24bb21", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRescueProbe.c": "78f4dc11a179a5b924c0ec1939f0fc1e61d4e6f6647729c48a9f126ee32d1714", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeResultProbe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRoadblocksProbe.c": "6f44725b049f2545a9ce3c94ae3e9134e16077fa017a438fe4f073b453292c1e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSarkaProbe.c": "511816c4b86c9f1392bc4a1d83ad11e082280bec16356d8ab24ac1f2094bba93", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteGarrisonsProbe.c": "1a5ff8747d7501862085b5e9162043fee3b05e82c73c516ad8093aaada53dc60", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSpeechDownloadProbe.c": "5377da12cabd58b9105851a2348d7496316db371bfc4346a5fb3f84f245ec013", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTimeProbe.c": "4a2c6ffd947334a0a71eac083d10c853c524b00042e9ea0987497c4cee60c3d5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c": "7a3fe04aa1c5ed1061ff63d9d5180e8b925932b62d76c1ffb49bd3dc23530993", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportSurvey.c": "e5abdb69c0675a20f4287afb24b9e3c877e91b162c77c32d81ef61e2a8b72577", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c": "59bce863142e4fba4b6fb2f544bb8a58061f0e99b1a38e5ac291cea919563763", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveMapPresentation.c": "70339c05c550b72a4fd5890a871c5d8e6a9e574813d61696194c5fbb1475ac8f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveText.c": "d2fd3670c89d679fcb1359ebccf67b58734fe5168e31fc239bdeffa7f8ff0607", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Objectives.c": "b9cd5bb3b193c20401175c4328405be1b121e8a60b7b5999910b6a71f834af8a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "7c478eff3575eb1bd8a85c08955d4ca7f63b57969cd7b2b76dfd6c42136de1af", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "c287a1891451dce0836c6e859eb962c154aad9621a46e50400f44fb83f97d95e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverScope.c": "97d29535a0ca1571ceb86996f58b68e5ba0944edfe30370455c52a321772f85e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverTargets.c": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryGateObserver.c": "1e376ca83c0005cf532539e14d7f47363c47b7c5b03fe3d55405a59208705fd7", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryInputObserver.c": "808a46cc1e4b31b65dbbbcdd55493f594ebb3974bbec38b4a2402334c653c0ef", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryLookObserver.c": "d5a1b636938d65e9d11c78b31487f2924400c34d98e2ec812954a2a224da7dc0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryScenarioLaunch.c": "8d8da4c1222dcc6adfee350490f4399b4129cfce7a42b45fd7fba52febfd3eda", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PassengerHandbrake.c": "3078487e077aaed1567894f6df12386aae440b790b6c134118d3afc2c4da156d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Performance.c": "037ffa482e3765bb537629e34f10919d85d4b6bfb0abf56ccc7c0d44fce8872f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerAdminCommands.c": "eca9baa3b07da48a740851583540840f8bf5f65f7be854902a3778f76967faad", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerGuide.c": "dc52f551a1d3705fceb64ea18d882009d9e9548c01f08ae1c7ef3083b19ab2d3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerReconnect.c": "478fd041e8a13132df25202088f42d0810d36680060dd7a0424d8f40a5b1ca44", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "dc785a8a1d78a285fe55ce76f87b78a9f522eeb9f7d9655dfe9b5c4348a26a18", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationFailureMenu.c": "5c31219740bbc26cb903a91f4fe22866c465b38220391093c72a3b094ca30f34", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationStatus.c": "c5cc9125986e2285282f3f7fa9068ca72f00d7e26465d00213e734039c0e34e4", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonAI.c": "67f8b444824634fc37fc253c60fd24b56d06d971f48e56a8d53095c97aaf0070", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonEscapeService.c": "ed180448cb516bc4ec521aedd366810a47787628c7f5ee9c9afdbd185d980751", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonPatrol.c": "284618391ee2da84dbcda4a99ca3c072eae3d67b8a9ef40a86827b9ea00810f9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ProfileConfig.c": "b5aca526a860ed9ed609dc3fad99ebb34d2f6fbd537575a167390472efd4ba89", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RadioDefenceService.c": "f5f0bf1352141f933d0edb5630e30541e001dc07e1d2c8529b29cc159c126b13", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ReaperRHSCompat.c": "bcdf98c05ac6cdf0c7eaa854531b02e9ee4f53fbb346ae01d58114e572e7dd4f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryForecast.c": "0eda507fb58860c0eac1d957319d1e80e9576a870d22931c86081db748df44b6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryService.c": "182037828b74938746022ebe03bbd9cf849d52e31067c0b33f392f03969d6162", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RescueLanding.c": "e6f63ee8860335de1125e0a62eae3b8406faf5a5ad2c8d9c6f9a6da077986e56", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatistics.c": "60e6839cc50fa02df1795a00b93fd431160f9201bdbb6f1e3b9b50271306e9fb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatisticsLifecycle.c": "b813a9ccea9a61c9c6d7d4806cf18adfb323d483622ca1225930207ca2436d12", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ScenarioComponent.c": "ca6b20d5c4599e31957e5cb464d21bb3a4bac517dd539711f9d4f380e48a0e15", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SelectionStyle.c": "b9ea5158e51559dc13812cdfa8939ac36b58c79b9e4115c72465d869fdf264a8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SelfEpinephrine.c": "da5850374b51e89016c4557d06f3c7c087b6e6e36fa9734b22c7c6c50d757914", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c": "047d8c4c36bfa32e1afed13f8199f01681ebd362c72d87da8868cb6959661973", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "b81283ec17fdd9f72096901f8bc2a3c87fb8fa4c8fd488579ba0817328b9dafd", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c": "f0900e42100c9a58402cfdd48b7f27689144f53e03d3ae3dcd4bbebc13a5f61f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehicleCatalog.c": "bbc346188ed280d34b1b519ab7c96c6bc35df9ec3e4bfd03591cb9b8008f89f7", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehiclesMenu.c": "d873cdd81b2350acac7068c4d59d5603437561e061a3b9ff2cde2356239da322", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "fc5cbd7f52632228c071b9f14cce7979ef55298672e441f665f0efa97f083249", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDefinition.c": "d421d70b32bd2b55cd8e4966c04af3d5bc381ac811d3b4b2efa4bc0a8af8bd2c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDiscoveryRules.c": "dcbce3b7aee89bfc47a50e9de89209758af1f1bb462b99af67a8ad7a26e9f229", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "2b283ad19b046fd6b33245d466b197bd05b4c472e128a747e6b1e725f4a34c2a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteSquads.c": "183883783a4e8399cf62851a4cc65a5d091d25131bc53b4323cf17286315b2e0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnClientScene.c": "b56f99a91cdc53bdb93d320d10839339022d7e61e6b101eee8296271abd7d3cb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnFinalization.c": "6ec741f8d19ee316d3c67b0dd2216698584bf2cde3634a3d6a7c3cdc3a3935b8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c": "6d9243f66b4ca8c53d53fedff9dea8986c815e90c1f97de58200cd759aa8b49f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnPlacement.c": "fc5b61f1877aeaee75fbfd6aed3cd0b4c5277ae8543bc38a0c09836353d54b27", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneInventory.c": "76b79d5bd9d1f367e1ed19724302b7d49f8b0ede85cf19e89c452582ef651f8f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneLease.c": "20de7f96bacc9037580d88d4424664b4554b2c082d82e7d29913e9dfe390b594", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechMenu.c": "33f9ef80b4d6cdbf3646eab602d15ae0d05884bb20b3a7222b0648752339cda5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechService.c": "74ea305ac0c9a9d145646a5c73cba58e4920ab472943ae73b3dbd71d8216f752", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpack.c": "4a36799d3a3defd674822974cd96647c0accb2a854631dd5488c35e2ef697f7c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpackMenu.c": "07c90db1a84893759dae71f40b7ae3109827646e48fade542190d21598ac271e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartRules.c": "ab7c21ef700343cbe769d8d51d91f167db37285b466d6af9873e121b3adf4ade", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartSetup.c": "58a6b617b22910d0ce9255f82091dc11cd1284417a66adf1cdaa7b661c1ed01c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Telemetry.c": "b1dc3ecab89f5e6db1ff4ba613b43755a5ae44f3612249288cd134ad850719f6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryCredentials.c": "9835caf69d4615d6a3fc840d9dc3cb0f507a0c5a2a6490893c21761f9cb4a216", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryLifecycle.c": "15d2d90d4457339dacd61c1bb23b619243b8af10731687c35ecc300125a642f5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryServerName.c": "7744762c4586e2543601fb0899847bed311c439cfda3dcaba825adf870628693", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainCatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainControllerInit.c": "8071e38812ac61f9b480d9e91f9ebc7712b360d431f5555da83027db6cdf2471", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": "93fc55f2c33e95adbcf2bead3430aa14bdb55154315760bcc9647f89dc8286ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSelection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "4ac347d4d91951bcc7175a965ccea25f3782edb6e352354cce506d6b626e5ac0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSupportStations.c": "c4fe4265963ec88e24379c143edae251452c84e43a3102f5da120205f9a39c9d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "ac31af5ff2937f8a1fd89ac03732a8a473b27b09c83a07923f17986b0f9db841", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "70f192d5d749b4211c5604575d2b9d7e39deca589b5841ffdd03f99baeca1280", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "ab1d64c8073e4daebf14f4ad2c745d874032675ebcac3fdb0fdae4626acb8dbf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverPresentation.c": "91d450215eb6ed2da74446b5fbb805356e3881e3cb43e37fe45308e30b22be9c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverSettings.c": "da22775930b13e41d4a71409e37af3bb99e4cc1d94bdea0e3b59fbdcd4d40132", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TimeService.c": "63867760876d523a1794f619118a52c5cd387d5d92756cd286b2c16a348a6c7b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "cfc63058a20fad99e76c59b64d0d288cc3441fd3486ff63a6dde9998b4ab103d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousWeapon.c": "24d31bc857486638e55c605283c17cde0cdbd3c5c6021eac1ec93611387b10d1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityActions.c": "bd7d0aeb4abcc9d8044e4888f9a92f9e5fc97c098bdfa3bbad57e1a29697a779", + "addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityComponent.c": "2ffec4e646584ec546147fc4b08249825cb32b531aba26467b586d760485adc3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ViewDistance.c": "8514f72f8207f12570d2317e64094a45507a1647dfd45a1501499ef81e90189f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeIdentity.c": "8624bac67c1990f87b3fb799361e5facd31c2e03cb621563b9c73c4fe9d7f87b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeVoice.c": "a6a9a816dee1c766675990c158a757cf9ea8628a7b2b0de991af67ff4cd23e47", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZBakedSpeechProbe.c": "533c89b6a258dccb61d7ff6abe0a43da58d52ffae60735a38c2545fbb4480afb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZSelfEpinephrineProbe.c": "a13e14d1ef525209d4609a2532c6d72135377ce058298937b632a91eeb6392fe", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZStartBackpackProbe.c": "6778cd98392f4e73dfe974782e626d98472251c1266698020d63edf8fe735bcf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZZZContentReviewProbe.c": "ed68df0e1f0d60fa90cf43e6f5d7d4bef15629436667c115810d9af13241a7ee", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AIDriverHorn.c": "db9f100c6cc10efc6f5b86e8fe9adb75657ebabee6f8bf0c89b997c2e947750a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAmmoMission.c": "0a471a40c8f7dfb797d8d35e41c5b1ff91e8d2ab13b43cf866e46c0e4ab4ed9d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultLoad.c": "de7b6c485167ab68ab0b37b96fe161ee821c2efd41362172b810448a02110e68", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultSystem.c": "2eaf9816eee3e1cd2ac70744a6ef7ea5a90d0a3eebdf925e384028a7edde6a42", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirReconSystem.c": "f8a0e3cf4552d8133efd33c2126ea15a7694676773a7047c15e00021c1d9721e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirSupportPolicy.c": "c1a7ac8759ca8ec8b43cbccf303255a2f0b69de447d0d991e44b6bd3db415d51", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftAmmo.c": "2be282406d0c45ab2e35b0ced791b5e494c662588f536701a4e82e6f5fb7c913", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldEnvelope.c": "0f53c7d9ab167a804eb904d63725decebb53fd5796fdf27864a75abed5679838", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldFlight.c": "c04e264cff9963821852094c451502d31bf9c96d4deae2e8ff8a2373b53b5665", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldRules.c": "30be68f4ca2db7e169f6f0432815821179cddf9159f7b150341dc8eb479bbd17", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftService.c": "3f05209227986b5c6bfb193f8f53783cfd4ef083bce898e22257c3e63daed913", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirfieldSupport.c": "c6d88ede0b1b6bac5a7075b6e2e783ccfa8850210aabd28bfa4bcdb698cc5f87", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AssaultParachute.c": "a93c996059e7166988e9d1b0b498cbfd36f19a1cf8520cb4e9215a8884752e18", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AttackSpace.c": "e7be303231b5946d78c61480a5de3f5b37a63d0d2281a9a30a21e59f072904d0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AutomaticEquipment.c": "8658421f846fcd3402289103762edaccbe3ca26280d7d72df2846c32ae8a4cdc", + "addons/core/Scripts/Game/ERR/10_AI/ERR_BodyRecovery.c": "f5fc311ecac4533c2d053a686c51e71216e69130a34483f27146627172914c99", + "addons/core/Scripts/Game/ERR/10_AI/ERR_CessnaBridge.c": "f1adb0f9b92f6ed94a8e9897b64e2fccba0f28552525a93f1ab893faa4fc5da2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c": "b6509be9cc891ba4c1fc0f3fed8b09ebb31ca69bf2e5b28b50a6060706baed73", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBoardingProgress.c": "328f8a5eabb8174b7727eee1d675db83a2eb0be7b8e834db4e950a645ca5d7a3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBudget.c": "fc7e254056c1da4aadd26d4f56d51ee375d5d3331f5f7e5183581108c7474a10", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyCombat.c": "5c4b7576b28d51edea868cbb91a0ab31a40e6ddb558f1b8a38e07e20fdb2969d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyMineStock.c": "4497d6b790a45df2b76d18541ddaf299b406def88b868caa29f096849026a42c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyPlacement.c": "af4799e3028448e1a73f944989313e5d10c6262521bd29a8cdd5236842717963", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyRoadPlan.c": "fae404f85cae63e63976938a5fdb73efc988ba25c5846564f12edca04fb88551", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "5abc35861aebf2e4ad00de11f040d01f784c6f2184de2e10beaf46a74ec8758c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_DroneBridge.c": "9ad23a763c5995b2ac6f68ed02def487b0ba887e8ca68f0e546d1b6812504cc9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_DroneRecon.c": "dc685b57c884d733e0ff90cf7937f5664ec08545f4cbf59d63bc8a84383dc442", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "dfb6a7aeda23adb8aff2292753b694770affc9855bff9fb11d50bb534f9219eb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyGunnerSkill.c": "adf8bac5a6f7e40b2f9caff5fe9be590c4e4ce2b2b387ba39e741a3c4f4cc564", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c": "a48f32dbd7f209bf08fce2840aaffc1781c571fc679763be58987f6b082e776c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMapMarking.c": "0f161fd3e08a54e3e1063679127549e482c40253a022e9d06cd9ee4d740b8625", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMedicine.c": "68b65c98214e1a27383e155727901a4f70e9c065bb0cf133bdcf7fe6d5a57a40", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyOptics.c": "215e8a05594c541861b48e093520c00091708eb0f3635dcee5d0b5e1160230eb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyRadio.c": "3a97e5c3de9ff33873d97c6b2d84ae505cfc4f3146e047b928e76ec3b22c8789", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemySkillAwareness.c": "00c450d033e43fc45c9e2cb64a1d81161d123cc594a4292cfc5f68eb6c17ee60", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMine.c": "067bed625a3f4d0fa189f46476988e90528c59b2351ec0ea71916317b06efabb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMinePosts.c": "bcddb72845189b52e5ed71c687d7dd4b0b40b91b7306c3f6edf84a631002fc5b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMineSite.c": "d838f5693d4fa5d252d529e59777f560674c02532f1041a5598e938b3a850839", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EquipmentLog.c": "df9eec7f94e4bf1b30b9463604e9b97ba3cbff36028a80b81327b0b021cbb2a9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c": "673661374e0854fd896d3d51aba84c07088057c941751b311daa4a97b899633e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "c51fccd0ecdb0a1d6ba99ae965e2e572fc1ea65a5d8dc2e1e2a058698dae45c3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c": "6abb278409527bb67db084138a773de240d99ba7f63f9ac740f8167615d53f1d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "21daa9ed8cb5f2dc08a0fa85e305fa4b4f3e7b01e16c71fd1ca98d66a4e8b652", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "8879febe59fd99584add06690b29853f7cf14b580bb15c9a955cf1a2ce033908", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoReporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoSampler.c": "8bb0ec1422887feaa340307d3c60bae50fc82d424fce6390876e580ff8b75e8b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQBodyObserver.c": "f59421c1e0c83f0f480d7dd4d048b4b0a41193ed8fe8f2f627d2b6a696420ea1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoverage.c": "0ef1ed718797114d95c636c8fa5a9e46a5f2a7ccbe3f432049b0c7d37f1eebd0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQDeliveredCasualties.c": "1f738127e55e843ee2705007cedb5c08741f52f63c75eca7c80242177af82273", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQDoctrine.c": "6335728e89ed40ce11b811f00b61bfea76e94dd3379e4357cbfc438b05522bb0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQExecution.c": "d286b8273faec0acf87366bf53ad2517d5b7d909741e981cdf283cd1f4f50314", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQHunterOperations.c": "b9200b6de3a3a61de94ad720aca94aca64db542acc64ba65e7b8061a5e4884e7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQHypotheses.c": "060796bbbed604f9733d23e131c9836702870c6e25c81cc0b396c885eb06ade2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQJournal.c": "53563ff54fc4e0656713d6eaec5e88ddf69fd4bfa8ef6a67cfa13380d24031e1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalAwareness.c": "124260280ac8eda0e920bfcfc86932c9b21df6b1f7a6aa8acfc43feea3da149f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalHandoff.c": "2dd700dae9d9b232d22ca63ff01af75a3f5cc213ac24b7c0a43ffa38bc0b9ffa", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMemory.c": "ec2047a477fb4273e22ae6bb68e7365f321f55c583b5d2c48c4abf2ac38e3b7d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMineSampler.c": "2a0fdc4d27e947a1d77b02ae23f757c7fa074eb456f817b7df0766583d757f55", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": "97dfab7381385959b0906be13fa2575253ac43be91a271a5d41edaf4106366ac", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "12769b56019e9fa5b8141498a1c33814ba5262253193495e72f85972365961a7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "5f45545c11de5e183969203cdf07e29089697ddc89752a9c5aea0fa2a1a33a97", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQNetwork.c": "0b73be993628a55e3b21c8670d540e39c938093dd5cb4d586e800ac530509b25", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQObservation.c": "57ad3f0b68d150791e30a7e4bd7dfedfb1ddd78a1c76f228e67b33ea9cb7144e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperationSpeech.c": "6f133c104223ce23262c2927db9e16df0f76f1ee647085114baef1d51417f4f3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c": "280e91feecc4e5b6d0886fc4201b12117b58c56857d4386b6c4cb963557274bf", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQReport.c": "4c0c1f0e33f621d1e02375cf4f56b0e8c4ba6fd851912d3d16081949bae46158", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c": "f87727aa1c722a180c7b71fa2d896601b6250978a21bd2d1e973501fee81373b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQSquadJudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQStatusSampler.c": "b937eaed913a5095afa8e678dc1c36b5c805541bf8cd5be927069533d6baed1c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQTacticalGround.c": "eba9a9cabdaa80b936aa5e7025544e8b011fb597b96cbdb8d781583c025afbe8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQTask.c": "29359f52734cbf3400e12696057bbb7aa54466a018fc88c42015b6eb9bb9990c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQWatch.c": "abe634cf6003ae920ec1ed18e305ed462920204960894520d3dd11f7e5ef1c33", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCloseContact.c": "56f22051566354ccdc61531af4869b62458a30d945e4d21de5aadf7079d2245b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCombat.c": "df1c319d10efd07ed6f971cf0e41d8d7e377b04ea7f0fe143bf94df733fd1d9c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCrewRecovery.c": "22e192ca222017d4d7a27210c6e42cf0f128827bca00b37924c9c8d6866b62a4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterGunTeam.c": "0e66d82964ef8eeba29de11d5bb2af954ad72a8090855ac4c1b28fe1e66c0d69", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c": "7791513b8b41f4d2ba1b593b5219d7f6e2bf036e352f8e4eb1a8029fc97ab7c8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterSarkaRules.c": "8c8c96e2f985f553e303f7e459b73a2a5cd0051951b22aa0ed364bc2ae19e194", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c": "c938b8beb3f72ca1b2a76b48052dee70fe52651593dcdc16b7993a9398bc92e8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterTactics.c": "274ae619589b85cf64df1510631ab914aa9fe8c50fc2a76e6e8c5aa5a2c8d9ba", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoAccess.c": "ab4262f78d54782c5ecbf5fff4ebe3da16d72329658d7e18c0c35387dc8b3c7d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoTransfer.c": "99fa26beb0c0869d0cd694500f3bfc0705c2c1cf674dea90d98fb93a59570ef7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryCombat.c": "5d7a8e579edf95003133ddb6e509202dba56ac9e68385247e1ac0256c1b319ec", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "ca8eee2704e7758172e33014404bb1307c683f19b561b840d4592f6312051e62", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c": "c8e454573cf064ff392291d6feebf1f23be64390b5b8e944c03dd065f9f46b42", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InterceptVehicleFootprint.c": "5dea67d14ebab67231c485e14bc92f34c005a5f1bf6d9c0943db28e9857e958a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_KnownMines.c": "045468a052e485a91da601adcb42b504bb6e4ff13b096bc0666128e50a6aa9c6", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarBattery.c": "157024afc8fd3c1ffeea6ae923ff091e5773b9ffcf5f5864f8040d001e689110", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarFiring.c": "2606ed8c19d5569815dacd3248f012072bb76834f429ce7557d24d884724f733", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarLogistics.c": "b3624e4a00a2bdef16f6c100bbd79910e3bb8c2ae8ec5fe2ad5aa70bffecd303", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarPrediction.c": "05863b2b4f9f70cdb288f91c722cbea163c13f2a2927dc485482e5bd4fa7d57f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReadiness.c": "4c3799b3f2681e977669de0cbfaeb307d9a682b04365bfc9f59079e762965758", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSalvo.c": "c128850c7a78a4d8fee00ad38f48b265f1fbd1d9b24b092ddc5c205b0f0ad6da", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSpotting.c": "39b3c223ade610ed9f1d73040423339ac65c90b153f30c6f5c42290978c57427", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarStation.c": "cbbd7c86f722b664c85ab7c070ae1131d2ce5c41d1dacb4381bff9c1720a1866", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSupplyTransfer.c": "ad71084f507ad9c32d3055e7ec6844a1ec5ddf568c0216ab8391e902b56e417c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c": "01bae0bab685e9f0c86c3a8939d18ce6f20dc0b8c1a389d179d91e93008c6957", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c": "5f7ca5b31f3b405c2a6ca32ff91042f5b4dac6ab9640ce67fb10d7a74236ba69", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoTransfer.c": "0b195784497672fdaf651f336c14f7be98c257f98c85cfbeb4f96fe1a401999b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedMagazineSeed.c": "b42d0aac142907433df8bedc40de24c94813544016cf5f451846f1980250f995", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedResupply.c": "c26ad43705765be1c20eca37fbe2978b8c647151f6620ed37141657a4b7dc312", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirAssaultProbe.c": "c1d55b338b157b758e6ffb993d5f689029b28b13929797c91e5dcb15b5e561ea", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirLogisticsProbe.c": "58fe863775d0ad575cb566c78cef696c9826691cf49ef9adde76376be7316db1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirReconProbe.c": "c1216e0512a0268e4dbb82429e228334401c0c3cac52ba4486ae6dc91e41576d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftFieldProbe.c": "b64907c7566a894ca2f3c49ede5d972d4087a938da1a0ca87bcbd7c2203b2c52", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftRouteProbe.c": "8d0dca97e5106d1c84b64992c789e1af0689514beefc027e713ca6ab901fc470", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarSalvoProbe.c": "fb9ccc6b36247ab3ad828ffbb2556abf5c2838d93ea6cd1ad259c0a015142f5e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarStationProbe.c": "a110f0abc753cb1d2f781e457e637dd5346ecd2e924eb5eb3a5c7dca3d1e2340", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativePatrolHQProbe.c": "9784b551cbb91f017004fb728ce08b5c36bead0ffc83aa7149c2c46a7c4dc495", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeScoutProbe.c": "41b39b1abe5e51a5b8a428d533cccbfb0dda9d7a570228dc3489408c60543f17", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeTownProbe.c": "28876e65f9f8a7d96d8056f446b61e12e97d9bbf1a5ac0d4c40edee44e6c4a21", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ObjectiveDefence.c": "83ef91c2118521aedb4c1838b2e47909c80e0950086449b98ced168f1fd87080", + "addons/core/Scripts/Game/ERR/10_AI/ERR_OptionalMotorbikes.c": "87cf6544983386d29058a6f892aadbf242a517cfff4ed24348f56a72bcde8cd1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ParkedCarCatalog.c": "1d865c263e910071b127ccd1bdc8b58dd45768c4629194da49705f76995ff0e7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneFlight.c": "14fa2328e1d31cf59fb89cbb53ba33224be6cfcdd2813525fa9585f8b2e237c7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneRecon.c": "fe94c29fd9befd3c1bf3ab97b9b27458a8563697d4d46f72df43c6e642f3664e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconAirports.c": "7551347d776d6e0eec818d6468cacbca7ac53daee7317e0a1618ca3d39ebc762", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconCrewLocks.c": "83b63c21574140208792aaf3d24e3d22b255a078871382122110bb48520d4541", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconFlightComponent.c": "1386e2a2d2a635417ca517aa1d8ddd4f657dd415ff59be2465543cd8f601e7a9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RescueAssets.c": "fca1a4518baf09f0b2c97f3a51995001d9674849417fea9ca1233e8d1f578495", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RescueFlightComponent.c": "60db8029bbfbbb362b5bce61f509740eabea5925b93bc975e7c2b44addcf03f3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RoadblockMining.c": "47d0212cd20c0b320a47123d17f2b89f7d60b44072a00c69944ada7bb83c4e5a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_Roadblocks.c": "879f78beeb284d1298ec49dbca9624c5f3899ffc6fcd376e748bf55e4347d4bf", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ScoutSystem.c": "63287a252e4e7d5aefce840279f26ce3e1f286cb79cadb32596c37897cec7119", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeech.c": "ca87494ecd355052b46b72e2faf13660e458f3d376285bb0e4c20fd0112ef2e2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechAudio.c": "4734d614c5366ae3ff57717f514664c9dfdbe4408e16ba36f6b10d807361e313", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechContext.c": "d2baa94f036f7dde5cf24e004ad1fb9416f249cbf7d0c6c07c5898f7d21751be", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyColumn.c": "bd898aabcac5724d60dbecc4ff5ab6f062c66cf7c735ff59127c588ff94f898e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "5393efab9d663382e67b9b27a388063986a4f99c2607328c998f007588074ca4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "d2fe073b0c23c877afaa65e246544751eecabce4febd72412fc9a4ec18eb1c8c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupportScenario.c": "151eb6189701e559bd4f1359c91187f5a64deab1f2bacbd521c4f4cf3de6d878", + "addons/core/Scripts/Game/ERR/10_AI/ERR_TownGarrisons.c": "9b48331ff8bf7e5a111b498c59a57a5d0210125af983424535286a4aeda9a18d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_VehicleAlarmPerception.c": "45ac71d25e10a057a26a5b0fc7128935baaf47f4c0f87208a4420fa52086fd98", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelAdminProvider.c": "40adf8497b64cc74b1390149fe5ba789ee2f14e6fb3c325af8f5ffa8c806878e", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelDiscoveryFeedback.c": "741de1dbadfd46c154905a0918aad41386ddc139d843553db55d20d60700c020", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelEvidence.c": "ff436bd3c7aa0fcd5c24e940430c1ffdda934889953f63e877ae418bc9557d26", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelReroll.c": "d8b04de9ea789732cc78ebce9aa60786c86fe46d05f671cf251eefa68a214b59", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelService.c": "2911325c79a7a372628b18ffa0e110d11919ce2c2cd7b19277bfd608fdb03dfc", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_MineIntel.c": "3ce16cebaa9703b2f9803df7c11614f94de6460a9136dab8f80dcad41ae2b1c2", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_AtlasPresentation.c": "f0b36472b16477b8c3b5b62f55cfb2a3b3a08304b0779bc39244359af1abe203", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeAtlasAnimationProbe.c": "845b39276bfdbadd6bfd9b41f445fce1a9d40231d38ef32adc7a6654868e17f2", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeHeldMapProbe.c": "46c0210a3aef40fc34e4c9682d9364b1cc1e15d4373d8aabfeac7d9b8e55c351", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapComponent.c": "73298c94ecc8d227452b0eddfcaec7fe9df4748875fa7fafcc52544a43658f36", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapPages.c": "2286d327b87f127f052e06c22f553b30ea31d25127b860fc02a220aeb4ce3ea2", + "addons/core/Scripts/Game/ERR/30_Map/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_AdminCommands.c": "282fe1463add7af8771aa58507b254e69d2d06f50274d4c77321db073f8394f0", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeAlarmHearingProbe.c": "5dbb6a48909b76cd141e3a79ef01d2e68cafee55153821c4471f85c761fff94f", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyCoverProbe.c": "d2450140cf9bdf09210473234605b4c0d818ea5b91f9532209166a35c5d13701", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyProbe.c": "87df652b339df4fe4239617752ac5fd9f47aa4396ba94742a0af39a32b54e784", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashStartProbe.c": "957f40e36bfc025b8bc752b1f41dc177c8d0844c69ee5994321a47cf3ddea1ad", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQBodyProbe.c": "811244cc8297817efbfc3ee4edf01c868eae23c88127ba0c72e98ee7422da72f", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQMemoryProbe.c": "9bcd0b2e1007d40cb794aabe80368a2584ae58aad6a3ebbee070efc7b21a8147", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeInfantryTransferProbe.c": "9b2de4dc22bdadd51b0271219a971dc8dc07f70ed3534f306acf03ed81b29424", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeLocalHandoffProbe.c": "0d4d61c424a16008595f86fa61f3b848caf9bd6e9ebbacea9c10254d88ba378e", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMaintenanceProbe.c": "852b9b397efc3f919c97fec63bc3df1a850cd7833421af8441994afd191951d4", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedAmmoProbe.c": "7ddb634444c79ad9291d53a754dc0ed383342e36720ddaa4b7aa4bd4e7ee656d", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedCourierProbe.c": "12710e9e5548fe8856f7a52f3566338369a8a1eedf0bd92af16229271872ada5", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedInterceptProbe.c": "34b0b1e38a59f14c4e83d93ec412779945388e6f4d697bda2f6cb90f519a6372", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedSwapProbe.c": "a6721fcaaccadf8eddb06687c7d587d0a3e377d5d1bb0b8e72e630fede8690ac", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRadioProbe.c": "a4bd5cd9fe0594e05238b2d6dcd80466773f8fa160dc60bbe1eda70e3acdbe79", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRandomRadiusTrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "4dfb218419db4cd7a46d25cb1f2e578e75ad89efc43f99c6ca8ab8e591e139d7", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "89c2696071912500840f4bb91d754f695bf674335b51a7ee1d03727084fd4869", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyTravelProbe.c": "32e6074e912491f2643a24cb44311b9fe5b069c76e4e94a45e7409ac82d36507", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_OrdinaryScenarioLaunchChat.c": "a747af09599ce4d0c52051f18f00c4624d24d137e328341b580b82e896c6bf65", + "addons/core/Scripts/Game/Editor/Components/EditableEntity/RHS_CAS_EditableEntityComponent.c": "3788cbdc39c3da4f6564b73b7f49848077ad4504b6c28a1984c424247d1c6678", + "addons/core/Scripts/Game/Vehicle/RHS_DestructionTireComponent.c": "9b3de0966d7b8184bb70a14df2a448e06f34ca9db09b46da07277cb92ab7f8b2", + "addons/core/Scripts/GameLib/ERR/00_Core/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_BuildAtlasModel.c": "f6cb5e6f5afc9bb60a8a46d96b52c7506882faf0a880e0b20a01a2603b336d2c", + "addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_ValidateBaseWorldPlugin.c": "49a38c37b51e5318c7dcbcb01543dd9a6300d053f0d39808b3974f4edc45b871", + "addons/core/Scripts/WorkbenchGame/ERR/40_Chat/ERR_ValidateWorldPlugin.c": "d1f3fc372d0d16062a5983f2a6cffb6e72f202cb93fea5b33b4d77e0c852ecc7", + "addons/core/Sounds/ERR/Speech/radio_01.acp": "cf63378bf3950f5e6c1c1f46c057ad38a371b14b945b1201777820384805c3af", + "addons/core/Sounds/ERR/Speech/radio_01.acp.meta": "d5966526f35aa64dc980238f72f4f93f9d0e6a360f10e3f6538e97b7d086aa47", + "addons/core/Sounds/ERR/Speech/radio_01.wav": "cfe4a00000bc9b629a9e8e282ed64e7177673f829c5657b1ae2b2cb9e661d2ae", + "addons/core/Sounds/ERR/Speech/radio_01.wav.meta": "eaf33fa344fccf9aacab626117d03b96b135fa819d3e63ae300fac544291b571", + "addons/core/Sounds/ERR/Speech/radio_02.acp": "9111d118594094a8e09acdf80d8b107cc7d5d890b6ab086274e0e1004039e345", + "addons/core/Sounds/ERR/Speech/radio_02.acp.meta": "76b55d9abf7f599c5db3269a5829546a6d5f92e6350b2fe987245f9cd6b599fb", + "addons/core/Sounds/ERR/Speech/radio_02.wav": "6f0c94ae0e501afe6cc1aba804ba6a0403ba4de931debc28bf22970f591d0798", + "addons/core/Sounds/ERR/Speech/radio_02.wav.meta": "06ec85166aa4c54a6fafa1fa2eb2cc32f4a36dc8eecde8f9ba9912229e5e00e0", + "addons/core/Sounds/ERR/Speech/radio_03.acp": "019f939d65396f4a334a024bbf53c41479a9f8ce806610945af2be13e7352c70", + "addons/core/Sounds/ERR/Speech/radio_03.acp.meta": "8aa2f4f26f04bc3085ae046f543c047cdadf9af9e06a38920f1e1fd8a3aa02fe", + "addons/core/Sounds/ERR/Speech/radio_03.wav": "415a206bd1de167342cf1b82d59c708441b8d802395f941d15097c064133802a", + "addons/core/Sounds/ERR/Speech/radio_03.wav.meta": "de1d81fb653146404de5b6a6018c1cd73e902571b82d544de5b6cfccf21f5410", + "addons/core/Sounds/ERR/Speech/radio_04.acp": "77bcff7cc7ce49036a440e829fb4eab1dbe5252b0fc9ea24c42e6f6b68e2698e", + "addons/core/Sounds/ERR/Speech/radio_04.acp.meta": "dd61ee2545776cf23403240424470661c737048d01432d90b24f2c9e75f45d82", + "addons/core/Sounds/ERR/Speech/radio_04.wav": "a225810c7fba048517248fd9f7e9f7ab8aad5bac35e59f22e11e69166551f7f3", + "addons/core/Sounds/ERR/Speech/radio_04.wav.meta": "0ae046e2ac7f9653661ba99646d40dd78d52f113ea6554e1dbfd6e578572a4f4", + "addons/core/Sounds/ERR/Speech/radio_05.acp": "7dbc2b3b3d251eb8d3e749b0a7f32186b0421a95fa5585be493cf04b45510e3d", + "addons/core/Sounds/ERR/Speech/radio_05.acp.meta": "cbf3b48ed3865e30ba5d838d96ec4f1ee950cdcd51368f7a9259460e4b78cc1b", + "addons/core/Sounds/ERR/Speech/radio_05.wav": "90f5abe221165ac5cd7d88c9b3e01cf6fd4d00b594c84d09c6baf101fdb776ad", + "addons/core/Sounds/ERR/Speech/radio_05.wav.meta": "d8e3de0e1ae8670a01bcc272a1adf4199ffcea514ce024ee3286820dedab4d83", + "addons/core/Sounds/ERR/Speech/radio_06.acp": "e14da41c1cd186f35a4f385fab71ad85ad6fe718e67299a65466339ae23a2922", + "addons/core/Sounds/ERR/Speech/radio_06.acp.meta": "efc810a60e93453942adba476b423121f2a7dc1133b25d8764c1bec546a3949b", + "addons/core/Sounds/ERR/Speech/radio_06.wav": "b3f86b8dde535bc1a63301376c8d42775446d1b6117168557841565391fe0a14", + "addons/core/Sounds/ERR/Speech/radio_06.wav.meta": "07f53131f4ad153cc09051ba1de07f7b43d38f69781aad24371c4eeb331b280b", + "addons/core/Sounds/ERR/Speech/radio_07.acp": "bf3a48af07ad6e5da2ca6ed6c581fc6232e1bd62ebb905b934188366f2bc3d77", + "addons/core/Sounds/ERR/Speech/radio_07.acp.meta": "60aab59223c0ea734f7c1e88f803de30164ccef1a909730abed3eb76b3378ca2", + "addons/core/Sounds/ERR/Speech/radio_07.wav": "f3fd18ddaebe9eb3d0db9ac73c89a7b7a7f18b76e4b66d404d544be660a6825e", + "addons/core/Sounds/ERR/Speech/radio_07.wav.meta": "ef6c72aa32c1c46f7133782536744bdaf4eee03bcdb75aecb87accef6d1c4f2d", + "addons/core/Sounds/ERR/Speech/radio_08.acp": "a82c5dbcd7094085324d93d539c6f829c53dcf3781f40b8d65a10b7cb4125bae", + "addons/core/Sounds/ERR/Speech/radio_08.acp.meta": "69fb3400109e19d4f4d0fb371d056edbecc0a96a0a923174d1aba95dfeac1014", + "addons/core/Sounds/ERR/Speech/radio_08.wav": "ce3c2aff20dbea83aa6545a383c454969c5caeb53d5a88155ec182f789047d4a", + "addons/core/Sounds/ERR/Speech/radio_08.wav.meta": "72c5e117ab7b605b8370fe90923edee73593df6071c39b86556731387814a014", + "addons/core/Sounds/ERR/Speech/radio_09.acp": "73725377def1832742c7620fec46dc0100400d92b9cb79add8b4d44e94c46c0a", + "addons/core/Sounds/ERR/Speech/radio_09.acp.meta": "95456fe20def274a1972867024e9d0eb572f3878eae19c63522fcefe401dcb07", + "addons/core/Sounds/ERR/Speech/radio_09.wav": "3eb0be6393c431b526dbddc723cb608a7681a2dcd8af6910d9f2234aa98c923c", + "addons/core/Sounds/ERR/Speech/radio_09.wav.meta": "724dd301d1b25e41318503a815e87b54e7283735c51fd122af55c070f26adb37", + "addons/core/Sounds/ERR/Speech/radio_10.acp": "f976a0fecf73b3379ffb9728e96c68ca79800712919320e7ff7f3484cd2c9724", + "addons/core/Sounds/ERR/Speech/radio_10.acp.meta": "5411a9ffa23e42c8a2e8d4eba75d6e87631bcf542128327dfefd603a64d5b6ec", + "addons/core/Sounds/ERR/Speech/radio_10.wav": "2b2dac499a45a7779e79465d628a67b87078c0951db7db3e051feeb4342f2816", + "addons/core/Sounds/ERR/Speech/radio_10.wav.meta": "c3ac10a092dcb26ec637be6c9264a85eae1b6da55b9d8b44a14766a70ddf2933", + "addons/core/Sounds/ERR/Speech/soldier_1001.acp": "1af0d303063f37811a9b1a25424d887fe5eed4b5c57da71cf36ba6985f8cf002", + "addons/core/Sounds/ERR/Speech/soldier_1001.acp.meta": "2fbdda4d9fa83c6945985bd2f2215aa9f745b3a18adb0e7edafac1b01c161ba5", + "addons/core/Sounds/ERR/Speech/soldier_1001.wav": "a8935a5aded028f2fb03734f4423e731ea4f5b17394526df47c0407a3deddfe7", + "addons/core/Sounds/ERR/Speech/soldier_1001.wav.meta": "aff7a92a727d8bd4df033be2961fb85cafdc5c45fd272c5ea718bc07fb8e5cce", + "addons/core/Sounds/ERR/Speech/soldier_1002.acp": "1444636949683a430efe20a7f296e85e669cb8e26799c326f73a00c4f8d32fa5", + "addons/core/Sounds/ERR/Speech/soldier_1002.acp.meta": "d8eb34135a3b76f0a4f889f9662d954b3b0b3638c10c0732e25ca29d7b2ef412", + "addons/core/Sounds/ERR/Speech/soldier_1002.wav": "8535643e93757dd916f4158b5b03671cefc599489dbccf6bb0f7abf294fbae88", + "addons/core/Sounds/ERR/Speech/soldier_1002.wav.meta": "e8c8813e5a1989a0d7e4d2a5c90622c4b0f909aafb929f4737c82e5710220d1f", + "addons/core/Sounds/ERR/Speech/soldier_1003.acp": "5ab123f150debd6fda0b822fee7ffca5a0bdc168f4d8d2e28b3982972db05613", + "addons/core/Sounds/ERR/Speech/soldier_1003.acp.meta": "f89fa8e7ac42e7f675d29f0b241d181df572413c6c41bf31cfb98fa205baa87e", + "addons/core/Sounds/ERR/Speech/soldier_1003.wav": "5910896661ad67333d2374a16ca44ce831a5820feb337655df99c02df2915d5a", + "addons/core/Sounds/ERR/Speech/soldier_1003.wav.meta": "5281a71be599a70aeb9972ea85364e5ef32f824db94c71953d8a1912fb2a27c2", + "addons/core/Sounds/ERR/Speech/soldier_1004.acp": "10ac847b206834168e63d8d0f7ad25d7542a58a49d331af50aecf13e7e070ac9", + "addons/core/Sounds/ERR/Speech/soldier_1004.acp.meta": "8c073328d3f5f06ca583d97e9ce2453d8167ec7bc5643ab90783748a4cd9b6bf", + "addons/core/Sounds/ERR/Speech/soldier_1004.wav": "76375e462ba518c76f752d4b194c9370dffcebd8ce0037865133b37af3ff9a9e", + "addons/core/Sounds/ERR/Speech/soldier_1004.wav.meta": "563aae8d93efeaa7ca098c12bf0004da279321607793bb32a93b2530d6832d06", + "addons/core/Sounds/ERR/Speech/soldier_1005.acp": "ea3d874f84dd85f09871444c348b1c7f4948fc043c59cba4d3aea8b8eaa8b86e", + "addons/core/Sounds/ERR/Speech/soldier_1005.acp.meta": "40cbfddfa9937e319d412f3ecb66b75e2c1c88f2823a64e43a81a2939fb9021a", + "addons/core/Sounds/ERR/Speech/soldier_1005.wav": "3e20728fb61863278738f5366343cddd6fac1b8b114a14867f91ebb5cac547d8", + "addons/core/Sounds/ERR/Speech/soldier_1005.wav.meta": "e330fc819872b0a97a280a42d936ff75e30d21ea3ac96891988b48ded36af7b0", + "addons/core/Sounds/ERR/Speech/soldier_1100.acp": "86dc8e90d826947672342f44a6ff8d2fd4a8f014db0b215c0865b3728b14ea88", + "addons/core/Sounds/ERR/Speech/soldier_1100.acp.meta": "1a41730365335ebfabf6c75ab1c67ecb1d0d6c85db56d1d85f688a780a3ecf15", + "addons/core/Sounds/ERR/Speech/soldier_1100.wav": "eaf1deb5381f6bac165e364a652920fcf78438c351c564ebe50a216f3f3ba5a0", + "addons/core/Sounds/ERR/Speech/soldier_1100.wav.meta": "dcd087d3e0bec53abdd4e42218a3bbb234b7ae3cd2da05dcee71a298632a8da9", + "addons/core/Sounds/ERR/Speech/soldier_1101.acp": "2680131b5364efe39f3dee44ce1605dbc9e064cea9baf8247a8c5b55dcfa8d99", + "addons/core/Sounds/ERR/Speech/soldier_1101.acp.meta": "4feaa2b8e069ee2e9576d4009329f585b1b5ade9e47816882b78075f4897646f", + "addons/core/Sounds/ERR/Speech/soldier_1101.wav": "4bca012ec25d8456cd38d26606312f54b480b674365b76a9c9f54e408314570b", + "addons/core/Sounds/ERR/Speech/soldier_1101.wav.meta": "6ac6bd7a06be3fa35c513137b4584e405c0cd7e32d0c6912f2d7f9b5a3087d36", + "addons/core/Sounds/ERR/Speech/soldier_1102.acp": "08002dc26a4c07d6bf488d5f7c8c6587787c1755ce374b4053dad582eb2d77cb", + "addons/core/Sounds/ERR/Speech/soldier_1102.acp.meta": "2133e516f162d6aaa7f0d3a191421964ca6df7b00d0a50fa42ffaba70864bef4", + "addons/core/Sounds/ERR/Speech/soldier_1102.wav": "1432bb3c9d99910314a84d9773d2afafe4f5fbb143afb291b0deed55d25ee6d0", + "addons/core/Sounds/ERR/Speech/soldier_1102.wav.meta": "a6ca33938733e22789434db35ca2cdfb0fc4c51716feadf4a28a60ee9d1044b2", + "addons/core/Sounds/ERR/Speech/soldier_1103.acp": "c93e1e75c272d31107fde86205b859cf505e2acf7d8776fbd81357bc8b3625b9", + "addons/core/Sounds/ERR/Speech/soldier_1103.acp.meta": "f3d41ab27e932b10d46c3a2aa63f826825403a70640381a089db608c1c00a257", + "addons/core/Sounds/ERR/Speech/soldier_1103.wav": "c294454907a229d521c2285eec26dbb82f9782f2a7eca764e11713ff63f0e004", + "addons/core/Sounds/ERR/Speech/soldier_1103.wav.meta": "968d93e9dee2104aee94407604d021d8849a83dc3d115484088e81289654c246", + "addons/core/Sounds/ERR/Speech/soldier_1104.acp": "cb94ed3c95670f11f78f6470f1f50492fff6d2f0ac94602d054d474d52400cec", + "addons/core/Sounds/ERR/Speech/soldier_1104.acp.meta": "92d43bf610784953d8d94322b73ae235f7a8aeb83ece72733d795c8034275052", + "addons/core/Sounds/ERR/Speech/soldier_1104.wav": "952b3d71366c26fc12bdbb9014665bfc0402f30944c22b1b2369d26a93db7104", + "addons/core/Sounds/ERR/Speech/soldier_1104.wav.meta": "939562214b39250feaa8f6f6c6bd10c3d4e0b4c529f338490a2dc234919c0d31", + "addons/core/Sounds/ERR/Speech/soldier_1105.acp": "62c5d3d230a8a15cf2a4de193620ccdf83ca9973b550ace4e8edf7cc49f52851", + "addons/core/Sounds/ERR/Speech/soldier_1105.acp.meta": "6774063562b9c83975bc394dd3c72aa2a0d8001d0990ab8ff870ae2876889f93", + "addons/core/Sounds/ERR/Speech/soldier_1105.wav": "20e9e82d9897b598497da4722432f83ae03a5e6bf9a1f7a77caab712e3fc3130", + "addons/core/Sounds/ERR/Speech/soldier_1105.wav.meta": "6f21652352edbd59d1244ce9c2dcd1ad4ab65f022222381d9709c28148121c42", + "addons/core/Sounds/ERR/Speech/soldier_1200.acp": "c27db60629a41145697e041224cc2dde21c72d6a883fa305c71ec9c5b86bd84e", + "addons/core/Sounds/ERR/Speech/soldier_1200.acp.meta": "ea228ec869a7a0266f5604266f68c4166abc6cfeaa29180cb3b4351464b71079", + "addons/core/Sounds/ERR/Speech/soldier_1200.wav": "5a1561e821ef33a574c1f9ef95ccf76e69b832bf0a20bcbbf914760345921859", + "addons/core/Sounds/ERR/Speech/soldier_1200.wav.meta": "ccf3b62fd2eea460d576fa68863a901eb0025f47b1b76729a4289162d0dfa0c8", + "addons/core/Sounds/ERR/Speech/soldier_1201.acp": "45f220c5b6bac64db61eebcf54bb52da572f9f8f1ea0872c5af9fd3238c25a4e", + "addons/core/Sounds/ERR/Speech/soldier_1201.acp.meta": "3be417d66b05e11e0b520af136dfc45c86c17d5e35b56a611efbcf38e0d35003", + "addons/core/Sounds/ERR/Speech/soldier_1201.wav": "f058f0482cfe4034fdf37d9b596f7ba8172fae1c57aeb387ce153f8041895e45", + "addons/core/Sounds/ERR/Speech/soldier_1201.wav.meta": "abaebe719eff7e009eb4d0222060280877451126c02154706df6d13e4c5d3e11", + "addons/core/Sounds/ERR/Speech/soldier_1202.acp": "c08625886d8c6dc405cf96c640c9dafd4510ba5cef2c22b037c8c7b3eb5bea39", + "addons/core/Sounds/ERR/Speech/soldier_1202.acp.meta": "cf345e968edad1b825dd33b87267b63f770c169250f8c51195bffc3161d396bd", + "addons/core/Sounds/ERR/Speech/soldier_1202.wav": "c875f4e798ff5e24c3eb3b48bdfa1b8af03de9326a19c671eca86660297ad737", + "addons/core/Sounds/ERR/Speech/soldier_1202.wav.meta": "dd2d6411abe914bce71c6688a1647c2699303ca248191ec01c6325b366e5d7fb", + "addons/core/Sounds/ERR/Speech/soldier_1203.acp": "f0237a51ffe0e7d463154d321117a9b19c6914f6ee680ebf07a0ff9ab51fc340", + "addons/core/Sounds/ERR/Speech/soldier_1203.acp.meta": "0e93332191ac74be950ce8139b96ed6fdfe3ddbe68de8949826dc801d12c97f2", + "addons/core/Sounds/ERR/Speech/soldier_1203.wav": "6e7857dc96dfb556f011ba89f2f4ea659cfd7b605b88790c69e754d5cc51398a", + "addons/core/Sounds/ERR/Speech/soldier_1203.wav.meta": "0f564169dc05a95f7b01f64f72bdabf6de9ed3f37a2f44b4751f89b38eb18cd8", + "addons/core/Sounds/ERR/Speech/soldier_1204.acp": "94dbf98b5e05f1ebf6960495032c46203caaa4440dfb1ffd3beda2679fe6bec5", + "addons/core/Sounds/ERR/Speech/soldier_1204.acp.meta": "7cc8c61f4bb210c0576fac350d170f8f54a6e55531db6102c1a0fa7cb7a8a809", + "addons/core/Sounds/ERR/Speech/soldier_1204.wav": "bd170ca015b017114e42078dcc5c49d5626aef17d22e4a12b8282e9ee4908ae6", + "addons/core/Sounds/ERR/Speech/soldier_1204.wav.meta": "1c6ddb11c22a14d9d498074e2fb2864783f91afc552c4cd671452fa8df483de0", + "addons/core/Sounds/ERR/Speech/soldier_1205.acp": "47180a3445a265335d682eac6fa51fedca51d76f329adc39b1802092b311118b", + "addons/core/Sounds/ERR/Speech/soldier_1205.acp.meta": "c34346f4b10149b426ebb4e94db8c29883c9d0e36f2b42d07d41570eb8932554", + "addons/core/Sounds/ERR/Speech/soldier_1205.wav": "769c457805376e9c0172ddb525ead5f1d8774e15bd1f3f3b218a19f9d77b6883", + "addons/core/Sounds/ERR/Speech/soldier_1205.wav.meta": "31a2a7314b44afb3f0031376b2ad6df22649e8089bf1a3bbeb64cdc41156cff7", + "addons/core/Sounds/ERR/Speech/soldier_clear.acp": "f33f03f3d24182a95db7d02058f2dd6ae52098e3b5142a33ede833ee881d54ed", + "addons/core/Sounds/ERR/Speech/soldier_clear.acp.meta": "7d3643c9de2d81ab0f1b4898e781341c1962bd8505c20882233ef7c40159b23b", + "addons/core/Sounds/ERR/Speech/soldier_clear.wav": "d6527b8136aa720b721463210420f47de0dbc45acc4e4c390b6a44968c5f0acd", + "addons/core/Sounds/ERR/Speech/soldier_clear.wav.meta": "d9f9a921a85fe275c6cce649421a19946ff6aec49559796725c3858d9fe9b261", + "addons/core/Sounds/ERR/Speech/soldier_covering.acp": "7d4109edbd6c20f9e2af0b394fa12e8b3b40fc18bf2b5ac118beebb1fa4a79b1", + "addons/core/Sounds/ERR/Speech/soldier_covering.acp.meta": "320908bf7decea55b8d8b4a89b30e84e7d96a033d4a9cd1bd84912dce013f0d8", + "addons/core/Sounds/ERR/Speech/soldier_covering.wav": "f51e0086eaf0eece8b4061711088a413a2dbeae263deab7ea30fb1852dafda69", + "addons/core/Sounds/ERR/Speech/soldier_covering.wav.meta": "7bdf2d2c5f9cf741bae523e1ab0b9acc99b38ccd1228ebfbcba92f2b9a5cba9d", + "addons/core/Sounds/ERR/Speech/soldier_engaging.acp": "9f052e87edaf182030edb656821621cdeabbf13d65bc181308357530c9d93a74", + "addons/core/Sounds/ERR/Speech/soldier_engaging.acp.meta": "9e487fa3746c46b2993f1dfd1f0513f375571728704533674bee62586e25b72b", + "addons/core/Sounds/ERR/Speech/soldier_engaging.wav": "ac0f2d7d698732e3d7c270186e7aa2ab7e6bd4c908f36b07fb6f66a3cbe75ccf", + "addons/core/Sounds/ERR/Speech/soldier_engaging.wav.meta": "d571b9ebce196cc209078a83e4bde8f6a5f4b6d28c2945e2b47953ccb6889e97", + "addons/core/Sounds/ERR/Speech/soldier_moving.acp": "05503ca7af13a7ad03ed2a3aa562cc58504fdfff3148477f8d81b5a01abdf37c", + "addons/core/Sounds/ERR/Speech/soldier_moving.acp.meta": "a2474c87e4e1587226919dfdbd03739d938803d34f4a4f441889b0d8015513bd", + "addons/core/Sounds/ERR/Speech/soldier_moving.wav": "a61dda64e6fc2a11eac3e6008ee14b89f360bd67e258dce1191a71d9e2e26fad", + "addons/core/Sounds/ERR/Speech/soldier_moving.wav.meta": "bd87cd72ccb819584f9da09fb0d6973ffd6eb0bb5572c562978500e2af467217", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp": "c821c61afb2ddc12d3ecdb552a66d2a9ff89a5258a567ff2a99fed4f45a33520", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp.meta": "65a27b81a5b437163befd4dc566785a9dda4def1798495ca53c8f768a5d7a73f", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav": "ffe6ef5fdf30411749e0cb73186e3005b1ce6a52fcb7c836caeb1bca422ed3ed", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav.meta": "25b5680fd2a313c18e15ce6e0d3f709d78352b93206c22c7881be19b81faddd5", + "addons/core/Sounds/ERR/Speech/soldier_reloading.acp": "51c5cb464bab6637cf9e3b1880a010e05774d76a92298daf40b1d84970845be7", + "addons/core/Sounds/ERR/Speech/soldier_reloading.acp.meta": "ca351e809b1ba7c69b066d2c1d0a5d2afdcaa833c1163e6d13a0396437e98cf6", + "addons/core/Sounds/ERR/Speech/soldier_reloading.wav": "15b2749f79bc73fd0784bcd6e6076e1bc50da835e0c434cd43bd185d0735c732", + "addons/core/Sounds/ERR/Speech/soldier_reloading.wav.meta": "161c9ebee1d0496c7aa9501d00eba646094bf1ce89cda4efde6e3a0229a49e4f", + "addons/core/Sounds/ERR/Speech/soldier_target_down.acp": "77acc89c4ef0b912b969a2e5f6c41e071e04d10cfe89666fbc1296878dab62bf", + "addons/core/Sounds/ERR/Speech/soldier_target_down.acp.meta": "fe456d354ace93b0f2261de483e86ccc92991011b1738c5703d6d7bc0daa49a6", + "addons/core/Sounds/ERR/Speech/soldier_target_down.wav": "e2e60e8b83a24a548c90b84c5e1137adb7e792cf1d4ba6232ddfb1012fa78892", + "addons/core/Sounds/ERR/Speech/soldier_target_down.wav.meta": "064588b86589ac9437fbccafedeefae04bec3331dd8a229d1c6d27b5e524a9e9", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.acp": "5ffd3ff57550296274e9e93fb64efdf2fb06a51161d6deb221c1f3eb408d1459", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.acp.meta": "366a3c9e20f27c0f73bdff5827576df8924e99241061f933e72bd342e5bc7119", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.wav": "bbcf454d48adea47478d410b1baf14df3a5d018237272e70ae33ee62823f822f", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.wav.meta": "d1ac64242280521a7e40de51ae32a007878d7801401020e7a074a48e0f8ce62e", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.acp": "5af1c949d4662c2f33320165d2efdbd69cb183af1101aa246fe538bf0d91a33e", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.acp.meta": "aa7799e8a790539166a1d3a9c691416e7b2f6589d1674f5cf4b3e47523f15259", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.wav": "e4bd5e69fda289593fc6e6b8c2fae9a271a10d0a9bae877f18ba02dbbf75d1fc", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.wav.meta": "25a988c31e4fc3ae6540920df3d4548307a4a1e3b96b1303e9b7bdb4ac5eea27", + "addons/core/Sounds/ERR/Speech/welcome.acp": "f8a7b6cdd08b57b4b227a2d5b480a6c76857d7fc8ace3434478aec01c0de5a83", + "addons/core/Sounds/ERR/Speech/welcome.acp.meta": "d3ac98b02c0725d347b30d0ac7586cb22904d46b65a145e4a1131222484a6929", + "addons/core/Sounds/ERR/Speech/welcome.wav": "01de068469bd6746dba7634fb6b5b85b150621d3359c17fd01bcb916b34b1720", + "addons/core/Sounds/ERR/Speech/welcome.wav.meta": "bf33edad44bbb04df852501154f08a9a9900ce503248abc698127a51e9eec934", + "addons/core/UI/Textures/ERR/SiteMarkers.edds": "611ec6c68c2456c2af017c47135134d73122461017b315f64ed7ca9891f20c21", + "addons/core/UI/Textures/ERR/SiteMarkers.edds.meta": "90f40b38e52a79951b72da2960e30887d5ee8bbcefbada0c0ac950c1bfcf847f", + "addons/core/UI/Textures/ERR/SiteMarkers.imageset": "3f947d03b3492ada541032539cdb3f34a03d68ae83c0ef8796dc7fd091b5911d", + "addons/core/UI/Textures/ERR/SiteMarkers.imageset.meta": "1dc5285abd0062af288fb40b2f22b5b7c3925cf7270a096862335db250ac1453", + "addons/core/UI/Textures/ERR/SiteMarkers.png": "76b472982234bd27050a9430e6a53f4c14fa38f7388db3706ebef506eab4e660", + "addons/core/UI/layouts/ERR/AdminMenu.layout": "9a2c9d6e2526d9318b4587bb69741f828f7f0f26607e5ef3791455fff6a701e3", + "addons/core/UI/layouts/ERR/AdminMenu.layout.meta": "9deeece996f43b1f1fed6b5ec89279645c7b6424250200a42580cc088142e9bf", + "addons/core/UI/layouts/ERR/AdminValue.layout": "cd811af6d2fb187f01c74e20ea07ad85669546b0ad70efae2ce52921ce26cbca", + "addons/core/UI/layouts/ERR/AdminValue.layout.meta": "56b3d2335db400c1308e07c4a35d278b23ef32013dfd6dc82951866327428d08", + "addons/core/UI/layouts/ERR/ContentRow.layout": "7bf19d12b1b5e2c165f8671e92ae9227b54b4d1e551de94fa67bd54d3a66fddb", + "addons/core/UI/layouts/ERR/ContentRow.layout.meta": "8c4bc13b41e7aee38e0ca640a97813ed1a6964a00e2cff9e1fe4ebd71fc2fdc6", + "addons/core/UI/layouts/ERR/ItemRow.layout": "3c7ae3acdf2fad0ba661a1152ea319392668d774adc09a2a8b61e9a0319db312", + "addons/core/UI/layouts/ERR/ItemRow.layout.meta": "33eaef9c403ea3a030e58ec17f78e46af457048243571ad5856fff04101fb60b", + "addons/core/UI/layouts/ERR/ItemWeightRow.layout": "dfa6b87420efc683cb278178553350daa7753004d64672741a3dc13b4316810d", + "addons/core/UI/layouts/ERR/ItemWeightRow.layout.meta": "eb4b28587abdf6100092fd6eee1695663fa6e1548d5e53017173c4a5f7320240", + "addons/core/UI/layouts/ERR/PauseModsButton.layout": "d21d436291e2c1b262e33dc228b0d60a1d188dc9e85cfda6d2373f8281431b79", + "addons/core/UI/layouts/ERR/PauseModsButton.layout.meta": "9ed6adabd8f53eb9a562d7186789876bba5c4202155ca894c1af866ca47354f3", + "addons/core/UI/layouts/ERR/PreparationFailure.layout": "b7c4a2e6aa2be0992b478bb4f969f80355753573fffbc15be44670f3b136ea2e", + "addons/core/UI/layouts/ERR/PreparationFailure.layout.meta": "17ca2c9a12f691680883cec368ff06f511c996e5da5c25498f5f0955887867b0", + "addons/core/UI/layouts/ERR/PreparationStatus.layout": "ec3369f4030e593d34043e70a311b0963606cf024cb452648671556f25f5b52a", + "addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc", + "addons/core/UI/layouts/ERR/RoundResults.layout": "8550ebc009024f619827a43fd766aff8b7fbf8bc87ef7593db0fd7f4d778c615", + "addons/core/UI/layouts/ERR/RoundResults.layout.meta": "7509e050b3910ee5730dd25c60aacf405110e943f4ab46e3fc2186b3b15a3cf9", + "addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout": "82d9ae77f076f945583791dfa0b01f1c925e6ff8aaebcf382fd56089fe61a115", + "addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout.meta": "8691fe2eaf46568bca4a9f8128b247a8da810bb87a5546aa7ca3334e740270d6", + "addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "aef5d565301046ae902033ec4eb4799ff1bdd9a37bc507898781d8790f04fc2a", + "addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "6bcb7fbb27b6282719dae8a37486e518d4cbaea385f2ea9af1918b36bb28b175", + "addons/core/addon.gproj": "6ccf0d3a2817a5f865e605d5abe89bd794e7c8654f2dd005d0f496f05d91e76a" +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/final-run/launch-source.json b/docs/evidence/vehicle-roles-2026-11-06/final-run/launch-source.json new file mode 100644 index 00000000..a6b6c274 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/final-run/launch-source.json @@ -0,0 +1,45 @@ +{ + "schema_version": 1, + "launch_id": "3c149f1b-debc-4568-97f6-468b528b9377", + "captured_unix": 1793974150.0206752, + "source_root": "/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/source7", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1920", + "-H", + "1080", + "-w", + "1920", + "-h", + "1080", + "-r", + "30", + "--", + "/home/jakub/.local/share/Steam/steamapps/common/Proton - Experimental/proton", + "run", + "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger Tools/Workbench/ArmaReforgerWorkbenchSteamDiag.exe", + "-gproj", + "Z:/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/source7/addons/core/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/source7/addons", + "-profile", + "Z:/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/native7", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateWorldPlugin", + "-errPlay", + "1", + "-errSmoke", + "0", + "-errSmokeOutcome", + "normal-escape-route", + "-noThrow", + "-disableCrashReporter" + ], + "manifest_sha256": "db40aec0864dbfcd804ab5a793492ec3fafe93729c73413a3d287c358df1132e" +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/final-run/result.log b/docs/evidence/vehicle-roles-2026-11-06/final-run/result.log new file mode 100644 index 00000000..7ac449c5 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/final-run/result.log @@ -0,0 +1,56 @@ +Test audio routed to silent output and muted (stream 54979) +Test audio routed to silent output and muted (stream 55015) +{ + "stopped_unix": 1793974239.1493638, + "console_sha256": "c40f2cb588af3eb5043d13c264bff5784047e0e0e519289b172ce26a9a6b081e", + "end_source_sha256": "db40aec0864dbfcd804ab5a793492ec3fafe93729c73413a3d287c358df1132e", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "3c149f1b-debc-4568-97f6-468b528b9377", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "db40aec0864dbfcd804ab5a793492ec3fafe93729c73413a3d287c358df1132e", + "external_addons_unchanged_after_run": true, + "external_addon_count": 7, + "external_addon_inputs": "external-addons-inputs.json", + "started_unix": 1793974150.0207763, + "result": "smoke-completed", + "result_before_cleanup": "smoke-completed", + "cleanup_confirmed": true, + "cleanup_report": { + "cleanup_confirmed": true, + "idle_verified": true, + "errors": [], + "orphan_cleanup": { + "attempted": false, + "reason": "noncanonical-private-prefix" + } + }, + "runner_error": null, + "session": "/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/native7/logs/logs_2026-11-06_15-09-11", + "rounds_required": 1, + "project": "chat", + "display": "headless Gamescope 1920x1080/30Hz", + "dedicated_server": false, + "audio": "silent sink and per-test-stream mute" +} +{ + "log": "/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/native7/logs/logs_2026-11-06_15-09-11/console.log", + "smoke_completions": 1, + "assertions_passed": 5, + "script_or_runtime_failures": [], + "engine_errors": [ + "15:09:13.531 RESOURCES (E): Wrong GUID/name for resource @\"{0AFDD005CD669892}Language/rhs_localization.st\" in property \"StringTableSource\"", + "15:09:13.531 RESOURCES (E): Wrong GUID/name for resource @\"{41FA2A08B6971D4C}Language/wcs_armament_localization.st\" in property \"StringTableSource\"", + "15:09:13.532 RESOURCES (E): Wrong GUID/name for resource @\"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st\" in property \"StringTableSource\"", + "15:09:13.532 RESOURCES (E): Wrong GUID/name for resource @\"{E50E557B468C7073}Language/wcs_bmp1_localization.st\" in property \"StringTableSource\"", + "15:09:21.222 DEFAULT (E): Failed to request DLC ownership information.", + "15:09:52.310 WORLD (E): Unknown keyword/data 'm_HardLandingVelocity' at offset 133(0x85)", + "15:09:52.310 WORLD (E): Unknown keyword/data 'm_DeathLandingVelocity' at offset 163(0xa3)", + "15:10:03.090 WORLD (E): Unknown keyword/data 'Pacejka' at offset 939(0x3ab)", + "15:10:03.090 WORLD (E): Unknown keyword/data 'ClutchUncoupleRpm' at offset 1320(0x528)", + "15:10:03.090 WORLD (E): Unknown keyword/data 'ClutchCoupleRpm' at offset 1346(0x542)" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/final-run/runner.json b/docs/evidence/vehicle-roles-2026-11-06/final-run/runner.json new file mode 100644 index 00000000..68f6543e --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/final-run/runner.json @@ -0,0 +1,34 @@ +{ + "stopped_unix": 1793974239.1493638, + "console_sha256": "c40f2cb588af3eb5043d13c264bff5784047e0e0e519289b172ce26a9a6b081e", + "end_source_sha256": "db40aec0864dbfcd804ab5a793492ec3fafe93729c73413a3d287c358df1132e", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "3c149f1b-debc-4568-97f6-468b528b9377", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "db40aec0864dbfcd804ab5a793492ec3fafe93729c73413a3d287c358df1132e", + "external_addons_unchanged_after_run": true, + "external_addon_count": 7, + "external_addon_inputs": "external-addons-inputs.json", + "started_unix": 1793974150.0207763, + "result": "smoke-completed", + "result_before_cleanup": "smoke-completed", + "cleanup_confirmed": true, + "cleanup_report": { + "cleanup_confirmed": true, + "idle_verified": true, + "errors": [], + "orphan_cleanup": { + "attempted": false, + "reason": "noncanonical-private-prefix" + } + }, + "runner_error": null, + "session": "/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/native7/logs/logs_2026-11-06_15-09-11", + "rounds_required": 1, + "project": "chat", + "display": "headless Gamescope 1920x1080/30Hz", + "dedicated_server": false, + "audio": "silent sink and per-test-stream mute" +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/final-run/script.log b/docs/evidence/vehicle-roles-2026-11-06/final-run/script.log new file mode 100644 index 00000000..d5581ea3 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/final-run/script.log @@ -0,0 +1,314 @@ +--------------------------------------------- +Log Z:\home\jakub\devel\escapistsrereintroduced\.local\vehicle-roles\native7\logs\logs_2026-11-06_15-09-11\script.log started at 2026-11-06 15:09:14 (2026-11-06 14:09:14 UTC) + +15:09:14.417 SCRIPT : SCRIPT : Initializing scripts +15:09:14.417 SCRIPT : SCRIPT : ScriptProjectManager init +15:09:17.249 SCRIPT : SCRIPT : Compiling GameLib scripts +15:09:17.318 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +15:09:17.319 SCRIPT : Module: GameLib; loaded 513x files; 704x classes; used 887K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 35487d81 +15:09:17.320 SCRIPT : SCRIPT : Compiling Game scripts +15:09:18.374 SCRIPT : Compiling Game scripts +15:09:18.374 SCRIPT (W): @"Scripts/Game/Parachutes/ParachuteDeployed.c,7": Pointer type 'Physics' can only be used with local variables +15:09:18.550 SCRIPT (W): @"Scripts/Game/Components/Vehicles/RHS_VehicleAntennaComponent.c,82": Pointer type 'Animation' can only be used with local variables +15:09:18.915 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,787": 'GetPlayerPlatformKind' is obsolete +15:09:18.916 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,788": 'GetPlayerPlatformId' is obsolete +15:09:19.327 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SiteService.c,363": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:09:19.345 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +15:09:19.393 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +15:09:19.540 SCRIPT (W): @"Scripts/Game/Components/Magazines/SCR_MagazineComponent.c,134": Variable 'prefabPath' is not used +15:09:19.556 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +15:09:19.556 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +15:09:19.556 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +15:09:19.556 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +15:09:19.584 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,77": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:09:19.594 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +15:09:19.667 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +15:09:19.667 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +15:09:19.669 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +15:09:19.700 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,186": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:09:19.727 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,311": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:09:19.727 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,323": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:09:19.729 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +15:09:19.729 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +15:09:19.761 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c,138": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:09:19.797 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +15:09:20.195 SCRIPT : Module: WorkbenchGame; loaded 187x files; 692x classes; used 2796K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 53d2bfa5 +15:09:20.203 SCRIPT : Module: Game; loaded 6965x files; 14474x classes; used 45316K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,SHOW_DISCLAIMER,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,GAME_MODE_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG,WCS_DEFINES_ARMAMENTS,WCS_DEFINES_SPACECORE"; CRC32: 94d113d3 +15:09:21.222 SCRIPT : Unable to register a script command due keyword duplicity: ban +15:09:21.222 SCRIPT : Unable to register a script command due keyword duplicity: kick +15:09:33.546 SCRIPT : Reintroduced [config]: using $profile:Escapists.json; legacy files retained but no longer used. +15:09:34.585 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562 +15:09:34.586 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531 +15:09:34.586 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516 +15:09:34.586 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5 +15:09:34.586 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453 +15:09:34.586 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406 +15:09:34.586 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438 +15:09:34.586 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438 +15:09:34.587 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422 +15:09:34.587 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391 +15:09:34.587 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344 +15:09:34.587 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344 +15:09:34.587 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344 +15:09:34.587 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344 +15:09:34.587 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328 +15:09:34.588 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281 +15:09:34.588 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25 +15:09:34.588 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281 +15:09:34.588 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25 +15:09:34.588 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234 +15:09:34.588 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188 +15:09:34.588 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156 +15:09:34.588 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172 +15:09:34.589 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156 +15:09:34.589 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141 +15:09:34.589 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094 +15:09:34.609 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625 +15:09:37.414 SCRIPT : Unable to register a script command due keyword duplicity: ban +15:09:37.414 SCRIPT : Unable to register a script command due keyword duplicity: kick +15:09:47.851 SCRIPT : Reintroduced [loading]: respawn animation and preparation display attached to Escape +15:09:52.304 SCRIPT : Map load time: 2363ms +15:09:52.316 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_PUNISHMENT_KILLING_SET'. There should only be one of each key! +15:09:52.316 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_TYPE_DISABLED'. There should only be one of each key! +15:09:52.319 SCRIPT (W): Can't open config file "" +15:09:52.326 SCRIPT (W): Slot_WeaponInfo Has no Content! +15:09:52.326 SCRIPT (W): Slot_Chat Has no Content! +15:09:52.326 SCRIPT (W): Slot_VON Has no Content! +15:09:52.326 SCRIPT (W): Slot_AvailableActions Has no Content! +15:09:52.326 SCRIPT (W): Slot_Vehicle Has no Content! +15:09:52.327 SCRIPT (W): Slot_GameVersion Has no Content! +15:09:52.327 SCRIPT (W): Slot_Notifications Has no Content! +15:09:52.327 SCRIPT (W): Slot_Hints Has no Content! +15:09:52.342 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {259EE7B78C51B624}UAZ469.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants. +15:09:52.342 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants. +15:09:52.343 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants. +15:09:52.348 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +15:09:52.483 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +15:09:52.496 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +15:09:52.649 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.593 SCRIPT : ERR CONTENT: controller=1 +15:09:57.602 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.603 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.603 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.604 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.604 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.605 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.605 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.605 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.606 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.606 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.607 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.607 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.607 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.608 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.608 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.609 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.610 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.611 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.611 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.612 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.612 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.612 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.613 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.613 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.614 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.614 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.615 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.615 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.616 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.616 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.617 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.617 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.618 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.618 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.618 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.619 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.619 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.620 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.620 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.621 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.621 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.621 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.622 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.622 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.622 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.623 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.624 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.625 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.626 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.626 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.627 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.628 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:09:57.679 SCRIPT : Reintroduced [terrain selection]: discovered 45 playable scenario headers; truncated=0 +15:09:58.671 SCRIPT : ERR CONTENT STAGE: 0 page=0 vehicles=0 addon= +15:10:01.674 SCRIPT : ERR CONTENT STAGE: 0 page=0 vehicles=0 addon= +15:10:04.749 SCRIPT : ERR CONTENT STAGE: 0 page=0 vehicles=0 addon= +15:10:07.794 SCRIPT : ERR CONTENT STAGE: 0 page=0 vehicles=0 addon= +15:10:10.822 SCRIPT : Reintroduced [server items]: addons=11 uniqueItems=2403 unattributed=0 truncated=0 +15:10:11.811 SCRIPT : ERR CONTENT STAGE: 0 page=0 vehicles=0 addon= +15:10:14.821 SCRIPT : ERR CONTENT STAGE: 0 page=0 vehicles=0 addon= +15:10:17.827 SCRIPT : ERR CONTENT STAGE: 0 page=0 vehicles=0 addon= +15:10:17.875 SCRIPT : ERR ROLE FOUND: {F001C0DE00000001}Prefabs/Vehicles/ERR_RoleTestCar.et contains=1 capable=1 sources=0x000000014D8F4CC0 {ArmaReforger,RHS_Core,WCS_Armaments,ERR_Core} +15:10:17.875 SCRIPT : ERR ROLE COMPONENT: EventHandlerManagerComponent +15:10:17.875 SCRIPT : ERR ROLE COMPONENT: ParametricMaterialInstanceComponent +15:10:17.876 SCRIPT : ERR ROLE COMPONENT: Persistence +15:10:17.876 SCRIPT : ERR ROLE COMPONENT: SignalsManagerComponent +15:10:17.876 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleSoundComponent +15:10:17.876 SCRIPT : ERR ROLE COMPONENT: AIKnowledgeComponent +15:10:17.876 SCRIPT : ERR ROLE COMPONENT: BaseLightManagerComponent +15:10:17.877 SCRIPT : ERR ROLE COMPONENT: ChimeraAIPathfindingComponent +15:10:17.877 SCRIPT : ERR ROLE COMPONENT: ColliderHistoryComponent +15:10:17.877 SCRIPT : ERR ROLE COMPONENT: ControllersManagerComponent +15:10:17.877 SCRIPT : ERR ROLE COMPONENT: MeshObject +15:10:17.877 SCRIPT : ERR ROLE COMPONENT: RHS_RadioSourceComponent +15:10:17.877 SCRIPT : ERR ROLE COMPONENT: RigidBody +15:10:17.877 SCRIPT : ERR ROLE COMPONENT: SCR_AIVehicleUsageComponent +15:10:17.878 SCRIPT : ERR ROLE COMPONENT: SCR_BaseCompartmentManagerComponent +15:10:17.878 SCRIPT : ERR ROLE COMPONENT: SCR_BaseLockComponent +15:10:17.878 SCRIPT : ERR ROLE COMPONENT: SCR_EditableVehicleComponent +15:10:17.878 SCRIPT : ERR ROLE COMPONENT: SCR_FuelConsumptionComponent +15:10:17.878 SCRIPT : ERR ROLE COMPONENT: SCR_FuelManagerComponent +15:10:17.878 SCRIPT : ERR ROLE COMPONENT: SCR_ImpactEffectComponent +15:10:17.878 SCRIPT : ERR ROLE COMPONENT: SCR_MotorExhaustEffectGeneralComponent +15:10:17.879 SCRIPT : ERR ROLE COMPONENT: SCR_PowerComponent +15:10:17.879 SCRIPT : ERR ROLE COMPONENT: SCR_ResourceComponent +15:10:17.879 SCRIPT : ERR ROLE COMPONENT: SCR_UniversalInventoryStorageComponent +15:10:17.879 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleBuoyancyComponent +15:10:17.879 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleCameraDataComponent +15:10:17.879 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleFactionAffiliationComponent +15:10:17.879 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleSpawnProtectionComponent +15:10:17.880 SCRIPT : ERR ROLE COMPONENT: SCR_WheeledDamageManagerComponent +15:10:17.880 SCRIPT : ERR ROLE COMPONENT: VehicleLightPortalComponent +15:10:17.880 SCRIPT : ERR ROLE COMPONENT: VehicleWheeledSimulation +15:10:17.880 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleDustPerWheel +15:10:17.880 SCRIPT : ERR ROLE COMPONENT: BaseFlattenGrassComponent +15:10:17.880 SCRIPT : ERR ROLE COMPONENT: BaseVehicleNodeComponent +15:10:17.880 SCRIPT : ERR ROLE COMPONENT: ChimeraAIVehicleControlComponent +15:10:17.881 SCRIPT : ERR ROLE COMPONENT: SCR_VehiclePerceivableComponent +15:10:17.881 SCRIPT : ERR ROLE COMPONENT: CarProcAnimComponent +15:10:17.881 SCRIPT : ERR ROLE COMPONENT: WCS_Armament_GroundVehicleInfraredEmitterComponent +15:10:17.881 SCRIPT : ERR ROLE COMPONENT: WCS_Armament_RadarReflectorComponent +15:10:17.881 SCRIPT : ERR ROLE COMPONENT: SlotManagerComponent +15:10:17.881 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleInventoryStorageManagerComponent +15:10:17.881 SCRIPT : ERR ROLE COMPONENT: ActionsManagerComponent +15:10:17.882 SCRIPT : ERR ROLE COMPONENT: VehicleAnimationComponent +15:10:17.882 SCRIPT : ERR ROLE COMPONENT: VehicleGamepadEffectsManagerComponent +15:10:17.882 SCRIPT : ERR ROLE COMPONENT: NwkCarMovementComponent +15:10:17.882 SCRIPT : ERR ROLE COMPONENT: RplComponent +15:10:17.935 SCRIPT : ERR SMOKE PASS: previously unknown car assigned independently to garage and traffic selections +15:10:19.066 SCRIPT : ERR SMOKE PASS: discovered assigned vehicle role=2 prefab={F001C0DE00000001}Prefabs/Vehicles/ERR_RoleTestCar.et actualCrew=4 +15:10:19.066 SCRIPT : ERR ROLE COMPARTMENT VAR: Enabled +15:10:19.066 SCRIPT : ERR ROLE COMPARTMENT VAR: components +15:10:19.066 SCRIPT : ERR ROLE COMPARTMENT VAR: DoorInfoList +15:10:19.066 SCRIPT : ERR ROLE COMPARTMENT VAR: CompartmentSlots +15:10:19.067 SCRIPT : ERR ROLE COMPARTMENT VAR: m_bBlockSuppliesIfOccupied +15:10:19.067 SCRIPT : ERR ROLE FOUND: {F001C0DE00000002}Prefabs/Vehicles/ERR_RoleTestEscort.et contains=1 capable=1 sources=0x000000014FBFB6D8 {ArmaReforger,RHS_Core,WCS_Armaments,ERR_Core} +15:10:19.067 SCRIPT : ERR ROLE COMPONENT: EventHandlerManagerComponent +15:10:19.067 SCRIPT : ERR ROLE COMPONENT: ParametricMaterialInstanceComponent +15:10:19.067 SCRIPT : ERR ROLE COMPONENT: Persistence +15:10:19.068 SCRIPT : ERR ROLE COMPONENT: SignalsManagerComponent +15:10:19.068 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleSoundComponent +15:10:19.068 SCRIPT : ERR ROLE COMPONENT: AIKnowledgeComponent +15:10:19.068 SCRIPT : ERR ROLE COMPONENT: BaseLightManagerComponent +15:10:19.068 SCRIPT : ERR ROLE COMPONENT: BaseRadioComponent +15:10:19.068 SCRIPT : ERR ROLE COMPONENT: ChimeraAIPathfindingComponent +15:10:19.068 SCRIPT : ERR ROLE COMPONENT: ColliderHistoryComponent +15:10:19.069 SCRIPT : ERR ROLE COMPONENT: ControllersManagerComponent +15:10:19.069 SCRIPT : ERR ROLE COMPONENT: MeshObject +15:10:19.069 SCRIPT : ERR ROLE COMPONENT: RHS_RadioSourceComponent +15:10:19.069 SCRIPT : ERR ROLE COMPONENT: RigidBody +15:10:19.069 SCRIPT : ERR ROLE COMPONENT: SCR_AIVehicleUsageComponent +15:10:19.069 SCRIPT : ERR ROLE COMPONENT: SCR_BaseCompartmentManagerComponent +15:10:19.069 SCRIPT : ERR ROLE COMPONENT: SCR_BaseLockComponent +15:10:19.070 SCRIPT : ERR ROLE COMPONENT: SCR_EditableVehicleComponent +15:10:19.070 SCRIPT : ERR ROLE COMPONENT: SCR_FuelConsumptionComponent +15:10:19.070 SCRIPT : ERR ROLE COMPONENT: SCR_FuelManagerComponent +15:10:19.070 SCRIPT : ERR ROLE COMPONENT: SCR_ImpactEffectComponent +15:10:19.070 SCRIPT : ERR ROLE COMPONENT: SCR_MotorExhaustEffectGeneralComponent +15:10:19.070 SCRIPT : ERR ROLE COMPONENT: SCR_PowerComponent +15:10:19.071 SCRIPT : ERR ROLE COMPONENT: SCR_ResourceComponent +15:10:19.071 SCRIPT : ERR ROLE COMPONENT: SCR_UniversalInventoryStorageComponent +15:10:19.071 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleBuoyancyComponent +15:10:19.071 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleCameraDataComponent +15:10:19.071 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleFactionAffiliationComponent +15:10:19.071 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleSpawnProtectionComponent +15:10:19.071 SCRIPT : ERR ROLE COMPONENT: SCR_WheeledDamageManagerComponent +15:10:19.072 SCRIPT : ERR ROLE COMPONENT: VehicleWheeledSimulation +15:10:19.072 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleDustPerWheel +15:10:19.072 SCRIPT : ERR ROLE COMPONENT: BaseFlattenGrassComponent +15:10:19.072 SCRIPT : ERR ROLE COMPONENT: BaseVehicleNodeComponent +15:10:19.072 SCRIPT : ERR ROLE COMPONENT: ChimeraAIVehicleControlComponent +15:10:19.072 SCRIPT : ERR ROLE COMPONENT: SCR_VehiclePerceivableComponent +15:10:19.072 SCRIPT : ERR ROLE COMPONENT: CarProcAnimComponent +15:10:19.073 SCRIPT : ERR ROLE COMPONENT: WCS_Armament_GroundVehicleInfraredEmitterComponent +15:10:19.073 SCRIPT : ERR ROLE COMPONENT: WCS_Armament_RadarReflectorComponent +15:10:19.073 SCRIPT : ERR ROLE COMPONENT: SlotManagerComponent +15:10:19.073 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleInventoryStorageManagerComponent +15:10:19.073 SCRIPT : ERR ROLE COMPONENT: ActionsManagerComponent +15:10:19.073 SCRIPT : ERR ROLE COMPONENT: VehicleAnimationComponent +15:10:19.074 SCRIPT : ERR ROLE COMPONENT: VehicleGamepadEffectsManagerComponent +15:10:19.074 SCRIPT : ERR ROLE COMPONENT: NwkCarMovementComponent +15:10:19.074 SCRIPT : ERR ROLE COMPONENT: RplComponent +15:10:20.060 SCRIPT : ERR SMOKE PASS: discovered assigned vehicle role=3 prefab={F001C0DE00000002}Prefabs/Vehicles/ERR_RoleTestEscort.et actualCrew=2 +15:10:20.060 SCRIPT : ERR ROLE COMPARTMENT VAR: Enabled +15:10:20.061 SCRIPT : ERR ROLE COMPARTMENT VAR: components +15:10:20.061 SCRIPT : ERR ROLE COMPARTMENT VAR: DoorInfoList +15:10:20.061 SCRIPT : ERR ROLE COMPARTMENT VAR: CompartmentSlots +15:10:20.061 SCRIPT : ERR ROLE COMPARTMENT VAR: m_bBlockSuppliesIfOccupied +15:10:20.061 SCRIPT : ERR ROLE FOUND: {F001C0DE00000003}Prefabs/Vehicles/ERR_RoleTestTruck.et contains=1 capable=1 sources=0x000000014FC2C9E0 {ArmaReforger,RHS_Core,WCS_Armaments,ERR_Core} +15:10:20.061 SCRIPT : ERR ROLE COMPONENT: EventHandlerManagerComponent +15:10:20.062 SCRIPT : ERR ROLE COMPONENT: ParametricMaterialInstanceComponent +15:10:20.062 SCRIPT : ERR ROLE COMPONENT: Persistence +15:10:20.062 SCRIPT : ERR ROLE COMPONENT: SignalsManagerComponent +15:10:20.062 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleSoundComponent +15:10:20.062 SCRIPT : ERR ROLE COMPONENT: AIKnowledgeComponent +15:10:20.062 SCRIPT : ERR ROLE COMPONENT: BaseLightManagerComponent +15:10:20.063 SCRIPT : ERR ROLE COMPONENT: BaseRadioComponent +15:10:20.063 SCRIPT : ERR ROLE COMPONENT: ChimeraAIPathfindingComponent +15:10:20.063 SCRIPT : ERR ROLE COMPONENT: ColliderHistoryComponent +15:10:20.063 SCRIPT : ERR ROLE COMPONENT: ControllersManagerComponent +15:10:20.063 SCRIPT : ERR ROLE COMPONENT: MeshObject +15:10:20.063 SCRIPT : ERR ROLE COMPONENT: RHS_GroupMaterialController +15:10:20.064 SCRIPT : ERR ROLE COMPONENT: RHS_RadioSourceComponent +15:10:20.064 SCRIPT : ERR ROLE COMPONENT: RigidBody +15:10:20.064 SCRIPT : ERR ROLE COMPONENT: SCR_AIVehicleUsageComponent +15:10:20.064 SCRIPT : ERR ROLE COMPONENT: SCR_BaseCompartmentManagerComponent +15:10:20.064 SCRIPT : ERR ROLE COMPONENT: SCR_BaseLockComponent +15:10:20.064 SCRIPT : ERR ROLE COMPONENT: SCR_EditableVehicleComponent +15:10:20.064 SCRIPT : ERR ROLE COMPONENT: SCR_FuelConsumptionComponent +15:10:20.065 SCRIPT : ERR ROLE COMPONENT: SCR_FuelManagerComponent +15:10:20.065 SCRIPT : ERR ROLE COMPONENT: SCR_ImpactEffectComponent +15:10:20.065 SCRIPT : ERR ROLE COMPONENT: SCR_MotorExhaustEffectGeneralComponent +15:10:20.065 SCRIPT : ERR ROLE COMPONENT: SCR_PowerComponent +15:10:20.065 SCRIPT : ERR ROLE COMPONENT: SCR_UniversalInventoryStorageComponent +15:10:20.065 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleBuoyancyComponent +15:10:20.065 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleCameraDataComponent +15:10:20.066 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleDamageManagerComponent +15:10:20.066 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleFactionAffiliationComponent +15:10:20.066 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleSpawnProtectionComponent +15:10:20.066 SCRIPT : ERR ROLE COMPONENT: VehicleLightPortalComponent +15:10:20.066 SCRIPT : ERR ROLE COMPONENT: VehicleWheeledSimulation +15:10:20.066 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleDustPerWheel +15:10:20.067 SCRIPT : ERR ROLE COMPONENT: BaseFlattenGrassComponent +15:10:20.067 SCRIPT : ERR ROLE COMPONENT: BaseVehicleNodeComponent +15:10:20.067 SCRIPT : ERR ROLE COMPONENT: ChimeraAIVehicleControlComponent +15:10:20.068 SCRIPT : ERR ROLE COMPONENT: SCR_VehiclePerceivableComponent +15:10:20.068 SCRIPT : ERR ROLE COMPONENT: CarProcAnimComponent +15:10:20.068 SCRIPT : ERR ROLE COMPONENT: WCS_Armament_GroundVehicleInfraredEmitterComponent +15:10:20.068 SCRIPT : ERR ROLE COMPONENT: WCS_Armament_RadarReflectorComponent +15:10:20.069 SCRIPT : ERR ROLE COMPONENT: SlotManagerComponent +15:10:20.069 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleInventoryStorageManagerComponent +15:10:20.069 SCRIPT : ERR ROLE COMPONENT: ActionsManagerComponent +15:10:20.069 SCRIPT : ERR ROLE COMPONENT: VehicleAnimationComponent +15:10:20.069 SCRIPT : ERR ROLE COMPONENT: VehicleGamepadEffectsManagerComponent +15:10:20.069 SCRIPT : ERR ROLE COMPONENT: NwkCarMovementComponent +15:10:20.070 SCRIPT : ERR ROLE COMPONENT: RplComponent +15:10:20.973 SCRIPT : ERR SMOKE PASS: discovered assigned vehicle role=4 prefab={F001C0DE00000003}Prefabs/Vehicles/ERR_RoleTestTruck.et actualCrew=1 +15:10:20.974 SCRIPT : ERR ROLE COMPARTMENT VAR: Enabled +15:10:20.974 SCRIPT : ERR ROLE COMPARTMENT VAR: components +15:10:20.974 SCRIPT : ERR ROLE COMPARTMENT VAR: DoorInfoList +15:10:20.974 SCRIPT : ERR ROLE COMPARTMENT VAR: CompartmentSlots +15:10:20.974 SCRIPT : ERR ROLE COMPARTMENT VAR: m_bBlockSuppliesIfOccupied +15:10:29.100 SCRIPT : Reintroduced [server vehicles]: inspected=2085 groundVehicles=324 truncated=0 +15:10:32.856 SCRIPT : ERR SMOKE PASS: newly discovered patrol, escort and supply vehicles physically driven more than20m with production crews +15:10:32.856 SCRIPT : ERR SMOKE COMPLETE: vehicle roles discovery assignments native crews and driving diff --git a/docs/evidence/vehicle-roles-2026-11-06/focused-final.log b/docs/evidence/vehicle-roles-2026-11-06/focused-final.log new file mode 100644 index 00000000..1ac8dde3 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/focused-final.log @@ -0,0 +1,14 @@ +PASS: actual item rules, shared-source conflicts, missing/returning mods, bulk reset, independent named presets, bounds, malformed data and failed-save state preservation +PASS: catalog requests use authenticated sessions, independent admin page selections, loaded-mod allowlisting, bounded pages and allowlisted item mutations +PASS: actual convoy dispatch validates before receipt consumption, consumes once before native mutation, retains all10 partial-failure paths, accepts the selected non-USSR enemy, and allocates exact10 bodies without capacity shrinking +PASS: own memberless prefab disables automatic spawn before initialization; actual admission rejects populated, immediate or authored-slot templates before finite crew creation +PASS: optional vehicle discovery excludes parts/wrecks/base templates; bounded custom patrol crews accept cars and gun crews without extra bodies +PASS: actual vehicle selection preserves default distribution, admits assigned additions, isolates uses, respects garage default scope and never restores disabled fallbacks +PASS: traffic distance/grace, all-observer veto, player claims, foreign custody, bounded spawn cadence, failure/stall retention and shutdown preserve nearby/claimed entities +PASS: actual observer collection includes spectator targets and controlled bodies; missing views/controllers and open editor cameras veto spawn/cleanup +PASS: civilian traffic defaults to three; menu command resolves to persisted 0..6 setting with zero disabling new cars +PASS: bounded exit-road selection can turn along a coastline when the opposite road is unavailable; no-route case is withheld +PASS: managed traffic pins both native garbage entries; release/retirement removes only those pins, including partial creation +PASS: garage/yard family admission, bounded wall offsets, civilian and optional Rally catalog exclusions, vehicle-fit limits +PASS: yard road-width margin, missing road data, footprint water/slope and nonfinite-input vetoes +Menu layouts and palette are up to date. diff --git a/docs/evidence/vehicle-roles-2026-11-06/garage-browser.png b/docs/evidence/vehicle-roles-2026-11-06/garage-browser.png new file mode 100644 index 00000000..146d839d Binary files /dev/null and b/docs/evidence/vehicle-roles-2026-11-06/garage-browser.png differ diff --git a/docs/evidence/vehicle-roles-2026-11-06/menu-run/external-addons-inputs.json b/docs/evidence/vehicle-roles-2026-11-06/menu-run/external-addons-inputs.json new file mode 100644 index 00000000..838084af --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/menu-run/external-addons-inputs.json @@ -0,0 +1,851 @@ +{ + "1337C0DE5DABBEEF": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack01_1337C0DE5DABBEEF", + "title": "RHS: Status Quo - Content Pack 01", + "version": "0.17.5281", + "files": { + "ServerData.json": { + "stat": [ + 47, + 916830, + 236, + 1793966354242463962, + 1793966354242463962 + ], + "sha256": "cc4cc1b0d1d06fc4f1ced0117845930d8ed5291f63ca89577a47518018444706" + }, + "addon.gproj": { + "stat": [ + 47, + 40147728, + 339, + 1793966331111982831, + 1793966354215463398 + ], + "sha256": "09baf9fff74b1a8aadb03786d6d9ebe7159ddf074f7d46b35123501325332d98" + }, + "addon.gproj_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147698, + 362, + 1793966311083569723, + 1793966311083569723 + ], + "sha256": "2155ab32d13dd234b511ae5a390c1a5a4377ee9f3bde8a011b7b474c7da9b855" + }, + "data.pak": { + "stat": [ + 47, + 40147713, + 1992950655, + 1793966345831288514, + 1793966354160462249 + ], + "sha256": "46e22e1f561de7435912a9263e06cce6d6f81bb82c0c1da92d5937758b35963f" + }, + "data.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147695, + 232639, + 1793966310556558900, + 1793966310556558900 + ], + "sha256": "1398f6275e2adb99ac13705a43071734105853f83ed427cff3f6a333a5f6907f" + }, + "data001.pak": { + "stat": [ + 47, + 40147722, + 1992538370, + 1793966346382299991, + 1793966354214463377 + ], + "sha256": "97314ce4854b3a35dc5cd181378af27281b2897586d59b1e5b108aff9a3c2eda" + }, + "data001.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147696, + 349868, + 1793966310769563274, + 1793966310769563274 + ], + "sha256": "9800ba8266e30b2a81e59b119b1261a7a3b441adcc211dff9c08dda704853e83" + }, + "data002.pak": { + "stat": [ + 47, + 40147707, + 1992467288, + 1793966346414300657, + 1793966353764453977 + ], + "sha256": "4aadf524b9144c4f2886edf3442db02f36cecc93913926f815755a5f7d307d0b" + }, + "data002.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147694, + 332026, + 1793966310371555100, + 1793966310371555100 + ], + "sha256": "9e33445c078f4dccd8ace6eb5a98e0ff04071c157b3182e1fcc315ee47c6ee0c" + }, + "data003.pak": { + "stat": [ + 47, + 40147725, + 364992473, + 1793966333186025798, + 1793966354215463398 + ], + "sha256": "e40e45672321aa36c0650bec960b7dd00ce55bdeff0fd27eb2ccfaa1c12070f5" + }, + "data003.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147697, + 96625, + 1793966310953567053, + 1793966310953567053 + ], + "sha256": "881f85eed91e415e78bf28caa43b77d0ccc0ca8b5b1c8b89831058c1088c9671" + }, + "meta": { + "stat": [ + 47, + 911092, + 8398, + 1793966354241463941, + 1793966354241463941 + ], + "sha256": "7bab7f27e0808955b9e5feecbf94febc8de11d6e12e56f60c1e17c68791aa3d2" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40147731, + 567493, + 1793966331188984425, + 1793966354215463398 + ], + "sha256": "29c053dcec2fd7f1e5187188f91eb1b652296e5d8a0f98a9ffd2bb48dcab374b" + }, + "resourceDatabase.rdb_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147699, + 368, + 1793966311208572292, + 1793966311208572292 + ], + "sha256": "a8fb8e19912a9450e68f702befa6d61320479bfce5b02faccea866b01b305ac4" + }, + "thumbnail.png": { + "stat": [ + 47, + 40147703, + 18180, + 1793966330833526806, + 1793966353682252124 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147692, + 366, + 1793966310025547994, + 1793966310025547994 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + }, + "595F2BF2F44836FB": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-StatusQuo_595F2BF2F44836FB", + "title": "RHS: Status Quo", + "version": "0.16.5237", + "files": { + "ServerData.json": { + "stat": [ + 47, + 910012, + 8466, + 1793966281368963106, + 1793966281368963106 + ], + "sha256": "7a507c69efaca22a8ee61dda96ac8a7e337e3ad2b4cabd5ae203bec43d9e44d6" + }, + "addon.gproj": { + "stat": [ + 47, + 40146987, + 1101, + 1793966269260853248, + 1793966281217205538 + ], + "sha256": "51fda0afde5ebcd4dc88c6c9451d960b67aceaee437f02f1cc80aef724e3779c" + }, + "addon.gproj_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146979, + 364, + 1793966268094694637, + 1793966268094694637 + ], + "sha256": "c67690023c7ecfda231509b46545febea451145a060277b8178c14ebaebb82b8" + }, + "data.pak": { + "stat": [ + 47, + 40146990, + 203659379, + 1793966280554946596, + 1793966281282961360 + ], + "sha256": "0aa031f2f9103e4663b99698a8712d2bb9a35601a0a8611e0acb2680cc2e46da" + }, + "data.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146980, + 1429277, + 1793966268286698509, + 1793966268286698509 + ], + "sha256": "50866475ea8bfb505b492852b22da7e082a1fa90171a7200d93067baabe14036" + }, + "meta": { + "stat": [ + 47, + 902077, + 17982, + 1793966281341962557, + 1793966281341962557 + ], + "sha256": "d062f6ede1b0ada0957339060074a87a119a67936e8f99f3422bdbb1f42fe28a" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146995, + 834332, + 1793966269484722676, + 1793966281284961401 + ], + "sha256": "32d8435e20292c6f6d8c3b48e3d76239ca84881bcbd4f1f9fe56bf2fc64b1c71" + }, + "resourceDatabase.rdb_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146982, + 368, + 1793966268409700990, + 1793966268409700990 + ], + "sha256": "fd95cde11bd5c9bf8840fd43d2a20e257fc03907ed778f20b923e9f5b6fb840d" + }, + "thumbnail.png": { + "stat": [ + 47, + 40147000, + 18180, + 1793966269260853248, + 1793966281284961401 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.17.5281_manifest.json": { + "stat": [ + 47, + 40146983, + 366, + 1793966268537703572, + 1793966268537703572 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + }, + "5E389BB9F58B79A6": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/SpaceCore_5E389BB9F58B79A6", + "title": "WCS_SpaceCore", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 919166, + 273, + 1793966267029981947, + 1793966267029981947 + ], + "sha256": "758d38e13ee5254ed5c01c8f8d1b872af58481d0b839b55e5ee365ac96193691" + }, + "addon.gproj": { + "stat": [ + 47, + 40146953, + 2957, + 1793966266428418870, + 1793966267018672944 + ], + "sha256": "2db2e318e6f45bede0d1173d77af03314f888aedfb31bc767d569ccfb6e70a34" + }, + "addon.gproj_9.0.1_manifest.json": { + "stat": [ + 47, + 40146942, + 364, + 1793966266181656079, + 1793966266181656079 + ], + "sha256": "67d15a8e8623130546332c6d6433314cbdf38e034a66330b9c7a739a94731e21" + }, + "data.pak": { + "stat": [ + 47, + 40146950, + 25392420, + 1793966266923671030, + 1793966267018672944 + ], + "sha256": "d89a5253dbd6707176e7d515cea3e4701725c8197afb20aded18bb231aa6434f" + }, + "data.pak_9.0.1_manifest.json": { + "stat": [ + 47, + 40146941, + 32668, + 1793966266050653438, + 1793966266050653438 + ], + "sha256": "b4b9d9b1ca3534e5d09bed4ac8ce990a2f765f6386791e0241c3dd9a4bb7c308" + }, + "meta": { + "stat": [ + 47, + 918678, + 2510, + 1793966267027673125, + 1793966267027673125 + ], + "sha256": "203fd32b2a44e941808b0c621b5e885687262099d83c7b876c2e805c3ef6d313" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146956, + 22656, + 1793966266553663574, + 1793966267019672964 + ], + "sha256": "88b92c9ed25b3e2b0794a9d2ebd3449f616d2810f330a6330683eca7d533c769" + }, + "resourceDatabase.rdb_9.0.1_manifest.json": { + "stat": [ + 47, + 40146943, + 366, + 1793966266305658577, + 1793966266305658577 + ], + "sha256": "73614d689e2701b75bc009e9e4f4fd0a1c4b0df0061f4a299371cbb148c9f607" + }, + "thumbnail.png": { + "stat": [ + 47, + 40146947, + 689401, + 1793966266428661055, + 1793966267011366549 + ], + "sha256": "8da2e133303f21bb16a2abd25d5bd6c2a4a6f5eccedae74a98358db485a170d1" + }, + "thumbnail.png_9.0.1_manifest.json": { + "stat": [ + 47, + 40146940, + 368, + 1793966265925650920, + 1793966265925650920 + ], + "sha256": "5aaa5989b5f44b48ff03082a0d4004ae71420db6eebeb56282af7d98f36c7000" + } + } + }, + "5E524E4FEECCA92B": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/BMP-1IFV_5E524E4FEECCA92B", + "title": "WCS_BMP-1", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 918673, + 193, + 1793966264963885489, + 1793966264963885489 + ], + "sha256": "bf2d1bf174c0385e65fa28e5991b49f6b86ee6c1463ca5fec742fa5d5bb1264c" + }, + "addon.gproj": { + "stat": [ + 47, + 40146895, + 2900, + 1793966263344149147, + 1793966264913686889 + ], + "sha256": "ad44151140adf62e99eaa639984c2b9c400be17481e934186d61c307b5221259" + }, + "addon.gproj_9.0.1_manifest.json": { + "stat": [ + 47, + 40146888, + 364, + 1793966262546582905, + 1793966262546582905 + ], + "sha256": "3065c7c353cb7623ee85f83d462d4dac37c92efad1a0255f2661470e6cedfd0f" + }, + "data.pak": { + "stat": [ + 47, + 40146898, + 120212943, + 1793966264519622607, + 1793966264949631264 + ], + "sha256": "d9d23369b41d3bdcb1e4a98a03bf27b944e688459f773f2cd8ab8484d434b63c" + }, + "data.pak_9.0.1_manifest.json": { + "stat": [ + 47, + 40146889, + 32902, + 1793966262705586103, + 1793966262705586103 + ], + "sha256": "fddebd10d715fc1f2255aa0b6d72184ec9a1da5a725033923ac82d60772a095f" + }, + "gallery0_776x436.jpg": { + "stat": [ + 47, + 23106914, + 64588, + 1788720671481676966, + 1788720671481676966 + ], + "sha256": "63649f5239059dd12234250b8c8e313b14ca134e30e4309fbd1eb45f92e77097" + }, + "gallery1_776x436.jpg": { + "stat": [ + 47, + 23106915, + 47808, + 1788720671495639547, + 1788720671495639547 + ], + "sha256": "81f89b026a1bf341f8cd3bb19facd67e8d0f56073c924e026983836fee6bfb4c" + }, + "meta": { + "stat": [ + 47, + 918496, + 2928, + 1793966264961631505, + 1793966264961631505 + ], + "sha256": "552e3e90048cfa515be78f992371b5b4ef29f1266f9a91b76369ec5bc8d95a27" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146904, + 20362, + 1793966263427600628, + 1793966264951631303 + ], + "sha256": "f29ecdc46a023287f2be40a502e3f0117be5a9278ab0eef7a0ce4628d30692e5" + }, + "resourceDatabase.rdb_9.0.1_manifest.json": { + "stat": [ + 47, + 40146891, + 366, + 1793966262950591030, + 1793966262950591030 + ], + "sha256": "4619fe9c8439d518292e6c511fd2be970893eda93eeb8554089823ebd4abaae3" + }, + "thumbnail.png": { + "stat": [ + 47, + 40146901, + 708338, + 1793966263345598978, + 1793966264950631284 + ], + "sha256": "103a98bf476d510ab3081abb371170ae6cf65aea65b9095636d651170a5b0038" + }, + "thumbnail.png_9.0.1_manifest.json": { + "stat": [ + 47, + 40146890, + 368, + 1793966262825588516, + 1793966262825588516 + ], + "sha256": "5bf1e0f8794a4e2e862658a10071360df63ed6a440ee2ca5514afbc2e97e375e" + } + } + }, + "629B2BA37EFFD577": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/WCS_Armaments_629B2BA37EFFD577", + "title": "WCS_Armaments", + "version": "8.3.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 920134, + 197, + 1793966262210522872, + 1793966262210522872 + ], + "sha256": "4f9a7b1c661f78832b570e3b050d05d643b531deb944336b99fc018028460b5d" + }, + "addon.gproj": { + "stat": [ + 47, + 40146643, + 2926, + 1793966255452440454, + 1793966262199575927 + ], + "sha256": "e6ffcf559a2e7898848349c090300ea8eca8cb2e13ecef456a108bcc82efc8b1" + }, + "addon.gproj_9.0.1_manifest.json": { + "stat": [ + 47, + 40146630, + 364, + 1793966254019411735, + 1793966254019411735 + ], + "sha256": "ba8f2b36575408f11b2107fc4b0f9449c9dc057629ebf894c7bdbc77f53cbc1f" + }, + "data.pak": { + "stat": [ + 47, + 40146634, + 442600639, + 1793966260630544384, + 1793966262197575885 + ], + "sha256": "26f63ca2134fb092a014e096664bea436720ec6af8d38788875bbb66417a8002" + }, + "data.pak_9.0.1_manifest.json": { + "stat": [ + 47, + 40146627, + 315478, + 1793966253656404464, + 1793966253656404464 + ], + "sha256": "c9f5b6bf65507836bb8243a83726f62eb53a190992f951da11e74919eb48dbab" + }, + "meta": { + "stat": [ + 47, + 919170, + 2601, + 1793966262208576106, + 1793966262208576106 + ], + "sha256": "8299678c3779dc13ea2a2d234407ea1ffae0d690398b45279261e8f68fef9a75" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40146637, + 205606, + 1793966255643444284, + 1793966262198575906 + ], + "sha256": "d229ebb54d52c7417c7bcf05c934d41d51b3d936d610118239217962aa869562" + }, + "resourceDatabase.rdb_9.0.1_manifest.json": { + "stat": [ + 47, + 40146628, + 368, + 1793966253776406868, + 1793966253776406868 + ], + "sha256": "c69021b58814cec675c6f98da27d2810fe523e8fef71b023e3a4610739aca03d" + }, + "thumbnail.png": { + "stat": [ + 47, + 40146640, + 689544, + 1793966255454440494, + 1793966262199575927 + ], + "sha256": "ccd771dba7f3f222e9733e688e6dd9e4c5edae2accdd80a6876241094e23f3dd" + }, + "thumbnail.png_9.0.1_manifest.json": { + "stat": [ + 47, + 40146629, + 368, + 1793966253899409332, + 1793966253899409332 + ], + "sha256": "e58ef73e4a794e56ecd04bfd84940ec539e5ca481d6b69ffb20f9fedcd3c2e77" + } + } + }, + "65930CB4CD0237B2": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/ParachuteFramework_65930CB4CD0237B2", + "title": "Parachute Framework", + "version": "1.2.0", + "files": { + "ServerData.json": { + "stat": [ + 47, + 23608865, + 764, + 1788881939235881733, + 1788881939235881733 + ], + "sha256": "ec665641799be1f97100937ce87c894a88bee99526fac0695303c339121e8bd1" + }, + "addon.gproj": { + "stat": [ + 47, + 23608826, + 124, + 1788881938831871187, + 1788881938831871187 + ], + "sha256": "183fbb521382a95ad33af9efc547147a80241bd536a29d124c93064b5ae5e8bc" + }, + "addon.gproj_1.2.0_manifest.json": { + "stat": [ + 47, + 23608818, + 362, + 1788881938288857014, + 1788881938288857014 + ], + "sha256": "5030f4430dbd237d93fbcc49ab5c667241b803f1beee4060498e882ea85c9d7f" + }, + "data.pak": { + "stat": [ + 47, + 23608829, + 5048302, + 1788881939131386944, + 1788881939131386944 + ], + "sha256": "ccb22523ba0040cb9d9206a7ab0ae7e5b4411b1704bde39e3e4a7953416e3042" + }, + "data.pak_1.2.0_manifest.json": { + "stat": [ + 47, + 23608820, + 4696, + 1788881938426860616, + 1788881938426860616 + ], + "sha256": "168504d70f88650b0e7acbdcc80ef384ee5b90e2f044839f837b1220b767afcb" + }, + "meta": { + "stat": [ + 47, + 23608819, + 5088, + 1788881955440304751, + 1788881955440304751 + ], + "sha256": "178156f61a332f596dc3783c4d02b0ab5d50a47d4aa1572395760d0fe062500b" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 23608835, + 3188, + 1788881939082877739, + 1788881939082877739 + ], + "sha256": "0994a4b1fcfacdd8d8f69759ba6bde878d633545e380a5774a05e4cac3b6b2c4" + }, + "resourceDatabase.rdb_1.2.0_manifest.json": { + "stat": [ + 47, + 23608822, + 364, + 1788881938690867507, + 1788881938690867507 + ], + "sha256": "6a0793ea2080ae22fac1efd6d3da3ddb3100fd0b60869098e5572be66318c883" + }, + "thumbnail.png": { + "stat": [ + 47, + 23608832, + 2255011, + 1788881939194880662, + 1788881939194880662 + ], + "sha256": "715ac1bf4b6abefb2726cc4c61e903e63ae3a2bfec1e8a85be6cb81eb308407a" + }, + "thumbnail.png_1.2.0_manifest.json": { + "stat": [ + 47, + 23608821, + 370, + 1788881938560864114, + 1788881938560864114 + ], + "sha256": "2bd7127d58adee39c3aa1e2212436499b10adf4fe2faa0b3ed5fcadbfaaae768" + } + } + }, + "BADC0DEDABBEDA5E": { + "path": "/home/jakub/.local/share/Steam/steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/addons/RHS-ContentPack02_BADC0DEDABBEDA5E", + "title": "RHS: Status Quo - Content Pack 02", + "version": "0.17.5281", + "files": { + "ServerData.json": { + "stat": [ + 47, + 911088, + 236, + 1793966308641519583, + 1793966308641519583 + ], + "sha256": "64b0ff774b52b41cc3711fed424f3e377de4854652b4197f257893f892775e3e" + }, + "addon.gproj": { + "stat": [ + 47, + 40147536, + 337, + 1793966290112140796, + 1793966307987506163 + ], + "sha256": "196b2bc1da74c0b5154c7346c63989df237da487f29cff7b2094f53e0f17ff18" + }, + "addon.gproj_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147526, + 362, + 1793966282662989362, + 1793966282662989362 + ], + "sha256": "44a5d0e2cb0ff23da171ef0c929d1083d8ba71b2680a43ab7c3e53d6c40e74f3" + }, + "data.pak": { + "stat": [ + 47, + 40147548, + 1995519845, + 1793966301329369751, + 1793966308616519071 + ], + "sha256": "292e73f28ff1fc49f9a6503537615b124e7b447345e3230391f0a19322acd350" + }, + "data.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147529, + 166380, + 1793966283062997480, + 1793966283062997480 + ], + "sha256": "6782e9310e8f40bf64b79c967bed419125575b1401a63d1fdb979758d5cffe54" + }, + "data001.pak": { + "stat": [ + 47, + 40147543, + 264943574, + 1793966292531190079, + 1793966308063507722 + ], + "sha256": "494ae75e15d681346e6b3637b7cc8b03a8313cc1326bf61048a24d524fef1eb7" + }, + "data001.pak_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147528, + 42695, + 1793966282903994252, + 1793966282903994252 + ], + "sha256": "3b8d813857f9d2c66053bd7c9a99a8f5a85e2421dd9b1634bcc18c55694daf18" + }, + "meta": { + "stat": [ + 47, + 910016, + 7867, + 1793966308640519563, + 1793966308640519563 + ], + "sha256": "c40492c4bb30eab03b030a34a0e12d594aab5cc62e2ab3a0a4602e5ea29c74e1" + }, + "resourceDatabase.rdb": { + "stat": [ + 47, + 40147539, + 116443, + 1793966290235143301, + 1793966307987506163 + ], + "sha256": "e50f65fb8f49d84fe4819e8bd2b4520b62ca21e1c608099487c070d8834356a2" + }, + "resourceDatabase.rdb_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147527, + 368, + 1793966282782991797, + 1793966282782991797 + ], + "sha256": "1e2f8bad8ad8e44e1d1ebed49e22e81f3ea6e80788540090888afe4c94ee82a4" + }, + "thumbnail.png": { + "stat": [ + 47, + 40147533, + 18180, + 1793966289918911310, + 1793966307986845317 + ], + "sha256": "4c70bf384375f069cab9ed719f3865441fd363a010495e7b465f3ae83ed887c3" + }, + "thumbnail.png_0.17.5281_manifest.json": { + "stat": [ + 47, + 40147525, + 366, + 1793966282534986763, + 1793966282534986763 + ], + "sha256": "d0e233b32d3d41ac44ea127ea5eb028b97a63555f7867278a7a6f5e8e1df7255" + } + } + } +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestCar.et b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestCar.et new file mode 100644 index 00000000..f1fea995 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestCar.et @@ -0,0 +1,2 @@ +Vehicle : "{AD80FB47D868C775}Prefabs/Vehicles/Wheeled/S105/S105_green.et" { +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestCar.et.meta b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestCar.et.meta new file mode 100644 index 00000000..f5d83583 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestCar.et.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{F001C0DE00000001}Prefabs/Vehicles/ERR_RoleTestCar.et" + Configurations { + EntityTemplateResourceClass PC {} + EntityTemplateResourceClass HEADLESS {} + } +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestEscort.et b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestEscort.et new file mode 100644 index 00000000..80c94047 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestEscort.et @@ -0,0 +1,2 @@ +Vehicle : "{0B4DEA8078B78A9B}Prefabs/Vehicles/Wheeled/UAZ469/UAZ469_PKM.et" { +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestEscort.et.meta b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestEscort.et.meta new file mode 100644 index 00000000..b715b556 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestEscort.et.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{F001C0DE00000002}Prefabs/Vehicles/ERR_RoleTestEscort.et" + Configurations { + EntityTemplateResourceClass PC {} + EntityTemplateResourceClass HEADLESS {} + } +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestTruck.et b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestTruck.et new file mode 100644 index 00000000..d9880f7b --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestTruck.et @@ -0,0 +1,2 @@ +Vehicle : "{3336BE330C4F355B}Prefabs/Vehicles/Wheeled/Ural4320/Ural4320_ammo.et" { +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestTruck.et.meta b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestTruck.et.meta new file mode 100644 index 00000000..86536134 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture-prefabs/ERR_RoleTestTruck.et.meta @@ -0,0 +1,7 @@ +MetaFileClass { + Name "{F001C0DE00000003}Prefabs/Vehicles/ERR_RoleTestTruck.et" + Configurations { + EntityTemplateResourceClass PC {} + EntityTemplateResourceClass HEADLESS {} + } +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture.c.txt b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture.c.txt new file mode 100644 index 00000000..ddc5c3f1 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/menu-run/fixture.c.txt @@ -0,0 +1,300 @@ +#ifdef WORKBENCH +modded class SCR_RespawnSystemComponent +{ + override void UpdateLoadingPlaceholder(float dt) + { + super.UpdateLoadingPlaceholder(dt); + if (ERR_AdminMenu.GetOpenMenu() && m_wLoadingPlaceholder) m_wLoadingPlaceholder.SetVisible(false); + } +} + +modded class ERR_GameMode +{ + protected override void StartScenario() {} + protected override void EOnInit(IEntity owner) + { + super.EOnInit(owner); + if (SCR_Global.IsEditMode() || !Replication.IsServer()) return; + GetGame().GetCallqueue().CallLater(ERR_ContentReviewBegin, 5000, false); + } + protected void ERR_ContentReviewBegin() + { + PrintFormat("ERR CONTENT: controller=%1",GetGame().GetPlayerController()!=null); + ERR_AdminMenu.Open(); + } +} +modded class ERR_AdminMenu +{ + protected int m_ContentReviewStage; + protected float m_ContentReviewAt; + protected string m_ContentReviewItem; + protected string m_ContentReviewVehicle; + protected string m_ContentReviewAddon="58d0fb3206b6f859"; + override void OnMenuOpen() + { + super.OnMenuOpen(); + GetGame().GetCallqueue().CallLater(ERR_ContentReviewTick,1000,true); + } + override void OnMenuClose() + { + GetGame().GetCallqueue().Remove(ERR_ContentReviewTick); + super.OnMenuClose(); + } + void ERR_ContentReviewFail(string reason) + { + Print("ERR SMOKE FAIL: content menu "+reason,LogLevel.ERROR); + GetGame().GetCallqueue().Remove(ERR_ContentReviewTick); + } + void ERR_ContentReviewTick() + { + float now=GetGame().GetWorld().GetWorldTime(); + if(!m_Ready || now disabledPool={ERR_CivilianTraffic.CarPrefab(0)}; + if(!ERR_VehicleSelection.Choose(disabledPool).IsEmpty()){ERR_ContentReviewFail("disabled mod still permits traffic candidate");return;} + SubmitItems("items mod "+m_ContentReviewAddon+" 1");m_ContentReviewStage=5;return; + } + if(m_ContentReviewStage==5) + { + if(!prefs.ModEnabled(m_ContentReviewAddon)||prefs.Enabled(m_ContentReviewAddon,m_ContentReviewItem)){ERR_ContentReviewFail("master restore lost item choice");return;} + SCR_EditBoxComponent.GetEditBoxComponent("ItemsSearch",GetRootWidget()).SetValue("err_no_such_item_9387");BrowseItems(0);m_ContentReviewStage=6;return; + } + if(m_ContentReviewStage==6) + { + if(!m_ItemRows.IsEmpty()){ERR_ContentReviewFail("search stale rows");return;} + Print("ERR SMOKE PASS: real menu item disable, master mod restoration and empty search"); + PrintFormat("ERR CONTENT VEHICLE INDEX: %1",m_VehicleMods.Find(m_ContentReviewAddon)); + ShowPage(ERR_AdminPage.WEIGHTS); SubmitItems("items list "+m_ContentReviewAddon+" 0");m_ContentReviewStage=10;return; + } + if(m_ContentReviewStage==10) + { + ShowPage(ERR_AdminPage.ALLOWED_ITEMS);m_ContentReviewStage=11;return; + } + if(m_ContentReviewStage==11) + { + if(!m_ItemRows.IsEmpty()){ERR_ContentReviewFail("search lost after advanced page");return;} + Print("ERR SMOKE PASS: item search restored after visiting advanced weights"); + OpenVehicleAddon(m_ContentReviewAddon);m_ContentReviewStage=7;return; + } + if(m_ContentReviewStage==7) + { + SCR_ComboBoxComponent enabledFilter=SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesFilter",GetRootWidget()); + if(enabledFilter.GetCurrentIndex()!=1){enabledFilter.SetCurrentItem(1,false,false,false);BrowseVehicles(0);return;} + if(m_VehicleRows.IsEmpty())return; + if(!ERR_ProbeNavigation(ERR_AdminPage.VEHICLE_POOL)){ERR_ContentReviewFail("vehicle navigation");return;} + foreach(string key,Widget row:m_VehicleRows){m_ContentReviewVehicle=key;OnVehicleRowButton(SCR_ButtonTextComponent.GetButtonText("Disable",row));break;} + System.MakeScreenshot("$logs:content-vehicles");m_ContentReviewStage=8;return; + } + if(m_ContentReviewStage==8) + { + if(prefs.VehicleRole(m_ContentReviewAddon,m_ContentReviewVehicle,0)!=0){ERR_ContentReviewFail("vehicle disable");return;} + ERR_ServerAddonItems vehicles=GetGame().ERR_ServerVehicles().Find(m_ContentReviewAddon); + foreach(ERR_ServerItem vehicle:vehicles.Items) + if(ERR_TerrainCatalog.Key(vehicle.Prefab)==m_ContentReviewVehicle) + { + array pool={vehicle.Prefab}; + if(ERR_VehicleSelection.RoleAllowed(pool[0],0)){ERR_ContentReviewFail("disabled vehicle still selected");return;} + } + ERR_ItemPreferences reloaded=new ERR_ItemPreferences(); + if(reloaded.VehicleRole(m_ContentReviewAddon,m_ContentReviewVehicle,0)!=0||reloaded.Enabled(m_ContentReviewAddon,m_ContentReviewItem)||!reloaded.ModEnabled(m_ContentReviewAddon)){ERR_ContentReviewFail("saved configuration reload");return;} + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesFilter",GetRootWidget()).SetCurrentItem(2,false,false,false);BrowseVehicles(0);m_ContentReviewStage=9;return; + } + if(m_ContentReviewStage==12) + { + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesMod",GetRootWidget()).SetCurrentItem(m_VehicleMods.Find("2528466de220d91c"),false,false,false); + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesRole",GetRootWidget()).SetCurrentItem(2,false,false,false); + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesFilter",GetRootWidget()).SetCurrentItem(0,false,false,false); + SCR_EditBoxComponent.GetEditBoxComponent("VehiclesSearch",GetRootWidget()).SetValue("RoleTestCar"); + ShowPage(ERR_AdminPage.VEHICLE_POOL);BrowseVehicles(0);m_ContentReviewStage=13;return; + } + if(m_ContentReviewStage==13) + { + Widget row=m_VehicleRows.Get("f001c0de00000001"); + if(!row||!VehicleSelectionReady()||m_ShownVehicleRole!=2){ERR_ContentReviewFail("role browser selected wrong result");return;} + OnVehicleRowButton(SCR_ButtonTextComponent.GetButtonText("Enable",row));m_ContentReviewStage=14;return; + } + if(m_ContentReviewStage==14) + { + if(!GetGame().ERR_ServerVehicles().Allowed(ERR_VehicleRolePhysicalProbe.Car(),2)||GetGame().ERR_ServerVehicles().Allowed(ERR_VehicleRolePhysicalProbe.Car(),0)){ERR_ContentReviewFail("per-use enabling through menu");return;} + SCR_ComboBoxComponent.GetComboBoxComponent("VehiclesRole",GetRootWidget()).SetCurrentItem(3,false,false,false); + if(VehicleSelectionReady()){ERR_ContentReviewFail("stale role buttons accepted");return;} + BrowseVehicles(0);m_ContentReviewStage=15;return; + } + if(m_ContentReviewStage==15) + { + ERR_ItemPreferences reloadRoles=new ERR_ItemPreferences(); + if(m_ShownVehicleRole!=3||reloadRoles.VehicleRole("2528466de220d91c","f001c0de00000001",2)!=1||reloadRoles.VehicleRole("2528466de220d91c","f001c0de00000001",3)!=-1){ERR_ContentReviewFail("independent roles/save reload");return;} + Print("ERR SMOKE PASS: real menu assigns a discovered vehicle to patrols, preserves independent uses, blocks stale role actions and reloads saved assignments"); + SubmitItems("vehicles role 2528466de220d91c 2 f001c0de00000001 0");m_ContentReviewStage=16;return; + } + if(m_ContentReviewStage==16) + { + ERR_VehicleRolePhysicalProbe.Begin();GetGame().GetCallqueue().Remove(ERR_ContentReviewTick);return; + } + if(m_ContentReviewStage==9) + { + if(m_VehicleRows.IsEmpty()){ERR_ContentReviewFail("disabled vehicle filter");return;} + Print("ERR SMOKE PASS: vehicle disable, filtered list and persisted preferences reload"); + for(int page=0;page Units = {}; + static ref array Starts = {}; + static float Began; + static bool Failed; + static ResourceName Car() { return "{F001C0DE00000001}Prefabs/Vehicles/ERR_RoleTestCar.et"; } + static ResourceName Escort() { return "{F001C0DE00000002}Prefabs/Vehicles/ERR_RoleTestEscort.et"; } + static ResourceName Truck() { return "{F001C0DE00000003}Prefabs/Vehicles/ERR_RoleTestTruck.et"; } + static void Fail(string message) + { + Failed = true; Print("ERR SMOKE FAIL: vehicle roles " + message, LogLevel.ERROR); + GetGame().GetCallqueue().Remove(Tick); + } + static void Begin() + { + ERR_GameMode mode = ERR_GameMode.Get(); + ERR_ServerVehicleCatalog catalog = GetGame().ERR_ServerVehicles(); + ERR_ItemPreferences preferences = GetGame().ERR_ItemSelections(); + string addon = "2528466de220d91c"; + array prefabs = {Car(), Escort(), Truck()}; + array roles = {2, 3, 4}; + ERR_ConvoyService convoy = new ERR_ConvoyService(mode, null); + ERR_HunterService hunterService = new ERR_HunterService(mode, null); + for (int i = 0; i < 3; i++) + { + ResourceName prefab = prefabs[i]; int role = roles[i]; string key = ERR_TerrainCatalog.Key(prefab); + PrintFormat("ERR ROLE FOUND: %1 contains=%2 capable=%3 sources=%4",prefab,catalog.Contains(addon,key),catalog.Capable(key,role),SCR_AddonTool.GetResourceAddons(prefab)); + Resource inspected=Resource.Load(prefab);IEntitySource source=SCR_BaseContainerTools.FindEntitySource(inspected); + if(source)for(int c=0;c agents={};unit.Group.GetAgents(agents); + foreach(AIAgent agent:agents){agent.SetPermanentLOD(0);agent.ActivateAI();} + vector target,angles;vector transform[4];unit.Entity.GetTransform(transform); + if(!ERR_SupplyConvoySystem.ApproachDirected(Starts[i]+transform[2]*150,target,angles)){movedAll=false;continue;} + unit.Waypoint=AIWaypoint.Cast(ERR_Actors.Spawn(ERR_Resources.MoveWaypoint(),target)); + if(!unit.Waypoint){Fail("move waypoint");return;} + ERR_GameMode.Get().Own(unit.Waypoint);unit.Group.AddWaypoint(unit.Waypoint);unit.Registered=true; + } + float distance=vector.DistanceXZ(Starts[i],unit.Entity.GetOrigin()); + if(distance<20)movedAll=false; + if(now-Began>120000){Fail("driving timeout role="+i.ToString()+" distance="+distance.ToString());return;} + } + if(!movedAll)return; + Print("ERR SMOKE PASS: newly discovered patrol, escort and supply vehicles physically driven more than20m with production crews"); + Print("ERR SMOKE COMPLETE: vehicle roles discovery assignments native crews and driving"); + GetGame().GetCallqueue().Remove(Tick); + } +} +#endif diff --git a/docs/evidence/vehicle-roles-2026-11-06/menu-run/launch-source-sha256.json b/docs/evidence/vehicle-roles-2026-11-06/menu-run/launch-source-sha256.json new file mode 100644 index 00000000..e0ffd17d --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/menu-run/launch-source-sha256.json @@ -0,0 +1,732 @@ +{ + "addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt": "16b263bcb2fb3ae361367a600753a829425620d2e6b350a891c51fba47437ab6", + "addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt.meta": "f2a44ece28891240e6bfa1d01af29428adcadbe82c80e287eb33cd5e58f1f90a", + "addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat": "0a536cd31d1917965ab36d33e273a881be384eb8b863eb5da03d1666e141d45a", + "addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat.meta": "9f4d59cd6d103547e3e494baf7cc8fce70f31f87c66fe6d26b70011bbd27e38b", + "addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat": "88a2c1061c01eb96ce8a0f753bd3e89e1d7af01471ccc4abb4774a7aa9a532fb", + "addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat.meta": "e0093b7df155499444f93a1148a07f66cc755489192db17c81f4035d17378efb", + "addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat.meta": "33a9eaa49871813f2e8537f071ea0f5a4422eb08d536355a47314b6b6d845b19", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf": "48dc42771b7e44994839dfabe9b007c23e37bd9be900196c757f42351e5c6b04", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf.meta": "c081aec31c927c0c374dcc0f8eb3eaec498f71cb0e2ac746879b926f8dc7d00e", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr": "8ec57b278c9d63324d00f7af62abf75230c5ef631d1cc070661585ee235c8a1f", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr.meta": "b045e26f86116703d1b3599fdf747b413cc0064d8101eff659ded0355eff31fe", + "addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat": "372247aac7b84ddf6c66e276d03321d22496e65726f55e490ee7287a90151318", + "addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat.meta": "ea10c7bd630b31febf511fb28a42cc73597fcc1e3010597dc074c651813ede94", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.fbx": "03a654900103878223ab5c4a42e71d17022ca4885ced71b99c67d8c91652b5fc", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.txo": "9838bcb2e4ff1cd649586535ca7d5ad2497e6118cdfb76b8aadabded9cafb938", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob": "a4602d65e84cec1b23b6b09b5bc5847cbd52efe82925986c6eaf1c43bec1ac78", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob.meta": "04f4039be7950ca393ea74469898dabcfec4dc8b8f9e08068898c00333445878", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.fbx": "4ca13bbeafaa0dc0bf007ae9024b8d6c2a5279afc62e0ebc227e2bec2ad67a30", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.txo": "8ed37705192d3d9b18f26b5deb51af6f2a6d694e7e2dcdbd04b317497610b50d", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob": "fe6ea401412fdbb3bb46367cf7dc9215f7d01c6373c8ac954cbf23f2a6927bf7", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob.meta": "492a44fc323d3df469753d4bbbc35ceb3d362e734f48083ba633b3de5dd42d8b", + "addons/core/Configs/ERR/AdminMenus.conf": "5a4b405060135efd0f7faf913c7f061f6250a1e6e9d27f2bb394281d784b20e6", + "addons/core/Configs/ERR/AdminMenus.conf.meta": "5faf5ddc0a51c1d0f82d60af00d91edc22fe9c39aac50d8d04b772a2c9271be1", + "addons/core/Configs/ERR/Content/Registry.conf": "546a5a407c9e6c25c9157ae4392898fa3f40c04c7956649e62201f9ac0ba187c", + "addons/core/Configs/ERR/Content/Registry.conf.meta": "046aa988bf8e972afcf7a60b6f2312f605f016f98625dbbd9cd75ebf9ea88800", + "addons/core/Configs/ERR/EveronSites.conf": "781a9a3f4d2d4ea5b913fbfd15c2f1a991efdee7e033b7ba4241ad632609f52f", + "addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56", + "addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb", + "addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035", + "addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b", + "addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b", + "addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30", + "addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611", + "addons/core/Configs/ERR/GameOverScreens.conf": "1bb83c26a57d64595e91c3ba7926987e22b33dce2c6c876016e3ec2d04f9eb2a", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/ObserverInput.conf": "1efd2e1823f80e6b8a3e4a697cdeb72dd87888ec5a2d16ae289937575b880072", + "addons/core/Configs/ERR/ObserverInput.conf.meta": "9714dce6c38ee81bcc513c8ebef51d7af63fd15bcdda2e40946937c625dc3ba4", + "addons/core/Configs/ERR/Telemetry.conf": "12d895ba4fcd159e23c2f3e94dc59e6f1e54702470cf0b1dad7d04f15572cf7a", + "addons/core/Configs/ERR/Telemetry.conf.meta": "afd52b410ce1a1026f4b0900b10aae2ee50c30764a212a59668233f4f8b8c5a1", + "addons/core/Configs/ERR/Tests/LegacySites.conf": "3864eb638d0ed4dd313013d2d787f975ae6ce4bbe238569919f76b73d5f7ca42", + "addons/core/Configs/ERR/Tests/LegacySites.conf.meta": "097ac7daef4fc18344699a8471fdd77f9d158f8c70bab394068d7a08e4777ac0", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Materials/ERRM_MapRenderTarget.emat": "4ab251037d40a850e3767c0de85136842bcd4fd130eda47bf8e19352b0d030e3", + "addons/core/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/core/Missions/ERR_Everon.conf": "c6cce48484301a76b81f3a0cd76a4012f5808b901754d4114034e92beeefcff3", + "addons/core/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/core/Prefabs/Characters/Core/Character_Base.et": "74a6f03a1e76173a0cfa20b23c711d02e70bac810d6743e16c60476bfe5be457", + "addons/core/Prefabs/Characters/Core/Character_Base.et.meta": "c6b142d1985719236268cdf12ac522fee4b1206871a6f22b568d9198d1fcc077", + "addons/core/Prefabs/ERR/AssaultParachute.et": "b556997989605e2a05982418b7e9f26d12d427eb3ea6e3bc50e85c67ea7aa4b8", + "addons/core/Prefabs/ERR/AssaultParachute.et.meta": "e9dea2d533ad1ce6ce689e0e2815c97a6382e1b90c35ce1efa88a885527e8e18", + "addons/core/Prefabs/ERR/CombatEpinephrine.et": "aa57d78bae861dc4a0fc509f7916190d2f2f0b36a1c3867f9bf9a071717cd7f5", + "addons/core/Prefabs/ERR/CombatEpinephrine.et.meta": "0e19ebd1dd4d81f739125a4dcbff898424ffe39572c2668bd56455d939b3f604", + "addons/core/Prefabs/ERR/ConvoyCrew.et": "29a525a29605386dfcf292dc2316e9fc7650ce39db9fbaa4ce4372ad0de66db4", + "addons/core/Prefabs/ERR/ConvoyCrew.et.meta": "0a909a15b7dcca34202ded136b3bdbbe8898153c9589e1cce1388433d362da02", + "addons/core/Prefabs/ERR/CrashSite.et": "8d06afe6e2db8986f06a7c5d6649e52df009f9eead7345bf2b477f50a0725b3c", + "addons/core/Prefabs/ERR/CrashSite.et.meta": "0f54fe80ed96394374c1922e1d0b05f7e0200ce5b979ff58325b033f51641f69", + "addons/core/Prefabs/ERR/CrashWreck.et": "f5de4785c0e3cdf02f1d5372e9b01171bd5a37acb9c36aa2a94bae3f429b2272", + "addons/core/Prefabs/ERR/CrashWreck.et.meta": "bde3299bdbbddb91d2ef471b61035b6cced29899cff4cd90c080fe584ce63f26", + "addons/core/Prefabs/ERR/Epinephrine.et": "e09c70b3d47a4dc5b92fd332c8222b99554b28a8a0c93cb5caac18eec4501571", + "addons/core/Prefabs/ERR/Epinephrine.et.meta": "f1861f0b0ccace1b7b3d9c29768e37a83bf0c6fae5a411b1bd61d6b2eec7ed89", + "addons/core/Prefabs/ERR/Extraction.et": "4d24c7811415c06386205e5bf5c132a23fcf21e96c75c7657ccd5f3ac914ac50", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "d34a8bbc5dce259c4a467c7bfa2ba746683bbeb9448de8c226856e65319f4911", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "e403d5cb3a5966f0cea81f15e0e825d482ba1a7a27b12498319ba45a414963b0", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "a2b7e632714e646a7010592cc7ac75f0afff7da6c995bf91aaf65d9473a6af3f", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et": "0157bc235eeb78a0e1373b561fd22a1dcb225c833ff7c2d4abae688bca0ec92a", + "addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et.meta": "da6f065cb2414b5a4cbe9ef0f0b1295b2466f26ad406c0bddb83845d4598efb3", + "addons/core/Prefabs/ERR/MortarCrew.et": "21086e886fe3199624208c9a866f883ec109f7d08746c2b56b497e59857fb656", + "addons/core/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "5118ecaf9d2038eea44a4b785f05d2e78781dc1387249aa58a6782c7e6752e14", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "d3eca8fe9197c57a27a285cdb3baf168b037b198d92b39df28a338ae2cfd0c74", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "c0ca5219aa2d6322ba7d094b92000640b259112ff6611a745c0713c8875d09d4", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonBackpack.et": "ae750f08fc9af645561f59d7e5809bd22f4cec26ca8fa6409d09730765958c91", + "addons/core/Prefabs/ERR/PrisonBackpack.et.meta": "7da6aa45467250edc910ad7230dc244d1b041e8a6f55881eb3747ce51f9212ba", + "addons/core/Prefabs/ERR/PrisonDoor.et": "b0ff94443fe334032113a663917de23f920a8b73ffadc9c8e9f11b545022b3d2", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonPatrol.et": "dc88c31cf5c415573a874f74e13572f0add9e6122c8fcad507fe82860d789c47", + "addons/core/Prefabs/ERR/PrisonPatrol.et.meta": "5528e0d778dce5ed39c3e504c6427625527127b23269d20fbf12ca2bffe52ffe", + "addons/core/Prefabs/ERR/PrisonWall.et": "9b410b7c85bb001be4601ad93f750e17b8318b850306d84f29c4dc1b02723d7c", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "e6d345ac98ad9ec742bf6c3b8686839c3256df9833d31bb4bdf605cd41d0ba5c", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "99b1d80b49d1e7f9d30aa4283772a36fd66e962369f288f5fe329c7fc911bb1b", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/RadioCamp.et": "5e6216bf8e6e160da5d9f966c8f7c2081bf6dd16dfac1b89d682a14b3b8a6716", + "addons/core/Prefabs/ERR/RadioCamp.et.meta": "3cb8d3d553ab6d8d111a74f721cf4e69ee1011cbb90248b83cdc7275697276bd", + "addons/core/Prefabs/ERR/ReconCrew.et": "33953379ceb725bcd0cbe505cd643c94adaed17dbbfa95dadd404d6b8e345715", + "addons/core/Prefabs/ERR/ReconCrew.et.meta": "2653e8c5b1cdb857de5badd5959ddd9826a6a298ab3c166628dbb835d7104d90", + "addons/core/Prefabs/ERR/ReconHelicopter.et": "c609ee59ab145e0a1936f95726b86df643f5cc425c43924029e9c1abc69ebbd0", + "addons/core/Prefabs/ERR/ReconHelicopter.et.meta": "d80f1c3d6a6f9104562b89729996c1c92ad240f08cdcf48d4c390a09d2047c08", + "addons/core/Prefabs/ERR/ReconPilotEast.et": "d961f329823b991eafed80d085de1bd89b44a4575be98d8dac385d6b77741ba2", + "addons/core/Prefabs/ERR/ReconPilotEast.et.meta": "d73df3c896359a54514d2efcd851f579feca7a2619b76c2a38f607649a31a4f1", + "addons/core/Prefabs/ERR/ReconPilotWest.et": "8f8221927269352e55c8026ee5b00e026c281c79af6684b386f24e7dc4675fb8", + "addons/core/Prefabs/ERR/ReconPilotWest.et.meta": "4785f23bb492c6af420ee7896ddbfc9767e0db1e06de95207df2dc949a1b1814", + "addons/core/Prefabs/ERR/RescueEscortION.et": "aa5cae65250936da239c865fe1070c68a1d20b49bcef37f6bd29021f22c274a9", + "addons/core/Prefabs/ERR/RescueEscortION.et.meta": "34eef8053198a49df774792322c6d3cba81f689e56b6a418aed5a14de0913537", + "addons/core/Prefabs/ERR/RescueEscortWest.et": "6f9671fb68e2716479d96be74b80ffb29fec535f1333c5e4dc4d7b684dca1ccb", + "addons/core/Prefabs/ERR/RescueEscortWest.et.meta": "45a87304712d6a18afb0ddc5b3ccbb70da395541e21aafe9d6d3641c392eaab3", + "addons/core/Prefabs/ERR/RescueHelicopter.et": "d9b3b01a0cdb6ed779f40f14f03dfd8fe732382931cdee02ea643f260783313c", + "addons/core/Prefabs/ERR/RescueHelicopter.et.meta": "f47b4a9a72faddcb5817e396dab7c115ac05a5455e5dc8ca4c6a3e9d5fc4093c", + "addons/core/Prefabs/ERR/RescueHelicopterAFRF.et": "cbd9c88b0a0c798096c78770cdef834cebfbdfd62fa12d96b56e74c5ac60dcb3", + "addons/core/Prefabs/ERR/RescueHelicopterAFRF.et.meta": "5cf8cdd7f34e2bffccedfab0cc0cf266d3c8a6856215e797874c531eb2a3ebf2", + "addons/core/Prefabs/ERR/RescueHelicopterFIA.et": "6aa11ddd56ebc9d0aefd06e1f55c7c61136d5c703b6eddc9cc84f3bcd8c8c26b", + "addons/core/Prefabs/ERR/RescueHelicopterFIA.et.meta": "ac0b32de9818aab77ff42d244cd5165112a7764eb6d289dcfe12ec77ea0c9b3b", + "addons/core/Prefabs/ERR/RescueHelicopterION.et": "a910548e7346439af90bb87e445f056aa1799572a69f87f45addbc17dc01fd85", + "addons/core/Prefabs/ERR/RescueHelicopterION.et.meta": "426a478d15718c0193490d5381f732e4c559348f2e5e9c7eb9473a4ca3017add", + "addons/core/Prefabs/ERR/RescueHelicopterWest.et": "dbf3827f58c27d957aac23f505a24c0af2a8f6c6555a82d0962a0ee5d47efb42", + "addons/core/Prefabs/ERR/RescueHelicopterWest.et.meta": "963b5b22139a2f3496e937855854c3ffe01604b86a93f1fb63b547bc1ba29068", + "addons/core/Prefabs/ERR/ScoutEast.et": "b4593aab494c4f21637757b3daff4f349da77b4c48ec5e8a4a2917a6a12cf811", + "addons/core/Prefabs/ERR/ScoutEast.et.meta": "7c72af632537f687e92f30b52d97fc7d70dadd39d33f37e0b1004f9596f55012", + "addons/core/Prefabs/ERR/ScoutGroup.et": "8dc0fce8ee3decc1c367411b00b6d8518df9d8458281cec0881464a2ce906af0", + "addons/core/Prefabs/ERR/ScoutGroup.et.meta": "62e43fd152ce57aa4ceb2187a49e4aecdeb9f428b3a1e8318f86bb83dbf8a259", + "addons/core/Prefabs/ERR/ScoutRadioPack.et": "f1c4911e2556c0e0caa8b896982190c5e7d0433e850b4610e19442caf9117607", + "addons/core/Prefabs/ERR/ScoutRadioPack.et.meta": "825506e3d814d30a52d5dbf64124470641c07a0453543ba71426841e6c783635", + "addons/core/Prefabs/ERR/ScoutWest.et": "2681b5a3f8621adb44195f0dbca6f3e79ef7decad8f9d0dd0e1a801ec2549627", + "addons/core/Prefabs/ERR/ScoutWest.et.meta": "22a6607b4b8fe606ca75a634a0b2ac3178e7bedae7f9ff01e7a4989f3b39a3da", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "761d845fc1c086da58fd87c8933bf58d46d1ff5e17cca5950141743d07c8ce16", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "4c97b0514fe7e723046f40f0b396f6573b12eb9981ca5df70b9e8aa3cf29323e", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "f33681281d26676fac88736091834d5a7b87fe0fa01883582542df964dcfc694", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Prefabs/ERR/TerrainConnector.et": "cf9cb28f5a3f41931380864a29ac979aa1d5e843456f564ac7a7de78f88e1aa8", + "addons/core/Prefabs/ERR/TerrainConnector.et.meta": "9f37c979ae282aabca29ce84beb0db851ee8b9a19f7f3a64d387c175616127f3", + "addons/core/Prefabs/ERR/TerrainTakeover.et": "63e26db48c624056350f9ee123ae5b815bc2fad392060a9c26cfcd86c0af872a", + "addons/core/Prefabs/ERR/TerrainTakeover.et.meta": "64e953e378ab1d2a75ee7246f876f4ef93ae8a4e3fddb5002d7ba37268cb959d", + "addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et": "aa857f7e8e0585839c7e9b2e3616702180779e68c6fb149d94a83c05bd52449b", + "addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et.meta": "a213272011050a881c87fdd94b229e002ece24f26f25db5fe53824f8a5b147a8", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et": "29f157849f413261494a63d4d5b0a97e8bbe61cb076efcd59d6c940653f23352", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et.meta": "544c94cf1c26757a10654de7856cd6cc48b821ce3bdc02add13cfe6514269915", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et": "cd4acdcecad299445952aea0adefc85f2b9e9b43f8186f100e0505c5621b3656", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et.meta": "123955da03462befb90e293b3bb856d49cc761166611b38ff47cb48ec2fbe95c", + "addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et": "11185bc813c00c5bda09c0afaad78849a1c81d89843e8f7f3a14c0776b8296a9", + "addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et.meta": "8cdfeb51c3774ed790a223ce74872cfbc4588fb6812a0e98136eb607dcc17d9d", + "addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "57dfbd215f28478a791b2e029832ddf3c363658d5dd5590cee4db9ec6a8b690a", + "addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/core/Prefabs/Vehicles/ERR_RoleTestCar.et": "2668ff0a0e80b12f80cdc04632b39b870c55d0d2ab38daf923e267d223d88198", + "addons/core/Prefabs/Vehicles/ERR_RoleTestCar.et.meta": "b8fb2ac3185c16a5c006a21fb7c7dd5c8a467cb01e1cb8a837f7b816fbacb77b", + "addons/core/Prefabs/Vehicles/ERR_RoleTestEscort.et": "1c99ccc57d5dc1622153638bead8fa031ce2cb9444355a88b5bad957de59172a", + "addons/core/Prefabs/Vehicles/ERR_RoleTestEscort.et.meta": "858fe6f5ff8e46992474342dbb68995b95dc1356780fcb1bc777c5417c592aad", + "addons/core/Prefabs/Vehicles/ERR_RoleTestTruck.et": "7f4f051525b4d6447f6df3e75da65a0c89c7513bee831baac8febb0ad2ab5769", + "addons/core/Prefabs/Vehicles/ERR_RoleTestTruck.et.meta": "bd4a554d93805b90b4affe61b1db5d7da8e6a480d62dd61a111b32450807778e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Actors.c": "7258b838f8365e4fa575c4f2ccc8532e22a33946405ebb490120534d5ca65607", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "cac52cfb9f31ba42daed671e55bf5d55ea0840139deba5d13a0e156ec90559ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuFields.c": "55466b735c5c8f1041ac600338d55847372a71af48ba1ffbde8cce4286e55b19", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuPages.c": "fc07549ba14900998223e8c1a95f57ddb0f365d0d687ac4907b0d97ffe1612b8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuView.c": "6c34557350659782bc1a098169dbbabf1f71502c35cdf711b83ce0efad907142", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminPlayerTools.c": "56780d78bf423f54f482d8620f821b8d3eb0199194482b4f12e37f5ec3f55ef5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminProvider.c": "62e05aceb49da07fed7aa89fb6b2f8eb3efc373ac09eff286fba983c3ad570eb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c": "277df355d00458bf4a337b68feeb926ec4aa12c1546a604d039121a1bde7d995", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c": "27c88e9317ada33351042f0d1bdbd8e406fd798de34d1057544f1c6165a289b2", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AirfieldPlacement.c": "0601d8da570e1f63e43ea7df451d0e997872e4e163669fd8ad37bedd59de7b9b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_BakedSpeech.c": "d11fff16f86fd3447126701af84c3800860d721263b3c2c16d3b91d686d8b2fc", + "addons/core/Scripts/Game/ERR/00_Core/ERR_BuryBodyAction.c": "adbf4cee5b5f5317b185f17738205f28b701a15364e643cc9fb443866a121109", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c": "8010394e7731d3bc2ce436cf795a37819e16d4d605e8d152027cf391e811d37c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingFeedback.c": "ac554a946cd14f73a5bf79005b8a3f770c9caaf0a6ea409134077b8d96f9433f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingGameMode.c": "1e670937736330716a467157d0f45bace512047d7e87d8678f4ae0ee123969c3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingOwner.c": "3f430930c2598951b75cba157a57967189686ca7a86aff8ecedd20f181262bbb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingService.c": "6efcfb4bb1bdf0da84400eef28a24f6c61e7f446073af2c9667b6f26f0bc47b5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ChatClient.c": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CommunityStatistics.c": "84f2615fac1375bbe3738edd13a413ef1d524dea5ce0195b05b3a957aae84435", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentDefinition.c": "bc1dd4ed27ec894cf4bd617fb226cb8140b544aaa9ef6d8654e815d81e7f6fd0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c": "d9df3b2dd8fca119ecee466dc71d336b5a70ee7d5fced368cf34e250d22075de", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentPolicy.c": "3a4987345d5a7159234a7e1a08bf5ac40dd5a23031e9b1953fc43a0501d9924b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": "3e2734dfb935a4e93d79b66ca4a7c883723a1fc348e3595432dbf2bfca643923", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c": "832aebf6e754dba54ba28b8f480180d32ced968a2d2f192424c4007a862c2b43", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DebugAI.c": "bc5529c60591a6c36c39cdb753b1af948690fc3c3c725f38a8d595b41a499235", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DebugIntel.c": "a9f6e7e42a3214879a21052e897f9afc0653c12ff15d5bee7766e26a1af6ab17", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryMap.c": "8a8653b322c948c462002077272dae79e2f45a24e883767b3ad9c1f24caad237", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryService.c": "552d9e40f72a135f19d25a17fbecf475b8bba8d8b62ec6b6d055c65499a0b637", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DocumentComponent.c": "885c8ab4fc9e64c3f8b40056536096c8c32b011cb340b25ca00353a96da15c69", + "addons/core/Scripts/Game/ERR/00_Core/ERR_EnvironmentService.c": "c0fae5bf51ccf507bc84d44adc2d1dff021cd83653c0468b7645a4f343e3fc8d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": "14a75e040f510773313c7e70b57f338821bc1ded650bc65133968dcad6e49c7c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_EscapeGameOverScreenInfo.c": "4746b0715c6e9a527038b47d54d2ff305becea219da6b736f6998d81901143c9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionPlacement.c": "6d388fe21f08b25cbdb5dfa4e198d94a4c80c5092f8d17630a4654e18bf8b3f5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionRadio.c": "ad7fd91d8bb96f05f3be04a03fd00c20ab9413adb12d649d3020c6f7994319e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "c48e79a117990f83839704ae221af05fc7995b956af2d4b4f9ed2a6b91ec335a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionMenu.c": "1deab4c396c307fc17dbaa8731b2943ffb73c37dc0121a5cba5c239c34901ba3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c": "04b8bd8a042cf743ab8a87ec3711f9758e7b0112995a9d363e81a63df4eabe5e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ForceLedger.c": "0ecaf1c5a52568e751678b0b1236e91e6adb538f8fbf010d38b61a312d1bf253", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ForceSimulation.c": "2bbb8888c752a3ffc042f3059937526d25ae288af5b4db024cc683025a2605ce", + "addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "d26e665cf5b9c0e1dc6c5e2da200a99711ef9272718d330f5aa66b09cede40d1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c": "4943f761d0274e163a1da325ac4f750de9180947b05b79ee173e12141bfd6661", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryHitZoneCompat.c": "23c34f901311dce63a79aafe83c11e2fc25bd3fddb0cde38bd313eb90878ca90", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c": "1319637add7f9fdb122ac130784c5426d90a32380d870df03efcce7f297c55e9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationLifecycle.c": "0feee55cc5ddf13e00fe73ae3926ec2cadd5ba861d793a939164287ccbe1861d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_JournalText.c": "1ad00a77cb0be741c7b6ef5dad2d8a8c1ff1fcca3b093df2e132ead0b69f74e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_LoadCasualtyAction.c": "1521af55a34110ce1c971b5226a618a9c6d931622abaae4946d9c0d27c05a273", + "addons/core/Scripts/Game/ERR/00_Core/ERR_LocalAdmission.c": "a076922d1ae966cf5cc67b198166ca6b1288358fb7f641207a4681e6a610a2ae", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Location.c": "6323facd2d5b32382b466a2aa0140064632a8c1de0597e0738cb09a3fcfd7abb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_MenuTheme.c": "90d9babfec7978b3d7f5baffedbbe5c1b54a9742f576f51e6232043e32d1cc9a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_MissionRules.c": "17d1f48878b02a457eebbe5ff87c4267488d68d2a9b3121dda77a8bc8e69c8c6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c": "2deded62be82adcf9866dacf8065f0c6a9a643bdd60a1c3e87990e1c70254c48", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminSettingsProbe.c": "73e58561e08e50008d33f81eed606dd4e8109fb69a627e892d28ca468d641f7d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAggressionProbe.c": "dcda8528a64d35e6aa2f030b59503a49ea8a85ffcc33beaecdf8da00c003b50e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAirfieldMarkersProbe.c": "980025c07d042c2f109e2c99ccee0316b596806ba2c4fcd9446b6ad7580d1d1f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeBaseSmoke.c": "f7697361c6a056a62aff86de7f7d69e9ccf47b92121dcb96ed012ad136e47e30", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContentProbe.c": "cb0ccfe1e1575f9ed80a8054058b471f3543378db059e6af2fed8eb42a262638", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContractsProbe.c": "60aa767d9455f2f4958a6a47bd68bbd8ab0466adc8f1dd9ae433c40ae96c68ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCoordinatedAIProbe.c": "9104a7a5154bf34906f135f00c5793229e343da6a1ed19dd572e3c1d9821d393", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDefinitionProbe.c": "904d8d4c3e7b91d49dadfe495fc7b4f02f300e4aaf7efa348df5ca17ec4a6e8a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnemyLoadoutProbe.c": "0885ca69f6fa7f53414ce1792cfc3c49916886b8173783c634135c13c5d37429", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentProbe.c": "9e2e66ac5d9778a1c65445348e3300cbb90b68b3f669f3ddf1d2b78a858430eb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionCatalogProbe.c": "e3011fa47b67122d7b2c23af8f91b7a217599d6cc114c4f9de628744b9c948d3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionSelectionProbe.c": "946879d822e7be2d48e03a3140aa1aad3e3d44dd18507fa3cdedb4c6d7dd81b9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGeneratedSitesProbe.c": "a3202ee4658e98539122926755caf689a693a79642e8c88d3146c247dd961138", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInfantryCombatProbe.c": "3e4c4382ab91f470357268927b954fd101685df6b2244df483f0422d6c0d7da2", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInventoryHitZoneProbe.c": "604eacdc66cd52bc8a0115862ee7884a8b0f83bdb50609397de671eacd476543", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalCombatProbe.c": "59c5b04dd32370f8cf5c62fe6931d64209825522127a068b1957e9d1556274e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalProbe.c": "4b73e7cf35e9c8fddb089678a320ea58272e1b6611318d0a762754c171eff785", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveMapProbe.c": "37e66177ee0f16fc33d3d18321211206bc4f095fccbd17b177d4b8cc1ba4e057", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOpeningToolsProbe.c": "0c5d6b96ed5a7cb1cf0d098d534dc7190449ed09339062e6b584729d53a61b4c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOptionalSiteProbe.c": "59d86432c19fd85da30a63087cf1f15375c8ee30178ed7e2765c1bda4cc4d035", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePatrolProbe.c": "5a2af71cc4cfccc7dd7c23584398a38290eba1a8894cd46f6967252ff3a7087c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonBreachProbe.c": "4889e0d3799a6a21b9f84bcb2f2ae78dce16269cccd1329f8d1fcc1a23e7c22c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioCampProbe.c": "67f1a088f9b20e5f0f11ed3aa083ffa772bffd7c74d85b7a307344ac3d47e09a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioDefenceProbe.c": "ff1e27a0ce75b123a86e7df31354831880ca62ea90b6c5d7c60d3ba168e1fff0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioInteractionProbe.c": "7b27552d233813894f65c08eb9f04b547c4ca9ff96a2370a763cb94bd4a555c3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRecoveryProbe.c": "d6691f22432b3ce37d07d448aeb3ce7feb5cd09e852e0167b5e4676afd24bb21", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRescueProbe.c": "78f4dc11a179a5b924c0ec1939f0fc1e61d4e6f6647729c48a9f126ee32d1714", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeResultProbe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRoadblocksProbe.c": "6f44725b049f2545a9ce3c94ae3e9134e16077fa017a438fe4f073b453292c1e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSarkaProbe.c": "511816c4b86c9f1392bc4a1d83ad11e082280bec16356d8ab24ac1f2094bba93", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteGarrisonsProbe.c": "1a5ff8747d7501862085b5e9162043fee3b05e82c73c516ad8093aaada53dc60", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSpeechDownloadProbe.c": "5377da12cabd58b9105851a2348d7496316db371bfc4346a5fb3f84f245ec013", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTimeProbe.c": "4a2c6ffd947334a0a71eac083d10c853c524b00042e9ea0987497c4cee60c3d5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c": "7a3fe04aa1c5ed1061ff63d9d5180e8b925932b62d76c1ffb49bd3dc23530993", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportSurvey.c": "e5abdb69c0675a20f4287afb24b9e3c877e91b162c77c32d81ef61e2a8b72577", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c": "59bce863142e4fba4b6fb2f544bb8a58061f0e99b1a38e5ac291cea919563763", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveMapPresentation.c": "70339c05c550b72a4fd5890a871c5d8e6a9e574813d61696194c5fbb1475ac8f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveText.c": "d2fd3670c89d679fcb1359ebccf67b58734fe5168e31fc239bdeffa7f8ff0607", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Objectives.c": "b9cd5bb3b193c20401175c4328405be1b121e8a60b7b5999910b6a71f834af8a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "7c478eff3575eb1bd8a85c08955d4ca7f63b57969cd7b2b76dfd6c42136de1af", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "c287a1891451dce0836c6e859eb962c154aad9621a46e50400f44fb83f97d95e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverScope.c": "97d29535a0ca1571ceb86996f58b68e5ba0944edfe30370455c52a321772f85e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverTargets.c": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryGateObserver.c": "1e376ca83c0005cf532539e14d7f47363c47b7c5b03fe3d55405a59208705fd7", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryInputObserver.c": "808a46cc1e4b31b65dbbbcdd55493f594ebb3974bbec38b4a2402334c653c0ef", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryLookObserver.c": "d5a1b636938d65e9d11c78b31487f2924400c34d98e2ec812954a2a224da7dc0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryScenarioLaunch.c": "8d8da4c1222dcc6adfee350490f4399b4129cfce7a42b45fd7fba52febfd3eda", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PassengerHandbrake.c": "3078487e077aaed1567894f6df12386aae440b790b6c134118d3afc2c4da156d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Performance.c": "037ffa482e3765bb537629e34f10919d85d4b6bfb0abf56ccc7c0d44fce8872f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerAdminCommands.c": "eca9baa3b07da48a740851583540840f8bf5f65f7be854902a3778f76967faad", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerGuide.c": "dc52f551a1d3705fceb64ea18d882009d9e9548c01f08ae1c7ef3083b19ab2d3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerReconnect.c": "478fd041e8a13132df25202088f42d0810d36680060dd7a0424d8f40a5b1ca44", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "dc785a8a1d78a285fe55ce76f87b78a9f522eeb9f7d9655dfe9b5c4348a26a18", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationFailureMenu.c": "5c31219740bbc26cb903a91f4fe22866c465b38220391093c72a3b094ca30f34", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationStatus.c": "c5cc9125986e2285282f3f7fa9068ca72f00d7e26465d00213e734039c0e34e4", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonAI.c": "67f8b444824634fc37fc253c60fd24b56d06d971f48e56a8d53095c97aaf0070", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonEscapeService.c": "ed180448cb516bc4ec521aedd366810a47787628c7f5ee9c9afdbd185d980751", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonPatrol.c": "284618391ee2da84dbcda4a99ca3c072eae3d67b8a9ef40a86827b9ea00810f9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ProfileConfig.c": "b5aca526a860ed9ed609dc3fad99ebb34d2f6fbd537575a167390472efd4ba89", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RadioDefenceService.c": "f5f0bf1352141f933d0edb5630e30541e001dc07e1d2c8529b29cc159c126b13", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ReaperRHSCompat.c": "bcdf98c05ac6cdf0c7eaa854531b02e9ee4f53fbb346ae01d58114e572e7dd4f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryForecast.c": "0eda507fb58860c0eac1d957319d1e80e9576a870d22931c86081db748df44b6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryService.c": "182037828b74938746022ebe03bbd9cf849d52e31067c0b33f392f03969d6162", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RescueLanding.c": "e6f63ee8860335de1125e0a62eae3b8406faf5a5ad2c8d9c6f9a6da077986e56", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatistics.c": "60e6839cc50fa02df1795a00b93fd431160f9201bdbb6f1e3b9b50271306e9fb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatisticsLifecycle.c": "b813a9ccea9a61c9c6d7d4806cf18adfb323d483622ca1225930207ca2436d12", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ScenarioComponent.c": "ca6b20d5c4599e31957e5cb464d21bb3a4bac517dd539711f9d4f380e48a0e15", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SelectionStyle.c": "b9ea5158e51559dc13812cdfa8939ac36b58c79b9e4115c72465d869fdf264a8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SelfEpinephrine.c": "da5850374b51e89016c4557d06f3c7c087b6e6e36fa9734b22c7c6c50d757914", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c": "047d8c4c36bfa32e1afed13f8199f01681ebd362c72d87da8868cb6959661973", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "2acdce016628a362dba311965c3417f7e42bf0edbad58ec129b986a3c1c08811", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c": "f0900e42100c9a58402cfdd48b7f27689144f53e03d3ae3dcd4bbebc13a5f61f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehicleCatalog.c": "bbc346188ed280d34b1b519ab7c96c6bc35df9ec3e4bfd03591cb9b8008f89f7", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehiclesMenu.c": "d873cdd81b2350acac7068c4d59d5603437561e061a3b9ff2cde2356239da322", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "fc5cbd7f52632228c071b9f14cce7979ef55298672e441f665f0efa97f083249", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDefinition.c": "d421d70b32bd2b55cd8e4966c04af3d5bc381ac811d3b4b2efa4bc0a8af8bd2c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDiscoveryRules.c": "dcbce3b7aee89bfc47a50e9de89209758af1f1bb462b99af67a8ad7a26e9f229", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "2b283ad19b046fd6b33245d466b197bd05b4c472e128a747e6b1e725f4a34c2a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteSquads.c": "183883783a4e8399cf62851a4cc65a5d091d25131bc53b4323cf17286315b2e0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnClientScene.c": "b56f99a91cdc53bdb93d320d10839339022d7e61e6b101eee8296271abd7d3cb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnFinalization.c": "6ec741f8d19ee316d3c67b0dd2216698584bf2cde3634a3d6a7c3cdc3a3935b8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c": "6d9243f66b4ca8c53d53fedff9dea8986c815e90c1f97de58200cd759aa8b49f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnPlacement.c": "fc5b61f1877aeaee75fbfd6aed3cd0b4c5277ae8543bc38a0c09836353d54b27", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneInventory.c": "76b79d5bd9d1f367e1ed19724302b7d49f8b0ede85cf19e89c452582ef651f8f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneLease.c": "20de7f96bacc9037580d88d4424664b4554b2c082d82e7d29913e9dfe390b594", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechMenu.c": "33f9ef80b4d6cdbf3646eab602d15ae0d05884bb20b3a7222b0648752339cda5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechService.c": "74ea305ac0c9a9d145646a5c73cba58e4920ab472943ae73b3dbd71d8216f752", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpack.c": "4a36799d3a3defd674822974cd96647c0accb2a854631dd5488c35e2ef697f7c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpackMenu.c": "07c90db1a84893759dae71f40b7ae3109827646e48fade542190d21598ac271e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartRules.c": "ab7c21ef700343cbe769d8d51d91f167db37285b466d6af9873e121b3adf4ade", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartSetup.c": "58a6b617b22910d0ce9255f82091dc11cd1284417a66adf1cdaa7b661c1ed01c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Telemetry.c": "b1dc3ecab89f5e6db1ff4ba613b43755a5ae44f3612249288cd134ad850719f6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryCredentials.c": "9835caf69d4615d6a3fc840d9dc3cb0f507a0c5a2a6490893c21761f9cb4a216", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryLifecycle.c": "15d2d90d4457339dacd61c1bb23b619243b8af10731687c35ecc300125a642f5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryServerName.c": "7744762c4586e2543601fb0899847bed311c439cfda3dcaba825adf870628693", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainCatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainControllerInit.c": "8071e38812ac61f9b480d9e91f9ebc7712b360d431f5555da83027db6cdf2471", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": "93fc55f2c33e95adbcf2bead3430aa14bdb55154315760bcc9647f89dc8286ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSelection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "4ac347d4d91951bcc7175a965ccea25f3782edb6e352354cce506d6b626e5ac0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSupportStations.c": "c4fe4265963ec88e24379c143edae251452c84e43a3102f5da120205f9a39c9d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "ac31af5ff2937f8a1fd89ac03732a8a473b27b09c83a07923f17986b0f9db841", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "70f192d5d749b4211c5604575d2b9d7e39deca589b5841ffdd03f99baeca1280", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "ab1d64c8073e4daebf14f4ad2c745d874032675ebcac3fdb0fdae4626acb8dbf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverPresentation.c": "91d450215eb6ed2da74446b5fbb805356e3881e3cb43e37fe45308e30b22be9c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverSettings.c": "da22775930b13e41d4a71409e37af3bb99e4cc1d94bdea0e3b59fbdcd4d40132", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TimeService.c": "63867760876d523a1794f619118a52c5cd387d5d92756cd286b2c16a348a6c7b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "cfc63058a20fad99e76c59b64d0d288cc3441fd3486ff63a6dde9998b4ab103d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousWeapon.c": "24d31bc857486638e55c605283c17cde0cdbd3c5c6021eac1ec93611387b10d1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityActions.c": "bd7d0aeb4abcc9d8044e4888f9a92f9e5fc97c098bdfa3bbad57e1a29697a779", + "addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityComponent.c": "2ffec4e646584ec546147fc4b08249825cb32b531aba26467b586d760485adc3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ViewDistance.c": "8514f72f8207f12570d2317e64094a45507a1647dfd45a1501499ef81e90189f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeIdentity.c": "8624bac67c1990f87b3fb799361e5facd31c2e03cb621563b9c73c4fe9d7f87b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeVoice.c": "a6a9a816dee1c766675990c158a757cf9ea8628a7b2b0de991af67ff4cd23e47", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZBakedSpeechProbe.c": "533c89b6a258dccb61d7ff6abe0a43da58d52ffae60735a38c2545fbb4480afb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZSelfEpinephrineProbe.c": "a13e14d1ef525209d4609a2532c6d72135377ce058298937b632a91eeb6392fe", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZStartBackpackProbe.c": "6778cd98392f4e73dfe974782e626d98472251c1266698020d63edf8fe735bcf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZZZContentReviewProbe.c": "c7f5094f50869af58c045062daa0b10f35cfe8285c4d4f5779268eb560f89de7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AIDriverHorn.c": "db9f100c6cc10efc6f5b86e8fe9adb75657ebabee6f8bf0c89b997c2e947750a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAmmoMission.c": "0a471a40c8f7dfb797d8d35e41c5b1ff91e8d2ab13b43cf866e46c0e4ab4ed9d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultLoad.c": "de7b6c485167ab68ab0b37b96fe161ee821c2efd41362172b810448a02110e68", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultSystem.c": "2eaf9816eee3e1cd2ac70744a6ef7ea5a90d0a3eebdf925e384028a7edde6a42", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirReconSystem.c": "f8a0e3cf4552d8133efd33c2126ea15a7694676773a7047c15e00021c1d9721e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirSupportPolicy.c": "c1a7ac8759ca8ec8b43cbccf303255a2f0b69de447d0d991e44b6bd3db415d51", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftAmmo.c": "2be282406d0c45ab2e35b0ced791b5e494c662588f536701a4e82e6f5fb7c913", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldEnvelope.c": "0f53c7d9ab167a804eb904d63725decebb53fd5796fdf27864a75abed5679838", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldFlight.c": "c04e264cff9963821852094c451502d31bf9c96d4deae2e8ff8a2373b53b5665", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldRules.c": "30be68f4ca2db7e169f6f0432815821179cddf9159f7b150341dc8eb479bbd17", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftService.c": "3f05209227986b5c6bfb193f8f53783cfd4ef083bce898e22257c3e63daed913", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirfieldSupport.c": "c6d88ede0b1b6bac5a7075b6e2e783ccfa8850210aabd28bfa4bcdb698cc5f87", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AssaultParachute.c": "a93c996059e7166988e9d1b0b498cbfd36f19a1cf8520cb4e9215a8884752e18", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AttackSpace.c": "e7be303231b5946d78c61480a5de3f5b37a63d0d2281a9a30a21e59f072904d0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AutomaticEquipment.c": "8658421f846fcd3402289103762edaccbe3ca26280d7d72df2846c32ae8a4cdc", + "addons/core/Scripts/Game/ERR/10_AI/ERR_BodyRecovery.c": "f5fc311ecac4533c2d053a686c51e71216e69130a34483f27146627172914c99", + "addons/core/Scripts/Game/ERR/10_AI/ERR_CessnaBridge.c": "f1adb0f9b92f6ed94a8e9897b64e2fccba0f28552525a93f1ab893faa4fc5da2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c": "6bb4bf3271d05703ce0028d32db23bafe0e07f24fb0a5a6f886ff27617201dde", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBoardingProgress.c": "328f8a5eabb8174b7727eee1d675db83a2eb0be7b8e834db4e950a645ca5d7a3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBudget.c": "fc7e254056c1da4aadd26d4f56d51ee375d5d3331f5f7e5183581108c7474a10", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyCombat.c": "5c4b7576b28d51edea868cbb91a0ab31a40e6ddb558f1b8a38e07e20fdb2969d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyMineStock.c": "4497d6b790a45df2b76d18541ddaf299b406def88b868caa29f096849026a42c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyPlacement.c": "af4799e3028448e1a73f944989313e5d10c6262521bd29a8cdd5236842717963", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyRoadPlan.c": "fae404f85cae63e63976938a5fdb73efc988ba25c5846564f12edca04fb88551", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "5abc35861aebf2e4ad00de11f040d01f784c6f2184de2e10beaf46a74ec8758c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_DroneBridge.c": "9ad23a763c5995b2ac6f68ed02def487b0ba887e8ca68f0e546d1b6812504cc9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_DroneRecon.c": "dc685b57c884d733e0ff90cf7937f5664ec08545f4cbf59d63bc8a84383dc442", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "dfb6a7aeda23adb8aff2292753b694770affc9855bff9fb11d50bb534f9219eb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyGunnerSkill.c": "adf8bac5a6f7e40b2f9caff5fe9be590c4e4ce2b2b387ba39e741a3c4f4cc564", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c": "a48f32dbd7f209bf08fce2840aaffc1781c571fc679763be58987f6b082e776c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMapMarking.c": "0f161fd3e08a54e3e1063679127549e482c40253a022e9d06cd9ee4d740b8625", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMedicine.c": "68b65c98214e1a27383e155727901a4f70e9c065bb0cf133bdcf7fe6d5a57a40", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyOptics.c": "215e8a05594c541861b48e093520c00091708eb0f3635dcee5d0b5e1160230eb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyRadio.c": "3a97e5c3de9ff33873d97c6b2d84ae505cfc4f3146e047b928e76ec3b22c8789", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemySkillAwareness.c": "00c450d033e43fc45c9e2cb64a1d81161d123cc594a4292cfc5f68eb6c17ee60", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMine.c": "067bed625a3f4d0fa189f46476988e90528c59b2351ec0ea71916317b06efabb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMinePosts.c": "bcddb72845189b52e5ed71c687d7dd4b0b40b91b7306c3f6edf84a631002fc5b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMineSite.c": "d838f5693d4fa5d252d529e59777f560674c02532f1041a5598e938b3a850839", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EquipmentLog.c": "df9eec7f94e4bf1b30b9463604e9b97ba3cbff36028a80b81327b0b021cbb2a9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c": "673661374e0854fd896d3d51aba84c07088057c941751b311daa4a97b899633e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "c51fccd0ecdb0a1d6ba99ae965e2e572fc1ea65a5d8dc2e1e2a058698dae45c3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c": "6abb278409527bb67db084138a773de240d99ba7f63f9ac740f8167615d53f1d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "21daa9ed8cb5f2dc08a0fa85e305fa4b4f3e7b01e16c71fd1ca98d66a4e8b652", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "8879febe59fd99584add06690b29853f7cf14b580bb15c9a955cf1a2ce033908", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoReporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoSampler.c": "8bb0ec1422887feaa340307d3c60bae50fc82d424fce6390876e580ff8b75e8b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQBodyObserver.c": "f59421c1e0c83f0f480d7dd4d048b4b0a41193ed8fe8f2f627d2b6a696420ea1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoverage.c": "0ef1ed718797114d95c636c8fa5a9e46a5f2a7ccbe3f432049b0c7d37f1eebd0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQDeliveredCasualties.c": "1f738127e55e843ee2705007cedb5c08741f52f63c75eca7c80242177af82273", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQDoctrine.c": "6335728e89ed40ce11b811f00b61bfea76e94dd3379e4357cbfc438b05522bb0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQExecution.c": "d286b8273faec0acf87366bf53ad2517d5b7d909741e981cdf283cd1f4f50314", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQHunterOperations.c": "b9200b6de3a3a61de94ad720aca94aca64db542acc64ba65e7b8061a5e4884e7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQHypotheses.c": "060796bbbed604f9733d23e131c9836702870c6e25c81cc0b396c885eb06ade2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQJournal.c": "53563ff54fc4e0656713d6eaec5e88ddf69fd4bfa8ef6a67cfa13380d24031e1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalAwareness.c": "124260280ac8eda0e920bfcfc86932c9b21df6b1f7a6aa8acfc43feea3da149f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalHandoff.c": "2dd700dae9d9b232d22ca63ff01af75a3f5cc213ac24b7c0a43ffa38bc0b9ffa", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMemory.c": "ec2047a477fb4273e22ae6bb68e7365f321f55c583b5d2c48c4abf2ac38e3b7d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMineSampler.c": "2a0fdc4d27e947a1d77b02ae23f757c7fa074eb456f817b7df0766583d757f55", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": "97dfab7381385959b0906be13fa2575253ac43be91a271a5d41edaf4106366ac", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "12769b56019e9fa5b8141498a1c33814ba5262253193495e72f85972365961a7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "5f45545c11de5e183969203cdf07e29089697ddc89752a9c5aea0fa2a1a33a97", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQNetwork.c": "0b73be993628a55e3b21c8670d540e39c938093dd5cb4d586e800ac530509b25", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQObservation.c": "57ad3f0b68d150791e30a7e4bd7dfedfb1ddd78a1c76f228e67b33ea9cb7144e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperationSpeech.c": "6f133c104223ce23262c2927db9e16df0f76f1ee647085114baef1d51417f4f3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c": "280e91feecc4e5b6d0886fc4201b12117b58c56857d4386b6c4cb963557274bf", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQReport.c": "4c0c1f0e33f621d1e02375cf4f56b0e8c4ba6fd851912d3d16081949bae46158", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c": "f87727aa1c722a180c7b71fa2d896601b6250978a21bd2d1e973501fee81373b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQSquadJudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQStatusSampler.c": "b937eaed913a5095afa8e678dc1c36b5c805541bf8cd5be927069533d6baed1c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQTacticalGround.c": "eba9a9cabdaa80b936aa5e7025544e8b011fb597b96cbdb8d781583c025afbe8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQTask.c": "29359f52734cbf3400e12696057bbb7aa54466a018fc88c42015b6eb9bb9990c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQWatch.c": "abe634cf6003ae920ec1ed18e305ed462920204960894520d3dd11f7e5ef1c33", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCloseContact.c": "56f22051566354ccdc61531af4869b62458a30d945e4d21de5aadf7079d2245b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCombat.c": "df1c319d10efd07ed6f971cf0e41d8d7e377b04ea7f0fe143bf94df733fd1d9c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCrewRecovery.c": "22e192ca222017d4d7a27210c6e42cf0f128827bca00b37924c9c8d6866b62a4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterGunTeam.c": "0e66d82964ef8eeba29de11d5bb2af954ad72a8090855ac4c1b28fe1e66c0d69", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c": "7791513b8b41f4d2ba1b593b5219d7f6e2bf036e352f8e4eb1a8029fc97ab7c8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterSarkaRules.c": "8c8c96e2f985f553e303f7e459b73a2a5cd0051951b22aa0ed364bc2ae19e194", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c": "c938b8beb3f72ca1b2a76b48052dee70fe52651593dcdc16b7993a9398bc92e8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterTactics.c": "274ae619589b85cf64df1510631ab914aa9fe8c50fc2a76e6e8c5aa5a2c8d9ba", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoAccess.c": "ab4262f78d54782c5ecbf5fff4ebe3da16d72329658d7e18c0c35387dc8b3c7d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoTransfer.c": "99fa26beb0c0869d0cd694500f3bfc0705c2c1cf674dea90d98fb93a59570ef7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryCombat.c": "5d7a8e579edf95003133ddb6e509202dba56ac9e68385247e1ac0256c1b319ec", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "ca8eee2704e7758172e33014404bb1307c683f19b561b840d4592f6312051e62", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c": "c8e454573cf064ff392291d6feebf1f23be64390b5b8e944c03dd065f9f46b42", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InterceptVehicleFootprint.c": "5dea67d14ebab67231c485e14bc92f34c005a5f1bf6d9c0943db28e9857e958a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_KnownMines.c": "045468a052e485a91da601adcb42b504bb6e4ff13b096bc0666128e50a6aa9c6", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarBattery.c": "157024afc8fd3c1ffeea6ae923ff091e5773b9ffcf5f5864f8040d001e689110", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarFiring.c": "2606ed8c19d5569815dacd3248f012072bb76834f429ce7557d24d884724f733", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarLogistics.c": "b3624e4a00a2bdef16f6c100bbd79910e3bb8c2ae8ec5fe2ad5aa70bffecd303", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarPrediction.c": "05863b2b4f9f70cdb288f91c722cbea163c13f2a2927dc485482e5bd4fa7d57f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReadiness.c": "4c3799b3f2681e977669de0cbfaeb307d9a682b04365bfc9f59079e762965758", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSalvo.c": "c128850c7a78a4d8fee00ad38f48b265f1fbd1d9b24b092ddc5c205b0f0ad6da", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSpotting.c": "39b3c223ade610ed9f1d73040423339ac65c90b153f30c6f5c42290978c57427", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarStation.c": "cbbd7c86f722b664c85ab7c070ae1131d2ce5c41d1dacb4381bff9c1720a1866", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSupplyTransfer.c": "ad71084f507ad9c32d3055e7ec6844a1ec5ddf568c0216ab8391e902b56e417c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c": "01bae0bab685e9f0c86c3a8939d18ce6f20dc0b8c1a389d179d91e93008c6957", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c": "5f7ca5b31f3b405c2a6ca32ff91042f5b4dac6ab9640ce67fb10d7a74236ba69", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoTransfer.c": "0b195784497672fdaf651f336c14f7be98c257f98c85cfbeb4f96fe1a401999b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedMagazineSeed.c": "b42d0aac142907433df8bedc40de24c94813544016cf5f451846f1980250f995", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedResupply.c": "c26ad43705765be1c20eca37fbe2978b8c647151f6620ed37141657a4b7dc312", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirAssaultProbe.c": "c1d55b338b157b758e6ffb993d5f689029b28b13929797c91e5dcb15b5e561ea", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirLogisticsProbe.c": "58fe863775d0ad575cb566c78cef696c9826691cf49ef9adde76376be7316db1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirReconProbe.c": "c1216e0512a0268e4dbb82429e228334401c0c3cac52ba4486ae6dc91e41576d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftFieldProbe.c": "b64907c7566a894ca2f3c49ede5d972d4087a938da1a0ca87bcbd7c2203b2c52", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftRouteProbe.c": "8d0dca97e5106d1c84b64992c789e1af0689514beefc027e713ca6ab901fc470", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarSalvoProbe.c": "fb9ccc6b36247ab3ad828ffbb2556abf5c2838d93ea6cd1ad259c0a015142f5e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarStationProbe.c": "a110f0abc753cb1d2f781e457e637dd5346ecd2e924eb5eb3a5c7dca3d1e2340", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativePatrolHQProbe.c": "9784b551cbb91f017004fb728ce08b5c36bead0ffc83aa7149c2c46a7c4dc495", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeScoutProbe.c": "41b39b1abe5e51a5b8a428d533cccbfb0dda9d7a570228dc3489408c60543f17", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeTownProbe.c": "28876e65f9f8a7d96d8056f446b61e12e97d9bbf1a5ac0d4c40edee44e6c4a21", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ObjectiveDefence.c": "83ef91c2118521aedb4c1838b2e47909c80e0950086449b98ced168f1fd87080", + "addons/core/Scripts/Game/ERR/10_AI/ERR_OptionalMotorbikes.c": "87cf6544983386d29058a6f892aadbf242a517cfff4ed24348f56a72bcde8cd1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ParkedCarCatalog.c": "1d865c263e910071b127ccd1bdc8b58dd45768c4629194da49705f76995ff0e7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneFlight.c": "14fa2328e1d31cf59fb89cbb53ba33224be6cfcdd2813525fa9585f8b2e237c7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneRecon.c": "fe94c29fd9befd3c1bf3ab97b9b27458a8563697d4d46f72df43c6e642f3664e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconAirports.c": "7551347d776d6e0eec818d6468cacbca7ac53daee7317e0a1618ca3d39ebc762", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconCrewLocks.c": "83b63c21574140208792aaf3d24e3d22b255a078871382122110bb48520d4541", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconFlightComponent.c": "1386e2a2d2a635417ca517aa1d8ddd4f657dd415ff59be2465543cd8f601e7a9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RescueAssets.c": "fca1a4518baf09f0b2c97f3a51995001d9674849417fea9ca1233e8d1f578495", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RescueFlightComponent.c": "60db8029bbfbbb362b5bce61f509740eabea5925b93bc975e7c2b44addcf03f3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RoadblockMining.c": "47d0212cd20c0b320a47123d17f2b89f7d60b44072a00c69944ada7bb83c4e5a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_Roadblocks.c": "879f78beeb284d1298ec49dbca9624c5f3899ffc6fcd376e748bf55e4347d4bf", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ScoutSystem.c": "63287a252e4e7d5aefce840279f26ce3e1f286cb79cadb32596c37897cec7119", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeech.c": "ca87494ecd355052b46b72e2faf13660e458f3d376285bb0e4c20fd0112ef2e2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechAudio.c": "4734d614c5366ae3ff57717f514664c9dfdbe4408e16ba36f6b10d807361e313", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechContext.c": "d2baa94f036f7dde5cf24e004ad1fb9416f249cbf7d0c6c07c5898f7d21751be", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyColumn.c": "bd898aabcac5724d60dbecc4ff5ab6f062c66cf7c735ff59127c588ff94f898e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "5393efab9d663382e67b9b27a388063986a4f99c2607328c998f007588074ca4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "d2fe073b0c23c877afaa65e246544751eecabce4febd72412fc9a4ec18eb1c8c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupportScenario.c": "151eb6189701e559bd4f1359c91187f5a64deab1f2bacbd521c4f4cf3de6d878", + "addons/core/Scripts/Game/ERR/10_AI/ERR_TownGarrisons.c": "9b48331ff8bf7e5a111b498c59a57a5d0210125af983424535286a4aeda9a18d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_VehicleAlarmPerception.c": "45ac71d25e10a057a26a5b0fc7128935baaf47f4c0f87208a4420fa52086fd98", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelAdminProvider.c": "40adf8497b64cc74b1390149fe5ba789ee2f14e6fb3c325af8f5ffa8c806878e", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelDiscoveryFeedback.c": "741de1dbadfd46c154905a0918aad41386ddc139d843553db55d20d60700c020", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelEvidence.c": "ff436bd3c7aa0fcd5c24e940430c1ffdda934889953f63e877ae418bc9557d26", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelReroll.c": "d8b04de9ea789732cc78ebce9aa60786c86fe46d05f671cf251eefa68a214b59", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelService.c": "2911325c79a7a372628b18ffa0e110d11919ce2c2cd7b19277bfd608fdb03dfc", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_MineIntel.c": "3ce16cebaa9703b2f9803df7c11614f94de6460a9136dab8f80dcad41ae2b1c2", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_AtlasPresentation.c": "f0b36472b16477b8c3b5b62f55cfb2a3b3a08304b0779bc39244359af1abe203", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeAtlasAnimationProbe.c": "845b39276bfdbadd6bfd9b41f445fce1a9d40231d38ef32adc7a6654868e17f2", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeHeldMapProbe.c": "46c0210a3aef40fc34e4c9682d9364b1cc1e15d4373d8aabfeac7d9b8e55c351", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapComponent.c": "73298c94ecc8d227452b0eddfcaec7fe9df4748875fa7fafcc52544a43658f36", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapPages.c": "2286d327b87f127f052e06c22f553b30ea31d25127b860fc02a220aeb4ce3ea2", + "addons/core/Scripts/Game/ERR/30_Map/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_AdminCommands.c": "282fe1463add7af8771aa58507b254e69d2d06f50274d4c77321db073f8394f0", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeAlarmHearingProbe.c": "5dbb6a48909b76cd141e3a79ef01d2e68cafee55153821c4471f85c761fff94f", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyCoverProbe.c": "d2450140cf9bdf09210473234605b4c0d818ea5b91f9532209166a35c5d13701", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyProbe.c": "87df652b339df4fe4239617752ac5fd9f47aa4396ba94742a0af39a32b54e784", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashStartProbe.c": "957f40e36bfc025b8bc752b1f41dc177c8d0844c69ee5994321a47cf3ddea1ad", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQBodyProbe.c": "811244cc8297817efbfc3ee4edf01c868eae23c88127ba0c72e98ee7422da72f", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQMemoryProbe.c": "9bcd0b2e1007d40cb794aabe80368a2584ae58aad6a3ebbee070efc7b21a8147", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeInfantryTransferProbe.c": "9b2de4dc22bdadd51b0271219a971dc8dc07f70ed3534f306acf03ed81b29424", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeLocalHandoffProbe.c": "0d4d61c424a16008595f86fa61f3b848caf9bd6e9ebbacea9c10254d88ba378e", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMaintenanceProbe.c": "852b9b397efc3f919c97fec63bc3df1a850cd7833421af8441994afd191951d4", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedAmmoProbe.c": "7ddb634444c79ad9291d53a754dc0ed383342e36720ddaa4b7aa4bd4e7ee656d", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedCourierProbe.c": "12710e9e5548fe8856f7a52f3566338369a8a1eedf0bd92af16229271872ada5", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedInterceptProbe.c": "34b0b1e38a59f14c4e83d93ec412779945388e6f4d697bda2f6cb90f519a6372", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedSwapProbe.c": "a6721fcaaccadf8eddb06687c7d587d0a3e377d5d1bb0b8e72e630fede8690ac", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRadioProbe.c": "a4bd5cd9fe0594e05238b2d6dcd80466773f8fa160dc60bbe1eda70e3acdbe79", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRandomRadiusTrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "4dfb218419db4cd7a46d25cb1f2e578e75ad89efc43f99c6ca8ab8e591e139d7", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "89c2696071912500840f4bb91d754f695bf674335b51a7ee1d03727084fd4869", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyTravelProbe.c": "32e6074e912491f2643a24cb44311b9fe5b069c76e4e94a45e7409ac82d36507", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_OrdinaryScenarioLaunchChat.c": "a747af09599ce4d0c52051f18f00c4624d24d137e328341b580b82e896c6bf65", + "addons/core/Scripts/Game/Editor/Components/EditableEntity/RHS_CAS_EditableEntityComponent.c": "3788cbdc39c3da4f6564b73b7f49848077ad4504b6c28a1984c424247d1c6678", + "addons/core/Scripts/Game/Vehicle/RHS_DestructionTireComponent.c": "9b3de0966d7b8184bb70a14df2a448e06f34ca9db09b46da07277cb92ab7f8b2", + "addons/core/Scripts/GameLib/ERR/00_Core/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_BuildAtlasModel.c": "f6cb5e6f5afc9bb60a8a46d96b52c7506882faf0a880e0b20a01a2603b336d2c", + "addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_ValidateBaseWorldPlugin.c": "49a38c37b51e5318c7dcbcb01543dd9a6300d053f0d39808b3974f4edc45b871", + "addons/core/Scripts/WorkbenchGame/ERR/40_Chat/ERR_ValidateWorldPlugin.c": "d1f3fc372d0d16062a5983f2a6cffb6e72f202cb93fea5b33b4d77e0c852ecc7", + "addons/core/Sounds/ERR/Speech/radio_01.acp": "cf63378bf3950f5e6c1c1f46c057ad38a371b14b945b1201777820384805c3af", + "addons/core/Sounds/ERR/Speech/radio_01.acp.meta": "d5966526f35aa64dc980238f72f4f93f9d0e6a360f10e3f6538e97b7d086aa47", + "addons/core/Sounds/ERR/Speech/radio_01.wav": "cfe4a00000bc9b629a9e8e282ed64e7177673f829c5657b1ae2b2cb9e661d2ae", + "addons/core/Sounds/ERR/Speech/radio_01.wav.meta": "eaf33fa344fccf9aacab626117d03b96b135fa819d3e63ae300fac544291b571", + "addons/core/Sounds/ERR/Speech/radio_02.acp": "9111d118594094a8e09acdf80d8b107cc7d5d890b6ab086274e0e1004039e345", + "addons/core/Sounds/ERR/Speech/radio_02.acp.meta": "76b55d9abf7f599c5db3269a5829546a6d5f92e6350b2fe987245f9cd6b599fb", + "addons/core/Sounds/ERR/Speech/radio_02.wav": "6f0c94ae0e501afe6cc1aba804ba6a0403ba4de931debc28bf22970f591d0798", + "addons/core/Sounds/ERR/Speech/radio_02.wav.meta": "06ec85166aa4c54a6fafa1fa2eb2cc32f4a36dc8eecde8f9ba9912229e5e00e0", + "addons/core/Sounds/ERR/Speech/radio_03.acp": "019f939d65396f4a334a024bbf53c41479a9f8ce806610945af2be13e7352c70", + "addons/core/Sounds/ERR/Speech/radio_03.acp.meta": "8aa2f4f26f04bc3085ae046f543c047cdadf9af9e06a38920f1e1fd8a3aa02fe", + "addons/core/Sounds/ERR/Speech/radio_03.wav": "415a206bd1de167342cf1b82d59c708441b8d802395f941d15097c064133802a", + "addons/core/Sounds/ERR/Speech/radio_03.wav.meta": "de1d81fb653146404de5b6a6018c1cd73e902571b82d544de5b6cfccf21f5410", + "addons/core/Sounds/ERR/Speech/radio_04.acp": "77bcff7cc7ce49036a440e829fb4eab1dbe5252b0fc9ea24c42e6f6b68e2698e", + "addons/core/Sounds/ERR/Speech/radio_04.acp.meta": "dd61ee2545776cf23403240424470661c737048d01432d90b24f2c9e75f45d82", + "addons/core/Sounds/ERR/Speech/radio_04.wav": "a225810c7fba048517248fd9f7e9f7ab8aad5bac35e59f22e11e69166551f7f3", + "addons/core/Sounds/ERR/Speech/radio_04.wav.meta": "0ae046e2ac7f9653661ba99646d40dd78d52f113ea6554e1dbfd6e578572a4f4", + "addons/core/Sounds/ERR/Speech/radio_05.acp": "7dbc2b3b3d251eb8d3e749b0a7f32186b0421a95fa5585be493cf04b45510e3d", + "addons/core/Sounds/ERR/Speech/radio_05.acp.meta": "cbf3b48ed3865e30ba5d838d96ec4f1ee950cdcd51368f7a9259460e4b78cc1b", + "addons/core/Sounds/ERR/Speech/radio_05.wav": "90f5abe221165ac5cd7d88c9b3e01cf6fd4d00b594c84d09c6baf101fdb776ad", + "addons/core/Sounds/ERR/Speech/radio_05.wav.meta": "d8e3de0e1ae8670a01bcc272a1adf4199ffcea514ce024ee3286820dedab4d83", + "addons/core/Sounds/ERR/Speech/radio_06.acp": "e14da41c1cd186f35a4f385fab71ad85ad6fe718e67299a65466339ae23a2922", + "addons/core/Sounds/ERR/Speech/radio_06.acp.meta": "efc810a60e93453942adba476b423121f2a7dc1133b25d8764c1bec546a3949b", + "addons/core/Sounds/ERR/Speech/radio_06.wav": "b3f86b8dde535bc1a63301376c8d42775446d1b6117168557841565391fe0a14", + "addons/core/Sounds/ERR/Speech/radio_06.wav.meta": "07f53131f4ad153cc09051ba1de07f7b43d38f69781aad24371c4eeb331b280b", + "addons/core/Sounds/ERR/Speech/radio_07.acp": "bf3a48af07ad6e5da2ca6ed6c581fc6232e1bd62ebb905b934188366f2bc3d77", + "addons/core/Sounds/ERR/Speech/radio_07.acp.meta": "60aab59223c0ea734f7c1e88f803de30164ccef1a909730abed3eb76b3378ca2", + "addons/core/Sounds/ERR/Speech/radio_07.wav": "f3fd18ddaebe9eb3d0db9ac73c89a7b7a7f18b76e4b66d404d544be660a6825e", + "addons/core/Sounds/ERR/Speech/radio_07.wav.meta": "ef6c72aa32c1c46f7133782536744bdaf4eee03bcdb75aecb87accef6d1c4f2d", + "addons/core/Sounds/ERR/Speech/radio_08.acp": "a82c5dbcd7094085324d93d539c6f829c53dcf3781f40b8d65a10b7cb4125bae", + "addons/core/Sounds/ERR/Speech/radio_08.acp.meta": "69fb3400109e19d4f4d0fb371d056edbecc0a96a0a923174d1aba95dfeac1014", + "addons/core/Sounds/ERR/Speech/radio_08.wav": "ce3c2aff20dbea83aa6545a383c454969c5caeb53d5a88155ec182f789047d4a", + "addons/core/Sounds/ERR/Speech/radio_08.wav.meta": "72c5e117ab7b605b8370fe90923edee73593df6071c39b86556731387814a014", + "addons/core/Sounds/ERR/Speech/radio_09.acp": "73725377def1832742c7620fec46dc0100400d92b9cb79add8b4d44e94c46c0a", + "addons/core/Sounds/ERR/Speech/radio_09.acp.meta": "95456fe20def274a1972867024e9d0eb572f3878eae19c63522fcefe401dcb07", + "addons/core/Sounds/ERR/Speech/radio_09.wav": "3eb0be6393c431b526dbddc723cb608a7681a2dcd8af6910d9f2234aa98c923c", + "addons/core/Sounds/ERR/Speech/radio_09.wav.meta": "724dd301d1b25e41318503a815e87b54e7283735c51fd122af55c070f26adb37", + "addons/core/Sounds/ERR/Speech/radio_10.acp": "f976a0fecf73b3379ffb9728e96c68ca79800712919320e7ff7f3484cd2c9724", + "addons/core/Sounds/ERR/Speech/radio_10.acp.meta": "5411a9ffa23e42c8a2e8d4eba75d6e87631bcf542128327dfefd603a64d5b6ec", + "addons/core/Sounds/ERR/Speech/radio_10.wav": "2b2dac499a45a7779e79465d628a67b87078c0951db7db3e051feeb4342f2816", + "addons/core/Sounds/ERR/Speech/radio_10.wav.meta": "c3ac10a092dcb26ec637be6c9264a85eae1b6da55b9d8b44a14766a70ddf2933", + "addons/core/Sounds/ERR/Speech/soldier_1001.acp": "1af0d303063f37811a9b1a25424d887fe5eed4b5c57da71cf36ba6985f8cf002", + "addons/core/Sounds/ERR/Speech/soldier_1001.acp.meta": "2fbdda4d9fa83c6945985bd2f2215aa9f745b3a18adb0e7edafac1b01c161ba5", + "addons/core/Sounds/ERR/Speech/soldier_1001.wav": "a8935a5aded028f2fb03734f4423e731ea4f5b17394526df47c0407a3deddfe7", + "addons/core/Sounds/ERR/Speech/soldier_1001.wav.meta": "aff7a92a727d8bd4df033be2961fb85cafdc5c45fd272c5ea718bc07fb8e5cce", + "addons/core/Sounds/ERR/Speech/soldier_1002.acp": "1444636949683a430efe20a7f296e85e669cb8e26799c326f73a00c4f8d32fa5", + "addons/core/Sounds/ERR/Speech/soldier_1002.acp.meta": "d8eb34135a3b76f0a4f889f9662d954b3b0b3638c10c0732e25ca29d7b2ef412", + "addons/core/Sounds/ERR/Speech/soldier_1002.wav": "8535643e93757dd916f4158b5b03671cefc599489dbccf6bb0f7abf294fbae88", + "addons/core/Sounds/ERR/Speech/soldier_1002.wav.meta": "e8c8813e5a1989a0d7e4d2a5c90622c4b0f909aafb929f4737c82e5710220d1f", + "addons/core/Sounds/ERR/Speech/soldier_1003.acp": "5ab123f150debd6fda0b822fee7ffca5a0bdc168f4d8d2e28b3982972db05613", + "addons/core/Sounds/ERR/Speech/soldier_1003.acp.meta": "f89fa8e7ac42e7f675d29f0b241d181df572413c6c41bf31cfb98fa205baa87e", + "addons/core/Sounds/ERR/Speech/soldier_1003.wav": "5910896661ad67333d2374a16ca44ce831a5820feb337655df99c02df2915d5a", + "addons/core/Sounds/ERR/Speech/soldier_1003.wav.meta": "5281a71be599a70aeb9972ea85364e5ef32f824db94c71953d8a1912fb2a27c2", + "addons/core/Sounds/ERR/Speech/soldier_1004.acp": "10ac847b206834168e63d8d0f7ad25d7542a58a49d331af50aecf13e7e070ac9", + "addons/core/Sounds/ERR/Speech/soldier_1004.acp.meta": "8c073328d3f5f06ca583d97e9ce2453d8167ec7bc5643ab90783748a4cd9b6bf", + "addons/core/Sounds/ERR/Speech/soldier_1004.wav": "76375e462ba518c76f752d4b194c9370dffcebd8ce0037865133b37af3ff9a9e", + "addons/core/Sounds/ERR/Speech/soldier_1004.wav.meta": "563aae8d93efeaa7ca098c12bf0004da279321607793bb32a93b2530d6832d06", + "addons/core/Sounds/ERR/Speech/soldier_1005.acp": "ea3d874f84dd85f09871444c348b1c7f4948fc043c59cba4d3aea8b8eaa8b86e", + "addons/core/Sounds/ERR/Speech/soldier_1005.acp.meta": "40cbfddfa9937e319d412f3ecb66b75e2c1c88f2823a64e43a81a2939fb9021a", + "addons/core/Sounds/ERR/Speech/soldier_1005.wav": "3e20728fb61863278738f5366343cddd6fac1b8b114a14867f91ebb5cac547d8", + "addons/core/Sounds/ERR/Speech/soldier_1005.wav.meta": "e330fc819872b0a97a280a42d936ff75e30d21ea3ac96891988b48ded36af7b0", + "addons/core/Sounds/ERR/Speech/soldier_1100.acp": "86dc8e90d826947672342f44a6ff8d2fd4a8f014db0b215c0865b3728b14ea88", + "addons/core/Sounds/ERR/Speech/soldier_1100.acp.meta": "1a41730365335ebfabf6c75ab1c67ecb1d0d6c85db56d1d85f688a780a3ecf15", + "addons/core/Sounds/ERR/Speech/soldier_1100.wav": "eaf1deb5381f6bac165e364a652920fcf78438c351c564ebe50a216f3f3ba5a0", + "addons/core/Sounds/ERR/Speech/soldier_1100.wav.meta": "dcd087d3e0bec53abdd4e42218a3bbb234b7ae3cd2da05dcee71a298632a8da9", + "addons/core/Sounds/ERR/Speech/soldier_1101.acp": "2680131b5364efe39f3dee44ce1605dbc9e064cea9baf8247a8c5b55dcfa8d99", + "addons/core/Sounds/ERR/Speech/soldier_1101.acp.meta": "4feaa2b8e069ee2e9576d4009329f585b1b5ade9e47816882b78075f4897646f", + "addons/core/Sounds/ERR/Speech/soldier_1101.wav": "4bca012ec25d8456cd38d26606312f54b480b674365b76a9c9f54e408314570b", + "addons/core/Sounds/ERR/Speech/soldier_1101.wav.meta": "6ac6bd7a06be3fa35c513137b4584e405c0cd7e32d0c6912f2d7f9b5a3087d36", + "addons/core/Sounds/ERR/Speech/soldier_1102.acp": "08002dc26a4c07d6bf488d5f7c8c6587787c1755ce374b4053dad582eb2d77cb", + "addons/core/Sounds/ERR/Speech/soldier_1102.acp.meta": "2133e516f162d6aaa7f0d3a191421964ca6df7b00d0a50fa42ffaba70864bef4", + "addons/core/Sounds/ERR/Speech/soldier_1102.wav": "1432bb3c9d99910314a84d9773d2afafe4f5fbb143afb291b0deed55d25ee6d0", + "addons/core/Sounds/ERR/Speech/soldier_1102.wav.meta": "a6ca33938733e22789434db35ca2cdfb0fc4c51716feadf4a28a60ee9d1044b2", + "addons/core/Sounds/ERR/Speech/soldier_1103.acp": "c93e1e75c272d31107fde86205b859cf505e2acf7d8776fbd81357bc8b3625b9", + "addons/core/Sounds/ERR/Speech/soldier_1103.acp.meta": "f3d41ab27e932b10d46c3a2aa63f826825403a70640381a089db608c1c00a257", + "addons/core/Sounds/ERR/Speech/soldier_1103.wav": "c294454907a229d521c2285eec26dbb82f9782f2a7eca764e11713ff63f0e004", + "addons/core/Sounds/ERR/Speech/soldier_1103.wav.meta": "968d93e9dee2104aee94407604d021d8849a83dc3d115484088e81289654c246", + "addons/core/Sounds/ERR/Speech/soldier_1104.acp": "cb94ed3c95670f11f78f6470f1f50492fff6d2f0ac94602d054d474d52400cec", + "addons/core/Sounds/ERR/Speech/soldier_1104.acp.meta": "92d43bf610784953d8d94322b73ae235f7a8aeb83ece72733d795c8034275052", + "addons/core/Sounds/ERR/Speech/soldier_1104.wav": "952b3d71366c26fc12bdbb9014665bfc0402f30944c22b1b2369d26a93db7104", + "addons/core/Sounds/ERR/Speech/soldier_1104.wav.meta": "939562214b39250feaa8f6f6c6bd10c3d4e0b4c529f338490a2dc234919c0d31", + "addons/core/Sounds/ERR/Speech/soldier_1105.acp": "62c5d3d230a8a15cf2a4de193620ccdf83ca9973b550ace4e8edf7cc49f52851", + "addons/core/Sounds/ERR/Speech/soldier_1105.acp.meta": "6774063562b9c83975bc394dd3c72aa2a0d8001d0990ab8ff870ae2876889f93", + "addons/core/Sounds/ERR/Speech/soldier_1105.wav": "20e9e82d9897b598497da4722432f83ae03a5e6bf9a1f7a77caab712e3fc3130", + "addons/core/Sounds/ERR/Speech/soldier_1105.wav.meta": "6f21652352edbd59d1244ce9c2dcd1ad4ab65f022222381d9709c28148121c42", + "addons/core/Sounds/ERR/Speech/soldier_1200.acp": "c27db60629a41145697e041224cc2dde21c72d6a883fa305c71ec9c5b86bd84e", + "addons/core/Sounds/ERR/Speech/soldier_1200.acp.meta": "ea228ec869a7a0266f5604266f68c4166abc6cfeaa29180cb3b4351464b71079", + "addons/core/Sounds/ERR/Speech/soldier_1200.wav": "5a1561e821ef33a574c1f9ef95ccf76e69b832bf0a20bcbbf914760345921859", + "addons/core/Sounds/ERR/Speech/soldier_1200.wav.meta": "ccf3b62fd2eea460d576fa68863a901eb0025f47b1b76729a4289162d0dfa0c8", + "addons/core/Sounds/ERR/Speech/soldier_1201.acp": "45f220c5b6bac64db61eebcf54bb52da572f9f8f1ea0872c5af9fd3238c25a4e", + "addons/core/Sounds/ERR/Speech/soldier_1201.acp.meta": "3be417d66b05e11e0b520af136dfc45c86c17d5e35b56a611efbcf38e0d35003", + "addons/core/Sounds/ERR/Speech/soldier_1201.wav": "f058f0482cfe4034fdf37d9b596f7ba8172fae1c57aeb387ce153f8041895e45", + "addons/core/Sounds/ERR/Speech/soldier_1201.wav.meta": "abaebe719eff7e009eb4d0222060280877451126c02154706df6d13e4c5d3e11", + "addons/core/Sounds/ERR/Speech/soldier_1202.acp": "c08625886d8c6dc405cf96c640c9dafd4510ba5cef2c22b037c8c7b3eb5bea39", + "addons/core/Sounds/ERR/Speech/soldier_1202.acp.meta": "cf345e968edad1b825dd33b87267b63f770c169250f8c51195bffc3161d396bd", + "addons/core/Sounds/ERR/Speech/soldier_1202.wav": "c875f4e798ff5e24c3eb3b48bdfa1b8af03de9326a19c671eca86660297ad737", + "addons/core/Sounds/ERR/Speech/soldier_1202.wav.meta": "dd2d6411abe914bce71c6688a1647c2699303ca248191ec01c6325b366e5d7fb", + "addons/core/Sounds/ERR/Speech/soldier_1203.acp": "f0237a51ffe0e7d463154d321117a9b19c6914f6ee680ebf07a0ff9ab51fc340", + "addons/core/Sounds/ERR/Speech/soldier_1203.acp.meta": "0e93332191ac74be950ce8139b96ed6fdfe3ddbe68de8949826dc801d12c97f2", + "addons/core/Sounds/ERR/Speech/soldier_1203.wav": "6e7857dc96dfb556f011ba89f2f4ea659cfd7b605b88790c69e754d5cc51398a", + "addons/core/Sounds/ERR/Speech/soldier_1203.wav.meta": "0f564169dc05a95f7b01f64f72bdabf6de9ed3f37a2f44b4751f89b38eb18cd8", + "addons/core/Sounds/ERR/Speech/soldier_1204.acp": "94dbf98b5e05f1ebf6960495032c46203caaa4440dfb1ffd3beda2679fe6bec5", + "addons/core/Sounds/ERR/Speech/soldier_1204.acp.meta": "7cc8c61f4bb210c0576fac350d170f8f54a6e55531db6102c1a0fa7cb7a8a809", + "addons/core/Sounds/ERR/Speech/soldier_1204.wav": "bd170ca015b017114e42078dcc5c49d5626aef17d22e4a12b8282e9ee4908ae6", + "addons/core/Sounds/ERR/Speech/soldier_1204.wav.meta": "1c6ddb11c22a14d9d498074e2fb2864783f91afc552c4cd671452fa8df483de0", + "addons/core/Sounds/ERR/Speech/soldier_1205.acp": "47180a3445a265335d682eac6fa51fedca51d76f329adc39b1802092b311118b", + "addons/core/Sounds/ERR/Speech/soldier_1205.acp.meta": "c34346f4b10149b426ebb4e94db8c29883c9d0e36f2b42d07d41570eb8932554", + "addons/core/Sounds/ERR/Speech/soldier_1205.wav": "769c457805376e9c0172ddb525ead5f1d8774e15bd1f3f3b218a19f9d77b6883", + "addons/core/Sounds/ERR/Speech/soldier_1205.wav.meta": "31a2a7314b44afb3f0031376b2ad6df22649e8089bf1a3bbeb64cdc41156cff7", + "addons/core/Sounds/ERR/Speech/soldier_clear.acp": "f33f03f3d24182a95db7d02058f2dd6ae52098e3b5142a33ede833ee881d54ed", + "addons/core/Sounds/ERR/Speech/soldier_clear.acp.meta": "7d3643c9de2d81ab0f1b4898e781341c1962bd8505c20882233ef7c40159b23b", + "addons/core/Sounds/ERR/Speech/soldier_clear.wav": "d6527b8136aa720b721463210420f47de0dbc45acc4e4c390b6a44968c5f0acd", + "addons/core/Sounds/ERR/Speech/soldier_clear.wav.meta": "d9f9a921a85fe275c6cce649421a19946ff6aec49559796725c3858d9fe9b261", + "addons/core/Sounds/ERR/Speech/soldier_covering.acp": "7d4109edbd6c20f9e2af0b394fa12e8b3b40fc18bf2b5ac118beebb1fa4a79b1", + "addons/core/Sounds/ERR/Speech/soldier_covering.acp.meta": "320908bf7decea55b8d8b4a89b30e84e7d96a033d4a9cd1bd84912dce013f0d8", + "addons/core/Sounds/ERR/Speech/soldier_covering.wav": "f51e0086eaf0eece8b4061711088a413a2dbeae263deab7ea30fb1852dafda69", + "addons/core/Sounds/ERR/Speech/soldier_covering.wav.meta": "7bdf2d2c5f9cf741bae523e1ab0b9acc99b38ccd1228ebfbcba92f2b9a5cba9d", + "addons/core/Sounds/ERR/Speech/soldier_engaging.acp": "9f052e87edaf182030edb656821621cdeabbf13d65bc181308357530c9d93a74", + "addons/core/Sounds/ERR/Speech/soldier_engaging.acp.meta": "9e487fa3746c46b2993f1dfd1f0513f375571728704533674bee62586e25b72b", + "addons/core/Sounds/ERR/Speech/soldier_engaging.wav": "ac0f2d7d698732e3d7c270186e7aa2ab7e6bd4c908f36b07fb6f66a3cbe75ccf", + "addons/core/Sounds/ERR/Speech/soldier_engaging.wav.meta": "d571b9ebce196cc209078a83e4bde8f6a5f4b6d28c2945e2b47953ccb6889e97", + "addons/core/Sounds/ERR/Speech/soldier_moving.acp": "05503ca7af13a7ad03ed2a3aa562cc58504fdfff3148477f8d81b5a01abdf37c", + "addons/core/Sounds/ERR/Speech/soldier_moving.acp.meta": "a2474c87e4e1587226919dfdbd03739d938803d34f4a4f441889b0d8015513bd", + "addons/core/Sounds/ERR/Speech/soldier_moving.wav": "a61dda64e6fc2a11eac3e6008ee14b89f360bd67e258dce1191a71d9e2e26fad", + "addons/core/Sounds/ERR/Speech/soldier_moving.wav.meta": "bd87cd72ccb819584f9da09fb0d6973ffd6eb0bb5572c562978500e2af467217", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp": "c821c61afb2ddc12d3ecdb552a66d2a9ff89a5258a567ff2a99fed4f45a33520", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp.meta": "65a27b81a5b437163befd4dc566785a9dda4def1798495ca53c8f768a5d7a73f", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav": "ffe6ef5fdf30411749e0cb73186e3005b1ce6a52fcb7c836caeb1bca422ed3ed", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav.meta": "25b5680fd2a313c18e15ce6e0d3f709d78352b93206c22c7881be19b81faddd5", + "addons/core/Sounds/ERR/Speech/soldier_reloading.acp": "51c5cb464bab6637cf9e3b1880a010e05774d76a92298daf40b1d84970845be7", + "addons/core/Sounds/ERR/Speech/soldier_reloading.acp.meta": "ca351e809b1ba7c69b066d2c1d0a5d2afdcaa833c1163e6d13a0396437e98cf6", + "addons/core/Sounds/ERR/Speech/soldier_reloading.wav": "15b2749f79bc73fd0784bcd6e6076e1bc50da835e0c434cd43bd185d0735c732", + "addons/core/Sounds/ERR/Speech/soldier_reloading.wav.meta": "161c9ebee1d0496c7aa9501d00eba646094bf1ce89cda4efde6e3a0229a49e4f", + "addons/core/Sounds/ERR/Speech/soldier_target_down.acp": "77acc89c4ef0b912b969a2e5f6c41e071e04d10cfe89666fbc1296878dab62bf", + "addons/core/Sounds/ERR/Speech/soldier_target_down.acp.meta": "fe456d354ace93b0f2261de483e86ccc92991011b1738c5703d6d7bc0daa49a6", + "addons/core/Sounds/ERR/Speech/soldier_target_down.wav": "e2e60e8b83a24a548c90b84c5e1137adb7e792cf1d4ba6232ddfb1012fa78892", + "addons/core/Sounds/ERR/Speech/soldier_target_down.wav.meta": "064588b86589ac9437fbccafedeefae04bec3331dd8a229d1c6d27b5e524a9e9", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.acp": "5ffd3ff57550296274e9e93fb64efdf2fb06a51161d6deb221c1f3eb408d1459", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.acp.meta": "366a3c9e20f27c0f73bdff5827576df8924e99241061f933e72bd342e5bc7119", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.wav": "bbcf454d48adea47478d410b1baf14df3a5d018237272e70ae33ee62823f822f", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.wav.meta": "d1ac64242280521a7e40de51ae32a007878d7801401020e7a074a48e0f8ce62e", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.acp": "5af1c949d4662c2f33320165d2efdbd69cb183af1101aa246fe538bf0d91a33e", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.acp.meta": "aa7799e8a790539166a1d3a9c691416e7b2f6589d1674f5cf4b3e47523f15259", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.wav": "e4bd5e69fda289593fc6e6b8c2fae9a271a10d0a9bae877f18ba02dbbf75d1fc", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.wav.meta": "25a988c31e4fc3ae6540920df3d4548307a4a1e3b96b1303e9b7bdb4ac5eea27", + "addons/core/Sounds/ERR/Speech/welcome.acp": "f8a7b6cdd08b57b4b227a2d5b480a6c76857d7fc8ace3434478aec01c0de5a83", + "addons/core/Sounds/ERR/Speech/welcome.acp.meta": "d3ac98b02c0725d347b30d0ac7586cb22904d46b65a145e4a1131222484a6929", + "addons/core/Sounds/ERR/Speech/welcome.wav": "01de068469bd6746dba7634fb6b5b85b150621d3359c17fd01bcb916b34b1720", + "addons/core/Sounds/ERR/Speech/welcome.wav.meta": "bf33edad44bbb04df852501154f08a9a9900ce503248abc698127a51e9eec934", + "addons/core/UI/Textures/ERR/SiteMarkers.edds": "611ec6c68c2456c2af017c47135134d73122461017b315f64ed7ca9891f20c21", + "addons/core/UI/Textures/ERR/SiteMarkers.edds.meta": "90f40b38e52a79951b72da2960e30887d5ee8bbcefbada0c0ac950c1bfcf847f", + "addons/core/UI/Textures/ERR/SiteMarkers.imageset": "3f947d03b3492ada541032539cdb3f34a03d68ae83c0ef8796dc7fd091b5911d", + "addons/core/UI/Textures/ERR/SiteMarkers.imageset.meta": "1dc5285abd0062af288fb40b2f22b5b7c3925cf7270a096862335db250ac1453", + "addons/core/UI/Textures/ERR/SiteMarkers.png": "76b472982234bd27050a9430e6a53f4c14fa38f7388db3706ebef506eab4e660", + "addons/core/UI/layouts/ERR/AdminMenu.layout": "7d93d1d6b845e41b2c56dcfed201008682ac1d05b1df896601465bdef713c1ab", + "addons/core/UI/layouts/ERR/AdminMenu.layout.meta": "9deeece996f43b1f1fed6b5ec89279645c7b6424250200a42580cc088142e9bf", + "addons/core/UI/layouts/ERR/AdminValue.layout": "cd811af6d2fb187f01c74e20ea07ad85669546b0ad70efae2ce52921ce26cbca", + "addons/core/UI/layouts/ERR/AdminValue.layout.meta": "56b3d2335db400c1308e07c4a35d278b23ef32013dfd6dc82951866327428d08", + "addons/core/UI/layouts/ERR/ContentRow.layout": "7bf19d12b1b5e2c165f8671e92ae9227b54b4d1e551de94fa67bd54d3a66fddb", + "addons/core/UI/layouts/ERR/ContentRow.layout.meta": "8c4bc13b41e7aee38e0ca640a97813ed1a6964a00e2cff9e1fe4ebd71fc2fdc6", + "addons/core/UI/layouts/ERR/ItemRow.layout": "3c7ae3acdf2fad0ba661a1152ea319392668d774adc09a2a8b61e9a0319db312", + "addons/core/UI/layouts/ERR/ItemRow.layout.meta": "33eaef9c403ea3a030e58ec17f78e46af457048243571ad5856fff04101fb60b", + "addons/core/UI/layouts/ERR/ItemWeightRow.layout": "dfa6b87420efc683cb278178553350daa7753004d64672741a3dc13b4316810d", + "addons/core/UI/layouts/ERR/ItemWeightRow.layout.meta": "eb4b28587abdf6100092fd6eee1695663fa6e1548d5e53017173c4a5f7320240", + "addons/core/UI/layouts/ERR/PauseModsButton.layout": "d21d436291e2c1b262e33dc228b0d60a1d188dc9e85cfda6d2373f8281431b79", + "addons/core/UI/layouts/ERR/PauseModsButton.layout.meta": "9ed6adabd8f53eb9a562d7186789876bba5c4202155ca894c1af866ca47354f3", + "addons/core/UI/layouts/ERR/PreparationFailure.layout": "b7c4a2e6aa2be0992b478bb4f969f80355753573fffbc15be44670f3b136ea2e", + "addons/core/UI/layouts/ERR/PreparationFailure.layout.meta": "17ca2c9a12f691680883cec368ff06f511c996e5da5c25498f5f0955887867b0", + "addons/core/UI/layouts/ERR/PreparationStatus.layout": "ec3369f4030e593d34043e70a311b0963606cf024cb452648671556f25f5b52a", + "addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc", + "addons/core/UI/layouts/ERR/RoundResults.layout": "8550ebc009024f619827a43fd766aff8b7fbf8bc87ef7593db0fd7f4d778c615", + "addons/core/UI/layouts/ERR/RoundResults.layout.meta": "7509e050b3910ee5730dd25c60aacf405110e943f4ab46e3fc2186b3b15a3cf9", + "addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout": "82d9ae77f076f945583791dfa0b01f1c925e6ff8aaebcf382fd56089fe61a115", + "addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout.meta": "8691fe2eaf46568bca4a9f8128b247a8da810bb87a5546aa7ca3334e740270d6", + "addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "aef5d565301046ae902033ec4eb4799ff1bdd9a37bc507898781d8790f04fc2a", + "addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "6bcb7fbb27b6282719dae8a37486e518d4cbaea385f2ea9af1918b36bb28b175", + "addons/core/addon.gproj": "6ccf0d3a2817a5f865e605d5abe89bd794e7c8654f2dd005d0f496f05d91e76a" +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/menu-run/launch-source.json b/docs/evidence/vehicle-roles-2026-11-06/menu-run/launch-source.json new file mode 100644 index 00000000..56b3a690 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/menu-run/launch-source.json @@ -0,0 +1,45 @@ +{ + "schema_version": 1, + "launch_id": "ba46c998-b0f0-4a65-8c21-5354f5e52011", + "captured_unix": 1793973961.9731007, + "source_root": "/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/source6", + "command": [ + "gamescope", + "--backend", + "headless", + "-W", + "1920", + "-H", + "1080", + "-w", + "1920", + "-h", + "1080", + "-r", + "30", + "--", + "/home/jakub/.local/share/Steam/steamapps/common/Proton - Experimental/proton", + "run", + "/home/jakub/.local/share/Steam/steamapps/common/Arma Reforger Tools/Workbench/ArmaReforgerWorkbenchSteamDiag.exe", + "-gproj", + "Z:/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/source6/addons/core/addon.gproj", + "-addonsDir", + "Z:/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/source6/addons", + "-profile", + "Z:/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/native6", + "-logconsole", + "-wbModule=WorldEditor", + "-load", + "Worlds/ERR_Everon.ent", + "-plugin=ERR_ValidateWorldPlugin", + "-errPlay", + "1", + "-errSmoke", + "0", + "-errSmokeOutcome", + "normal-escape-route", + "-noThrow", + "-disableCrashReporter" + ], + "manifest_sha256": "f30e51a757ed2e353f52aa84ed84726274c7a6c46033150809ee905dbce9448f" +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/menu-run/result.log b/docs/evidence/vehicle-roles-2026-11-06/menu-run/result.log new file mode 100644 index 00000000..1ba37188 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/menu-run/result.log @@ -0,0 +1,56 @@ +Test audio routed to silent output and muted (stream 54659) +Test audio routed to silent output and muted (stream 54694) +{ + "stopped_unix": 1793974091.837287, + "console_sha256": "ed0333b272f66f50dfe2e05119cecfdd859632db9975e8acbfa21717fff1d71a", + "end_source_sha256": "f30e51a757ed2e353f52aa84ed84726274c7a6c46033150809ee905dbce9448f", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "ba46c998-b0f0-4a65-8c21-5354f5e52011", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "f30e51a757ed2e353f52aa84ed84726274c7a6c46033150809ee905dbce9448f", + "external_addons_unchanged_after_run": true, + "external_addon_count": 7, + "external_addon_inputs": "external-addons-inputs.json", + "started_unix": 1793973961.9731991, + "result": "smoke-completed", + "result_before_cleanup": "smoke-completed", + "cleanup_confirmed": true, + "cleanup_report": { + "cleanup_confirmed": true, + "idle_verified": true, + "errors": [], + "orphan_cleanup": { + "attempted": false, + "reason": "noncanonical-private-prefix" + } + }, + "runner_error": null, + "session": "/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/native6/logs/logs_2026-11-06_15-06-03", + "rounds_required": 1, + "project": "chat", + "display": "headless Gamescope 1920x1080/30Hz", + "dedicated_server": false, + "audio": "silent sink and per-test-stream mute" +} +{ + "log": "/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/native6/logs/logs_2026-11-06_15-06-03/console.log", + "smoke_completions": 1, + "assertions_passed": 10, + "script_or_runtime_failures": [], + "engine_errors": [ + "15:06:05.455 RESOURCES (E): Wrong GUID/name for resource @\"{0AFDD005CD669892}Language/rhs_localization.st\" in property \"StringTableSource\"", + "15:06:05.455 RESOURCES (E): Wrong GUID/name for resource @\"{41FA2A08B6971D4C}Language/wcs_armament_localization.st\" in property \"StringTableSource\"", + "15:06:05.456 RESOURCES (E): Wrong GUID/name for resource @\"{84270E09F7A4A7A0}Language/wcs_spacecore_localization.st\" in property \"StringTableSource\"", + "15:06:05.456 RESOURCES (E): Wrong GUID/name for resource @\"{E50E557B468C7073}Language/wcs_bmp1_localization.st\" in property \"StringTableSource\"", + "15:06:12.832 DEFAULT (E): Failed to request DLC ownership information.", + "15:06:42.924 WORLD (E): Unknown keyword/data 'm_HardLandingVelocity' at offset 133(0x85)", + "15:06:42.924 WORLD (E): Unknown keyword/data 'm_DeathLandingVelocity' at offset 163(0xa3)", + "15:06:53.681 WORLD (E): Unknown keyword/data 'Pacejka' at offset 939(0x3ab)", + "15:06:53.682 WORLD (E): Unknown keyword/data 'ClutchUncoupleRpm' at offset 1320(0x528)", + "15:06:53.682 WORLD (E): Unknown keyword/data 'ClutchCoupleRpm' at offset 1346(0x542)" + ], + "missing_end_screen": [], + "scope": "scripted local Workbench integration only; no multiplayer, piloting or FPS claim" +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/menu-run/runner.json b/docs/evidence/vehicle-roles-2026-11-06/menu-run/runner.json new file mode 100644 index 00000000..949057b3 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/menu-run/runner.json @@ -0,0 +1,34 @@ +{ + "stopped_unix": 1793974091.837287, + "console_sha256": "ed0333b272f66f50dfe2e05119cecfdd859632db9975e8acbfa21717fff1d71a", + "end_source_sha256": "f30e51a757ed2e353f52aa84ed84726274c7a6c46033150809ee905dbce9448f", + "source_unchanged_after_run": true, + "source_provenance": "launch_snapshot", + "launch_id": "ba46c998-b0f0-4a65-8c21-5354f5e52011", + "launch_source_manifest": "launch-source-sha256.json", + "launch_source_metadata": "launch-source.json", + "launch_source_sha256": "f30e51a757ed2e353f52aa84ed84726274c7a6c46033150809ee905dbce9448f", + "external_addons_unchanged_after_run": true, + "external_addon_count": 7, + "external_addon_inputs": "external-addons-inputs.json", + "started_unix": 1793973961.9731991, + "result": "smoke-completed", + "result_before_cleanup": "smoke-completed", + "cleanup_confirmed": true, + "cleanup_report": { + "cleanup_confirmed": true, + "idle_verified": true, + "errors": [], + "orphan_cleanup": { + "attempted": false, + "reason": "noncanonical-private-prefix" + } + }, + "runner_error": null, + "session": "/home/jakub/devel/escapistsrereintroduced/.local/vehicle-roles/native6/logs/logs_2026-11-06_15-06-03", + "rounds_required": 1, + "project": "chat", + "display": "headless Gamescope 1920x1080/30Hz", + "dedicated_server": false, + "audio": "silent sink and per-test-stream mute" +} diff --git a/docs/evidence/vehicle-roles-2026-11-06/menu-run/script.log b/docs/evidence/vehicle-roles-2026-11-06/menu-run/script.log new file mode 100644 index 00000000..29d4c184 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/menu-run/script.log @@ -0,0 +1,369 @@ +--------------------------------------------- +Log Z:\home\jakub\devel\escapistsrereintroduced\.local\vehicle-roles\native6\logs\logs_2026-11-06_15-06-03\script.log started at 2026-11-06 15:06:06 (2026-11-06 14:06:06 UTC) + +15:06:06.384 SCRIPT : SCRIPT : Initializing scripts +15:06:06.384 SCRIPT : SCRIPT : ScriptProjectManager init +15:06:09.167 SCRIPT : SCRIPT : Compiling GameLib scripts +15:06:09.224 SCRIPT : Module: Workbench; loaded 18x files; 36x classes; used 125K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 90ce0460 +15:06:09.225 SCRIPT : Module: GameLib; loaded 513x files; 704x classes; used 887K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 35487d81 +15:06:09.226 SCRIPT : SCRIPT : Compiling Game scripts +15:06:10.144 SCRIPT : Compiling Game scripts +15:06:10.144 SCRIPT (W): @"Scripts/Game/Parachutes/ParachuteDeployed.c,7": Pointer type 'Physics' can only be used with local variables +15:06:10.332 SCRIPT (W): @"Scripts/Game/Components/Vehicles/RHS_VehicleAntennaComponent.c,82": Pointer type 'Animation' can only be used with local variables +15:06:10.681 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,787": 'GetPlayerPlatformKind' is obsolete +15:06:10.681 SCRIPT (W): @"Scripts/Game/Editor/Components/EditableEntity/SCR_EditableEntityComponent.c,788": 'GetPlayerPlatformId' is obsolete +15:06:11.067 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_SiteService.c,363": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:06:11.081 SCRIPT (W): @"Scripts/Game/Workshop/SCR_AddonManager.c,876": 'GetRefCount' is obsolete: Will be removed +15:06:11.125 SCRIPT (W): @"Scripts/Game/Campaign/SCR_PlayerProfileManagerComponent.c,142": 'PlayerData' is obsolete +15:06:11.244 SCRIPT (W): @"Scripts/Game/Components/Magazines/SCR_MagazineComponent.c,134": Variable 'prefabPath' is not used +15:06:11.259 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,159": 'GetDSSession' is obsolete +15:06:11.259 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,162": 'RoomID' is obsolete +15:06:11.259 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,197": 'GetDSSession' is obsolete +15:06:11.259 SCRIPT (W): @"Scripts/Game/UI/Backend/CareerBackend.c,201": 'RoomID' is obsolete +15:06:11.285 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,77": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:06:11.295 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c,21": 'GetBoneIndex' is obsolete: Use GetAnimation().GetBoneIndex() instead +15:06:11.363 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,481": 'GetStorage' is obsolete +15:06:11.363 SCRIPT (W): @"Scripts/Game/DataCollection/SCR_DataCollectorComponent.c,483": 'GetOnlineWritePrivilege' is obsolete +15:06:11.365 SCRIPT (W): @"Scripts/Game/Utilities/SCR_PlayerIdentityUtils.c,20": 'GetPlayerIdentityId' is obsolete +15:06:11.393 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c,186": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:06:11.418 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,311": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:06:11.418 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_ExtractionService.c,323": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:06:11.419 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,643": 'GetNotifyCount' is obsolete: Will be substitued by Notification Api. +15:06:11.419 SCRIPT (W): @"Scripts/Game/UI/Menu/MainMenuUI.c,645": 'GetNotifyItem' is obsolete: Will be substitued by Notification Api. +15:06:11.449 SCRIPT (W): @"Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c,138": 'GetCompartmentType' is obsolete: Use GetType() on the compartment instance directly. +15:06:11.483 SCRIPT (W): @"Scripts/Game/DataCollection/PlayerData/SCR_PlayerData.c,210": 'PlayerData' is obsolete +15:06:11.843 SCRIPT : Module: WorkbenchGame; loaded 187x files; 692x classes; used 2796K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE"; CRC32: 53d2bfa5 +15:06:11.851 SCRIPT : Module: Game; loaded 6965x files; 14474x classes; used 45315K of static memory; defines: "ENF_WB,WORKBENCH,PLATFORM_WINDOWS,ENABLE_DIAG,ENF_ENABLE_RPLCOMPONENT_IN_GAMECODE,ENABLE_BASE_DESTRUCTION,BUDGET_OPTIMIZATION_CHECKS,SHOW_DISCLAIMER,DEBUG,RESPAWN_TIMER_COMPONENT_DEBUG,GAME_MODE_DEBUG,DEBUG_CONFIGURABLE_DIALOGS,DISABLE_WEAPON_SWITCHING,SCRIPTED_AIM_MODIFIER_DEBUG,WCS_DEFINES_ARMAMENTS,WCS_DEFINES_SPACECORE"; CRC32: bcecd979 +15:06:12.832 SCRIPT : Unable to register a script command due keyword duplicity: ban +15:06:12.832 SCRIPT : Unable to register a script command due keyword duplicity: kick +15:06:24.637 SCRIPT : Reintroduced [config]: using $profile:Escapists.json; legacy files retained but no longer used. +15:06:25.617 SCRIPT : ERR VALIDATION: prison terrain=211.344, radio terrain=159.656, extraction terrain=65.1562 +15:06:25.617 SCRIPT : ERR TERRAIN: x=6084 z=7154 y=211.531 +15:06:25.617 SCRIPT : ERR TERRAIN: x=6084 z=7157 y=211.516 +15:06:25.617 SCRIPT : ERR TERRAIN: x=6084 z=7160 y=211.5 +15:06:25.618 SCRIPT : ERR TERRAIN: x=6084 z=7163 y=211.453 +15:06:25.618 SCRIPT : ERR TERRAIN: x=6084 z=7166 y=211.406 +15:06:25.618 SCRIPT : ERR TERRAIN: x=6087 z=7154 y=211.438 +15:06:25.618 SCRIPT : ERR TERRAIN: x=6087 z=7157 y=211.438 +15:06:25.618 SCRIPT : ERR TERRAIN: x=6087 z=7160 y=211.422 +15:06:25.618 SCRIPT : ERR TERRAIN: x=6087 z=7163 y=211.391 +15:06:25.618 SCRIPT : ERR TERRAIN: x=6087 z=7166 y=211.344 +15:06:25.618 SCRIPT : ERR TERRAIN: x=6090 z=7154 y=211.344 +15:06:25.619 SCRIPT : ERR TERRAIN: x=6090 z=7157 y=211.344 +15:06:25.619 SCRIPT : ERR TERRAIN: x=6090 z=7160 y=211.344 +15:06:25.619 SCRIPT : ERR TERRAIN: x=6090 z=7163 y=211.328 +15:06:25.619 SCRIPT : ERR TERRAIN: x=6090 z=7166 y=211.281 +15:06:25.619 SCRIPT : ERR TERRAIN: x=6093 z=7154 y=211.25 +15:06:25.619 SCRIPT : ERR TERRAIN: x=6093 z=7157 y=211.281 +15:06:25.619 SCRIPT : ERR TERRAIN: x=6093 z=7160 y=211.25 +15:06:25.619 SCRIPT : ERR TERRAIN: x=6093 z=7163 y=211.234 +15:06:25.620 SCRIPT : ERR TERRAIN: x=6093 z=7166 y=211.188 +15:06:25.620 SCRIPT : ERR TERRAIN: x=6096 z=7154 y=211.156 +15:06:25.620 SCRIPT : ERR TERRAIN: x=6096 z=7157 y=211.172 +15:06:25.620 SCRIPT : ERR TERRAIN: x=6096 z=7160 y=211.156 +15:06:25.620 SCRIPT : ERR TERRAIN: x=6096 z=7163 y=211.141 +15:06:25.620 SCRIPT : ERR TERRAIN: x=6096 z=7166 y=211.094 +15:06:25.640 SCRIPT : ERR SITE CANDIDATE: position=<6090,211.344,7160> elevationRange=0.640625 +15:06:28.495 SCRIPT : Unable to register a script command due keyword duplicity: ban +15:06:28.495 SCRIPT : Unable to register a script command due keyword duplicity: kick +15:06:38.666 SCRIPT : Reintroduced [loading]: respawn animation and preparation display attached to Escape +15:06:42.917 SCRIPT : Map load time: 2236ms +15:06:42.929 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_PUNISHMENT_KILLING_SET'. There should only be one of each key! +15:06:42.929 SCRIPT (W): Notification data in 'SCR_NotificationsLogDisplay' has duplicate notification info key: 'EDITOR_PERCEIVED_FACTION_TYPE_DISABLED'. There should only be one of each key! +15:06:42.931 SCRIPT (W): Can't open config file "" +15:06:42.937 SCRIPT (W): Slot_WeaponInfo Has no Content! +15:06:42.937 SCRIPT (W): Slot_Chat Has no Content! +15:06:42.937 SCRIPT (W): Slot_VON Has no Content! +15:06:42.938 SCRIPT (W): Slot_AvailableActions Has no Content! +15:06:42.938 SCRIPT (W): Slot_Vehicle Has no Content! +15:06:42.938 SCRIPT (W): Slot_GameVersion Has no Content! +15:06:42.938 SCRIPT (W): Slot_Notifications Has no Content! +15:06:42.938 SCRIPT (W): Slot_Hints Has no Content! +15:06:42.951 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {259EE7B78C51B624}UAZ469.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants. +15:06:42.951 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants. +15:06:42.952 SCRIPT (W): SCR_EntityCatalogManagerComponent.GetFilteredEditorPrefabsOfAllFactions: Detected that {DF5CCB7C0FF049F4}Mi8MT_unarmed_transport.et is present in at least two different faction entity catalogs! Since this may cause issues, such as dupliacted entries in build mode, one of them will be discarded! This is only supported for items. Other things require creation of faction specific variants. +15:06:42.956 SCRIPT (W): Ban Settings could not be loaded from BE Storage: Relying on default config +15:06:43.103 SCRIPT : ScenarioFramework: Available tasks are empty, no new tasks will be generated. +15:06:43.116 SCRIPT : SCR_BaseGameMode::OnGameStateChanged = GAME +15:06:43.285 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.206 SCRIPT : ERR CONTENT: controller=1 +15:06:48.215 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.215 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.216 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.216 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.217 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.217 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.218 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.218 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.218 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.219 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.219 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.220 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.220 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.221 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.221 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.222 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.223 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.224 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.224 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.225 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.225 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.226 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.226 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.227 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.227 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.228 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.228 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.229 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.229 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.229 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.230 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.230 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.231 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.231 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.232 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.232 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.232 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.233 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.233 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.234 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.234 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.234 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.235 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.235 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.236 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.236 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.237 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.238 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.238 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.238 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.239 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.240 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:48.288 SCRIPT : Reintroduced [terrain selection]: discovered 45 playable scenario headers; truncated=0 +15:06:49.271 SCRIPT : ERR CONTENT STAGE: 0 page=0 vehicles=0 addon= +15:06:52.335 SCRIPT : ERR CONTENT STAGE: 0 page=0 vehicles=0 addon= +15:06:52.337 SCRIPT : ERR CONTENT MODS: rows=11 vehicleMods=6 +15:06:55.347 SCRIPT : ERR CONTENT STAGE: 1 page=3 vehicles=0 addon= +15:06:55.435 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:55.436 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:55.436 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:55.437 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:55.438 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:55.438 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:55.439 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:55.440 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:55.441 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:55.441 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:55.442 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:55.443 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:06:58.404 SCRIPT : ERR CONTENT STAGE: 2 page=17 vehicles=0 addon= +15:07:01.665 SCRIPT : Reintroduced [server items]: addons=11 uniqueItems=2403 unattributed=0 truncated=0 +15:07:02.410 SCRIPT : ERR CONTENT STAGE: 3 page=17 vehicles=0 addon= +15:07:02.554 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:02.555 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:02.556 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:02.556 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:02.557 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:02.558 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:02.559 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:02.560 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:02.561 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:02.562 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:02.564 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:02.565 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:06.470 SCRIPT : ERR CONTENT STAGE: 4 page=17 vehicles=0 addon= +15:07:10.564 SCRIPT : ERR CONTENT STAGE: 5 page=17 vehicles=0 addon= +15:07:13.569 SCRIPT : ERR CONTENT STAGE: 6 page=17 vehicles=0 addon= +15:07:13.569 SCRIPT : ERR SMOKE PASS: real menu item disable, master mod restoration and empty search +15:07:13.570 SCRIPT : ERR CONTENT VEHICLE INDEX: 0 +15:07:13.647 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:13.648 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:13.649 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:13.650 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:13.651 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:13.652 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:13.653 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:13.654 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:13.655 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:13.656 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:13.657 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:13.658 SCRIPT (W): EditBoxFilterComponent used on invalid widget type. +15:07:16.577 SCRIPT : ERR CONTENT STAGE: 10 page=16 vehicles=0 addon= +15:07:16.976 SCRIPT : Reintroduced [server vehicles]: inspected=2085 groundVehicles=324 truncated=0 +15:07:19.586 SCRIPT : ERR CONTENT STAGE: 11 page=17 vehicles=0 addon= +15:07:19.586 SCRIPT : ERR SMOKE PASS: item search restored after visiting advanced weights +15:07:22.589 SCRIPT : ERR CONTENT STAGE: 7 page=27 vehicles=12 addon=58d0fb3206b6f859 +15:07:25.690 SCRIPT : ERR CONTENT STAGE: 7 page=27 vehicles=12 addon=58d0fb3206b6f859 +15:07:28.848 SCRIPT : ERR CONTENT STAGE: 8 page=27 vehicles=12 addon=58d0fb3206b6f859 +15:07:31.854 SCRIPT : ERR CONTENT STAGE: 9 page=27 vehicles=12 addon=58d0fb3206b6f859 +15:07:31.854 SCRIPT : ERR SMOKE PASS: vehicle disable, filtered list and persisted preferences reload +15:07:31.902 SCRIPT : ERR SMOKE PASS: all navigation pages fit and disabled vehicles are excluded from selection +15:07:34.863 SCRIPT : ERR CONTENT STAGE: 12 page=3 vehicles=12 addon=58d0fb3206b6f859 +15:07:37.951 SCRIPT : ERR CONTENT STAGE: 13 page=27 vehicles=1 addon=2528466de220d91c +15:07:41.977 SCRIPT : ERR CONTENT STAGE: 14 page=27 vehicles=1 addon=2528466de220d91c +15:07:45.067 SCRIPT : ERR CONTENT STAGE: 15 page=27 vehicles=1 addon=2528466de220d91c +15:07:45.074 SCRIPT : ERR SMOKE PASS: real menu assigns a discovered vehicle to patrols, preserves independent uses, blocks stale role actions and reloads saved assignments +15:07:49.126 SCRIPT : ERR CONTENT STAGE: 16 page=27 vehicles=1 addon=2528466de220d91c +15:07:49.127 SCRIPT : ERR ROLE FOUND: {F001C0DE00000001}Prefabs/Vehicles/ERR_RoleTestCar.et contains=1 capable=1 sources=0x000000014FE137C0 {ArmaReforger,RHS_Core,WCS_Armaments,ERR_Core} +15:07:49.127 SCRIPT : ERR ROLE COMPONENT: EventHandlerManagerComponent +15:07:49.127 SCRIPT : ERR ROLE COMPONENT: ParametricMaterialInstanceComponent +15:07:49.127 SCRIPT : ERR ROLE COMPONENT: Persistence +15:07:49.127 SCRIPT : ERR ROLE COMPONENT: SignalsManagerComponent +15:07:49.128 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleSoundComponent +15:07:49.128 SCRIPT : ERR ROLE COMPONENT: AIKnowledgeComponent +15:07:49.128 SCRIPT : ERR ROLE COMPONENT: BaseLightManagerComponent +15:07:49.128 SCRIPT : ERR ROLE COMPONENT: ChimeraAIPathfindingComponent +15:07:49.128 SCRIPT : ERR ROLE COMPONENT: ColliderHistoryComponent +15:07:49.128 SCRIPT : ERR ROLE COMPONENT: ControllersManagerComponent +15:07:49.128 SCRIPT : ERR ROLE COMPONENT: MeshObject +15:07:49.129 SCRIPT : ERR ROLE COMPONENT: RHS_RadioSourceComponent +15:07:49.129 SCRIPT : ERR ROLE COMPONENT: RigidBody +15:07:49.129 SCRIPT : ERR ROLE COMPONENT: SCR_AIVehicleUsageComponent +15:07:49.129 SCRIPT : ERR ROLE COMPONENT: SCR_BaseCompartmentManagerComponent +15:07:49.129 SCRIPT : ERR ROLE COMPONENT: SCR_BaseLockComponent +15:07:49.129 SCRIPT : ERR ROLE COMPONENT: SCR_EditableVehicleComponent +15:07:49.129 SCRIPT : ERR ROLE COMPONENT: SCR_FuelConsumptionComponent +15:07:49.129 SCRIPT : ERR ROLE COMPONENT: SCR_FuelManagerComponent +15:07:49.130 SCRIPT : ERR ROLE COMPONENT: SCR_ImpactEffectComponent +15:07:49.130 SCRIPT : ERR ROLE COMPONENT: SCR_MotorExhaustEffectGeneralComponent +15:07:49.130 SCRIPT : ERR ROLE COMPONENT: SCR_PowerComponent +15:07:49.130 SCRIPT : ERR ROLE COMPONENT: SCR_ResourceComponent +15:07:49.130 SCRIPT : ERR ROLE COMPONENT: SCR_UniversalInventoryStorageComponent +15:07:49.130 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleBuoyancyComponent +15:07:49.131 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleCameraDataComponent +15:07:49.131 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleFactionAffiliationComponent +15:07:49.131 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleSpawnProtectionComponent +15:07:49.131 SCRIPT : ERR ROLE COMPONENT: SCR_WheeledDamageManagerComponent +15:07:49.131 SCRIPT : ERR ROLE COMPONENT: VehicleLightPortalComponent +15:07:49.132 SCRIPT : ERR ROLE COMPONENT: VehicleWheeledSimulation +15:07:49.132 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleDustPerWheel +15:07:49.132 SCRIPT : ERR ROLE COMPONENT: BaseFlattenGrassComponent +15:07:49.132 SCRIPT : ERR ROLE COMPONENT: BaseVehicleNodeComponent +15:07:49.132 SCRIPT : ERR ROLE COMPONENT: ChimeraAIVehicleControlComponent +15:07:49.132 SCRIPT : ERR ROLE COMPONENT: SCR_VehiclePerceivableComponent +15:07:49.132 SCRIPT : ERR ROLE COMPONENT: CarProcAnimComponent +15:07:49.133 SCRIPT : ERR ROLE COMPONENT: WCS_Armament_GroundVehicleInfraredEmitterComponent +15:07:49.133 SCRIPT : ERR ROLE COMPONENT: WCS_Armament_RadarReflectorComponent +15:07:49.133 SCRIPT : ERR ROLE COMPONENT: SlotManagerComponent +15:07:49.133 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleInventoryStorageManagerComponent +15:07:49.133 SCRIPT : ERR ROLE COMPONENT: ActionsManagerComponent +15:07:49.133 SCRIPT : ERR ROLE COMPONENT: VehicleAnimationComponent +15:07:49.134 SCRIPT : ERR ROLE COMPONENT: VehicleGamepadEffectsManagerComponent +15:07:49.134 SCRIPT : ERR ROLE COMPONENT: NwkCarMovementComponent +15:07:49.134 SCRIPT : ERR ROLE COMPONENT: RplComponent +15:07:49.186 SCRIPT : ERR SMOKE PASS: previously unknown car assigned independently to garage and traffic selections +15:07:50.487 SCRIPT : ERR SMOKE PASS: discovered assigned vehicle role=2 prefab={F001C0DE00000001}Prefabs/Vehicles/ERR_RoleTestCar.et actualCrew=4 +15:07:50.488 SCRIPT : ERR ROLE COMPARTMENT VAR: Enabled +15:07:50.488 SCRIPT : ERR ROLE COMPARTMENT VAR: components +15:07:50.488 SCRIPT : ERR ROLE COMPARTMENT VAR: DoorInfoList +15:07:50.488 SCRIPT : ERR ROLE COMPARTMENT VAR: CompartmentSlots +15:07:50.489 SCRIPT : ERR ROLE COMPARTMENT VAR: m_bBlockSuppliesIfOccupied +15:07:50.489 SCRIPT : ERR ROLE FOUND: {F001C0DE00000002}Prefabs/Vehicles/ERR_RoleTestEscort.et contains=1 capable=1 sources=0x000000014FE3C858 {ArmaReforger,RHS_Core,WCS_Armaments,ERR_Core} +15:07:50.489 SCRIPT : ERR ROLE COMPONENT: EventHandlerManagerComponent +15:07:50.489 SCRIPT : ERR ROLE COMPONENT: ParametricMaterialInstanceComponent +15:07:50.489 SCRIPT : ERR ROLE COMPONENT: Persistence +15:07:50.490 SCRIPT : ERR ROLE COMPONENT: SignalsManagerComponent +15:07:50.490 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleSoundComponent +15:07:50.490 SCRIPT : ERR ROLE COMPONENT: AIKnowledgeComponent +15:07:50.490 SCRIPT : ERR ROLE COMPONENT: BaseLightManagerComponent +15:07:50.490 SCRIPT : ERR ROLE COMPONENT: BaseRadioComponent +15:07:50.490 SCRIPT : ERR ROLE COMPONENT: ChimeraAIPathfindingComponent +15:07:50.491 SCRIPT : ERR ROLE COMPONENT: ColliderHistoryComponent +15:07:50.491 SCRIPT : ERR ROLE COMPONENT: ControllersManagerComponent +15:07:50.491 SCRIPT : ERR ROLE COMPONENT: MeshObject +15:07:50.491 SCRIPT : ERR ROLE COMPONENT: RHS_RadioSourceComponent +15:07:50.491 SCRIPT : ERR ROLE COMPONENT: RigidBody +15:07:50.491 SCRIPT : ERR ROLE COMPONENT: SCR_AIVehicleUsageComponent +15:07:50.492 SCRIPT : ERR ROLE COMPONENT: SCR_BaseCompartmentManagerComponent +15:07:50.492 SCRIPT : ERR ROLE COMPONENT: SCR_BaseLockComponent +15:07:50.492 SCRIPT : ERR ROLE COMPONENT: SCR_EditableVehicleComponent +15:07:50.492 SCRIPT : ERR ROLE COMPONENT: SCR_FuelConsumptionComponent +15:07:50.492 SCRIPT : ERR ROLE COMPONENT: SCR_FuelManagerComponent +15:07:50.492 SCRIPT : ERR ROLE COMPONENT: SCR_ImpactEffectComponent +15:07:50.493 SCRIPT : ERR ROLE COMPONENT: SCR_MotorExhaustEffectGeneralComponent +15:07:50.493 SCRIPT : ERR ROLE COMPONENT: SCR_PowerComponent +15:07:50.493 SCRIPT : ERR ROLE COMPONENT: SCR_ResourceComponent +15:07:50.493 SCRIPT : ERR ROLE COMPONENT: SCR_UniversalInventoryStorageComponent +15:07:50.493 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleBuoyancyComponent +15:07:50.493 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleCameraDataComponent +15:07:50.493 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleFactionAffiliationComponent +15:07:50.494 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleSpawnProtectionComponent +15:07:50.494 SCRIPT : ERR ROLE COMPONENT: SCR_WheeledDamageManagerComponent +15:07:50.494 SCRIPT : ERR ROLE COMPONENT: VehicleWheeledSimulation +15:07:50.494 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleDustPerWheel +15:07:50.494 SCRIPT : ERR ROLE COMPONENT: BaseFlattenGrassComponent +15:07:50.494 SCRIPT : ERR ROLE COMPONENT: BaseVehicleNodeComponent +15:07:50.495 SCRIPT : ERR ROLE COMPONENT: ChimeraAIVehicleControlComponent +15:07:50.495 SCRIPT : ERR ROLE COMPONENT: SCR_VehiclePerceivableComponent +15:07:50.495 SCRIPT : ERR ROLE COMPONENT: CarProcAnimComponent +15:07:50.495 SCRIPT : ERR ROLE COMPONENT: WCS_Armament_GroundVehicleInfraredEmitterComponent +15:07:50.495 SCRIPT : ERR ROLE COMPONENT: WCS_Armament_RadarReflectorComponent +15:07:50.495 SCRIPT : ERR ROLE COMPONENT: SlotManagerComponent +15:07:50.496 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleInventoryStorageManagerComponent +15:07:50.496 SCRIPT : ERR ROLE COMPONENT: ActionsManagerComponent +15:07:50.496 SCRIPT : ERR ROLE COMPONENT: VehicleAnimationComponent +15:07:50.496 SCRIPT : ERR ROLE COMPONENT: VehicleGamepadEffectsManagerComponent +15:07:50.496 SCRIPT : ERR ROLE COMPONENT: NwkCarMovementComponent +15:07:50.497 SCRIPT : ERR ROLE COMPONENT: RplComponent +15:07:51.647 SCRIPT : ERR SMOKE PASS: discovered assigned vehicle role=3 prefab={F001C0DE00000002}Prefabs/Vehicles/ERR_RoleTestEscort.et actualCrew=2 +15:07:51.648 SCRIPT : ERR ROLE COMPARTMENT VAR: Enabled +15:07:51.648 SCRIPT : ERR ROLE COMPARTMENT VAR: components +15:07:51.648 SCRIPT : ERR ROLE COMPARTMENT VAR: DoorInfoList +15:07:51.648 SCRIPT : ERR ROLE COMPARTMENT VAR: CompartmentSlots +15:07:51.648 SCRIPT : ERR ROLE COMPARTMENT VAR: m_bBlockSuppliesIfOccupied +15:07:51.649 SCRIPT : ERR ROLE FOUND: {F001C0DE00000003}Prefabs/Vehicles/ERR_RoleTestTruck.et contains=1 capable=1 sources=0x000000014FE6DB60 {ArmaReforger,RHS_Core,WCS_Armaments,ERR_Core} +15:07:51.649 SCRIPT : ERR ROLE COMPONENT: EventHandlerManagerComponent +15:07:51.649 SCRIPT : ERR ROLE COMPONENT: ParametricMaterialInstanceComponent +15:07:51.649 SCRIPT : ERR ROLE COMPONENT: Persistence +15:07:51.649 SCRIPT : ERR ROLE COMPONENT: SignalsManagerComponent +15:07:51.650 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleSoundComponent +15:07:51.650 SCRIPT : ERR ROLE COMPONENT: AIKnowledgeComponent +15:07:51.650 SCRIPT : ERR ROLE COMPONENT: BaseLightManagerComponent +15:07:51.650 SCRIPT : ERR ROLE COMPONENT: BaseRadioComponent +15:07:51.650 SCRIPT : ERR ROLE COMPONENT: ChimeraAIPathfindingComponent +15:07:51.651 SCRIPT : ERR ROLE COMPONENT: ColliderHistoryComponent +15:07:51.651 SCRIPT : ERR ROLE COMPONENT: ControllersManagerComponent +15:07:51.651 SCRIPT : ERR ROLE COMPONENT: MeshObject +15:07:51.651 SCRIPT : ERR ROLE COMPONENT: RHS_GroupMaterialController +15:07:51.651 SCRIPT : ERR ROLE COMPONENT: RHS_RadioSourceComponent +15:07:51.652 SCRIPT : ERR ROLE COMPONENT: RigidBody +15:07:51.652 SCRIPT : ERR ROLE COMPONENT: SCR_AIVehicleUsageComponent +15:07:51.652 SCRIPT : ERR ROLE COMPONENT: SCR_BaseCompartmentManagerComponent +15:07:51.652 SCRIPT : ERR ROLE COMPONENT: SCR_BaseLockComponent +15:07:51.652 SCRIPT : ERR ROLE COMPONENT: SCR_EditableVehicleComponent +15:07:51.652 SCRIPT : ERR ROLE COMPONENT: SCR_FuelConsumptionComponent +15:07:51.653 SCRIPT : ERR ROLE COMPONENT: SCR_FuelManagerComponent +15:07:51.653 SCRIPT : ERR ROLE COMPONENT: SCR_ImpactEffectComponent +15:07:51.653 SCRIPT : ERR ROLE COMPONENT: SCR_MotorExhaustEffectGeneralComponent +15:07:51.653 SCRIPT : ERR ROLE COMPONENT: SCR_PowerComponent +15:07:51.653 SCRIPT : ERR ROLE COMPONENT: SCR_UniversalInventoryStorageComponent +15:07:51.654 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleBuoyancyComponent +15:07:51.654 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleCameraDataComponent +15:07:51.654 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleDamageManagerComponent +15:07:51.654 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleFactionAffiliationComponent +15:07:51.654 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleSpawnProtectionComponent +15:07:51.655 SCRIPT : ERR ROLE COMPONENT: VehicleLightPortalComponent +15:07:51.655 SCRIPT : ERR ROLE COMPONENT: VehicleWheeledSimulation +15:07:51.655 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleDustPerWheel +15:07:51.655 SCRIPT : ERR ROLE COMPONENT: BaseFlattenGrassComponent +15:07:51.655 SCRIPT : ERR ROLE COMPONENT: BaseVehicleNodeComponent +15:07:51.656 SCRIPT : ERR ROLE COMPONENT: ChimeraAIVehicleControlComponent +15:07:51.656 SCRIPT : ERR ROLE COMPONENT: SCR_VehiclePerceivableComponent +15:07:51.656 SCRIPT : ERR ROLE COMPONENT: CarProcAnimComponent +15:07:51.656 SCRIPT : ERR ROLE COMPONENT: WCS_Armament_GroundVehicleInfraredEmitterComponent +15:07:51.656 SCRIPT : ERR ROLE COMPONENT: WCS_Armament_RadarReflectorComponent +15:07:51.657 SCRIPT : ERR ROLE COMPONENT: SlotManagerComponent +15:07:51.657 SCRIPT : ERR ROLE COMPONENT: SCR_VehicleInventoryStorageManagerComponent +15:07:51.657 SCRIPT : ERR ROLE COMPONENT: ActionsManagerComponent +15:07:51.657 SCRIPT : ERR ROLE COMPONENT: VehicleAnimationComponent +15:07:51.657 SCRIPT : ERR ROLE COMPONENT: VehicleGamepadEffectsManagerComponent +15:07:51.658 SCRIPT : ERR ROLE COMPONENT: NwkCarMovementComponent +15:07:51.658 SCRIPT : ERR ROLE COMPONENT: RplComponent +15:07:52.740 SCRIPT : ERR SMOKE PASS: discovered assigned vehicle role=4 prefab={F001C0DE00000003}Prefabs/Vehicles/ERR_RoleTestTruck.et actualCrew=1 +15:07:52.740 SCRIPT : ERR ROLE COMPARTMENT VAR: Enabled +15:07:52.740 SCRIPT : ERR ROLE COMPARTMENT VAR: components +15:07:52.741 SCRIPT : ERR ROLE COMPARTMENT VAR: DoorInfoList +15:07:52.741 SCRIPT : ERR ROLE COMPARTMENT VAR: CompartmentSlots +15:07:52.741 SCRIPT : ERR ROLE COMPARTMENT VAR: m_bBlockSuppliesIfOccupied +15:08:04.871 SCRIPT : ERR SMOKE PASS: newly discovered patrol, escort and supply vehicles physically driven more than20m with production crews +15:08:04.871 SCRIPT : ERR SMOKE COMPLETE: vehicle roles discovery assignments native crews and driving diff --git a/docs/evidence/vehicle-roles-2026-11-06/patrol-browser.png b/docs/evidence/vehicle-roles-2026-11-06/patrol-browser.png new file mode 100644 index 00000000..9e1b7e39 Binary files /dev/null and b/docs/evidence/vehicle-roles-2026-11-06/patrol-browser.png differ diff --git a/docs/evidence/vehicle-roles-2026-11-06/repository-checks.log b/docs/evidence/vehicle-roles-2026-11-06/repository-checks.log new file mode 100644 index 00000000..d8fd6c20 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/repository-checks.log @@ -0,0 +1,943 @@ +Menu layouts and palette are up to date. +....... +---------------------------------------------------------------------- +Ran 7 tests in 0.051s + +OK +.... +---------------------------------------------------------------------- +Ran 4 tests in 0.001s + +OK +....../usr/lib/python3.14/tempfile.py:538: ResourceWarning: Implicitly cleaning up + _warnings.warn(self.warn_message, ResourceWarning) +.......... +---------------------------------------------------------------------- +Ran 16 tests in 0.142s + +OK +PASS: authoritative kills/deaths, duplicate-event protection, friendly kills, suicide, GM and vehicle exclusions, down/recovery edges, disconnected escapees and terminal gates +PASS: production roster reconciliation preserves disconnected names and reconnect counters, refuses connection-ID inheritance, freezes records and bounds retained participants +PASS: held/tapped AI horn limits, half-second pulses, 30-second cooldown, clock reset, player/passenger/aircraft/replica exclusion and ended mission cleanup +PASS: telemetry outcomes, exactly-once finish, opt-out gate, stale callbacks, HTTP status handling and bounded retry +PASS: durable installation credential, restart/endpoint/identity isolation, write failure, corruption, bounded retention and disabled-send gates +PASS: running dedicated configuration, automatic server config/lobby name, explicit override, startup absence, rename and payload bound +PASS: map/server/mission/event/outcome validation, bounded counters, stale delivery exclusion, current-round refresh and unavailable recovery +PASS: deployment init waits for mode, runs once, cancels on deletion/world change and bounds retries; respawn RPC registration stays immediate +PASS: native chat retained on both peers, nested ownership detached, absent chat supplied by replicated fallback, authored mission chat preserved +PASS: configurable independent restarts, idle clock reset and live setting changes; last disconnect, pending admission/spectator population, five-hour boundary, repeated empty rounds, preparation, authority and duplicate-end guards +PASS: faction aircraft profiles provide 12+ cargo capacity; FIA/ION crew comes only from the selected faction +PASS: fleet space is required before pickup registration; dispatch rechecks/replaces only the secondary within the original 48-candidate footprint budget +Policy-only arrival from 90 m offset / 150 m height at 15 Hz: original 65.60s, rescue 32.20s +Policy-only arrival from 90 m offset / 150 m height at 30 Hz: original 65.73s, rescue 32.30s +Policy-only arrival from 90 m offset / 150 m height at 60 Hz: original 65.72s, rescue 32.33s +Policy-only arrival from 90 m offset / 150 m height at 120 Hz: original 65.72s, rescue 32.33s +PASS: faster rescue descent, continuous near-ground braking, alignment gate, unchanged recovery/escort/default profile, and bounded settling at 15/30/60/120 Hz +PASS: split-fleet boarding, escort rejection, lost transport failure and both transports airborne for thirty seconds +PASS: actual nearest usable registered-fleet selection, patient reservation priority, independent ranges, audited benches/skids and captured-aircraft handshake guards +PASS: production Cessna boarding requires exact observed occupancy, activates before requesting, caps retries at three with 5s spacing, and preserves transition, ownership, health and seat restrictions; engine behavior is faked +PASS: traffic distance/grace, all-observer veto, player claims, foreign custody, bounded spawn cadence, failure/stall retention and shutdown preserve nearby/claimed entities +PASS: actual observer collection includes spectator targets and controlled bodies; missing views/controllers and open editor cameras veto spawn/cleanup +PASS: civilian traffic defaults to three; menu command resolves to persisted 0..6 setting with zero disabling new cars +PASS: bounded exit-road selection can turn along a coastline when the opposite road is unavailable; no-route case is withheld +PASS: managed traffic pins both native garbage entries; release/retirement removes only those pins, including partial creation +PASS: garage/yard family admission, bounded wall offsets, civilian and optional Rally catalog exclusions, vehicle-fit limits +PASS: yard road-width margin, missing road data, footprint water/slope and nonfinite-input vetoes +PASS: bodies and spectator targets are collected; unknown, nonfinite and editor views veto spawning/cleanup; no connected players yields an empty known view +PASS: permanent entry/movement/occupancy claims; far hidden grace cleanup; proximity/visibility/unknown-view resets; one staged operation per update, no same-frame catch-up, stop and client guards +PASS: saved garage menu settings configure the round once; unit conversion and cleanup radius scale correctly; count/chance zero disable startup; clients and stopped rounds do no work +PASS: exhausted/blocked opening keeps configured radius; distant objective fallback rejected; bounds, player clearance, separation, force cap and retry delay retained +PASS: separated rear vehicle approaches, opposite infantry sectors, radio-gated ownership, failed-order preservation, visual cover or bounded supported reconnaissance, bounded dismount/search/regroup and loss cleanup +PASS: production dismount/boarding allocation, all crew allowances, waypoint ownership, one-time vehicle detach/restore and capture/teardown guards +PASS: covering support requires the original conscious turret gunner, valid mounted driver, live crew and delivered assignment +PASS: alternate positions exclude failed and occupied stages, roll back on failed planning/allocation, and preserve the total time budget +PASS: blocked crew deadline survives combat interruptions, defers unsafe exits, resets after recovery; failed stages survive assignments with bounded expiry +PASS: native-callback cleanup, bounded retries and budget, pending quarantine, objective/ownership/lifecycle protection, no evidence retirement or forced entity deletion +PASS: radio intel boundary, exclusions, preparation cap, next-round configuration, sticky unlock, redirection/evidence, fixed retention, automatic recovery and lifecycle guards +PASS: actual terrain refusal reasons, counted summaries, site/attempt/time context, 30-second rate limit and per-site reset +PASS: actual low/negative dry terrain, height-correct shallow/lake/ocean/interior water refusal and downstream startup dry-ground gates +PASS: failure-only menu, repeated-frame/dialog focus, pause fallback, exact error, Esc routing, single local exit, stale/recovered mode guards and listener cleanup; native rendering unverified +PASS: only original fit loaded healthy uncaptured gunners stay mounted; driver can leave; infantry readiness excludes the retained gunner but regroup requires all survivors +PASS: actual HQ allocator selects reachable reports, distinct cover/flanks, simultaneous fronts, bounded reservations and failed-radio/placement rollback +PASS: shared own-force attack spacing, own-group refresh, exact release, expiry/deletion, finite capacity and fresh confirmed sighting-only flank permission +PASS: actual convoy foot transport detachment is idempotent; regroup restores only its live friendly uncaptured original truck +PASS: opposing native flank orders are transactional; arrived teams sweep twice, travelling/boarding teams retain orders, failed redirects retry and replayed contacts are ignored +PASS: expired-report approach, arrival-only search, completion, newer/older/replayed reports, visual priority, interrupted search and bounded travel +PASS: drone cooldown, capacity, freshness, replay, bounded retries, round cap, stop, optional API and radio boundaries +PASS: production camera cone/range rejects behind-camera and distant actors; control directions, damping and limits +PASS: production drone radio queue rejects wrong phase/authority/group, busy or unconscious radios and absent routes; snapshots only eligible observations +PASS: target equipment counts as character contact; unrelated blockers and cyclic hierarchies stay blocked +PASS: burial requires a conscious current player, actual held shovel, dead nearby unobstructed corpse and no vehicle; authority and duplicate deletion guards preserve player/tool +PASS: nearest reported idle team, blocked teams, guards, active/pending orders, combat, radio routes, stale status and distance limit +PASS: six editor listeners transferred idempotently, unrelated handlers retained, authority guard and lifecycle ordering +PASS: takeover reconnect creates only missing managers, restores native roles, never grants non-admin access, skips stale/disconnected/client states +PASS: Game Master button becomes enabled on native permission arrival and disabled on revocation; no permission bypass +PASS: native creation called once per editor; pending/duplicate ownership waits, host works, retry is bounded and stale-world callbacks cannot create editors +PASS: catalog-independent cleanup removes original subscriptions once, handles never-initialized/preload items, preserves live validation and opted-out/editor behavior +PASS: shared config transaction rejects client writes, preserves first-save/prior/fallback state across open, write, backup, partial-copy, readback and mismatch failures +PASS: actual Save/Commit preserves semantically valid backup across unrelated menu edits and repairs; unknown fields/default sections retained; actual terrain parser; other parsers, catalog and disk doubled +.....TTS request rejected: authentication failed (403) +TTS request completed (200) +....TTS request completed (200) +TTS request completed (200) +.. +---------------------------------------------------------------------- +Ran 11 tests in 1.068s + +OK +PASS: all 37 fixed messages have validated exact audio, native graph identities and source-bundle inclusion +PASS: production incremental decoder preserves binary data, bounds each slice, yields on elapsed time and rejects malformed or oversized payloads +PASS: production speech transfer checks order, exact part sizes and stable bounded totals without changing audio +PASS: production client callbacks only queue; shared updates prepare one bounded slice, preserve bytes, handle file failures and cancel safely before playback +PASS: production soldier timeout preserves queued/completed preparation, expires stalled requests and removes stopped graphs only once +PASS: actual welcome tick waits for URL/readiness/server permit, preserves local once-only state across worlds and refuses stopped callbacks +PASS: account greeting survives client/controller/round changes; owner validation, delayed readiness, idempotent retry, stale replies and bounded ledger +PASS: original body/equipment retained past old timeout; expiry, death, canonical account/body, occupied controller, failed handoff, missing/dead/expired body replacement and extraction/duplicate-audit guards +frame_ms=33.3333 buffered_step_variation=0.0336441 baseline=1.32469 +frame_ms=16.6667 buffered_step_variation=0.0660537 baseline=0.822226 +frame_ms=6.94444 buffered_step_variation=0.0253502 baseline=0.427864 +PASS: actual view buffer validates samples, follows position/roll/FOV, rejects stale/foreign/reordered data, buffers jitter without drift, bounds memory and expires gaps +PASS: actual relay rejects noncanonical sources, live/foreign/stale viewers, invalid/replayed/fast packets; bounds leases and owner-only target delivery +PASS: production scope sampling preserves ordinary views, selects active ADS only, carries zoom/zeroing/illumination and rejects mismatched/unstreamed optics; native APIs doubled +PASS: native head/helmet fade is local, target-scoped, restored on exit/switch and does not overwrite a later camera owner +PASS: actual orbit branch rotates and zooms without a target; anchor tracking, bounds, collision and menu gating; corpse/vehicle orbit and living player-view fallback preserved +PASS: production TTS settings/test/enable/failure/disable/timeout flows preserve fallback, secrets, authorization, saved state and late-callback cancellation +PASS: TTS admin authorization, limits, case preservation and menu control contract +PASS: actual atlas preparation shows disclosed markers on overview, regional and detail sheets; cover hidden; overlay matches map rectangle above print for square/wide/tall terrains +PASS: actual objective overlay lifecycle preserves separate ownership, late readiness/reopen, data refresh, pan/zoom/culling, supported sibling/shared-frame parents, coordinate offsets, native task-clear isolation and terminal cleanup; native rendering remains unverified +PASS: actual map element initializes each widget, retries missing widgets, updates position and changes only stale text/icon data; no native image-load claim +PASS: all atlas identifiers, including the quoted question mark, match the generator +PASS: actual native fixture root/config ownership and idempotent cleanup preserve foreign map, selector excludes ordinary route, fixed budgets/screenshots/UGC boundaries retained; native operations not executed +PASS: actual full Inspect rejects canvas parenting, wrong active container/canvas, omitted origin offset, wrong rendered box and stale coordinates; differing origins and DPI accepted +PASS: actual long-warning phases retain visible label through1500ms checkpoint then restore radio before close; synthetic marker separated from unmoved player +PASS: actual Center keeps marker offset within large and small native viewports at both fixture zooms without altering disclosed coordinates +PASS: missing, child-only, malformed, zero and duplicate prefab root IDs rejected +PASS: delayed scene/inventory arrival, deferred preload, identity checks, stale replies, timeout and observer cleanup +PASS: loading protection restores only its own damage change, rejects invalid admission actors, and tolerates repeat/deleted cleanup +PASS: actual inventory manifest, delayed/missing/wrong-owner item links, finite cap, consumed-stock refresh and preload ordering +PASS: spawn scene remains held through final acknowledgement and nearby use; leaving, reassignment, disconnect and teardown release it +PASS: production prison AI hold/release, repeat activation, authority/faction/player exclusion, dead actor and stop cleanup +PASS: actual protected/capped damage plus exact-actor terminal fixture bypass through delayed native damage, fail-closed ownership and untouched ordinary actor; no native claim +PASS: actual full planner selection/commit body, 360 equivalence scenarios, orders/reservations/cooldowns identical; one128-unit scan vs >10000 repeated unit visits; no FPS claim +PASS: actual observer monitor/recovery/cleanup rejects retained old controller, preserves new camera/editor/hints/timer, restarts once and retains normal recovery; native effects modeled from SDK, no runtime claim +PASS: former chat controller releases only its own callbacks and preserves replacement menu; current-owner stop/scope and repeated teardown remain intact +PASS: wrong observer fixture selector rejected before runtime/profile setup; no engine launched +PASS: native camera fixture uses current generated sites instead of the obsolete fixed extraction pickup +PASS: actual depot mixed-roster worker/item selection, ownership/refusal and radio/planning/two-leg state transitions, fixed deadline, late proof quarantine, finite import and no adoption after Stop +PASS: actual depot HQ lifecycle, existing planner priority, server/mode/owner gates, idempotent polling and owner replacement +PASS: actual HQ mine/magazine claim separation, real demand methods, exact token cleanup and original authority gates; native availability doubled +PASS: actual full magazine/inert-PMN4 depot leaf, exact custody, isolated callbacks, finite reservation, false/unknown and Stop quarantine, once-only delivery and caps; native movement unqualified +PASS: actual mine/magazine provenance and separated finite mine imports; actual authored identity capture, READY-only detached provenance, same shared stock admission, completed exact two-leg proof, lifetime caps and Stop no late adoption +PASS: anger per car, all thresholds and remainders, disable/re-enable, wave cap, staged retries, empty-round reset, no backlog, four seats and nearest-player road distance +PASS: motorbikes require all mounted addons and exactly two crew seats; base/wreck prefabs rejected +.. +---------------------------------------------------------------------- +Ran 2 tests in 0.001s + +OK +PASS: road width/bridge/length checks, prison and post spacing, setting bounds/default, finite startup and owned HQ admission +PASS: exact configurable width cutoff, separate quotas and independent disabling +PASS: every saved setting has a fresh-profile constructor default +PASS: actual roadblock scheduler yields initial deadline/attempt cap to background, budgets samples, pauses empty/full worlds, completes 30 after unlock, preserves safety and never replenishes losses; teardown cancels work +PASS: actual staged post creation spawns at most one entity per callback, commits only all four/eight guards, all planned props and waypoint, and rolls back player approach, obstructions, spawn/replication/ledger failure and cancellation; all committed props bypass distance streaming +PASS: both shipped checkpoint layouts preserve vehicle lane, opposing signs, staggered barriers, clear guard slots and separate props across 4–16m roads and all tested headings +PASS: actual prop clearance excludes owned geometry while retaining moved-guard, foreign-obstruction, water and terrain rejection +PASS: road-edge/intersection clearance, mine detour geometry, checkpoint hold authority and retask cancellation +PASS: actual crash geometry, detached definition setup, frozen server choice and guarded phase policy; integration/source ordering checked +PASS: actual GameMode readiness admission and common full-footprint survey require crash authorization and both surveyed areas +PASS: actual start defaults/parse/save, failure retention and authorized command wiring; current/next feedback, aliases and no random choice; native UI and core mode freezing are separate +PASS: native-rejected custom items remain available without startup delay; required map and async insertion safeguards retained +PASS: exact starting-stock edits, quantities/type/total limits, duplicate rejection, saved custom/default modes, authority/read-only/save-failure retention and authenticated catalog routing +PASS: actual immutable measured footprint/root/attachment matching, bounds/transforms, moving geometry, seated-body and cargo reciprocity, finite hierarchy caps; native geometry doubled +PASS: actual BMP singleton geometry and typed current order; one survey, full straight segment, width, known history, reservations, settlement/clearance and work caps; placement/footprint tested separately +PASS: actual five random-radius diagnostic wrappers, disabled transparency, cached opt-in, exact zero and exclusion branch, native arguments/returns/outarg preservation, single superclass call and shared16-log cap +PASS: zero-radius trace disabled by default, scoped before setup, exact opt-in emission; no native launch +PASS: complete actual supply-travel probe, immutable 6+2 formations and 25 actors, admission/travel deadlines, six observed native-boundary moves, stop/ownership/partial-substitution refusals +PASS: actual distinct supply-travel hook, fixed420s selector, original observer protection/restoration, failure/terminal cleanup and no legacy convoy setup +PASS: actual supply-travel selector requires Chat, one round and480s; existing outcomes unaffected; no native launch +usage: test_native_mounted_intercept.py [-h] [--steam STEAM] + [--external-addons EXTERNAL_ADDONS] + --compat COMPAT --profile PROFILE + [--smoke {coordinated-ai,crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,self-epinephrine,starter-backpack,speech-download,bundled-speech,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,sarka-hunters,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,roadblocks,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}] + [--roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--large-roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--speech-probe-url SPEECH_PROBE_URL] + [--trace-random-radius] + [--maintenance-refuel] + [--mounted-swap-eligibility] + [--mounted-bmp] [--mine-stock] + [--mounted-courier] + [--mounted-intercept] [--convoy-cover] + [--field-terrain-audit] + [--field-service-cancel] + [--route-service-cancel] + [--station-teardown-diagnostics] + [--flight-autohover] + [--flight-action-inputs] + [--flight-input-diagnostics] + [--recon-takeover-only] + [--body-recovery-only] + [--coordinated-blocked-only] + [--rounds ROUNDS] [--timeout TIMEOUT] + [--project {core,chat}] +test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds +usage: test_native_mounted_intercept.py [-h] [--steam STEAM] + [--external-addons EXTERNAL_ADDONS] + --compat COMPAT --profile PROFILE + [--smoke {coordinated-ai,crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,self-epinephrine,starter-backpack,speech-download,bundled-speech,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,sarka-hunters,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,roadblocks,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}] + [--roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--large-roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--speech-probe-url SPEECH_PROBE_URL] + [--trace-random-radius] + [--maintenance-refuel] + [--mounted-swap-eligibility] + [--mounted-bmp] [--mine-stock] + [--mounted-courier] + [--mounted-intercept] [--convoy-cover] + [--field-terrain-audit] + [--field-service-cancel] + [--route-service-cancel] + [--station-teardown-diagnostics] + [--flight-autohover] + [--flight-action-inputs] + [--flight-input-diagnostics] + [--recon-takeover-only] + [--body-recovery-only] + [--coordinated-blocked-only] + [--rounds ROUNDS] [--timeout TIMEOUT] + [--project {core,chat}] +test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds +usage: test_native_mounted_intercept.py [-h] [--steam STEAM] + [--external-addons EXTERNAL_ADDONS] + --compat COMPAT --profile PROFILE + [--smoke {coordinated-ai,crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,self-epinephrine,starter-backpack,speech-download,bundled-speech,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,sarka-hunters,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,roadblocks,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}] + [--roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--large-roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--speech-probe-url SPEECH_PROBE_URL] + [--trace-random-radius] + [--maintenance-refuel] + [--mounted-swap-eligibility] + [--mounted-bmp] [--mine-stock] + [--mounted-courier] + [--mounted-intercept] [--convoy-cover] + [--field-terrain-audit] + [--field-service-cancel] + [--route-service-cancel] + [--station-teardown-diagnostics] + [--flight-autohover] + [--flight-action-inputs] + [--flight-input-diagnostics] + [--recon-takeover-only] + [--body-recovery-only] + [--coordinated-blocked-only] + [--rounds ROUNDS] [--timeout TIMEOUT] + [--project {core,chat}] +test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds +usage: test_native_mounted_intercept.py [-h] [--steam STEAM] + [--external-addons EXTERNAL_ADDONS] + --compat COMPAT --profile PROFILE + [--smoke {coordinated-ai,crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,self-epinephrine,starter-backpack,speech-download,bundled-speech,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,sarka-hunters,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,roadblocks,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}] + [--roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--large-roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--speech-probe-url SPEECH_PROBE_URL] + [--trace-random-radius] + [--maintenance-refuel] + [--mounted-swap-eligibility] + [--mounted-bmp] [--mine-stock] + [--mounted-courier] + [--mounted-intercept] [--convoy-cover] + [--field-terrain-audit] + [--field-service-cancel] + [--route-service-cancel] + [--station-teardown-diagnostics] + [--flight-autohover] + [--flight-action-inputs] + [--flight-input-diagnostics] + [--recon-takeover-only] + [--body-recovery-only] + [--coordinated-blocked-only] + [--rounds ROUNDS] [--timeout TIMEOUT] + [--project {core,chat}] +test_native_mounted_intercept.py: error: --mounted-intercept requires Chat --smoke convoy, one round and timeout at least900 seconds +usage: test_native_mounted_intercept.py [-h] [--steam STEAM] + [--external-addons EXTERNAL_ADDONS] + --compat COMPAT --profile PROFILE + [--smoke {coordinated-ai,crash-start,crash-geometry,normal-escape-route,escape-route,optional-site-skip,infantry-combat,medical-combat,hunter-faction,unconscious-camera,self-epinephrine,starter-backpack,speech-download,bundled-speech,objective-map,town-garrisons,site-garrisons,radio-interaction,enemy-loadout,aggression,sarka-hunters,air-logistics,air-assault,air-recon,airfield-markers,opening-tools,mortar-station,generated-sites,roadblocks,hq-local-handoff,infantry-transfer,hq-body,convoy,supply-convoys,supply-travel,mounted-ammo,alarm-hearing,hq-memory,hq-awareness,aircraft-field,aircraft-route,native-end-active,native-end-preparing,aircraft-control,aircraft-cancel,aircraft-translate,map-ownership,mortar-refresh,mortar-salvo,mortar-courier,station-teardown,inventory-hitzone,prison-breach,powered-flight,powered-translate,local-admission,mortar-expiry,mortar-transfer,mortar-fire,patrol-hq,victory,lost-helicopter,player-death,radio-network,hq-response,mortar-inventory,startup-failure,site-survey,cache-loss,extraction-capacity,early-helicopter-loss,extraction-startup-failure,extraction-boundary-failure,transport-loss,transport-survey,lifecycle,objective-ui,recovery,prisoner-kit,medical,casualty-load,casualty-direct,casualty-bench,casualty-remove,environment,environment-restart,patrols,radio-document-loss,radio-document-loss-partial,guard-cancel,casualty-service}] + [--roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--large-roadblock-probe-count {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30}] + [--speech-probe-url SPEECH_PROBE_URL] + [--trace-random-radius] + [--maintenance-refuel] + [--mounted-swap-eligibility] + [--mounted-bmp] [--mine-stock] + [--mounted-courier] + [--mounted-intercept] [--convoy-cover] + [--field-terrain-audit] + [--field-service-cancel] + [--route-service-cancel] + [--station-teardown-diagnostics] + [--flight-autohover] + [--flight-action-inputs] + [--flight-input-diagnostics] + [--recon-takeover-only] + [--body-recovery-only] + [--coordinated-blocked-only] + [--rounds ROUNDS] [--timeout TIMEOUT] + [--project {core,chat}] +test_native_mounted_intercept.py: error: --mounted-intercept and --convoy-cover are mutually exclusive +PASS: actual native interception witness requires real radio cursor/lineage, original actor identities, fixed movement/hold/expiry/resume and immutable deadline; no movement/delivery injection +PASS: actual CLI rejects wrong mode/project/rounds/899s/conflict before runtime; valid flag and terminal branch identify synthetic-observation qualification +PASS: visible base hook and actual fixture override delegate once; delivery proof uses retained pre-super route only on successful production transition +actual mounted HQ dispatch planning, radio, ownership and lifecycle checks passed +PASS: actual mounted intercept eligibility/order chronology, fixed destinations, native road selection bounds, width, segment heading, clearance and settlement delegation; no native driving claim +PASS: actual paired arc geometry,40m/80m spacing, separate original polylines, both-position validation and128road/4096segment budget; no native driving proof +PASS: actual typed original BMP singleton, loss/footprint/custody guards and native cancellation, UAZ-only pair admission, rollback, native allocation/revocation boundaries, per-member ownership, hold and expiry +PASS: actual Tick clock initialization admits fractional first ticks and expires without extending the original start +PASS: actual finite conservation/deadline/callback policies; read-only selection, bounded once-only inventory submission and no can refill; native transfer not executed +PASS: actual exact-context membership, bounded identity/reach gates, native start/cache/eligibility ordering and no duplicate/foreign action start; fuel manager identity and empty-can headroom guards checked +PASS: actual detached node/value snapshot and conservation refuse mismatched lengths before indexed reads, retain original identities under native out-array aliasing and log bounded counts once; native cause remains unknown +PASS: actual mine evidence sealing/recovery, historical coarse publication, caps, canonical ownership, marker join retry/owner-change/stop; native arming and replicated vector-array transport untested +PASS: actual full document recovery retains authored/sealed targets, one shared spent ledger, retry/exhaustion semantics and canonical multi-player ownership alongside supplemental mine intel +PASS: actual infantry search suspension, quiet grace, finite resume, expiry/replacement and defensive/ownership boundaries +PASS: infantry combat gate precedes radio delivery and preserves non-task transports +PASS: actual HQ contact transition wakes only fit squad members, cancels only task orders and logs changes once +PASS: actual finite medicine grants, authored stock deduction, full-backpack refusal/pouch fallback, no loot replenishment, unresolved-operation quarantine and ownership/stop guards +PASS: only recent native detected/identified threats suspend hunter travel; stale/disarmed/destroyed contacts cannot strand patrols +PASS: actual hunter combat transition cancels only its travel once, holds through renewed contact and resumes after quiet; unregistered startup preserved +PASS: actual movement recovery retries delivered orders three times, respects combat/speed/arrival/progress, then abandons the stalled vehicle +PASS: actual abandonment releases once, detaches transport, requests native exits only for fit original AI aboard, and leaves players/captured crews alone +PASS: captured sighting retention, immutable details, expiry, replay rejection, bounded sound uncertainty/cooldown, radio loss, priority and overdue-status fairness +PASS: arrow press/release, held keys, opposing keys, disabled/menu input and firearm-only retention +PASS: actual self-injection eligibility matrix and authority/rate limit; default-off persistence, authenticated menu route, owned finite injector and native effect/consumption boundaries +PASS: town trigger and hard 700m exclusion for all observers, empty/invalid positions and final-check crossings +PASS: object guard split, hard 1000m exclusion / 1400m activation, footprint support, slopes, holes and invalid traces +PASS: actual fixed-post admission reserves only stationary guards from HQ retasking and tightens their defend radius +PASS: production site classification accepts structures/descriptors and excludes industrial props, fragments, flags, ruins and vehicles +PASS: increased site populations preserve the 32 fixed / 16 mobile field-soldier budget, with guards at every site +PASS: exact finite site squads, invalid roster/count rejection, committed-site spacing and safe fallback boundary +PASS: mortar couriers use the mobile site team and refuse permanent-only garrisons +PASS: omitted preferred mortar depot selects a surviving owned camp/mobile team; no camp, foreign cache and permanent-only sites are unavailable; historical priority retained +PASS: real-session mortar deadline, failed-support convoy admission and hunter survivor/recovery gates +PASS: native-route retry preserves delivered target, limits attempts and suspends during combat +PASS: stale/deleted AI utility cannot receive Complete; mortar HQ preflight withholds unsafe orders; mounted convoy cover never creates infantry Defend +PASS: flight crew affiliation and group precede native boarding; preparation remains bounded even while passengers wait +PASS: factionless/deleted map targets do not abort perception; faction lookup tolerates teardown; deleting helicopter releases without capture/engine access +PASS: shoot adapter waits for a physical round; bounded same-shell retries, interrupted/never-started loads, committed no-retry, order/owner changes and normal native delegation +PASS: observed mortar corrections, radio delivery, bounded expiry, aim preservation and out-of-order impacts; native flight untested +PASS: splash reports retain HQ-estimated movement with matching position/time; stale, mismatched or unsupported estimates rejected +PASS: missing/invalid faction crew defers before any native spawn or allowance insertion; all registered RHS factions have explicit soldier and medic profiles +PASS: vehicle radio issued once; pending, refusal and looting cannot duplicate or fabricate a physical radio link +PASS: actual vehicle-radio link requires the original seated crew, physical manpack and live uncaptured mission vehicle; looting, dismount, release and teardown remove it +PASS: actual hunter release preserves survivors/HQ, releases driving ownership once, delegates capture/teardown, and excludes prison/patrol/mortar from generic objective defence +PASS: actual hunter cancellation releases exactly the pending source/message once; teardown clears ownership without HQ/game/world +PASS: actual player-entry hook latches original hunter capture before native callbacks; both release layers cancel ownership without new entities/refund; bounded current-owner guards and prior-release policy +PASS: real opening road geometry enforces wide azimuths; fresh delivered contact preempts patrol cooldown, respects radio failures and does not starve in-flight interception +PASS: delivered ground search survives the 60-second mortar cutoff, with five-minute/500m uncertainty bounds and no live target reads; mortar policy unchanged +PASS: reserve uses HQ reports/dispatch deadlines, preserves radio uncertainty, spends once, respects cooldown/availability/three-reserve/15-vehicle caps +PASS: searches expire ten minutes after observation, ignore replays, wait at arrival, widen within 1 km and bound road queries +PASS: actual scoped 10% tighter REGULAR aim error and alert perception; preserves equipment multiplier and restores vanilla behavior when unbound +PASS: physical inspection and parent-wreck retention; server-only searched/report delivery unlocks native cleanup once with a 300-second delay +PASS: 570 folders cover 57 unfinished sites evenly; known/automatic targets excluded, late camps included, and exact issued/authored documents preserved +PASS: bounded same-group empty-spawn retries, no casualty refill, queue retirement, delivery-gated intel, prepared-team reuse, throttled diagnostics and LOD release +PASS: four-team/twelve-wave bounds; two-thirds nearby radio defence; nearest selection, radio failures, expiry, perimeter separation, protected duties and independent response budgets +PASS: production airborne memory confidence, persistence, ground coverage, confirmed losses, artillery veto, cooldown and invalid-input rules +PASS: production bounded approach deadline, empty-drop reuse, partial-drop protection; cover retains the carried HQ target until its deadline; airport reload waits until the drop pass and cover have finished +PASS: air logistics reservation preserves delivered search until radio handoff, excludes guards/combat/in-flight orders, and quarantines unresolved native loads/moves +PASS: actual ammunition cargo selector handles empty rifle/machinegun/sniper magazines, preserves loaded variants, excludes auxiliary launchers and tolerates missing native metadata +PASS: original 15-minute launch/loss cadence, active/captured timer disarm, saved delay reset, stop, 300m orbit and bounded close-contact standoff at 30/60/120 Hz +PASS: actual aircraft-removal notification guards owner/server/active/stop and schedules one full delay without replay extension +PASS: actual helicopter delay applies resolved Random values, preserves countdown on save failure, and leaves active flights running +PASS: hill prominence/elevation, actual road edges/heights/bends and server-only finite scout admission, pending stock, timeout and no replacements/refills +PASS: mortar duty scope excludes players, other crews, stopped/client/inactive states; only destruction releases an active assignment, while the gunner may approach the gun +PASS: random mode restrictions, full numeric ranges, independent calendar dates and strict daylight boundaries +PASS: actual killais eligibility includes the 1000m boundary, excludes players/retained bodies/dead/non-character entities and checks full 3D distance +PASS: actual generation scheduler bounds each tick, enforces deadline/candidate ceiling, validates fallback, commits only accepted positions, skips only dispensable sites, preserves required objectives/intel, and resets the next search budget +PASS: actual background activation waits an hour empty without consuming placement time; disconnect does not reset active budget +PASS: actual separation keeps randomized extraction within the escape boundary in both placement orders, including fallback +PASS: scenario validation admits randomized extraction definitions and rejects unsupported randomized site kinds +PASS: terrain placement samples world bounds, retains streaming candidates, bounds waits/work, rejects foreign fallbacks, preserves objectives/intel and validates completion +PASS: actual navigation readiness supports static meshes, yields only for loadable streaming tiles and refuses unreachable positions +PASS: automatic extraction samples the whole terrain immediately and retains geometry/navigation/flatness and fleet-space checks without airport bias +PASS: universal connector, embedded/standalone exports, multiple terrains, stable IDs, native nav configs, missing-nav visibility, path validation and overwrite protection +PASS: airfield detection accepts physical runways/towers and bounded authored markers, rejects unrelated props, water and out-of-world markers, and samples terrain height +PASS: configured airport parsing, bounded readiness, stale admission rejection and cleanup wiring +PASS: automatic default, explicit header/CLI opt-out, editor/authored-mode guards, optional airport override precedence and fresh-round saving guard +PASS: singleton identity guards, paired faction deserialization and client world-cleanup wiring +PASS: task/map/respawn getters survive delayed old destruction and preserve ordinary-mode behavior +PASS: replication hierarchy refuses absent/aliased nodes and establishes delivery dependencies idempotently +PASS: standalone old faction delegates collected once, with null/deleted owners ignored +PASS: actual terrain takeover startup skips mode-less/menu worlds, always forwards super, retains eligible/unsupported/authored/client/editor semantics +PASS: native name callback preserves authored modes, opt-outs and failures; terrain suffix follows world changes, cached resolution and confirmed takeover text restores on cleanup without changing scenario identity or overwriting later edits +PASS: actual terrain parent traversal, Armenhof/Nogova names, Everon alias, missing-resource fallback, empty names and bounded cycles/depth +PASS: actual loading title/description hooks follow late takeover, apply text limits and empty updates, retain native progress and tolerate missing headers/widgets/game +PASS: saved terrain GUIDs, defaults, restart persistence, clearing, backup recovery, corrupt-file preservation, write failures, and client write denial +PASS: startup terrain capture protects client/editor/menu worlds, default behavior, same-map loads and reload-loop recovery +PASS: actual transition waits for native startup, disconnects without bans, requires an empty session, retains every loaded mod, bounds waiting and consumes requests once +PASS: actual faction resolution reserves explicit roles, samples without replacement, substitutes disabled selections, and rejects duplicate/unknown/missing choices and insufficient pools +PASS: Random all submits persistent random roles immediately; manual mixed choices, stale/unauthorized UI guards and debounce preserved +PASS: actual content policy gates parent packs, individual factions, faction identity and finite group rotation with vanilla fallback +PASS: actual delivered road eligibility, ahead projection without chords, reservations, stock road query bounds, terrain/water/obstruction refusal and clean outputs +PASS: actual delivered-task lineage, expiry, old-order retention, native commit, release, road precision expiry and duplicate delivery +PASS: actual original-roster local handoff,100m3D bound,busy carrier/budget exclusion,origin interruption including deletedsource,normal radio delivery and per-source replay history +PASS: actual visual intake retains source/time/position/id, rejects replay, prefers usable own route, excludes simultaneous callers and conservatively resets negative-sweep dwell +PASS: actual fixture local/radio gating, immutable source/time/position, interrupted-report exclusion and exact-owner cleanup +PASS: local-handoff runner refuses wrong project/round count/insufficient deadline before runtime work +PASS: actual fixture allocator terminal/unsubmitted guard, original-group lookup and both candidate gates +PASS: actual report-derived waypoint insertion/order and tighter positive radii; no formation navigation claim +PASS: actual Place/Stop waits native pose update, bounds four attempts, preserves original position, restores pending/settled placement and respects ownership/accepted-move quarantine +PASS: actual fixture current/original recipient ownership, unresolved transfer cleanup, exact-token release and idempotent Stop +PASS: actual fixture phased-cargo readiness, bounded callbacks, captured-stock mixed-caliber selection/continuation, reservation cleanup and component magazine counts +PASS: actual inventory-fixture setup uses ordinary prison unlock before constructing its convoy-waiting probe; failed unlock cannot run fixture +PASS: actual authored storage anchors, native trace flags, own-hierarchy exclusion, external wall/vehicle obstruction, range, unknown geometry and bounded context refusal +PASS: actual Compatible and bounded stock preflight before report/claim consumption, later compatible truck, launcher controls, convoy binding, finite identities, disjoint tokens, shared report replay/cooldown, original recipients and HQ cleanup +PASS: actual finite convoy supply pool; immutable slots, shared demand state, sparse/capped discovery and permanent shutdown +PASS: actual HQ rotates finite donors, skips unavailable/contacted trucks, uses delivered reports and dispatches at most one trip per planning cadence +PASS: actual original turret identity, native/canonical guards, scoped maximum-skill profile, reset, dismount/reboard, requested-skill preservation and restoration +PASS: bounded HQ startup/memory windows and outcome-specific full-route deadlines +PASS: explicit escape-route skips only administrator stress, preserving original full-fixture wait/failure paths +PASS: normal escape route keeps ordinary catalog and generated placement; historical selectors remain unchanged +PASS: actual patrol fixture leaves prison before responder HQ proof, followed by separate permanent-patrol observation +PASS: exact patrol-hq finite responder preparation and native search-radius receipt verification +PASS: actual read migrates old valid settings, preserves explicit disabled state, rejects invalid data; next-round feedback and fixed menu remain honest +PASS: actual automatic convoy timing/authority/admission/one-attempt/manual-task/stop policy; native deployment unproved +PASS: late authoritative failure reason refreshes open result; detach, mode change and success subscriptions preserved +infantry resupply actual rules, radio transitions, owned cleanup and unresolved-operation tests passed +PASS: actual resupply Roster preserves permanent release, original slot mapping and bounded ownership +PASS: actual designated zero/one original carrier selection, settled startup, shared finite claims, no refund after submission +PASS: actual HQ startup grant readiness forwarding is authoritative and fail-closed +PASS: actual finite PMN4 designated-zero/one entitlement, pinned original ownership, shared commit, physical custody, callback quarantine/deletion and no retry +PASS: actual bounded empty-return and finite delivery; phase-isolated callbacks, exact ownership proof, stop quarantine and original actor/vehicle boundaries +PASS: actual shared finite identity reservation; competing consumers, submission permanence, stale cleanup and96-item bound +PASS: actual carried-mounted swap, shared committed claim, physical slot reach, exact two-way proof, uncertainty and terminal cleanup +PASS: actual mounted pickup, exact finite ownership, pre-submission commit, physical custody, bounded callback and quarantine lifecycle; no native coverage claim +PASS: actual mounted courier admission, radio, individual orders, two-stage transfer, reboarding, token cleanup and quarantine lifecycle +PASS: actual scoped crew permit and native board completion/failure preserves foreign seats without teleport fallback +PASS: actual shared mounted stock/history ownership, atomic exact HQ pair claim, and bounded stopped-owner proof polling +PASS: actual carried/mounted early ammunition policy and status-first shared uplink; complete threshold, phases, cooldown, failures requested check-ins and non-urgent detached carried-mine status +PASS: actual group radio startup preservation, finite native grants, callback quarantine, frozen selection/actor ownership and bounded observation +PASS: actual maintenance native-stock check rejects missing/duplicate/wrong-identity/unowned/depleted/malformed stock and is read-only; native runtime not executed +.................. +---------------------------------------------------------------------- +Ran 18 tests in 0.299s + +OK +PASS: actual radio node rejects current incapacitation, death, ownership and faction changes despite cached inventory; one-second capability refresh remains explicit +PASS: Southern finite maintenance stock preserves weapons/clues and optional transport, historical Western fixture stays separate; native capacity/consumption untested +PASS: optional transport deferred behind required readiness, bounded once-only spawn/omission, isolated cleanup, occupied-candidate retention and required-default preservation +PASS: actual diagnostic fallback runs only on failed missing-context call, derives unique native pilot door, preserves stock eligibility and restores prior index on success/failure; diagnostics mutate no game state. +PASS: actual native-prelude cleanup restores only original changed damage, refuses stale/incapacitated/aboard teleport; bounded five-seat/four-door fixture wiring checked. Native execution remains pending. +PASS: actual CreateTransport requires successful scoped Configure after handbrake, preserves ordinary vehicles, tracks spawned entity before failures and never treats failed lock registration as ready. +PASS: actual preparation Configure guards/idempotence/breach preservation, security eligibility/final current-body server mutation and all scoped action guards; all five seat/four door resource overrides. Native hold, prefab merge, replication and boarding remain unverified. +PASS: production vehicle alarm single trigger/replica completion/no replay, fixed deadline/readiness wait, failed audio, dedicated server, moving exact handle, destruction/native end/deletion/clock and mission teardown. Native sound and multiplayer delivery require engine qualification. +PASS: production alarm emitter/receiver original time/location, explicit native queue only, 32-entry cap, 50m local witness eligibility, bound perception, native-super preservation; actual engine broadcast/hearing remains unverified. +PASS: actual optional candidate barrier, exact callback/custody proof and unchanged mine/primary snapshots; no native transfer claim +Native finite mine-stock runner: parser, scope, exclusions and command pass +PASS: actual bounded native mounted proof/detached payload/deadline/cleanup methods, production-only setup and isolated runner selector +PASS: actual one-existing-convoy candidate readiness, sender-root identity, incomplete cargo refusal and fixed three-candidate bound +PASS: actual BMP capture requires complete armed exact original resource; pinned delivery/slot checks and isolated CLI flag +PASS: actual opt-in pre-unlock isolation refuses wrong mode/phase/flag and existing hunters; no baseline service changes +PASS: actual once-only native dry query, exact before/after slots, native refusal, shutdown; shared bounded discovery and distinct opt-in verdict +PASS: actual completion selector and pre-cleanup variant capture preserve separate radio and eligibility verdicts +PASS: actual cargo diagnostic stages separate absent/foreign magazines, used/empty/invalid rounds, well mismatch and exact truck storage/attachment without mutation +PASS: actual native courier witness rejects missing radio/custody/swap/reboard evidence; CLI opt-in bounded; native success remains unqualified +PASS: actual courier constructor/Tick waits for preparation, returns before physical checks, preserves fixed deadline and sticky stop/failure; Enfusion startup awaits native verification +PASS: actual arranged native alarm fixture deadline, single emit, natural-route observation, original timestamp/area/detail assertions, natural observer proximity/activation wait, failure cleanup and independent canonical-body restoration; native delivery itself remains unqualified. +PASS: actual convoy cover observation/snapshot/uplink/HOLD/RESUME/cleanup transitions; native boundaries mocked, non-convoy runner opt-in refused +Enemy optics actual-service ownership, preservation, callback, deadline and bounded-inspection policies passed +PASS: actual delivered cover freshness/lineage/replay and canonical executor; owned waypoint-only hold, one resume at preserved route index, invalid ownership/crew/ledger refusal and fail-closed native recreation +PASS: actual Stinger show/set/help state precise actor-roll effects; read-only help, bounded values, malformed syntax and failed-save preservation; no rerolls/gameplay edits and no native persistence claim +PASS: new/retasked search and radio delivery ammo gates; active tasks and delivered release preserved +HQ convoy delivered-report planning and downlink regressions passed +PASS: actual own-inventory ammo inspection deduplicates loaded/carried/shared wells, separates chambers/launchers, freezes scalar snapshots and treats unsupported/capped/foreign inventory as unknown +PASS: actual carried PMN4 inventory, original-owner guards, bounded deduplication, independent unknown state and detached counts +PASS: actual mounted hierarchy sampling, ownership exclusion, deduplication, completeness/caps, quarter threshold and detached validation; no runtime policy or ammunition mutation +PASS: WORKBENCH opt-in diagnostics distinguish cycles/cap/storage/manager/mount failures without repeated native traversal +PASS: actual HQ original convoy-root admission rejects wrong force/server/group and never supplies replacement lookup +PASS: production mounted structural seat scan ignores >128 carried/cargo descendants, shares exact native mount/magazine ownership, preserves attachment seats and exact occupants, rejects unknown/cyclic/oversize structures; native binding still requires qualification. +PASS: native body fixture uses existing immutable actors, real production LOS/queued uplink, pre-delivery isolation, actual status overlap, bounded cleanup and no fabricated reports/spawns +PASS: actual native fixture lookup selects exact BODY kind/identity/message from bounded evaluations, never sighting-only Get +PASS: actual ammo snapshot comparison checks every scalar/category flag; native probe requires real roster rescan, loaded-round lower bound and separate immutable pending/Watch objects +PASS: actual delivered slot-union bodies preserve overlap/disjoint evidence, replay idempotence, status subset integrity, full-wipe closure and formation-local bounds +test_review_added_allowed_media_invalidates_snapshot (__main__.ReviewTests.test_review_added_allowed_media_invalidates_snapshot) ... ok +test_review_added_source_directory_rejected (__main__.ReviewTests.test_review_added_source_directory_rejected) ... ok +test_review_loose_root_resource_and_symlink_rejected (__main__.ReviewTests.test_review_loose_root_resource_and_symlink_rejected) ... ok +test_review_metadata_media_and_sidecars_remain_allowed_and_bound (__main__.ReviewTests.test_review_metadata_media_and_sidecars_remain_allowed_and_bound) ... ok +test_review_missing_link_rejected (__main__.ReviewTests.test_review_missing_link_rejected) ... ok +test_review_package_guard_sees_new_scripts (__main__.ReviewTests.test_review_package_guard_sees_new_scripts) ... ok +test_review_retargeted_private_link_rejected (__main__.ReviewTests.test_review_retargeted_private_link_rejected) ... ok + +---------------------------------------------------------------------- +Ran 7 tests in 0.090s + +OK +PASS: actual report methods reproduce old starvation; status-first scheduler delivers check-ins and requires 30s without combat or actual visible contacts before negative reports +PASS: actual actor group lookup retains controlled character membership when seated/inherited vehicle agents differ; missing control or parent refuses +................. +---------------------------------------------------------------------- +Ran 17 tests in 7.180s + +OK +PASS: actual convoy motion thresholds, native-only proof boundaries, physical cargo/crew ownership and pre-launch runner restrictions +PASS: actual new measured ClearFootprint 25/441 sample grids, measured extents/height, water/invalid world/terrain/trace refusal plus legacy filled rotated-footprint TraceBox and nine terrain/water samples; broad tree/cable bounds alone accepted, actual collision/nonfinite trace refused, nonzero sweep and ENTS/OCEAN flags, bounded diagnostic query and reset +PASS: actual road interpolation/projection/orientation, six35m starts,200m forward tail, preserved bends, short/far/degenerate/nonfinite/overdense/hairpin refusal and deterministic candidate ties +PASS: actual authenticated convoy dispatch, active/ready admission gates, canonical receipt, safe unconsumed preflight retry, pool refusal, retained partial failure and consumed no-retry +PASS: actual native readiness exact membership, one-time per-vehicle ledger admission/reservation, partial readiness retry without duplicate records and one-pass56-item cargo allocation without replenishment +PASS: actual per-vehicle readiness reasons, native agent/activity counts, intended-seat diagnostics, five-second throttle and read-only observation +PASS: actual convoy dispatch validates before receipt consumption, consumes once before native mutation, retains all10 partial-failure paths, accepts the selected non-USSR enemy, and allocates exact10 bodies without capacity shrinking +PASS: own memberless prefab disables automatic spawn before initialization; actual admission rejects populated, immediate or authored-slot templates before finite crew creation +PASS: actual native seated-group arrival outside35m, native waypoint removal, idempotent advance, and convoy waypoint idempotence/arrival/deadline, missing/dead/captured/reparented crew refusal, failed native waypoint release, original vehicle/member preservation and no replacement +PASS: actual convoy/team Release retains original active survivors and HQ identity, rejects takeover/terminal/unknown roster, preserves exact logistics quarantine and normal eligibility +PASS: actual convoy receipt identity/one-use, shared60-body and128-formation caps, outstanding/native-ledger accounting, exact10-body composition, source reuse, mode/client guards and no consumed receipt refunds +PASS: actual supply route cycling/arrival/stops, finite startup bounds, contact freshness, dismount hold, quiet interval, interrupted boarding, timeout and lost-truck release +PASS: moving-convoy perception boundaries and scoped individual/group abandonment priorities +PASS: actual supply startup reasons expose unchanged body budget/requirement, journal only failure changes, preserve retry cadence/caps and report the true final refusal +PASS: actual combat start releases only exact intercept claims before owning route/orders; foreign claim defers combat takeover +PASS: actual StartOne plus actual pool preserve unconsumed receipt retry, reject consumed replay, skip impossible new-budget surveys, retain equality, retry caps and journal dedup; no FPS claim +PASS: actual admission seeds use exact installed loaded prefab, reject replacement/foreign/projectile paths and preserve bounded immutable identity +PASS: actual primary-before-mounted one-shot batch, shared96/128 caps, physical snapshot headroom, original ownership, callback refusal and admission pinning +PASS: actual bounded HQ query validates only existing original binding without admission or replacement lookup +PASS: exact optional PMN4 startup, primary callback independence, original owner,128 capacity/callback limits, terminal no-retry and callback-proven freeze +PASS: production convoy spacing, physical arrival, stable follower targets, supply ownership, leader promotion and bounded stuck recovery +PASS: convoy combat keeps native manoeuvres for unchanged contacts and refreshes when contact moves +PASS: native convoy proof excludes pre-departure movement and ends via explicit fixture reset, not prohibited player death +PASS: boarding retries only after approach/seat progress stops, capped at three, with delayed native reissue and completed-team preservation +PASS: slow only owned vehicles near fit dismounted infantry; ignore passengers, casualties and released teams/vehicles +PASS: restore missing native driving registration only for healthy owned seated crews; preserve existing association and refuse invalid/released vehicles +PASS: actual convoy support preserves visual cover and ongoing approach, retries masked arrived positions, withholds unsafe moves and preserves ammo withdrawal +PASS: production support geometry rejects occupied, disallowed, blocked and too-close positions; only explicit intermediate approaches waive the firing-lane requirement +PASS: actual body observer enforces owned physical roster, local death-only candidates, native trace gating, budget/cadence/caps, immutable body-only snapshots, radio retries and confirmed suppression +PASS: own initial roster, explicit retained corpse evidence, unconscious/missing/ref transfer guards, fixed strength, no replacement adoption, detached samples, surviving radio sender, immutable convoy root/ledger, mounted capture release and lost-root unknown +PASS: delivered-only status snapshots, two missed check-ins/reply deadline, last reported coordinates, episode/replay guards, confirmed-loss idempotence, detached/validated mounted payload replacement 256-record cap and detached carried-mine radio delivery/chronology +PASS: actual failed-retask deadline rollback plus assignment cancellation/release preserves radio ownership, native waypoint lifecycle and failed-order retry boundaries +PASS: actual force ledger, finite casualties/identity/cap, routes/arrival/elevation/overshoot, server and physical guards, staggered 256-record simulated hour without world queries +PASS: actual equipment coordinator registration dedupe, startup delay, five member scans, finite component retries, unregister/stop terminal behavior and 256-group bound +PASS: actual percentage selection, native/preferred launcher preservation, failure/removal fallback, pending-operation quarantine, capture, finite two-mine grants and no replenishment +PASS: automatic inventory one-shot roll, exact item ownership, finite compatible ammo, rejection, capture/stop, deletion, loot and late callback quarantine +PASS: enabled/valid catalog eligibility, category restrictions, content filtering, GUID deduplication across factions and bounded catalogs and exact weighted ticket boundaries (100:1, zero excluded) +PASS: actual engineer native group-envelope admission and phase cancellation, preparation/deadline, original custody/identity, once-only callback removal, cancellation quarantine, withdrawal/clearance, native refusal and owned-action cleanup; native execution untested +PASS: actual mine selector respects road and settlement flank safety; native boundaries doubled +PASS: actual HQ and post ledger: second delivered post, one query/tick,2 active/32 jobs,4 consumed lifetime attempts, no-stock/query refusal consumption, pending old job and original identity constraints +PASS: actual mine post ledger immutable history, strict chronology/evidence, aliases, >160m separation, detached sites and finite4/32 consumed attempts +PASS: actual objective heading/threat/approach rules, persistent doctrine weight, fresh-contact coverage invalidation, stale-sweep rejection and atomic radio retask ownership +PASS: actual bounded delivered-negative coverage, replay/freshness/expiry/invalid guards, oldest eviction, small-circle and nearest-unswept selection, reserved-cell exclusion and cleanup +PASS: actual five/six bounded hypotheses, observation-relative ETA, future lead, hiding/reverse, local negative weighting, immutable report lineage, road bends/heights and finite cache budgets +PASS: actual10/40m local negative patches, same-cell hidden-ground preservation, proportional residual belief, replay, chronology, physical-report guards, caps and cleanup +PASS: actual operation selection/replay, pending reservations, detached reports, identity/sequence/time gates, terminal lifecycle, bounded ledger, finite roles, no shadow mutation or hidden-player inputs +PASS: actual squad judgment, stable caution, delivered casualty/contact/ammo trends, isolation, replay/time validation, recovery hysteresis, no invented healing or enemy knowledge +PASS: actual terrain survey chooses usable cover/concealment, preserves search and bound envelopes, honours finite support, delivered evidence, ownership, async tiles and shared geometry budget +PASS: actual-action speech, finite current cover, local search wording, silence after replacement/transfer/stale queue, stable cooldown and optional direct speech +PASS: actual hunter reservation ledger, pending/delivered replacement, independent six/eight caps, stale/empty status, finite observation deadline, no hidden force-position lookup +PASS: actual coordinated adapter report gates, local evidence, delivered-force snapshots, ownership/lease checks, continuous-contact arbitration, legacy isolation and shadow no-native-order boundary +PASS: actual execution lifecycle, original physical arrivals, failed movement, quiet footprint, local support expiry and delivered report acknowledgments +PASS: native support wiring requires own activity, soldier suppression, actual projectile event and immutable roster; no waypoint-completion arrival shortcut +PASS: actual finite native LOD leases restore prior overrides and protect transferred agents, player ownership and intervening overrides +PASS: actual waypoint pause/resume owns only its finite order, preserves unrelated routes and cannot resurrect a superseded or deleted hold +PASS: installed native priorities authorize group suppression71 over ordinary combat70, below native healing80; tagged soldier suppression91 yields ammo100, retreat110, medics111 and immediate danger (action SHA256=dbc652e6885f5d52d9dcdd465f74a7f8eb742eeb7f3a47d38fd11bb8b93ed1d8) +PASS: actual suppression and projectile methods retain a fixed eight-second last-seen area, deny blind support, require exact owned behavior, preserve finite ammo/shot budgets and bound retries +............. +---------------------------------------------------------------------- +Ran 13 tests in 0.733s + +OK +PASS: actual coordinated runner admission and explicit blocked-only engine flag; no native launch +PASS: actual HQ active/pending reservations, interruption, committed replacement, bounded coverage and unchanged force counts +PASS: actual bounded pursuit roles/objectives/scores, stale search degradation, physical/busy/home guards, finite lifetime and two-bearing escape gap; no hidden player reads or spawning +PASS: actual finite45..110 radius and both ordinary search queue snapshot expressions +PASS: actual HQ memory rules/service preserve delivered snapshots, chronology, replay bounds, decay, motion limits, identity and negative-search revisions +........... +---------------------------------------------------------------------- +Ran 11 tests in 0.284s + +OK +PASS: actual session Tick + journal router delivers each grant completion and new HQ line once, without repeats on empty/unavailable feeds or unauthorized ticks +..... +---------------------------------------------------------------------- +Ran 5 tests in 0.673s + +OK +PASS: actual current-controller/admin/mode authorization, per-round anti-replay, token-rotation refusal, command/snapshot throttles and client scope; owner-only replies and player-tool cleanup wiring +PASS: mission provider registration is idempotent, optional dispatch is ordered, status aggregates, journals preserve cursors, aliases stay with their addons and topic help is bounded +PASS: actual menu command routing covers all menu settings, rejects unsupported keys, gates companions, and matches unique authored widgets +PASS: explicit weapon retention buttons use the same ready/authorized server command path +PASS: restart toggle submits authorized settings commands; Mission controls fit without overlap +PASS: item editor, preset controls and dynamic item-row layout are structurally valid +PASS: selected choices remain green/red and fully visible when disabled; unselected choices return to neutral +PASS: probability editor and weighted item-row layout have all bound controls +PASS: panel fits narrow/large-DPI viewports, restores requested size, avoids repeated writes and preserves user DPI +PASS: catalog requests use authenticated sessions, independent admin page selections, loaded-mod allowlisting, bounded pages and allowlisted item mutations +PASS: whole-catalog multiword/case-insensitive search, name/path matching, enabled/disabled filters and large result sets +PASS: optional vehicle discovery excludes parts/wrecks/base templates; bounded custom patrol crews accept cars and gun crews without extra bodies +PASS: actual item rules, shared-source conflicts, missing/returning mods, bulk reset, independent named presets, bounds, malformed data and failed-save state preservation +PASS: actual summaries preserve queued/delivered meaning, clear counts and IDs; raw records, legacy display, cursor gaps and RPC limits remain intact +PASS: actual admin body authorization, god restoration, vanilla item deposit, callback completion/failure, timeout quarantine and stop/revocation paths +PASS: same-body revoke/regrant preserves pending insertions and timeout quarantine; new-body binding isolates late callbacks and never inherits god mode +PASS: actual Intel commands distinguish status/start/failure, preserve authorization gate and reject malformed requests; spent ledger is idempotent, server-only and bounded +PASS: actual reroll snapshot, authority, cancellation, ownership, accepted operations, quarantine, bounded work and stop methods; no native runtime claim +PASS: production Intel feedback coalescing, rough secrecy, rate limit, bounded dedupe, local/remote delivery and round cleanup; native UI/RPC not exercised +PASS: actual per-squad bounded report selector rotates visible targets, survives ordering/turnover, records only queued attempts, and preserves radio intake ordering +PASS: actual action denial/clearing, server request failure, single submitted-result feedback, current rescuer identity and terminal/stop suppression; native UI/RPC pending +PASS: actual physical denial precedence and transport-seat occupancy/reservation/access/lock checks +PASS: actual initial admission exhaustion and ServerTick grace; new/pending/empty/controller/life guards, normal death preserved +...................... +---------------------------------------------------------------------- +Ran 22 tests in 0.234s + +OK +...................... +---------------------------------------------------------------------- +Ran 22 tests in 25.197s + +OK +.................. +---------------------------------------------------------------------- +Ran 18 tests in 2.945s + +OK +......... +---------------------------------------------------------------------- +Ran 9 tests in 2.263s + +OK +............... +---------------------------------------------------------------------- +Ran 15 tests in 1.132s + +OK +PASS: actual field result/braking observer and Chat dispatch rules; one finite fixed candidate, deferred callback failure and guarded cleanup; no native measurement +PASS: actual opt-in terrain audit records one fixed1681-point grid, preserves original survey refusal/success and exact no-allocation scope; malformed heights stop without retry; no native data acquired +.... +---------------------------------------------------------------------- +Ran 4 tests in 0.652s + +OK +PASS: actual field PI/ramp/vector caps, antiwindup, braking hypothesis, immutable admission limits and segment bounds; no native physics tested +PASS: actual100m whole-field survey sampling/4096cap, rotated coverage, all-node terrain and native trace refusal; original certificate lineage retained; no native qualification +PASS: actual QualifyField preserves original identity/footprint/time, orders complete surveys before issuance, and refuses failed stages/moved body/expired or changed world; native boundaries faked +PASS: WORKBENCH first-refusal diagnostics preserve ordinary predicates, query order/count/budget and opt-in scope; no native logging run +PASS: actual field startup delegation, immutable lease/target, braking/settling/cancel transitions, early abort, callback scope, physical terminal policy and shared landing demand; native boundaries faked +PASS: actual inherited airborne pre-CLIMB cancellation enables verified native autohover once, refuses failed enable and never writes after capture +PASS: actual Core maintenance/default/tick/stop methods; empty/populated authority, terminal reentry, no tactical resume or new scheduler; native boundaries substituted +PASS: actual finite registration, unique claims/tokens, retention/cancel/stop, readiness gating, capture/expiry retirement and bounded cross-kind order history and typed field/route construction; native boundaries faked +PASS: actual WORKBENCH route observer returns exact retained route subtype and refuses absent/field controllers +..... +---------------------------------------------------------------------- +Ran 5 tests in 0.656s + +OK +...................... +---------------------------------------------------------------------- +Ran 22 tests in 0.174s + +OK +................ +---------------------------------------------------------------------- +Ran 16 tests in 9.758s + +OK +...... +---------------------------------------------------------------------- +Ran 6 tests in 0.017s + +OK +PASS: actual production bridge lookup, lease/world/mode/seat/capture guards, no allocation, native super ordering and read-only fixture hooks +............... +---------------------------------------------------------------------- +Ran 15 tests in 0.059s + +OK +............. +---------------------------------------------------------------------- +Ran 13 tests in 4.831s + +OK +PASS: actual route gain/caps/braking, callback selection, old landing/cancellation control and matching read-only telemetry +.............................. +---------------------------------------------------------------------- +Ran 30 tests in 0.370s + +OK +.............. +---------------------------------------------------------------------- +Ran 14 tests in 0.203s + +OK +......... +---------------------------------------------------------------------- +Ran 9 tests in 0.105s + +OK +PASS: actual gate observer binds native registered action/context and current life, reads accumulated progress, refuses stale bindings and never revives outside original bounds +PASS: actual read-only look observer methods enforce explicit scope, pinned native camera/body/identity, normalized pose, terminal cancellation and original sample/time bounds +........... +---------------------------------------------------------------------- +Ran 11 tests in 0.063s + +OK +....................... +---------------------------------------------------------------------- +Ran 23 tests in 0.030s + +OK +PASS: actual initial WAITING task/guide copy, configured duration, unchanged interruption and rounded progress; native task assertion pending +........ +---------------------------------------------------------------------- +Ran 8 tests in 0.014s + +OK +PASS: actual inventory adapter scope, grid placement, sole compatible host, refresh reuse, rollback, foreign hierarchy refusal and exactly-once native delegation; native compatibility pending +................................................................................. +---------------------------------------------------------------------- +Ran 81 tests in 0.542s + +OK +...... +---------------------------------------------------------------------- +Ran 6 tests in 0.072s + +OK +................. +---------------------------------------------------------------------- +Ran 17 tests in 0.004s + +OK +........... +---------------------------------------------------------------------- +Ran 11 tests in 0.079s + +OK +......... +---------------------------------------------------------------------- +Ran 9 tests in 0.333s + +OK +PASS: actual observer nonce, admission pins, baseline/menu sequencing, snapshots, bounded clocks/samples, cleanup and one-attempt latch; native untested +PASS: actual corridor caps/height/hold and whole-rectangle survey bounds, terrain refusal, native trace refusal and exact certificate lineage; native route unqualified +PASS: actual route entry, fixed corridor/target, hover hold, cancellation landing freeze, shared lease/capture/deadline gate and unchanged native startup/tick sequence +PASS: finite opt-in route fixture, original native input order, meaningful physical-arrival evidence and guarded cleanup; no native launch +PASS: actual Chat route step result dispatch and scoped completion/cleanup wiring; six real early-parser refusal paths leave no prefix/profile output +PASS: actual retained-service fixture entry, immutable controller/token/deadline/count bindings, observer getter and cleanup ownership ordering; native route validation pending +PASS: actual measured cancellation gate, one-shot retained service Stop, no premature drain, immutable lease, fresh real controller readback and separate physical cancellation result policy +PASS: actual rough-intel objective selection, exact precedence, source grid dimensions and unchanged other-phase dispatch; native UI pending +................................. +---------------------------------------------------------------------- +Ran 33 tests in 0.090s + +OK +............... +---------------------------------------------------------------------- +Ran 15 tests in 0.035s + +OK +PASS: actual preparation status scope, persistent updates, spinner restoration, placeholder replacement/deletion/destruction, native observation persistence/timeout; rendering remains native-pending +PASS: replaced respawn system receives frame updates, disabled updater wakes, stale/non-Escape binding refused; terminal and stale preload leases release black overlay +PASS: actual guide ownership and scoped timer cancellation, current-controller preservation/reacquisition, hint retry/dedup and observer boundaries; native UI not exercised +PASS: actual native-end shutdown, existing terminal snapshots, reentrancy, unchanged native end data and stale preparation guards +.... +---------------------------------------------------------------------- +Ran 4 tests in 1.334s + +OK +PASS: actual three-state result wording and UI refresh; stale winner IDs never manufacture escape +........... +---------------------------------------------------------------------- +Ran 11 tests in 0.104s + +OK +PASS: actual immutable target, bounded autohover demand, drift refusal, five-second hold and unchanged qualification/deadline +PASS: actual admission attempt budget bounds blocked/missing prerequisites; preparation, spent life and async pending remain protected +PASS: delayed admission retry retains controller ownership across same-account recycled connection IDs +PASS: actual scene deadline overrides delayed native preload only for rejection; late completion cannot assign, ordinary verified admission preserved +PASS: actual action permission matrix unchanged; useful phase/intel/consciousness denials, stale reason cleared, native door denial preserved; no native UI claim +..... +---------------------------------------------------------------------- +Ran 5 tests in 0.198s + +OK +PASS: actual aircraft cancellation/stage rules, ground-only completion, expiry/capture faults, input ownership and no physical shortcuts +PASS: actual exact-instance single-use qualification, native-clock staleness/movement refusal, footprint bounds and ownership-safe ground/fault cleanup +PASS: actual optional screenshot helper flag/identity/world/life revalidation, one queued attempt, delayed capture and mission/world cleanup; no native image/presentation claim +PASS: actual yard diagnostic exact registered prison ownership, eight native-bound corner projections, no root-sibling escape, bounded duplicate/deep/wide hierarchy traversal; native projection/mask still unmeasured +PASS: actual CurrentActor, SpawnPosition and observer-selection methods reject pending/unregistered/replaced/recycled/foreign bodies; canonical live selection and roster-corpse cycling, unconscious following and prison/geometry fallback preserved; native boundaries adapted +PASS: actual native-map fixture ownership, cleanup and callback evidence fail closed; native execution remains separate +PASS: actual shared-map callbacks bind exact map/config/root, preserve replacement UI/camera, defer focus, and remove only owned delayed work +PASS: actual Intel/HQ methods and one-shot qualified readiness handoff deliver late actors once; duplicate readiness, accepted spawn, pickup/drop, death and original negative rolls do not mint assignments +PASS: Workbench-only read accessor rejects unknown/nonserver identities; Chat observes all distinct ready crew before existing shell-depletion mutation +PASS: actual native-event latch survives deselection, requires exact activity/order, detaches before cleanup, preserves failure/timeout and never infers completion from physical shot count +......... +---------------------------------------------------------------------- +Ran 9 tests in 0.104s + +OK +PASS: actual refresh-fixture gates pin immutable observations/actual downlinks/original activity, reject unaccepted or relabelled commits, stop queueing early and require all queued contacts claimed before replay +.......................... +---------------------------------------------------------------------- +Ran 26 tests in 0.194s + +OK +PASS: actual refresh scheduler/delivery/cancellation/projectile methods reject interrupted or replayed reports, retain committed ownership, preserve immutable snapshots/aim geometry and isolate stopped or replaced orders; native radio/crew behavior remains separate +..................... +---------------------------------------------------------------------- +Ran 21 tests in 0.034s + +OK +........... +---------------------------------------------------------------------- +Ran 11 tests in 0.037s + +OK +PASS: actual full-salvo gates require eight fresh committed physical launches, natural closure and exact finite inventory; reject partial/extra/replayed events +PASS: actual reason/availability guidance and refresh matrix; no-target copy omits cycling, hint retry retained, existing command/admin paths unchanged; native UI pending +PASS: actual client camera policy closes immediately on healing or mission end; late unconscious metadata cannot keep the view active +PASS: actual open-chat capture/context renewal and camera/menu priority, text-entry isolation, held-key release; actual revival camera handoff with editor close/retry, missing camera, replacement body and stopped round +................usage: test_native_package.py [-h] [--project {core}] --session SESSION + --compat COMPAT [--steam STEAM] + [--timeout TIMEOUT] + [--external-addons EXTERNAL_ADDONS] + [--silent-workbench | --exit-after-init] + [--continue-on-failure] +test_native_package.py: error: argument --exit-after-init: not allowed with argument --silent-workbench +................................ +---------------------------------------------------------------------- +Ran 48 tests in 22.768s + +OK +....... +---------------------------------------------------------------------- +Ran 7 tests in 0.236s + +OK +.................. +---------------------------------------------------------------------- +Ran 18 tests in 5.983s + +OK +.... +---------------------------------------------------------------------- +Ran 4 tests in 0.267s + +OK +.... +---------------------------------------------------------------------- +Ran 4 tests in 0.057s + +OK +PASS: actual finite-courier age, token, exact ownership/callback and delivered-status admission reject stale, replayed, captured, canceled and ambiguous work +PASS: actual native-gun ownership gate rejects player/foreign/replaced/dead occupant, faction change, missing seat and missing registry +PASS: four-battery courier selection preserves pending trip/report/transfer identity, skips unavailable crews, and selects the next depleted battery without new stock +PASS: 64 bounded distinct storage candidates; native gates, five-store barrier and finite-stock ownership retained; native placement pending +PASS: 128 coarse+80 local refinement+169 airport grid candidates retain all native clearance gates; real terrain untested +PASS: actual prison registration/crossing policies reject missing/duplicate/destroyed initial gate, incomplete ownership/scan, outside-only body, jumps and stale samples; physical exit independent of later gate damage +PASS: actual prison door execution blocks direct AI/UI bypass while locked and delegates unchanged native action once after unlock and permission approval +.................. +---------------------------------------------------------------------- +Ran 18 tests in 1.808s + +OK +..... +---------------------------------------------------------------------- +Ran 5 tests in 1.074s + +OK +PASS: native local-admission snapshot rejects changed life/key/body/participant/pending state; authentication is not simulated +PASS: actual mortar report ledger prevents duplicate response after cancellation, expiry and interleaved reports; native scheduler separate +......... +---------------------------------------------------------------------- +Ran 9 tests in 0.012s + +OK +.... +---------------------------------------------------------------------- +Ran 4 tests in 0.132s + +OK +PASS: actual aim renewal requires fresh same-report solve and original-command equivalence; native firing untested +......... +---------------------------------------------------------------------- +Ran 9 tests in 0.056s + +OK +PASS: actual startup/generation/ownership/timeout/callback policies and native-counter wait; integration preserves one-shot allocation and pending-crew cancellation +PASS: rapid mortar cycle counts eight physical rounds once and waits for native completion without a ninth aim or shell +PASS: actual probe binds native events to fresh immutable commits, permits delayed emission, rejects unrelated expiry closure and premature stop +PASS: actual noSplash Load body requires both explicit diagnostic and noSplash, preserves vanilla otherwise, and handles repeated Load/reload +PASS: actual fixture method permits one native resilience operation and restores either prior protection state, including failure paths +PASS: actual safe-exit boundary policy, native action/door selection, stop/cache cleanup, separate old mechanism and opt-in runner contracts +PASS: actual one-shot deadline/stability policies and preparation ownership, fuel, cleanup integration contracts +PASS: pending-only cancellation retires copied instance intent, preserves physical/control actors, and stops once +PASS: actual short-cast hit, upward support normal, no self support and no dynamic support +PASS: actual committed-ticket structure preserves reservation after death, rejects missing bodies/seats and ends at observation expiry +PASS: actual pending callback expires an empty-server reservation once, preserves its full lease, and cancels on completion/Stop +PASS: rescue lease expiry/reordering, fresh five-second settling, independent rescue ranges and grounded upright aircraft motion boundaries +PASS: requested guard population requires complete physical conscious membership before deadline +...................................... +---------------------------------------------------------------------- +Ran 38 tests in 0.018s + +OK +.......... +---------------------------------------------------------------------- +Ran 10 tests in 0.002s + +OK +..... +---------------------------------------------------------------------- +Ran 5 tests in 0.932s + +OK +PASS: authored radio/optional-site bounds and physical horizontal/vertical boundaries +... +---------------------------------------------------------------------- +Ran 3 tests in 0.001s + +OK +PASS: all phase transitions, terminal states, defence boundaries, stale/future observations, intel discovery +PASS: Core document-discovery alias, companion-only alias exclusion, strict integer parsing and setting boundaries +PASS: player admission phase/life/identity/controller matrix, preload displacement limits, pending reservation overlap and owner exclusion +PASS: actual gate and pre-inventory document guards reject noncanonical/faction/life/disconnect/server mismatches; canonical reconnect and unconscious carried intel preserved +PASS: WB-only native fault injection restores both body mutations before checks/returns and requires eligible held-document negative/positive proof; runtime pending +PASS: actual discovery coordinates disclose stable 500m cell center until identified, then exact point, including negative/boundary coordinates +PASS: hidden/anonymous/rough/identified markers, toggle transitions, prepared sites, no identity leakage, intel discovery and replicated authority wiring +PASS: actual local admission context/selection/latch, same-round late identity, replacement/mode failure, fresh round and untouched network path +PASS: prison search packs 16 unique 3m-spaced inside-wall centers, prioritizes inner/edge positions and never bypasses clearance +PASS: physical body occupancy rejects overlap, permits diagonal neighboring slots, and excludes own body and unrelated broad-phase bounds +PASS: recovery state excludes dead bodies, preserves reservations, requires controlled rescuers and distinguishes empty/all-dead teams +PASS: actual native-probe lifecycle/counters with doubled boundaries; fixed deadline, exact seven sources, true forwarding, async close, no late updates and selector wiring +PASS: actual one-argument adapter, explicit refresh, native initialization flag, duplicate/blood ownership, rebind/detach/destruction and foreign-mode transparency +PASS: authority-scoped slow recovery, bleeding pauses resilience, medicine unaffected, player-only lethal damage cap without healing +PASS: bleeding severity survives low health, retains armour, causes no knockout and restores the actual damage/blood-loss cap +PASS: viable passive recovery survives native delay; bleeding, disabled/full effects and low-blood resilience do not block defeat +PASS: actual combat injector admission/effect alignment; mild blood-only refusal, native threshold equality and all existing useful treatments preserved; engine consumption untested +PASS: every minute round-trips, malformed clocks rejected, defaults limited to added keys, progression bounds and day duration aligned +PASS: native settings policy matches calendar boundaries 1900-2050, date/profile parsing is strict, authored defaults preserve old worlds +PASS: view-distance bounds, default, save failures, command parsing, temporary ownership, server/platform limits and lifecycle wiring +..... +---------------------------------------------------------------------- +Ran 5 tests in 0.567s + +OK +. +---------------------------------------------------------------------- +Ran 1 test in 0.349s + +OK +PASS: radio authorization/discovery/phase matrix, exact distance limits, defender handover, interruption, empty samples, clock regression and duration boundary +PASS: actual radio feedback policy, initial wait, interruption persistence, resumption and terminal/new-round reset +............... +---------------------------------------------------------------------- +Ran 15 tests in 2.158s + +OK +.............................................. +---------------------------------------------------------------------- +Ran 46 tests in 0.830s + +OK +PASS: legacy values preserved, unsupported fields reported, invalid data rejected, existing files protected, runtime bounds aligned +PASS: failed initial settings promotion leaves defaults writable after restart; prior/fallback saves survive copy, readback and mismatch faults +PASS: real-carrier shortest-hop paths, 500m boundary, three-hop cap, no-manpack failure, three-second originating-call interruption, unchanged downlink hop timing, completed-hop survival, interrupted final uplink, radio loss, capture, motion, timeout, reset and network bounds +PASS: migrated aircraft availability policy (controller migration still pending) +PASS: migrated salvo offsets are deterministic, spread and bounded (native firing and complete salvo qualification are separate) +PASS: 48 prefabs have unique saved root entity IDs +PASS: 299 original script entries tracked across 18 unfinished responsibilities +PASS: 1 isolated addons, acyclic dependencies, 158 unique resources, exact vanilla/authorized external references +All repository checks passed. Native compilation and multiplayer tests are separate requirements. diff --git a/docs/evidence/vehicle-roles-2026-11-06/source-comparison.json b/docs/evidence/vehicle-roles-2026-11-06/source-comparison.json new file mode 100644 index 00000000..3373dc24 --- /dev/null +++ b/docs/evidence/vehicle-roles-2026-11-06/source-comparison.json @@ -0,0 +1,736 @@ +{ + "matched_production_files": { + "addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt": "16b263bcb2fb3ae361367a600753a829425620d2e6b350a891c51fba47437ab6", + "addons/core/AI/BehaviorTrees/ERR/MortarRapidFire.bt.meta": "f2a44ece28891240e6bfa1d01af29428adcadbe82c80e287eb33cd5e58f1f90a", + "addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat": "0a536cd31d1917965ab36d33e273a881be384eb8b863eb5da03d1666e141d45a", + "addons/core/Assets/Items/ERR_Atlas/AtlasCover.emat.meta": "9f4d59cd6d103547e3e494baf7cc8fce70f31f87c66fe6d26b70011bbd27e38b", + "addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat": "88a2c1061c01eb96ce8a0f753bd3e89e1d7af01471ccc4abb4774a7aa9a532fb", + "addons/core/Assets/Items/ERR_Atlas/AtlasPaper.emat.meta": "e0093b7df155499444f93a1148a07f66cc755489192db17c81f4035d17378efb", + "addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat": "9877c5b175c5f30dd80bea36c711b21ab38219aa7075adf9ae79932e1d4c76bc", + "addons/core/Assets/Items/ERR_Atlas/AtlasPrint.emat.meta": "33a9eaa49871813f2e8537f071ea0f5a4422eb08d536355a47314b6b6d845b19", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf": "48dc42771b7e44994839dfabe9b007c23e37bd9be900196c757f42351e5c6b04", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agf.meta": "c081aec31c927c0c374dcc0f8eb3eaec498f71cb0e2ac746879b926f8dc7d00e", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr": "8ec57b278c9d63324d00f7af62abf75230c5ef631d1cc070661585ee235c8a1f", + "addons/core/Assets/Items/ERR_Atlas/AtlasTurn.agr.meta": "b045e26f86116703d1b3599fdf747b413cc0064d8101eff659ded0355eff31fe", + "addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat": "372247aac7b84ddf6c66e276d03321d22496e65726f55e490ee7287a90151318", + "addons/core/Assets/Items/ERR_Atlas/AtlasWire.emat.meta": "ea10c7bd630b31febf511fb28a42cc73597fcc1e3010597dc074c651813ede94", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.fbx": "03a654900103878223ab5c4a42e71d17022ca4885ced71b99c67d8c91652b5fc", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.txo": "9838bcb2e4ff1cd649586535ca7d5ad2497e6118cdfb76b8aadabded9cafb938", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob": "a4602d65e84cec1b23b6b09b5bc5847cbd52efe82925986c6eaf1c43bec1ac78", + "addons/core/Assets/Items/ERR_Atlas/ERR_Atlas.xob.meta": "04f4039be7950ca393ea74469898dabcfec4dc8b8f9e08068898c00333445878", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.fbx": "4ca13bbeafaa0dc0bf007ae9024b8d6c2a5279afc62e0ebc227e2bec2ad67a30", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.txo": "8ed37705192d3d9b18f26b5deb51af6f2a6d694e7e2dcdbd04b317497610b50d", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob": "fe6ea401412fdbb3bb46367cf7dc9215f7d01c6373c8ac954cbf23f2a6927bf7", + "addons/core/Assets/Items/ERR_Atlas/ERR_AtlasLeaf.xob.meta": "492a44fc323d3df469753d4bbbc35ceb3d362e734f48083ba633b3de5dd42d8b", + "addons/core/Configs/ERR/AdminMenus.conf": "5a4b405060135efd0f7faf913c7f061f6250a1e6e9d27f2bb394281d784b20e6", + "addons/core/Configs/ERR/AdminMenus.conf.meta": "5faf5ddc0a51c1d0f82d60af00d91edc22fe9c39aac50d8d04b772a2c9271be1", + "addons/core/Configs/ERR/Content/Registry.conf": "546a5a407c9e6c25c9157ae4392898fa3f40c04c7956649e62201f9ac0ba187c", + "addons/core/Configs/ERR/Content/Registry.conf.meta": "046aa988bf8e972afcf7a60b6f2312f605f016f98625dbbd9cd75ebf9ea88800", + "addons/core/Configs/ERR/EveronSites.conf": "781a9a3f4d2d4ea5b913fbfd15c2f1a991efdee7e033b7ba4241ad632609f52f", + "addons/core/Configs/ERR/EveronSites.conf.meta": "d5fe68025ef4e7c1e16082cf5873b7c7172eacbfaef4ab29b7e0e3c98f8dca56", + "addons/core/Configs/ERR/Factions/MissionVehicles.conf": "5f74f4a7089c7e7b54ad62463159ce8f0bab25a6b85268dc3872ea6001e048fb", + "addons/core/Configs/ERR/Factions/MissionVehicles.conf.meta": "00c368b6271d3440cc8bf627b03a384d247635723923fc5ad2104b8b4007b035", + "addons/core/Configs/ERR/Factions/US.conf": "4c3da063abb6e3ee39a6e4e0c5a9ffd5eae9d209d58470ea18b45dba5528db1b", + "addons/core/Configs/ERR/Factions/US.conf.meta": "a05469aef028e9e17eba545e81e2af2887b59f0fef17dac51a23c7b8155e381b", + "addons/core/Configs/ERR/Factions/USSR.conf": "407ea27f80a64c5184c089d43cdd0bdabfc5974c84f1d2a245081fdf2afa3f30", + "addons/core/Configs/ERR/Factions/USSR.conf.meta": "057397d97096346791b51b7b13fbe18af218bcf78e9984d9c01b49a2403de611", + "addons/core/Configs/ERR/GameOverScreens.conf": "1bb83c26a57d64595e91c3ba7926987e22b33dce2c6c876016e3ec2d04f9eb2a", + "addons/core/Configs/ERR/GameOverScreens.conf.meta": "eb654b745c0b97b41c991694569ef4877a3c2315e0826f9556337cd68690843e", + "addons/core/Configs/ERR/ObserverInput.conf": "1efd2e1823f80e6b8a3e4a697cdeb72dd87888ec5a2d16ae289937575b880072", + "addons/core/Configs/ERR/ObserverInput.conf.meta": "9714dce6c38ee81bcc513c8ebef51d7af63fd15bcdda2e40946937c625dc3ba4", + "addons/core/Configs/ERR/Telemetry.conf": "12d895ba4fcd159e23c2f3e94dc59e6f1e54702470cf0b1dad7d04f15572cf7a", + "addons/core/Configs/ERR/Telemetry.conf.meta": "afd52b410ce1a1026f4b0900b10aae2ee50c30764a212a59668233f4f8b8c5a1", + "addons/core/Configs/ERR/Tests/LegacySites.conf": "3864eb638d0ed4dd313013d2d787f975ae6ce4bbe238569919f76b73d5f7ca42", + "addons/core/Configs/ERR/Tests/LegacySites.conf.meta": "097ac7daef4fc18344699a8471fdd77f9d158f8c70bab394068d7a08e4777ac0", + "addons/core/Configs/ERR/VanillaFactions.conf": "db890b61b48ee15484041fd2245a862d9fa9e7ba21b1229c281ff37c448a35b1", + "addons/core/Configs/ERR/VanillaFactions.conf.meta": "ac77725c0c21974991ef47a466b88122e939de8b46fd23e68889e7674cbb2bfd", + "addons/core/Materials/ERRM_MapRenderTarget.emat": "4ab251037d40a850e3767c0de85136842bcd4fd130eda47bf8e19352b0d030e3", + "addons/core/Materials/ERRM_MapRenderTarget.emat.meta": "5ee1a705f8011a44020ca2691f5ccc17d44bf596fef9a36e98d1f267eb58fab0", + "addons/core/Missions/ERR_Everon.conf": "c6cce48484301a76b81f3a0cd76a4012f5808b901754d4114034e92beeefcff3", + "addons/core/Missions/ERR_Everon.conf.meta": "0a23c98bf83873536c65fa17d38dea33a1d7b9e4ab210f90633ff688abcc551f", + "addons/core/Prefabs/Characters/Core/Character_Base.et": "74a6f03a1e76173a0cfa20b23c711d02e70bac810d6743e16c60476bfe5be457", + "addons/core/Prefabs/Characters/Core/Character_Base.et.meta": "c6b142d1985719236268cdf12ac522fee4b1206871a6f22b568d9198d1fcc077", + "addons/core/Prefabs/ERR/AssaultParachute.et": "b556997989605e2a05982418b7e9f26d12d427eb3ea6e3bc50e85c67ea7aa4b8", + "addons/core/Prefabs/ERR/AssaultParachute.et.meta": "e9dea2d533ad1ce6ce689e0e2815c97a6382e1b90c35ce1efa88a885527e8e18", + "addons/core/Prefabs/ERR/CombatEpinephrine.et": "aa57d78bae861dc4a0fc509f7916190d2f2f0b36a1c3867f9bf9a071717cd7f5", + "addons/core/Prefabs/ERR/CombatEpinephrine.et.meta": "0e19ebd1dd4d81f739125a4dcbff898424ffe39572c2668bd56455d939b3f604", + "addons/core/Prefabs/ERR/ConvoyCrew.et": "29a525a29605386dfcf292dc2316e9fc7650ce39db9fbaa4ce4372ad0de66db4", + "addons/core/Prefabs/ERR/ConvoyCrew.et.meta": "0a909a15b7dcca34202ded136b3bdbbe8898153c9589e1cce1388433d362da02", + "addons/core/Prefabs/ERR/CrashSite.et": "8d06afe6e2db8986f06a7c5d6649e52df009f9eead7345bf2b477f50a0725b3c", + "addons/core/Prefabs/ERR/CrashSite.et.meta": "0f54fe80ed96394374c1922e1d0b05f7e0200ce5b979ff58325b033f51641f69", + "addons/core/Prefabs/ERR/CrashWreck.et": "f5de4785c0e3cdf02f1d5372e9b01171bd5a37acb9c36aa2a94bae3f429b2272", + "addons/core/Prefabs/ERR/CrashWreck.et.meta": "bde3299bdbbddb91d2ef471b61035b6cced29899cff4cd90c080fe584ce63f26", + "addons/core/Prefabs/ERR/Epinephrine.et": "e09c70b3d47a4dc5b92fd332c8222b99554b28a8a0c93cb5caac18eec4501571", + "addons/core/Prefabs/ERR/Epinephrine.et.meta": "f1861f0b0ccace1b7b3d9c29768e37a83bf0c6fae5a411b1bd61d6b2eec7ed89", + "addons/core/Prefabs/ERR/Extraction.et": "4d24c7811415c06386205e5bf5c132a23fcf21e96c75c7657ccd5f3ac914ac50", + "addons/core/Prefabs/ERR/Extraction.et.meta": "c2a838633001e2e3a202d39cb33aa744ebcd996017ad032359069641b5d13853", + "addons/core/Prefabs/ERR/FactionManager.et": "d34a8bbc5dce259c4a467c7bfa2ba746683bbeb9448de8c226856e65319f4911", + "addons/core/Prefabs/ERR/FactionManager.et.meta": "9bf53d5e4bcbe60dd1a4ece1409fc23c349055c860708620f5f6e9716290a97d", + "addons/core/Prefabs/ERR/FieldCover.et": "e403d5cb3a5966f0cea81f15e0e825d482ba1a7a27b12498319ba45a414963b0", + "addons/core/Prefabs/ERR/FieldCover.et.meta": "83461ffa76244e1d69f20b053a9741ccdf7d127009182bd540a7e5ba6150c3d9", + "addons/core/Prefabs/ERR/GameMode.et": "a2b7e632714e646a7010592cc7ac75f0afff7da6c995bf91aaf65d9473a6af3f", + "addons/core/Prefabs/ERR/GameMode.et.meta": "106769cd34525c9d440057072836cb7401a6752148c40edd7fe61c03bd58328c", + "addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et": "0157bc235eeb78a0e1373b561fd22a1dcb225c833ff7c2d4abae688bca0ec92a", + "addons/core/Prefabs/ERR/Items/EmergencyRepairKit.et.meta": "da6f065cb2414b5a4cbe9ef0f0b1295b2466f26ad406c0bddb83845d4598efb3", + "addons/core/Prefabs/ERR/MortarCrew.et": "21086e886fe3199624208c9a866f883ec109f7d08746c2b56b497e59857fb656", + "addons/core/Prefabs/ERR/MortarCrew.et.meta": "fdfd4fcd21a67c3d698fa4aadc4e5c76e665cebf4be86013bc389e493fab63cc", + "addons/core/Prefabs/ERR/ObjectiveDocument.et": "5118ecaf9d2038eea44a4b785f05d2e78781dc1387249aa58a6782c7e6752e14", + "addons/core/Prefabs/ERR/ObjectiveDocument.et.meta": "eaba9903be147b98a1106e2273e2270773df73b9b22f2cd4e20136a8e281382e", + "addons/core/Prefabs/ERR/Patrol.et": "d3eca8fe9197c57a27a285cdb3baf168b037b198d92b39df28a338ae2cfd0c74", + "addons/core/Prefabs/ERR/Patrol.et.meta": "7c5da568fa2fcf0709ee2959253cb068d7c7ed7c2467af3b247a7e70efd96b69", + "addons/core/Prefabs/ERR/Prison.et": "c0ca5219aa2d6322ba7d094b92000640b259112ff6611a745c0713c8875d09d4", + "addons/core/Prefabs/ERR/Prison.et.meta": "2e426ef3de68f4107907854b51e818bc11d84649a01c538e3f18dd9ebec766bb", + "addons/core/Prefabs/ERR/PrisonBackpack.et": "ae750f08fc9af645561f59d7e5809bd22f4cec26ca8fa6409d09730765958c91", + "addons/core/Prefabs/ERR/PrisonBackpack.et.meta": "7da6aa45467250edc910ad7230dc244d1b041e8a6f55881eb3747ce51f9212ba", + "addons/core/Prefabs/ERR/PrisonDoor.et": "b0ff94443fe334032113a663917de23f920a8b73ffadc9c8e9f11b545022b3d2", + "addons/core/Prefabs/ERR/PrisonDoor.et.meta": "b8f3db52bf186426026668fbb9d633c3cbd4d438ab301fba880398f6a0e781c2", + "addons/core/Prefabs/ERR/PrisonPatrol.et": "dc88c31cf5c415573a874f74e13572f0add9e6122c8fcad507fe82860d789c47", + "addons/core/Prefabs/ERR/PrisonPatrol.et.meta": "5528e0d778dce5ed39c3e504c6427625527127b23269d20fbf12ca2bffe52ffe", + "addons/core/Prefabs/ERR/PrisonWall.et": "9b410b7c85bb001be4601ad93f750e17b8318b850306d84f29c4dc1b02723d7c", + "addons/core/Prefabs/ERR/PrisonWall.et.meta": "0294bc5dbb56f90f8153d62459bb0a6ad91d76a479812bbec9c7db182fdb58d6", + "addons/core/Prefabs/ERR/Prisoner.et": "e6d345ac98ad9ec742bf6c3b8686839c3256df9833d31bb4bdf605cd41d0ba5c", + "addons/core/Prefabs/ERR/Prisoner.et.meta": "974278ba49fafeed70b619a0067bbc70ae4d534be441c812ce2bef4a5fb3c022", + "addons/core/Prefabs/ERR/Radio.et": "99b1d80b49d1e7f9d30aa4283772a36fd66e962369f288f5fe329c7fc911bb1b", + "addons/core/Prefabs/ERR/Radio.et.meta": "bc91137b68ba550217914fb8892bb44d7e1920e4a1086f3e506623832a44212f", + "addons/core/Prefabs/ERR/RadioCamp.et": "5e6216bf8e6e160da5d9f966c8f7c2081bf6dd16dfac1b89d682a14b3b8a6716", + "addons/core/Prefabs/ERR/RadioCamp.et.meta": "3cb8d3d553ab6d8d111a74f721cf4e69ee1011cbb90248b83cdc7275697276bd", + "addons/core/Prefabs/ERR/ReconCrew.et": "33953379ceb725bcd0cbe505cd643c94adaed17dbbfa95dadd404d6b8e345715", + "addons/core/Prefabs/ERR/ReconCrew.et.meta": "2653e8c5b1cdb857de5badd5959ddd9826a6a298ab3c166628dbb835d7104d90", + "addons/core/Prefabs/ERR/ReconHelicopter.et": "c609ee59ab145e0a1936f95726b86df643f5cc425c43924029e9c1abc69ebbd0", + "addons/core/Prefabs/ERR/ReconHelicopter.et.meta": "d80f1c3d6a6f9104562b89729996c1c92ad240f08cdcf48d4c390a09d2047c08", + "addons/core/Prefabs/ERR/ReconPilotEast.et": "d961f329823b991eafed80d085de1bd89b44a4575be98d8dac385d6b77741ba2", + "addons/core/Prefabs/ERR/ReconPilotEast.et.meta": "d73df3c896359a54514d2efcd851f579feca7a2619b76c2a38f607649a31a4f1", + "addons/core/Prefabs/ERR/ReconPilotWest.et": "8f8221927269352e55c8026ee5b00e026c281c79af6684b386f24e7dc4675fb8", + "addons/core/Prefabs/ERR/ReconPilotWest.et.meta": "4785f23bb492c6af420ee7896ddbfc9767e0db1e06de95207df2dc949a1b1814", + "addons/core/Prefabs/ERR/RescueEscortION.et": "aa5cae65250936da239c865fe1070c68a1d20b49bcef37f6bd29021f22c274a9", + "addons/core/Prefabs/ERR/RescueEscortION.et.meta": "34eef8053198a49df774792322c6d3cba81f689e56b6a418aed5a14de0913537", + "addons/core/Prefabs/ERR/RescueEscortWest.et": "6f9671fb68e2716479d96be74b80ffb29fec535f1333c5e4dc4d7b684dca1ccb", + "addons/core/Prefabs/ERR/RescueEscortWest.et.meta": "45a87304712d6a18afb0ddc5b3ccbb70da395541e21aafe9d6d3641c392eaab3", + "addons/core/Prefabs/ERR/RescueHelicopter.et": "d9b3b01a0cdb6ed779f40f14f03dfd8fe732382931cdee02ea643f260783313c", + "addons/core/Prefabs/ERR/RescueHelicopter.et.meta": "f47b4a9a72faddcb5817e396dab7c115ac05a5455e5dc8ca4c6a3e9d5fc4093c", + "addons/core/Prefabs/ERR/RescueHelicopterAFRF.et": "cbd9c88b0a0c798096c78770cdef834cebfbdfd62fa12d96b56e74c5ac60dcb3", + "addons/core/Prefabs/ERR/RescueHelicopterAFRF.et.meta": "5cf8cdd7f34e2bffccedfab0cc0cf266d3c8a6856215e797874c531eb2a3ebf2", + "addons/core/Prefabs/ERR/RescueHelicopterFIA.et": "6aa11ddd56ebc9d0aefd06e1f55c7c61136d5c703b6eddc9cc84f3bcd8c8c26b", + "addons/core/Prefabs/ERR/RescueHelicopterFIA.et.meta": "ac0b32de9818aab77ff42d244cd5165112a7764eb6d289dcfe12ec77ea0c9b3b", + "addons/core/Prefabs/ERR/RescueHelicopterION.et": "a910548e7346439af90bb87e445f056aa1799572a69f87f45addbc17dc01fd85", + "addons/core/Prefabs/ERR/RescueHelicopterION.et.meta": "426a478d15718c0193490d5381f732e4c559348f2e5e9c7eb9473a4ca3017add", + "addons/core/Prefabs/ERR/RescueHelicopterWest.et": "dbf3827f58c27d957aac23f505a24c0af2a8f6c6555a82d0962a0ee5d47efb42", + "addons/core/Prefabs/ERR/RescueHelicopterWest.et.meta": "963b5b22139a2f3496e937855854c3ffe01604b86a93f1fb63b547bc1ba29068", + "addons/core/Prefabs/ERR/ScoutEast.et": "b4593aab494c4f21637757b3daff4f349da77b4c48ec5e8a4a2917a6a12cf811", + "addons/core/Prefabs/ERR/ScoutEast.et.meta": "7c72af632537f687e92f30b52d97fc7d70dadd39d33f37e0b1004f9596f55012", + "addons/core/Prefabs/ERR/ScoutGroup.et": "8dc0fce8ee3decc1c367411b00b6d8518df9d8458281cec0881464a2ce906af0", + "addons/core/Prefabs/ERR/ScoutGroup.et.meta": "62e43fd152ce57aa4ceb2187a49e4aecdeb9f428b3a1e8318f86bb83dbf8a259", + "addons/core/Prefabs/ERR/ScoutRadioPack.et": "f1c4911e2556c0e0caa8b896982190c5e7d0433e850b4610e19442caf9117607", + "addons/core/Prefabs/ERR/ScoutRadioPack.et.meta": "825506e3d814d30a52d5dbf64124470641c07a0453543ba71426841e6c783635", + "addons/core/Prefabs/ERR/ScoutWest.et": "2681b5a3f8621adb44195f0dbca6f3e79ef7decad8f9d0dd0e1a801ec2549627", + "addons/core/Prefabs/ERR/ScoutWest.et.meta": "22a6607b4b8fe606ca75a634a0b2ac3178e7bedae7f9ff01e7a4989f3b39a3da", + "addons/core/Prefabs/ERR/SpectatorCamera.et": "761d845fc1c086da58fd87c8933bf58d46d1ff5e17cca5950141743d07c8ce16", + "addons/core/Prefabs/ERR/SpectatorCamera.et.meta": "2a16558f93915e31908a674509e9c89976470f78a84a1174a64b94b68b8f77ad", + "addons/core/Prefabs/ERR/SupplyCache.et": "4c97b0514fe7e723046f40f0b396f6573b12eb9981ca5df70b9e8aa3cf29323e", + "addons/core/Prefabs/ERR/SupplyCache.et.meta": "2f5de3a4aab1e9d0e35521f48dc57b95bd6e449c383dec4f1c258e10295904cb", + "addons/core/Prefabs/ERR/SupplySite.et": "f33681281d26676fac88736091834d5a7b87fe0fa01883582542df964dcfc694", + "addons/core/Prefabs/ERR/SupplySite.et.meta": "b41944b12eb3528ff7a3ac94258b18c66ef161aa6a38894aee300a1ac4798630", + "addons/core/Prefabs/ERR/TerrainConnector.et": "cf9cb28f5a3f41931380864a29ac979aa1d5e843456f564ac7a7de78f88e1aa8", + "addons/core/Prefabs/ERR/TerrainConnector.et.meta": "9f37c979ae282aabca29ce84beb0db851ee8b9a19f7f3a64d387c175616127f3", + "addons/core/Prefabs/ERR/TerrainTakeover.et": "63e26db48c624056350f9ee123ae5b815bc2fad392060a9c26cfcd86c0af872a", + "addons/core/Prefabs/ERR/TerrainTakeover.et.meta": "64e953e378ab1d2a75ee7246f876f4ef93ae8a4e3fddb5002d7ba37268cb959d", + "addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et": "aa857f7e8e0585839c7e9b2e3616702180779e68c6fb149d94a83c05bd52449b", + "addons/core/Prefabs/ERR/TerrainTakeoverWithChat.et.meta": "a213272011050a881c87fdd94b229e002ece24f26f25db5fe53824f8a5b147a8", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et": "29f157849f413261494a63d4d5b0a97e8bbe61cb076efcd59d6c940653f23352", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZ.et.meta": "544c94cf1c26757a10654de7856cd6cc48b821ce3bdc02add13cfe6514269915", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et": "cd4acdcecad299445952aea0adefc85f2b9e9b43f8186f100e0505c5621b3656", + "addons/core/Prefabs/ERR/Vehicles/SupplyUAZRearSeats.et.meta": "123955da03462befb90e293b3bb856d49cc761166611b38ff47cb48ec2fbe95c", + "addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et": "11185bc813c00c5bda09c0afaad78849a1c81d89843e8f7f3a14c0776b8296a9", + "addons/core/Prefabs/Items/Equipment/ERRM_AtlasLeaf.et.meta": "8cdfeb51c3774ed790a223ce74872cfbc4588fb6812a0e98136eb607dcc17d9d", + "addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et": "57dfbd215f28478a791b2e029832ddf3c363658d5dd5590cee4db9ec6a8b690a", + "addons/core/Prefabs/Items/Equipment/ERRM_SharedFieldMap.et.meta": "59093e9072c50d99c86da7609c87541016da5bcf92b98d99db4c524e1c8e0e8d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Actors.c": "7258b838f8365e4fa575c4f2ccc8532e22a33946405ebb490120534d5ca65607", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenu.c": "cac52cfb9f31ba42daed671e55bf5d55ea0840139deba5d13a0e156ec90559ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuFields.c": "55466b735c5c8f1041ac600338d55847372a71af48ba1ffbde8cce4286e55b19", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuPages.c": "fc07549ba14900998223e8c1a95f57ddb0f365d0d687ac4907b0d97ffe1612b8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminMenuView.c": "6c34557350659782bc1a098169dbbabf1f71502c35cdf711b83ce0efad907142", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminPlayerTools.c": "56780d78bf423f54f482d8620f821b8d3eb0199194482b4f12e37f5ec3f55ef5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminProvider.c": "62e05aceb49da07fed7aa89fb6b2f8eb3efc373ac09eff286fba983c3ad570eb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminService.c": "277df355d00458bf4a337b68feeb926ec4aa12c1546a604d039121a1bde7d995", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AdminSession.c": "27c88e9317ada33351042f0d1bdbd8e406fd798de34d1057544f1c6165a289b2", + "addons/core/Scripts/Game/ERR/00_Core/ERR_AirfieldPlacement.c": "0601d8da570e1f63e43ea7df451d0e997872e4e163669fd8ad37bedd59de7b9b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_BakedSpeech.c": "d11fff16f86fd3447126701af84c3800860d721263b3c2c16d3b91d686d8b2fc", + "addons/core/Scripts/Game/ERR/00_Core/ERR_BuryBodyAction.c": "adbf4cee5b5f5317b185f17738205f28b701a15364e643cc9fb443866a121109", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyGroundSupport.c": "8010394e7731d3bc2ce436cf795a37819e16d4d605e8d152027cf391e811d37c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingFeedback.c": "ac554a946cd14f73a5bf79005b8a3f770c9caaf0a6ea409134077b8d96f9433f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingGameMode.c": "1e670937736330716a467157d0f45bace512047d7e87d8678f4ae0ee123969c3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingOwner.c": "3f430930c2598951b75cba157a57967189686ca7a86aff8ecedd20f181262bbb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingService.c": "6efcfb4bb1bdf0da84400eef28a24f6c61e7f446073af2c9667b6f26f0bc47b5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ChatClient.c": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CommunityStatistics.c": "84f2615fac1375bbe3738edd13a413ef1d524dea5ce0195b05b3a957aae84435", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentDefinition.c": "bc1dd4ed27ec894cf4bd617fb226cb8140b544aaa9ef6d8654e815d81e7f6fd0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentMenu.c": "d9df3b2dd8fca119ecee466dc71d336b5a70ee7d5fced368cf34e250d22075de", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentPolicy.c": "3a4987345d5a7159234a7e1a08bf5ac40dd5a23031e9b1953fc43a0501d9924b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ContentSettings.c": "3e2734dfb935a4e93d79b66ca4a7c883723a1fc348e3595432dbf2bfca643923", + "addons/core/Scripts/Game/ERR/00_Core/ERR_CrashSiteResources.c": "832aebf6e754dba54ba28b8f480180d32ced968a2d2f192424c4007a862c2b43", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DebugAI.c": "bc5529c60591a6c36c39cdb753b1af948690fc3c3c725f38a8d595b41a499235", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DebugIntel.c": "a9f6e7e42a3214879a21052e897f9afc0653c12ff15d5bee7766e26a1af6ab17", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryMap.c": "8a8653b322c948c462002077272dae79e2f45a24e883767b3ad9c1f24caad237", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DiscoveryService.c": "552d9e40f72a135f19d25a17fbecf475b8bba8d8b62ec6b6d055c65499a0b637", + "addons/core/Scripts/Game/ERR/00_Core/ERR_DocumentComponent.c": "885c8ab4fc9e64c3f8b40056536096c8c32b011cb340b25ca00353a96da15c69", + "addons/core/Scripts/Game/ERR/00_Core/ERR_EnvironmentService.c": "c0fae5bf51ccf507bc84d44adc2d1dff021cd83653c0468b7645a4f343e3fc8d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Epinephrine.c": "14a75e040f510773313c7e70b57f338821bc1ded650bc65133968dcad6e49c7c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_EscapeGameOverScreenInfo.c": "4746b0715c6e9a527038b47d54d2ff305becea219da6b736f6998d81901143c9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionPlacement.c": "6d388fe21f08b25cbdb5dfa4e198d94a4c80c5092f8d17630a4654e18bf8b3f5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionRadio.c": "ad7fd91d8bb96f05f3be04a03fd00c20ab9413adb12d649d3020c6f7994319e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ExtractionService.c": "c48e79a117990f83839704ae221af05fc7995b956af2d4b4f9ed2a6b91ec335a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionCatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionMenu.c": "1deab4c396c307fc17dbaa8731b2943ffb73c37dc0121a5cba5c239c34901ba3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_FactionSelection.c": "04b8bd8a042cf743ab8a87ec3711f9758e7b0112995a9d363e81a63df4eabe5e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ForceLedger.c": "0ecaf1c5a52568e751678b0b1236e91e6adb538f8fbf010d38b61a312d1bf253", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ForceSimulation.c": "2bbb8888c752a3ffc042f3059937526d25ae288af5b4db024cc683025a2605ce", + "addons/core/Scripts/Game/ERR/00_Core/ERR_GameMode.c": "d26e665cf5b9c0e1dc6c5e2da200a99711ef9272718d330f5aa66b09cede40d1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_GeneratedSites.c": "4943f761d0274e163a1da325ac4f750de9180947b05b79ee173e12141bfd6661", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InitialGuardRules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryHitZoneCompat.c": "23c34f901311dce63a79aafe83c11e2fc25bd3fddb0cde38bd313eb90878ca90", + "addons/core/Scripts/Game/ERR/00_Core/ERR_InventoryLayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c": "1319637add7f9fdb122ac130784c5426d90a32380d870df03efcce7f297c55e9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationLifecycle.c": "0feee55cc5ddf13e00fe73ae3926ec2cadd5ba861d793a939164287ccbe1861d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ItemStationTeardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_JournalText.c": "1ad00a77cb0be741c7b6ef5dad2d8a8c1ff1fcca3b093df2e132ead0b69f74e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_LoadCasualtyAction.c": "1521af55a34110ce1c971b5226a618a9c6d931622abaae4946d9c0d27c05a273", + "addons/core/Scripts/Game/ERR/00_Core/ERR_LocalAdmission.c": "a076922d1ae966cf5cc67b198166ca6b1288358fb7f641207a4681e6a610a2ae", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Location.c": "6323facd2d5b32382b466a2aa0140064632a8c1de0597e0738cb09a3fcfd7abb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_MenuTheme.c": "90d9babfec7978b3d7f5baffedbbe5c1b54a9742f576f51e6232043e32d1cc9a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_MissionRules.c": "17d1f48878b02a457eebbe5ff87c4267488d68d2a9b3121dda77a8bc8e69c8c6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminMenuProbe.c": "2deded62be82adcf9866dacf8065f0c6a9a643bdd60a1c3e87990e1c70254c48", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAdminSettingsProbe.c": "73e58561e08e50008d33f81eed606dd4e8109fb69a627e892d28ca468d641f7d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAggressionProbe.c": "dcda8528a64d35e6aa2f030b59503a49ea8a85ffcc33beaecdf8da00c003b50e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeAirfieldMarkersProbe.c": "980025c07d042c2f109e2c99ccee0316b596806ba2c4fcd9446b6ad7580d1d1f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeBaseSmoke.c": "f7697361c6a056a62aff86de7f7d69e9ccf47b92121dcb96ed012ad136e47e30", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyGroundProbe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyLoadProbe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyRemoveProbe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCasualtyServiceProbe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContentProbe.c": "cb0ccfe1e1575f9ed80a8054058b471f3543378db059e6af2fed8eb42a262638", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeContractsProbe.c": "60aa767d9455f2f4958a6a47bd68bbd8ab0466adc8f1dd9ae433c40ae96c68ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeCoordinatedAIProbe.c": "9104a7a5154bf34906f135f00c5793229e343da6a1ed19dd572e3c1d9821d393", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDefinitionProbe.c": "904d8d4c3e7b91d49dadfe495fc7b4f02f300e4aaf7efa348df5ca17ec4a6e8a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeDiscoveryMapProbe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEndProbe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnemyLoadoutProbe.c": "0885ca69f6fa7f53414ce1792cfc3c49916886b8173783c634135c13c5d37429", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentProbe.c": "9e2e66ac5d9778a1c65445348e3300cbb90b68b3f669f3ddf1d2b78a858430eb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeEnvironmentRestartProbe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeExtractionProbe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionCatalogProbe.c": "e3011fa47b67122d7b2c23af8f91b7a217599d6cc114c4f9de628744b9c948d3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFactionSelectionProbe.c": "946879d822e7be2d48e03a3140aa1aad3e3d44dd18507fa3cdedb4c6d7dd81b9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightFootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeFlightInputDiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGeneratedSitesProbe.c": "a3202ee4658e98539122926755caf689a693a79642e8c88d3146c247dd961138", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeGuardCancelProbe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInfantryCombatProbe.c": "3e4c4382ab91f470357268927b954fd101685df6b2244df483f0422d6c0d7da2", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeInventoryHitZoneProbe.c": "604eacdc66cd52bc8a0115862ee7884a8b0f83bdb50609397de671eacd476543", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeItemStationTeardownProbe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLifecycleProbe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeLocalAdmissionProbe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalCombatProbe.c": "59c5b04dd32370f8cf5c62fe6931d64209825522127a068b1957e9d1556274e1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeMedicalProbe.c": "4b73e7cf35e9c8fddb089678a320ea58272e1b6611318d0a762754c171eff785", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveLossProbe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveMapProbe.c": "37e66177ee0f16fc33d3d18321211206bc4f095fccbd17b177d4b8cc1ba4e057", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeObjectiveProbe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOpeningToolsProbe.c": "0c5d6b96ed5a7cb1cf0d098d534dc7190449ed09339062e6b584729d53a61b4c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeOptionalSiteProbe.c": "59d86432c19fd85da30a63087cf1f15375c8ee30178ed7e2765c1bda4cc4d035", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePatrolProbe.c": "5a2af71cc4cfccc7dd7c23584398a38290eba1a8894cd46f6967252ff3a7087c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePoweredFlightProbe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePreparationStatusProbe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonBreachProbe.c": "4889e0d3799a6a21b9f84bcb2f2ae78dce16269cccd1329f8d1fcc1a23e7c22c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativePrisonerProbe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeProgressionIdentityProbe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioCampProbe.c": "67f1a088f9b20e5f0f11ed3aa083ffa772bffd7c74d85b7a307344ac3d47e09a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioDefenceProbe.c": "ff1e27a0ce75b123a86e7df31354831880ca62ea90b6c5d7c60d3ba168e1fff0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRadioInteractionProbe.c": "7b27552d233813894f65c08eb9f04b547c4ca9ff96a2370a763cb94bd4a555c3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRecoveryProbe.c": "d6691f22432b3ce37d07d448aeb3ce7feb5cd09e852e0167b5e4676afd24bb21", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRescueProbe.c": "78f4dc11a179a5b924c0ec1939f0fc1e61d4e6f6647729c48a9f126ee32d1714", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeResultProbe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeRoadblocksProbe.c": "6f44725b049f2545a9ce3c94ae3e9134e16077fa017a438fe4f073b453292c1e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSarkaProbe.c": "511816c4b86c9f1392bc4a1d83ad11e082280bec16356d8ab24ac1f2094bba93", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteGarrisonsProbe.c": "1a5ff8747d7501862085b5e9162043fee3b05e82c73c516ad8093aaada53dc60", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSiteSurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeSpeechDownloadProbe.c": "5377da12cabd58b9105851a2348d7496316db371bfc4346a5fb3f84f245ec013", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeStationTeardownDiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTimeProbe.c": "4a2c6ffd947334a0a71eac083d10c853c524b00042e9ea0987497c4cee60c3d5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportProbe.c": "7a3fe04aa1c5ed1061ff63d9d5180e8b925932b62d76c1ffb49bd3dc23530993", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeTransportSurvey.c": "e5abdb69c0675a20f4287afb24b9e3c877e91b162c77c32d81ef61e2a8b72577", + "addons/core/Scripts/Game/ERR/00_Core/ERR_NativeVehicleSecurityProbe.c": "59bce863142e4fba4b6fb2f544bb8a58061f0e99b1a38e5ac291cea919563763", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveDetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveMapPresentation.c": "70339c05c550b72a4fd5890a871c5d8e6a9e574813d61696194c5fbb1475ac8f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObjectiveText.c": "d2fd3670c89d679fcb1359ebccf67b58734fe5168e31fc239bdeffa7f8ff0607", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Objectives.c": "b9cd5bb3b193c20401175c4328405be1b121e8a60b7b5999910b6a71f834af8a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Observer.c": "7c478eff3575eb1bd8a85c08955d4ca7f63b57969cd7b2b76dfd6c42136de1af", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverPlayerView.c": "c287a1891451dce0836c6e859eb962c154aad9621a46e50400f44fb83f97d95e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverScope.c": "97d29535a0ca1571ceb86996f58b68e5ba0944edfe30370455c52a321772f85e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ObserverTargets.c": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryGateObserver.c": "1e376ca83c0005cf532539e14d7f47363c47b7c5b03fe3d55405a59208705fd7", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryInputObserver.c": "808a46cc1e4b31b65dbbbcdd55493f594ebb3974bbec38b4a2402334c653c0ef", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryLookObserver.c": "d5a1b636938d65e9d11c78b31487f2924400c34d98e2ec812954a2a224da7dc0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_OrdinaryScenarioLaunch.c": "8d8da4c1222dcc6adfee350490f4399b4129cfce7a42b45fd7fba52febfd3eda", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PassengerHandbrake.c": "3078487e077aaed1567894f6df12386aae440b790b6c134118d3afc2c4da156d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Performance.c": "037ffa482e3765bb537629e34f10919d85d4b6bfb0abf56ccc7c0d44fce8872f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerAdminCommands.c": "eca9baa3b07da48a740851583540840f8bf5f65f7be854902a3778f76967faad", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerEscapeResult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerGuide.c": "dc52f551a1d3705fceb64ea18d882009d9e9548c01f08ae1c7ef3083b19ab2d3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerMedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerReconnect.c": "478fd041e8a13132df25202088f42d0810d36680060dd7a0424d8f40a5b1ca44", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PlayerRoster.c": "dc785a8a1d78a285fe55ce76f87b78a9f522eeb9f7d9655dfe9b5c4348a26a18", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationFailureMenu.c": "5c31219740bbc26cb903a91f4fe22866c465b38220391093c72a3b094ca30f34", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PreparationStatus.c": "c5cc9125986e2285282f3f7fa9068ca72f00d7e26465d00213e734039c0e34e4", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonAI.c": "67f8b444824634fc37fc253c60fd24b56d06d971f48e56a8d53095c97aaf0070", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonEscapeService.c": "ed180448cb516bc4ec521aedd366810a47787628c7f5ee9c9afdbd185d980751", + "addons/core/Scripts/Game/ERR/00_Core/ERR_PrisonPatrol.c": "284618391ee2da84dbcda4a99ca3c072eae3d67b8a9ef40a86827b9ea00810f9", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ProfileConfig.c": "b5aca526a860ed9ed609dc3fad99ebb34d2f6fbd537575a167390472efd4ba89", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RadioDefenceService.c": "f5f0bf1352141f933d0edb5630e30541e001dc07e1d2c8529b29cc159c126b13", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RadioFeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ReaperRHSCompat.c": "bcdf98c05ac6cdf0c7eaa854531b02e9ee4f53fbb346ae01d58114e572e7dd4f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryForecast.c": "0eda507fb58860c0eac1d957319d1e80e9576a870d22931c86081db748df44b6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RecoveryService.c": "182037828b74938746022ebe03bbd9cf849d52e31067c0b33f392f03969d6162", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RescueLanding.c": "e6f63ee8860335de1125e0a62eae3b8406faf5a5ad2c8d9c6f9a6da077986e56", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatistics.c": "60e6839cc50fa02df1795a00b93fd431160f9201bdbb6f1e3b9b50271306e9fb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_RoundStatisticsLifecycle.c": "b813a9ccea9a61c9c6d7d4806cf18adfb323d483622ca1225930207ca2436d12", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ScenarioComponent.c": "ca6b20d5c4599e31957e5cb464d21bb3a4bac517dd539711f9d4f380e48a0e15", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SelectionStyle.c": "b9ea5158e51559dc13812cdfa8939ac36b58c79b9e4115c72465d869fdf264a8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SelfEpinephrine.c": "da5850374b51e89016c4557d06f3c7c087b6e6e36fa9734b22c7c6c50d757914", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c": "047d8c4c36bfa32e1afed13f8199f01681ebd362c72d87da8868cb6959661973", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsMenu.c": "b81283ec17fdd9f72096901f8bc2a3c87fb8fa4c8fd488579ba0817328b9dafd", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemsWeightsMenu.c": "f0900e42100c9a58402cfdd48b7f27689144f53e03d3ae3dcd4bbebc13a5f61f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehicleCatalog.c": "bbc346188ed280d34b1b519ab7c96c6bc35df9ec3e4bfd03591cb9b8008f89f7", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehiclesMenu.c": "d873cdd81b2350acac7068c4d59d5603437561e061a3b9ff2cde2356239da322", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Settings.c": "fc5cbd7f52632228c071b9f14cce7979ef55298672e441f665f0efa97f083249", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDefinition.c": "d421d70b32bd2b55cd8e4966c04af3d5bc381ac811d3b4b2efa4bc0a8af8bd2c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteDiscoveryRules.c": "dcbce3b7aee89bfc47a50e9de89209758af1f1bb462b99af67a8ad7a26e9f229", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteService.c": "2b283ad19b046fd6b33245d466b197bd05b4c472e128a747e6b1e725f4a34c2a", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SiteSquads.c": "183883783a4e8399cf62851a4cc65a5d091d25131bc53b4323cf17286315b2e0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnClientScene.c": "b56f99a91cdc53bdb93d320d10839339022d7e61e6b101eee8296271abd7d3cb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnFinalization.c": "6ec741f8d19ee316d3c67b0dd2216698584bf2cde3634a3d6a7c3cdc3a3935b8", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnLogic.c": "6d9243f66b4ca8c53d53fedff9dea8986c815e90c1f97de58200cd759aa8b49f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnPlacement.c": "fc5b61f1877aeaee75fbfd6aed3cd0b4c5277ae8543bc38a0c09836353d54b27", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneInventory.c": "76b79d5bd9d1f367e1ed19724302b7d49f8b0ede85cf19e89c452582ef651f8f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpawnSceneLease.c": "20de7f96bacc9037580d88d4424664b4554b2c082d82e7d29913e9dfe390b594", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechMenu.c": "33f9ef80b4d6cdbf3646eab602d15ae0d05884bb20b3a7222b0648752339cda5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_SpeechService.c": "74ea305ac0c9a9d145646a5c73cba58e4920ab472943ae73b3dbd71d8216f752", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpack.c": "4a36799d3a3defd674822974cd96647c0accb2a854631dd5488c35e2ef697f7c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartBackpackMenu.c": "07c90db1a84893759dae71f40b7ae3109827646e48fade542190d21598ac271e", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartRules.c": "ab7c21ef700343cbe769d8d51d91f167db37285b466d6af9873e121b3adf4ade", + "addons/core/Scripts/Game/ERR/00_Core/ERR_StartSetup.c": "58a6b617b22910d0ce9255f82091dc11cd1284417a66adf1cdaa7b661c1ed01c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "addons/core/Scripts/Game/ERR/00_Core/ERR_Telemetry.c": "b1dc3ecab89f5e6db1ff4ba613b43755a5ae44f3612249288cd134ad850719f6", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryCredentials.c": "9835caf69d4615d6a3fc840d9dc3cb0f507a0c5a2a6490893c21761f9cb4a216", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryLifecycle.c": "15d2d90d4457339dacd61c1bb23b619243b8af10731687c35ecc300125a642f5", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TelemetryServerName.c": "7744762c4586e2543601fb0899847bed311c439cfda3dcaba825adf870628693", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainCatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainControllerInit.c": "8071e38812ac61f9b480d9e91f9ebc7712b360d431f5555da83027db6cdf2471", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainMenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainPreference.c": "93fc55f2c33e95adbcf2bead3430aa14bdb55154315760bcc9647f89dc8286ff", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSelection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSites.c": "4ac347d4d91951bcc7175a965ccea25f3782edb6e352354cce506d6b626e5ac0", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainSupportStations.c": "c4fe4265963ec88e24379c143edae251452c84e43a3102f5da120205f9a39c9d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeover.c": "ac31af5ff2937f8a1fd89ac03732a8a473b27b09c83a07923f17986b0f9db841", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverClient.c": "70f192d5d749b4211c5604575d2b9d7e39deca589b5841ffdd03f99baeca1280", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverManagers.c": "ab1d64c8073e4daebf14f4ad2c745d874032675ebcac3fdb0fdae4626acb8dbf", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverPresentation.c": "91d450215eb6ed2da74446b5fbb805356e3881e3cb43e37fe45308e30b22be9c", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TerrainTakeoverSettings.c": "da22775930b13e41d4a71409e37af3bb99e4cc1d94bdea0e3b59fbdcd4d40132", + "addons/core/Scripts/Game/ERR/00_Core/ERR_TimeService.c": "63867760876d523a1794f619118a52c5cd387d5d92756cd286b2c16a348a6c7b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousCameraProbe.c": "cfc63058a20fad99e76c59b64d0d288cc3441fd3486ff63a6dde9998b4ab103d", + "addons/core/Scripts/Game/ERR/00_Core/ERR_UnconsciousWeapon.c": "24d31bc857486638e55c605283c17cde0cdbd3c5c6021eac1ec93611387b10d1", + "addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityActions.c": "bd7d0aeb4abcc9d8044e4888f9a92f9e5fc97c098bdfa3bbad57e1a29697a779", + "addons/core/Scripts/Game/ERR/00_Core/ERR_VehicleSecurityComponent.c": "2ffec4e646584ec546147fc4b08249825cb32b531aba26467b586d760485adc3", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ViewDistance.c": "8514f72f8207f12570d2317e64094a45507a1647dfd45a1501499ef81e90189f", + "addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeIdentity.c": "8624bac67c1990f87b3fb799361e5facd31c2e03cb621563b9c73c4fe9d7f87b", + "addons/core/Scripts/Game/ERR/00_Core/ERR_WelcomeVoice.c": "a6a9a816dee1c766675990c158a757cf9ea8628a7b2b0de991af67ff4cd23e47", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZBakedSpeechProbe.c": "533c89b6a258dccb61d7ff6abe0a43da58d52ffae60735a38c2545fbb4480afb", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZSelfEpinephrineProbe.c": "a13e14d1ef525209d4609a2532c6d72135377ce058298937b632a91eeb6392fe", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZStartBackpackProbe.c": "6778cd98392f4e73dfe974782e626d98472251c1266698020d63edf8fe735bcf", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AIDriverHorn.c": "db9f100c6cc10efc6f5b86e8fe9adb75657ebabee6f8bf0c89b997c2e947750a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAmmoMission.c": "0a471a40c8f7dfb797d8d35e41c5b1ff91e8d2ab13b43cf866e46c0e4ab4ed9d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultLoad.c": "de7b6c485167ab68ab0b37b96fe161ee821c2efd41362172b810448a02110e68", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirAssaultSystem.c": "2eaf9816eee3e1cd2ac70744a6ef7ea5a90d0a3eebdf925e384028a7edde6a42", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirReconSystem.c": "f8a0e3cf4552d8133efd33c2126ea15a7694676773a7047c15e00021c1d9721e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirSupportPolicy.c": "c1a7ac8759ca8ec8b43cbccf303255a2f0b69de447d0d991e44b6bd3db415d51", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftAmmo.c": "2be282406d0c45ab2e35b0ced791b5e494c662588f536701a4e82e6f5fb7c913", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftControlBridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldEnvelope.c": "0f53c7d9ab167a804eb904d63725decebb53fd5796fdf27864a75abed5679838", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldFlight.c": "c04e264cff9963821852094c451502d31bf9c96d4deae2e8ff8a2373b53b5665", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFieldRules.c": "30be68f4ca2db7e169f6f0432815821179cddf9159f7b150341dc8eb479bbd17", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftFlightEnvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteEnvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftRouteFlight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AircraftService.c": "3f05209227986b5c6bfb193f8f53783cfd4ef083bce898e22257c3e63daed913", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AirfieldSupport.c": "c6d88ede0b1b6bac5a7075b6e2e783ccfa8850210aabd28bfa4bcdb698cc5f87", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AssaultParachute.c": "a93c996059e7166988e9d1b0b498cbfd36f19a1cf8520cb4e9215a8884752e18", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AttackSpace.c": "e7be303231b5946d78c61480a5de3f5b37a63d0d2281a9a30a21e59f072904d0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_AutomaticEquipment.c": "8658421f846fcd3402289103762edaccbe3ca26280d7d72df2846c32ae8a4cdc", + "addons/core/Scripts/Game/ERR/10_AI/ERR_BodyRecovery.c": "f5fc311ecac4533c2d053a686c51e71216e69130a34483f27146627172914c99", + "addons/core/Scripts/Game/ERR/10_AI/ERR_CessnaBridge.c": "f1adb0f9b92f6ed94a8e9897b64e2fccba0f28552525a93f1ab893faa4fc5da2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_CivilianTraffic.c": "b6509be9cc891ba4c1fc0f3fed8b09ebb31ca69bf2e5b28b50a6060706baed73", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBoardingProgress.c": "328f8a5eabb8174b7727eee1d675db83a2eb0be7b8e834db4e950a645ca5d7a3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyBudget.c": "fc7e254056c1da4aadd26d4f56d51ee375d5d3331f5f7e5183581108c7474a10", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyCombat.c": "5c4b7576b28d51edea868cbb91a0ab31a40e6ddb558f1b8a38e07e20fdb2969d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyMineStock.c": "4497d6b790a45df2b76d18541ddaf299b406def88b868caa29f096849026a42c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyPlacement.c": "af4799e3028448e1a73f944989313e5d10c6262521bd29a8cdd5236842717963", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyRoadPlan.c": "fae404f85cae63e63976938a5fdb73efc988ba25c5846564f12edca04fb88551", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyService.c": "5abc35861aebf2e4ad00de11f040d01f784c6f2184de2e10beaf46a74ec8758c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ConvoyStartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_DroneBridge.c": "9ad23a763c5995b2ac6f68ed02def487b0ba887e8ca68f0e546d1b6812504cc9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_DroneRecon.c": "dc685b57c884d733e0ff90cf7937f5664ec08545f4cbf59d63bc8a84383dc442", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyEquipment.c": "dfb6a7aeda23adb8aff2292753b694770affc9855bff9fb11d50bb534f9219eb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyGunnerSkill.c": "adf8bac5a6f7e40b2f9caff5fe9be590c4e4ce2b2b387ba39e741a3c4f4cc564", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyLoadout.c": "a48f32dbd7f209bf08fce2840aaffc1781c571fc679763be58987f6b082e776c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMapMarking.c": "0f161fd3e08a54e3e1063679127549e482c40253a022e9d06cd9ee4d740b8625", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyMedicine.c": "68b65c98214e1a27383e155727901a4f70e9c065bb0cf133bdcf7fe6d5a57a40", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyOptics.c": "215e8a05594c541861b48e093520c00091708eb0f3635dcee5d0b5e1160230eb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemyRadio.c": "3a97e5c3de9ff33873d97c6b2d84ae505cfc4f3146e047b928e76ec3b22c8789", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EnemySkillAwareness.c": "00c450d033e43fc45c9e2cb64a1d81161d123cc594a4292cfc5f68eb6c17ee60", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMine.c": "067bed625a3f4d0fa189f46476988e90528c59b2351ec0ea71916317b06efabb", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMinePosts.c": "bcddb72845189b52e5ed71c687d7dd4b0b40b91b7306c3f6edf84a631002fc5b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EngineerMineSite.c": "d838f5693d4fa5d252d529e59777f560674c02532f1041a5598e938b3a850839", + "addons/core/Scripts/Game/ERR/10_AI/ERR_EquipmentLog.c": "df9eec7f94e4bf1b30b9463604e9b97ba3cbff36028a80b81327b0b021cbb2a9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_FiniteMagazineReservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GarageVehicles.c": "673661374e0854fd896d3d51aba84c07088057c941751b311daa4a97b899633e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotHQ.c": "c51fccd0ecdb0a1d6ba99ae965e2e572fc1ea65a5d8dc2e1e2a058698dae45c3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotLoading.c": "6abb278409527bb67db084138a773de240d99ba7f63f9ac740f8167615d53f1d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_GroundDepotTransfer.c": "21daa9ed8cb5f2dc08a0fa85e305fa4b4f3e7b01e16c71fd1ca98d66a4e8b652", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQ.c": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAdminProvider.c": "8879febe59fd99584add06690b29853f7cf14b580bb15c9a955cf1a2ce033908", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoReporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQAmmoSampler.c": "8bb0ec1422887feaa340307d3c60bae50fc82d424fce6390876e580ff8b75e8b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQBodyObserver.c": "f59421c1e0c83f0f480d7dd4d048b4b0a41193ed8fe8f2f627d2b6a696420ea1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQCoverage.c": "0ef1ed718797114d95c636c8fa5a9e46a5f2a7ccbe3f432049b0c7d37f1eebd0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQDeliveredCasualties.c": "1f738127e55e843ee2705007cedb5c08741f52f63c75eca7c80242177af82273", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQDoctrine.c": "6335728e89ed40ce11b811f00b61bfea76e94dd3379e4357cbfc438b05522bb0", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQExecution.c": "d286b8273faec0acf87366bf53ad2517d5b7d909741e981cdf283cd1f4f50314", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQHunterOperations.c": "b9200b6de3a3a61de94ad720aca94aca64db542acc64ba65e7b8061a5e4884e7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQHypotheses.c": "060796bbbed604f9733d23e131c9836702870c6e25c81cc0b396c885eb06ade2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQJournal.c": "53563ff54fc4e0656713d6eaec5e88ddf69fd4bfa8ef6a67cfa13380d24031e1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalAwareness.c": "124260280ac8eda0e920bfcfc86932c9b21df6b1f7a6aa8acfc43feea3da149f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQLocalHandoff.c": "2dd700dae9d9b232d22ca63ff01af75a3f5cc213ac24b7c0a43ffa38bc0b9ffa", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMemory.c": "ec2047a477fb4273e22ae6bb68e7365f321f55c583b5d2c48c4abf2ac38e3b7d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMineSampler.c": "2a0fdc4d27e947a1d77b02ae23f757c7fa074eb456f817b7df0766583d757f55", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedAmmoSampler.c": "97dfab7381385959b0906be13fa2575253ac43be91a271a5d41edaf4106366ac", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedDispatch.c": "12769b56019e9fa5b8141498a1c33814ba5262253193495e72f85972365961a7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQMountedIntercept.c": "5f45545c11de5e183969203cdf07e29089697ddc89752a9c5aea0fa2a1a33a97", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQNetwork.c": "0b73be993628a55e3b21c8670d540e39c938093dd5cb4d586e800ac530509b25", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQObservation.c": "57ad3f0b68d150791e30a7e4bd7dfedfb1ddd78a1c76f228e67b33ea9cb7144e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperationSpeech.c": "6f133c104223ce23262c2927db9e16df0f76f1ee647085114baef1d51417f4f3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQOperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQPursuit.c": "280e91feecc4e5b6d0886fc4201b12117b58c56857d4386b6c4cb963557274bf", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQReport.c": "4c0c1f0e33f621d1e02375cf4f56b0e8c4ba6fd851912d3d16081949bae46158", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQRoadIntercept.c": "f87727aa1c722a180c7b71fa2d896601b6250978a21bd2d1e973501fee81373b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQSquadJudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQStatusSampler.c": "b937eaed913a5095afa8e678dc1c36b5c805541bf8cd5be927069533d6baed1c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQTacticalGround.c": "eba9a9cabdaa80b936aa5e7025544e8b011fb597b96cbdb8d781583c025afbe8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQTask.c": "29359f52734cbf3400e12696057bbb7aa54466a018fc88c42015b6eb9bb9990c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HQWatch.c": "abe634cf6003ae920ec1ed18e305ed462920204960894520d3dd11f7e5ef1c33", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HelicopterAvailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCloseContact.c": "56f22051566354ccdc61531af4869b62458a30d945e4d21de5aadf7079d2245b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCombat.c": "df1c319d10efd07ed6f971cf0e41d8d7e377b04ea7f0fe143bf94df733fd1d9c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterCrewRecovery.c": "22e192ca222017d4d7a27210c6e42cf0f128827bca00b37924c9c8d6866b62a4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterGunTeam.c": "0e66d82964ef8eeba29de11d5bb2af954ad72a8090855ac4c1b28fe1e66c0d69", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterOpeningPlan.c": "7791513b8b41f4d2ba1b593b5219d7f6e2bf036e352f8e4eb1a8029fc97ab7c8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterSarkaRules.c": "8c8c96e2f985f553e303f7e459b73a2a5cd0051951b22aa0ed364bc2ae19e194", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterService.c": "c938b8beb3f72ca1b2a76b48052dee70fe52651593dcdc16b7993a9398bc92e8", + "addons/core/Scripts/Game/ERR/10_AI/ERR_HunterTactics.c": "274ae619589b85cf64df1510631ab914aa9fe8c50fc2a76e6e8c5aa5a2c8d9ba", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoAccess.c": "ab4262f78d54782c5ecbf5fff4ebe3da16d72329658d7e18c0c35387dc8b3c7d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryAmmoTransfer.c": "99fa26beb0c0869d0cd694500f3bfc0705c2c1cf674dea90d98fb93a59570ef7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryCombat.c": "5d7a8e579edf95003133ddb6e509202dba56ac9e68385247e1ac0256c1b319ec", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryMineTransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantryResupply.c": "ca8eee2704e7758172e33014404bb1307c683f19b561b840d4592f6312051e62", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InfantrySupplyPool.c": "c8e454573cf064ff392291d6feebf1f23be64390b5b8e944c03dd065f9f46b42", + "addons/core/Scripts/Game/ERR/10_AI/ERR_InterceptVehicleFootprint.c": "5dea67d14ebab67231c485e14bc92f34c005a5f1bf6d9c0943db28e9857e958a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_KnownMines.c": "045468a052e485a91da601adcb42b504bb6e4ff13b096bc0666128e50a6aa9c6", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarAimSolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarBattery.c": "157024afc8fd3c1ffeea6ae923ff091e5773b9ffcf5f5864f8040d001e689110", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarCourierTransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarFiring.c": "2606ed8c19d5569815dacd3248f012072bb76834f429ce7557d24d884724f733", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarLogistics.c": "b3624e4a00a2bdef16f6c100bbd79910e3bb8c2ae8ec5fe2ad5aa70bffecd303", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarPrediction.c": "05863b2b4f9f70cdb288f91c722cbea163c13f2a2927dc485482e5bd4fa7d57f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReadiness.c": "4c3799b3f2681e977669de0cbfaeb307d9a682b04365bfc9f59079e762965758", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarRefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarReportLedger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSalvo.c": "c128850c7a78a4d8fee00ad38f48b265f1fbd1d9b24b092ddc5c205b0f0ad6da", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSpotting.c": "39b3c223ade610ed9f1d73040423339ac65c90b153f30c6f5c42290978c57427", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarStation.c": "cbbd7c86f722b664c85ab7c070ae1131d2ce5c41d1dacb4381bff9c1720a1866", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSupplyTransfer.c": "ad71084f507ad9c32d3055e7ec6844a1ec5ddf568c0216ab8391e902b56e417c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MortarSystem.c": "01bae0bab685e9f0c86c3a8939d18ce6f20dc0b8c1a389d179d91e93008c6957", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoPickup.c": "5f7ca5b31f3b405c2a6ca32ff91042f5b4dac6ab9640ce67fb10d7a74236ba69", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedAmmoTransfer.c": "0b195784497672fdaf651f336c14f7be98c257f98c85cfbeb4f96fe1a401999b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedMagazineSeed.c": "b42d0aac142907433df8bedc40de24c94813544016cf5f451846f1980250f995", + "addons/core/Scripts/Game/ERR/10_AI/ERR_MountedResupply.c": "c26ad43705765be1c20eca37fbe2978b8c647151f6620ed37141657a4b7dc312", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirAssaultProbe.c": "c1d55b338b157b758e6ffb993d5f689029b28b13929797c91e5dcb15b5e561ea", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirLogisticsProbe.c": "58fe863775d0ad575cb566c78cef696c9826691cf49ef9adde76376be7316db1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAirReconProbe.c": "c1216e0512a0268e4dbb82429e228334401c0c3cac52ba4486ae6dc91e41576d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftControlProbe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftFieldProbe.c": "b64907c7566a894ca2f3c49ede5d972d4087a938da1a0ca87bcbd7c2203b2c52", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeAircraftRouteProbe.c": "8d0dca97e5106d1c84b64992c789e1af0689514beefc027e713ca6ab901fc470", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarCourierProbe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarFiringProbe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarSalvoProbe.c": "fb9ccc6b36247ab3ad828ffbb2556abf5c2838d93ea6cd1ad259c0a015142f5e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarStationProbe.c": "a110f0abc753cb1d2f781e457e637dd5346ecd2e924eb5eb3a5c7dca3d1e2340", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeMortarTransferProbe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativePatrolHQProbe.c": "9784b551cbb91f017004fb728ce08b5c36bead0ffc83aa7149c2c46a7c4dc495", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeScoutProbe.c": "41b39b1abe5e51a5b8a428d533cccbfb0dda9d7a570228dc3489408c60543f17", + "addons/core/Scripts/Game/ERR/10_AI/ERR_NativeTownProbe.c": "28876e65f9f8a7d96d8056f446b61e12e97d9bbf1a5ac0d4c40edee44e6c4a21", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ObjectiveDefence.c": "83ef91c2118521aedb4c1838b2e47909c80e0950086449b98ced168f1fd87080", + "addons/core/Scripts/Game/ERR/10_AI/ERR_OptionalMotorbikes.c": "87cf6544983386d29058a6f892aadbf242a517cfff4ed24348f56a72bcde8cd1", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ParkedCarCatalog.c": "1d865c263e910071b127ccd1bdc8b58dd45768c4629194da49705f76995ff0e7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneFlight.c": "14fa2328e1d31cf59fb89cbb53ba33224be6cfcdd2813525fa9585f8b2e237c7", + "addons/core/Scripts/Game/ERR/10_AI/ERR_PlaneRecon.c": "fe94c29fd9befd3c1bf3ab97b9b27458a8563697d4d46f72df43c6e642f3664e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconAirports.c": "7551347d776d6e0eec818d6468cacbca7ac53daee7317e0a1618ca3d39ebc762", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconCrewLocks.c": "83b63c21574140208792aaf3d24e3d22b255a078871382122110bb48520d4541", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ReconFlightComponent.c": "1386e2a2d2a635417ca517aa1d8ddd4f657dd415ff59be2465543cd8f601e7a9", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RescueAssets.c": "fca1a4518baf09f0b2c97f3a51995001d9674849417fea9ca1233e8d1f578495", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RescueFlightComponent.c": "60db8029bbfbbb362b5bce61f509740eabea5925b93bc975e7c2b44addcf03f3", + "addons/core/Scripts/Game/ERR/10_AI/ERR_RoadblockMining.c": "47d0212cd20c0b320a47123d17f2b89f7d60b44072a00c69944ada7bb83c4e5a", + "addons/core/Scripts/Game/ERR/10_AI/ERR_Roadblocks.c": "879f78beeb284d1298ec49dbca9624c5f3899ffc6fcd376e748bf55e4347d4bf", + "addons/core/Scripts/Game/ERR/10_AI/ERR_ScoutSystem.c": "63287a252e4e7d5aefce840279f26ce3e1f286cb79cadb32596c37897cec7119", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SettlementSafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeech.c": "ca87494ecd355052b46b72e2faf13660e458f3d376285bb0e4c20fd0112ef2e2", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechAudio.c": "4734d614c5366ae3ff57717f514664c9dfdbe4408e16ba36f6b10d807361e313", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SoldierSpeechContext.c": "d2baa94f036f7dde5cf24e004ad1fb9416f249cbf7d0c6c07c5898f7d21751be", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyColumn.c": "bd898aabcac5724d60dbecc4ff5ab6f062c66cf7c735ff59127c588ff94f898e", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyService.c": "5393efab9d663382e67b9b27a388063986a4f99c2607328c998f007588074ca4", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoySystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupplyConvoyTactics.c": "d2fe073b0c23c877afaa65e246544751eecabce4febd72412fc9a4ec18eb1c8c", + "addons/core/Scripts/Game/ERR/10_AI/ERR_SupportScenario.c": "151eb6189701e559bd4f1359c91187f5a64deab1f2bacbd521c4f4cf3de6d878", + "addons/core/Scripts/Game/ERR/10_AI/ERR_TownGarrisons.c": "9b48331ff8bf7e5a111b498c59a57a5d0210125af983424535286a4aeda9a18d", + "addons/core/Scripts/Game/ERR/10_AI/ERR_VehicleAlarmPerception.c": "45ac71d25e10a057a26a5b0fc7128935baaf47f4c0f87208a4420fa52086fd98", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelAdminProvider.c": "40adf8497b64cc74b1390149fe5ba789ee2f14e6fb3c325af8f5ffa8c806878e", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelDiscoveryFeedback.c": "741de1dbadfd46c154905a0918aad41386ddc139d843553db55d20d60700c020", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelEvidence.c": "ff436bd3c7aa0fcd5c24e940430c1ffdda934889953f63e877ae418bc9557d26", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelReroll.c": "d8b04de9ea789732cc78ebce9aa60786c86fe46d05f671cf251eefa68a214b59", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_IntelService.c": "2911325c79a7a372628b18ffa0e110d11919ce2c2cd7b19277bfd608fdb03dfc", + "addons/core/Scripts/Game/ERR/20_Intel/ERR_MineIntel.c": "3ce16cebaa9703b2f9803df7c11614f94de6460a9136dab8f80dcad41ae2b1c2", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_AtlasPresentation.c": "f0b36472b16477b8c3b5b62f55cfb2a3b3a08304b0779bc39244359af1abe203", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeAtlasAnimationProbe.c": "845b39276bfdbadd6bfd9b41f445fce1a9d40231d38ef32adc7a6654868e17f2", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeHeldMapProbe.c": "46c0210a3aef40fc34e4c9682d9364b1cc1e15d4373d8aabfeac7d9b8e55c351", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_NativeMapOwnershipProbe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapComponent.c": "73298c94ecc8d227452b0eddfcaec7fe9df4748875fa7fafcc52544a43658f36", + "addons/core/Scripts/Game/ERR/30_Map/ERRM_SharedMapPages.c": "2286d327b87f127f052e06c22f553b30ea31d25127b860fc02a220aeb4ce3ea2", + "addons/core/Scripts/Game/ERR/30_Map/ERR_ScenarioMap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_AdminCommands.c": "282fe1463add7af8771aa58507b254e69d2d06f50274d4c77321db073f8394f0", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeAlarmHearingProbe.c": "5dbb6a48909b76cd141e3a79ef01d2e68cafee55153821c4471f85c761fff94f", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyCoverProbe.c": "d2450140cf9bdf09210473234605b4c0d818ea5b91f9532209166a35c5d13701", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeConvoyProbe.c": "87df652b339df4fe4239617752ac5fd9f47aa4396ba94742a0af39a32b54e784", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashGeometryProbe.c": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeCrashStartProbe.c": "957f40e36bfc025b8bc752b1f41dc177c8d0844c69ee5994321a47cf3ddea1ad", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQBodyProbe.c": "811244cc8297817efbfc3ee4edf01c868eae23c88127ba0c72e98ee7422da72f", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQMemoryProbe.c": "9bcd0b2e1007d40cb794aabe80368a2584ae58aad6a3ebbee070efc7b21a8147", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeHQResponseProof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeInfantryTransferProbe.c": "9b2de4dc22bdadd51b0271219a971dc8dc07f70ed3534f306acf03ed81b29424", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeLocalHandoffProbe.c": "0d4d61c424a16008595f86fa61f3b848caf9bd6e9ebbacea9c10254d88ba378e", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMaintenanceProbe.c": "852b9b397efc3f919c97fec63bc3df1a850cd7833421af8441994afd191951d4", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMortarProbe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedAmmoProbe.c": "7ddb634444c79ad9291d53a754dc0ed383342e36720ddaa4b7aa4bd4e7ee656d", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedCourierProbe.c": "12710e9e5548fe8856f7a52f3566338369a8a1eedf0bd92af16229271872ada5", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedInterceptProbe.c": "34b0b1e38a59f14c4e83d93ec412779945388e6f4d697bda2f6cb90f519a6372", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeMountedSwapProbe.c": "a6721fcaaccadf8eddb06687c7d587d0a3e377d5d1bb0b8e72e630fede8690ac", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRadioProbe.c": "a4bd5cd9fe0594e05238b2d6dcd80466773f8fa160dc60bbe1eda70e3acdbe79", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeRandomRadiusTrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSmoke.c": "4dfb218419db4cd7a46d25cb1f2e578e75ad89efc43f99c6ca8ab8e591e139d7", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyConvoyProbe.c": "89c2696071912500840f4bb91d754f695bf674335b51a7ee1d03727084fd4869", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_NativeSupplyTravelProbe.c": "32e6074e912491f2643a24cb44311b9fe5b069c76e4e94a45e7409ac82d36507", + "addons/core/Scripts/Game/ERR/40_Chat/ERR_OrdinaryScenarioLaunchChat.c": "a747af09599ce4d0c52051f18f00c4624d24d137e328341b580b82e896c6bf65", + "addons/core/Scripts/Game/Editor/Components/EditableEntity/RHS_CAS_EditableEntityComponent.c": "3788cbdc39c3da4f6564b73b7f49848077ad4504b6c28a1984c424247d1c6678", + "addons/core/Scripts/Game/Vehicle/RHS_DestructionTireComponent.c": "9b3de0966d7b8184bb70a14df2a448e06f34ca9db09b46da07277cb92ab7f8b2", + "addons/core/Scripts/GameLib/ERR/00_Core/ERR_DiagnosticNoSplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_BuildAtlasModel.c": "f6cb5e6f5afc9bb60a8a46d96b52c7506882faf0a880e0b20a01a2603b336d2c", + "addons/core/Scripts/WorkbenchGame/ERR/00_Core/ERR_ValidateBaseWorldPlugin.c": "49a38c37b51e5318c7dcbcb01543dd9a6300d053f0d39808b3974f4edc45b871", + "addons/core/Scripts/WorkbenchGame/ERR/40_Chat/ERR_ValidateWorldPlugin.c": "d1f3fc372d0d16062a5983f2a6cffb6e72f202cb93fea5b33b4d77e0c852ecc7", + "addons/core/Sounds/ERR/Speech/radio_01.acp": "cf63378bf3950f5e6c1c1f46c057ad38a371b14b945b1201777820384805c3af", + "addons/core/Sounds/ERR/Speech/radio_01.acp.meta": "d5966526f35aa64dc980238f72f4f93f9d0e6a360f10e3f6538e97b7d086aa47", + "addons/core/Sounds/ERR/Speech/radio_01.wav": "cfe4a00000bc9b629a9e8e282ed64e7177673f829c5657b1ae2b2cb9e661d2ae", + "addons/core/Sounds/ERR/Speech/radio_01.wav.meta": "eaf33fa344fccf9aacab626117d03b96b135fa819d3e63ae300fac544291b571", + "addons/core/Sounds/ERR/Speech/radio_02.acp": "9111d118594094a8e09acdf80d8b107cc7d5d890b6ab086274e0e1004039e345", + "addons/core/Sounds/ERR/Speech/radio_02.acp.meta": "76b55d9abf7f599c5db3269a5829546a6d5f92e6350b2fe987245f9cd6b599fb", + "addons/core/Sounds/ERR/Speech/radio_02.wav": "6f0c94ae0e501afe6cc1aba804ba6a0403ba4de931debc28bf22970f591d0798", + "addons/core/Sounds/ERR/Speech/radio_02.wav.meta": "06ec85166aa4c54a6fafa1fa2eb2cc32f4a36dc8eecde8f9ba9912229e5e00e0", + "addons/core/Sounds/ERR/Speech/radio_03.acp": "019f939d65396f4a334a024bbf53c41479a9f8ce806610945af2be13e7352c70", + "addons/core/Sounds/ERR/Speech/radio_03.acp.meta": "8aa2f4f26f04bc3085ae046f543c047cdadf9af9e06a38920f1e1fd8a3aa02fe", + "addons/core/Sounds/ERR/Speech/radio_03.wav": "415a206bd1de167342cf1b82d59c708441b8d802395f941d15097c064133802a", + "addons/core/Sounds/ERR/Speech/radio_03.wav.meta": "de1d81fb653146404de5b6a6018c1cd73e902571b82d544de5b6cfccf21f5410", + "addons/core/Sounds/ERR/Speech/radio_04.acp": "77bcff7cc7ce49036a440e829fb4eab1dbe5252b0fc9ea24c42e6f6b68e2698e", + "addons/core/Sounds/ERR/Speech/radio_04.acp.meta": "dd61ee2545776cf23403240424470661c737048d01432d90b24f2c9e75f45d82", + "addons/core/Sounds/ERR/Speech/radio_04.wav": "a225810c7fba048517248fd9f7e9f7ab8aad5bac35e59f22e11e69166551f7f3", + "addons/core/Sounds/ERR/Speech/radio_04.wav.meta": "0ae046e2ac7f9653661ba99646d40dd78d52f113ea6554e1dbfd6e578572a4f4", + "addons/core/Sounds/ERR/Speech/radio_05.acp": "7dbc2b3b3d251eb8d3e749b0a7f32186b0421a95fa5585be493cf04b45510e3d", + "addons/core/Sounds/ERR/Speech/radio_05.acp.meta": "cbf3b48ed3865e30ba5d838d96ec4f1ee950cdcd51368f7a9259460e4b78cc1b", + "addons/core/Sounds/ERR/Speech/radio_05.wav": "90f5abe221165ac5cd7d88c9b3e01cf6fd4d00b594c84d09c6baf101fdb776ad", + "addons/core/Sounds/ERR/Speech/radio_05.wav.meta": "d8e3de0e1ae8670a01bcc272a1adf4199ffcea514ce024ee3286820dedab4d83", + "addons/core/Sounds/ERR/Speech/radio_06.acp": "e14da41c1cd186f35a4f385fab71ad85ad6fe718e67299a65466339ae23a2922", + "addons/core/Sounds/ERR/Speech/radio_06.acp.meta": "efc810a60e93453942adba476b423121f2a7dc1133b25d8764c1bec546a3949b", + "addons/core/Sounds/ERR/Speech/radio_06.wav": "b3f86b8dde535bc1a63301376c8d42775446d1b6117168557841565391fe0a14", + "addons/core/Sounds/ERR/Speech/radio_06.wav.meta": "07f53131f4ad153cc09051ba1de07f7b43d38f69781aad24371c4eeb331b280b", + "addons/core/Sounds/ERR/Speech/radio_07.acp": "bf3a48af07ad6e5da2ca6ed6c581fc6232e1bd62ebb905b934188366f2bc3d77", + "addons/core/Sounds/ERR/Speech/radio_07.acp.meta": "60aab59223c0ea734f7c1e88f803de30164ccef1a909730abed3eb76b3378ca2", + "addons/core/Sounds/ERR/Speech/radio_07.wav": "f3fd18ddaebe9eb3d0db9ac73c89a7b7a7f18b76e4b66d404d544be660a6825e", + "addons/core/Sounds/ERR/Speech/radio_07.wav.meta": "ef6c72aa32c1c46f7133782536744bdaf4eee03bcdb75aecb87accef6d1c4f2d", + "addons/core/Sounds/ERR/Speech/radio_08.acp": "a82c5dbcd7094085324d93d539c6f829c53dcf3781f40b8d65a10b7cb4125bae", + "addons/core/Sounds/ERR/Speech/radio_08.acp.meta": "69fb3400109e19d4f4d0fb371d056edbecc0a96a0a923174d1aba95dfeac1014", + "addons/core/Sounds/ERR/Speech/radio_08.wav": "ce3c2aff20dbea83aa6545a383c454969c5caeb53d5a88155ec182f789047d4a", + "addons/core/Sounds/ERR/Speech/radio_08.wav.meta": "72c5e117ab7b605b8370fe90923edee73593df6071c39b86556731387814a014", + "addons/core/Sounds/ERR/Speech/radio_09.acp": "73725377def1832742c7620fec46dc0100400d92b9cb79add8b4d44e94c46c0a", + "addons/core/Sounds/ERR/Speech/radio_09.acp.meta": "95456fe20def274a1972867024e9d0eb572f3878eae19c63522fcefe401dcb07", + "addons/core/Sounds/ERR/Speech/radio_09.wav": "3eb0be6393c431b526dbddc723cb608a7681a2dcd8af6910d9f2234aa98c923c", + "addons/core/Sounds/ERR/Speech/radio_09.wav.meta": "724dd301d1b25e41318503a815e87b54e7283735c51fd122af55c070f26adb37", + "addons/core/Sounds/ERR/Speech/radio_10.acp": "f976a0fecf73b3379ffb9728e96c68ca79800712919320e7ff7f3484cd2c9724", + "addons/core/Sounds/ERR/Speech/radio_10.acp.meta": "5411a9ffa23e42c8a2e8d4eba75d6e87631bcf542128327dfefd603a64d5b6ec", + "addons/core/Sounds/ERR/Speech/radio_10.wav": "2b2dac499a45a7779e79465d628a67b87078c0951db7db3e051feeb4342f2816", + "addons/core/Sounds/ERR/Speech/radio_10.wav.meta": "c3ac10a092dcb26ec637be6c9264a85eae1b6da55b9d8b44a14766a70ddf2933", + "addons/core/Sounds/ERR/Speech/soldier_1001.acp": "1af0d303063f37811a9b1a25424d887fe5eed4b5c57da71cf36ba6985f8cf002", + "addons/core/Sounds/ERR/Speech/soldier_1001.acp.meta": "2fbdda4d9fa83c6945985bd2f2215aa9f745b3a18adb0e7edafac1b01c161ba5", + "addons/core/Sounds/ERR/Speech/soldier_1001.wav": "a8935a5aded028f2fb03734f4423e731ea4f5b17394526df47c0407a3deddfe7", + "addons/core/Sounds/ERR/Speech/soldier_1001.wav.meta": "aff7a92a727d8bd4df033be2961fb85cafdc5c45fd272c5ea718bc07fb8e5cce", + "addons/core/Sounds/ERR/Speech/soldier_1002.acp": "1444636949683a430efe20a7f296e85e669cb8e26799c326f73a00c4f8d32fa5", + "addons/core/Sounds/ERR/Speech/soldier_1002.acp.meta": "d8eb34135a3b76f0a4f889f9662d954b3b0b3638c10c0732e25ca29d7b2ef412", + "addons/core/Sounds/ERR/Speech/soldier_1002.wav": "8535643e93757dd916f4158b5b03671cefc599489dbccf6bb0f7abf294fbae88", + "addons/core/Sounds/ERR/Speech/soldier_1002.wav.meta": "e8c8813e5a1989a0d7e4d2a5c90622c4b0f909aafb929f4737c82e5710220d1f", + "addons/core/Sounds/ERR/Speech/soldier_1003.acp": "5ab123f150debd6fda0b822fee7ffca5a0bdc168f4d8d2e28b3982972db05613", + "addons/core/Sounds/ERR/Speech/soldier_1003.acp.meta": "f89fa8e7ac42e7f675d29f0b241d181df572413c6c41bf31cfb98fa205baa87e", + "addons/core/Sounds/ERR/Speech/soldier_1003.wav": "5910896661ad67333d2374a16ca44ce831a5820feb337655df99c02df2915d5a", + "addons/core/Sounds/ERR/Speech/soldier_1003.wav.meta": "5281a71be599a70aeb9972ea85364e5ef32f824db94c71953d8a1912fb2a27c2", + "addons/core/Sounds/ERR/Speech/soldier_1004.acp": "10ac847b206834168e63d8d0f7ad25d7542a58a49d331af50aecf13e7e070ac9", + "addons/core/Sounds/ERR/Speech/soldier_1004.acp.meta": "8c073328d3f5f06ca583d97e9ce2453d8167ec7bc5643ab90783748a4cd9b6bf", + "addons/core/Sounds/ERR/Speech/soldier_1004.wav": "76375e462ba518c76f752d4b194c9370dffcebd8ce0037865133b37af3ff9a9e", + "addons/core/Sounds/ERR/Speech/soldier_1004.wav.meta": "563aae8d93efeaa7ca098c12bf0004da279321607793bb32a93b2530d6832d06", + "addons/core/Sounds/ERR/Speech/soldier_1005.acp": "ea3d874f84dd85f09871444c348b1c7f4948fc043c59cba4d3aea8b8eaa8b86e", + "addons/core/Sounds/ERR/Speech/soldier_1005.acp.meta": "40cbfddfa9937e319d412f3ecb66b75e2c1c88f2823a64e43a81a2939fb9021a", + "addons/core/Sounds/ERR/Speech/soldier_1005.wav": "3e20728fb61863278738f5366343cddd6fac1b8b114a14867f91ebb5cac547d8", + "addons/core/Sounds/ERR/Speech/soldier_1005.wav.meta": "e330fc819872b0a97a280a42d936ff75e30d21ea3ac96891988b48ded36af7b0", + "addons/core/Sounds/ERR/Speech/soldier_1100.acp": "86dc8e90d826947672342f44a6ff8d2fd4a8f014db0b215c0865b3728b14ea88", + "addons/core/Sounds/ERR/Speech/soldier_1100.acp.meta": "1a41730365335ebfabf6c75ab1c67ecb1d0d6c85db56d1d85f688a780a3ecf15", + "addons/core/Sounds/ERR/Speech/soldier_1100.wav": "eaf1deb5381f6bac165e364a652920fcf78438c351c564ebe50a216f3f3ba5a0", + "addons/core/Sounds/ERR/Speech/soldier_1100.wav.meta": "dcd087d3e0bec53abdd4e42218a3bbb234b7ae3cd2da05dcee71a298632a8da9", + "addons/core/Sounds/ERR/Speech/soldier_1101.acp": "2680131b5364efe39f3dee44ce1605dbc9e064cea9baf8247a8c5b55dcfa8d99", + "addons/core/Sounds/ERR/Speech/soldier_1101.acp.meta": "4feaa2b8e069ee2e9576d4009329f585b1b5ade9e47816882b78075f4897646f", + "addons/core/Sounds/ERR/Speech/soldier_1101.wav": "4bca012ec25d8456cd38d26606312f54b480b674365b76a9c9f54e408314570b", + "addons/core/Sounds/ERR/Speech/soldier_1101.wav.meta": "6ac6bd7a06be3fa35c513137b4584e405c0cd7e32d0c6912f2d7f9b5a3087d36", + "addons/core/Sounds/ERR/Speech/soldier_1102.acp": "08002dc26a4c07d6bf488d5f7c8c6587787c1755ce374b4053dad582eb2d77cb", + "addons/core/Sounds/ERR/Speech/soldier_1102.acp.meta": "2133e516f162d6aaa7f0d3a191421964ca6df7b00d0a50fa42ffaba70864bef4", + "addons/core/Sounds/ERR/Speech/soldier_1102.wav": "1432bb3c9d99910314a84d9773d2afafe4f5fbb143afb291b0deed55d25ee6d0", + "addons/core/Sounds/ERR/Speech/soldier_1102.wav.meta": "a6ca33938733e22789434db35ca2cdfb0fc4c51716feadf4a28a60ee9d1044b2", + "addons/core/Sounds/ERR/Speech/soldier_1103.acp": "c93e1e75c272d31107fde86205b859cf505e2acf7d8776fbd81357bc8b3625b9", + "addons/core/Sounds/ERR/Speech/soldier_1103.acp.meta": "f3d41ab27e932b10d46c3a2aa63f826825403a70640381a089db608c1c00a257", + "addons/core/Sounds/ERR/Speech/soldier_1103.wav": "c294454907a229d521c2285eec26dbb82f9782f2a7eca764e11713ff63f0e004", + "addons/core/Sounds/ERR/Speech/soldier_1103.wav.meta": "968d93e9dee2104aee94407604d021d8849a83dc3d115484088e81289654c246", + "addons/core/Sounds/ERR/Speech/soldier_1104.acp": "cb94ed3c95670f11f78f6470f1f50492fff6d2f0ac94602d054d474d52400cec", + "addons/core/Sounds/ERR/Speech/soldier_1104.acp.meta": "92d43bf610784953d8d94322b73ae235f7a8aeb83ece72733d795c8034275052", + "addons/core/Sounds/ERR/Speech/soldier_1104.wav": "952b3d71366c26fc12bdbb9014665bfc0402f30944c22b1b2369d26a93db7104", + "addons/core/Sounds/ERR/Speech/soldier_1104.wav.meta": "939562214b39250feaa8f6f6c6bd10c3d4e0b4c529f338490a2dc234919c0d31", + "addons/core/Sounds/ERR/Speech/soldier_1105.acp": "62c5d3d230a8a15cf2a4de193620ccdf83ca9973b550ace4e8edf7cc49f52851", + "addons/core/Sounds/ERR/Speech/soldier_1105.acp.meta": "6774063562b9c83975bc394dd3c72aa2a0d8001d0990ab8ff870ae2876889f93", + "addons/core/Sounds/ERR/Speech/soldier_1105.wav": "20e9e82d9897b598497da4722432f83ae03a5e6bf9a1f7a77caab712e3fc3130", + "addons/core/Sounds/ERR/Speech/soldier_1105.wav.meta": "6f21652352edbd59d1244ce9c2dcd1ad4ab65f022222381d9709c28148121c42", + "addons/core/Sounds/ERR/Speech/soldier_1200.acp": "c27db60629a41145697e041224cc2dde21c72d6a883fa305c71ec9c5b86bd84e", + "addons/core/Sounds/ERR/Speech/soldier_1200.acp.meta": "ea228ec869a7a0266f5604266f68c4166abc6cfeaa29180cb3b4351464b71079", + "addons/core/Sounds/ERR/Speech/soldier_1200.wav": "5a1561e821ef33a574c1f9ef95ccf76e69b832bf0a20bcbbf914760345921859", + "addons/core/Sounds/ERR/Speech/soldier_1200.wav.meta": "ccf3b62fd2eea460d576fa68863a901eb0025f47b1b76729a4289162d0dfa0c8", + "addons/core/Sounds/ERR/Speech/soldier_1201.acp": "45f220c5b6bac64db61eebcf54bb52da572f9f8f1ea0872c5af9fd3238c25a4e", + "addons/core/Sounds/ERR/Speech/soldier_1201.acp.meta": "3be417d66b05e11e0b520af136dfc45c86c17d5e35b56a611efbcf38e0d35003", + "addons/core/Sounds/ERR/Speech/soldier_1201.wav": "f058f0482cfe4034fdf37d9b596f7ba8172fae1c57aeb387ce153f8041895e45", + "addons/core/Sounds/ERR/Speech/soldier_1201.wav.meta": "abaebe719eff7e009eb4d0222060280877451126c02154706df6d13e4c5d3e11", + "addons/core/Sounds/ERR/Speech/soldier_1202.acp": "c08625886d8c6dc405cf96c640c9dafd4510ba5cef2c22b037c8c7b3eb5bea39", + "addons/core/Sounds/ERR/Speech/soldier_1202.acp.meta": "cf345e968edad1b825dd33b87267b63f770c169250f8c51195bffc3161d396bd", + "addons/core/Sounds/ERR/Speech/soldier_1202.wav": "c875f4e798ff5e24c3eb3b48bdfa1b8af03de9326a19c671eca86660297ad737", + "addons/core/Sounds/ERR/Speech/soldier_1202.wav.meta": "dd2d6411abe914bce71c6688a1647c2699303ca248191ec01c6325b366e5d7fb", + "addons/core/Sounds/ERR/Speech/soldier_1203.acp": "f0237a51ffe0e7d463154d321117a9b19c6914f6ee680ebf07a0ff9ab51fc340", + "addons/core/Sounds/ERR/Speech/soldier_1203.acp.meta": "0e93332191ac74be950ce8139b96ed6fdfe3ddbe68de8949826dc801d12c97f2", + "addons/core/Sounds/ERR/Speech/soldier_1203.wav": "6e7857dc96dfb556f011ba89f2f4ea659cfd7b605b88790c69e754d5cc51398a", + "addons/core/Sounds/ERR/Speech/soldier_1203.wav.meta": "0f564169dc05a95f7b01f64f72bdabf6de9ed3f37a2f44b4751f89b38eb18cd8", + "addons/core/Sounds/ERR/Speech/soldier_1204.acp": "94dbf98b5e05f1ebf6960495032c46203caaa4440dfb1ffd3beda2679fe6bec5", + "addons/core/Sounds/ERR/Speech/soldier_1204.acp.meta": "7cc8c61f4bb210c0576fac350d170f8f54a6e55531db6102c1a0fa7cb7a8a809", + "addons/core/Sounds/ERR/Speech/soldier_1204.wav": "bd170ca015b017114e42078dcc5c49d5626aef17d22e4a12b8282e9ee4908ae6", + "addons/core/Sounds/ERR/Speech/soldier_1204.wav.meta": "1c6ddb11c22a14d9d498074e2fb2864783f91afc552c4cd671452fa8df483de0", + "addons/core/Sounds/ERR/Speech/soldier_1205.acp": "47180a3445a265335d682eac6fa51fedca51d76f329adc39b1802092b311118b", + "addons/core/Sounds/ERR/Speech/soldier_1205.acp.meta": "c34346f4b10149b426ebb4e94db8c29883c9d0e36f2b42d07d41570eb8932554", + "addons/core/Sounds/ERR/Speech/soldier_1205.wav": "769c457805376e9c0172ddb525ead5f1d8774e15bd1f3f3b218a19f9d77b6883", + "addons/core/Sounds/ERR/Speech/soldier_1205.wav.meta": "31a2a7314b44afb3f0031376b2ad6df22649e8089bf1a3bbeb64cdc41156cff7", + "addons/core/Sounds/ERR/Speech/soldier_clear.acp": "f33f03f3d24182a95db7d02058f2dd6ae52098e3b5142a33ede833ee881d54ed", + "addons/core/Sounds/ERR/Speech/soldier_clear.acp.meta": "7d3643c9de2d81ab0f1b4898e781341c1962bd8505c20882233ef7c40159b23b", + "addons/core/Sounds/ERR/Speech/soldier_clear.wav": "d6527b8136aa720b721463210420f47de0dbc45acc4e4c390b6a44968c5f0acd", + "addons/core/Sounds/ERR/Speech/soldier_clear.wav.meta": "d9f9a921a85fe275c6cce649421a19946ff6aec49559796725c3858d9fe9b261", + "addons/core/Sounds/ERR/Speech/soldier_covering.acp": "7d4109edbd6c20f9e2af0b394fa12e8b3b40fc18bf2b5ac118beebb1fa4a79b1", + "addons/core/Sounds/ERR/Speech/soldier_covering.acp.meta": "320908bf7decea55b8d8b4a89b30e84e7d96a033d4a9cd1bd84912dce013f0d8", + "addons/core/Sounds/ERR/Speech/soldier_covering.wav": "f51e0086eaf0eece8b4061711088a413a2dbeae263deab7ea30fb1852dafda69", + "addons/core/Sounds/ERR/Speech/soldier_covering.wav.meta": "7bdf2d2c5f9cf741bae523e1ab0b9acc99b38ccd1228ebfbcba92f2b9a5cba9d", + "addons/core/Sounds/ERR/Speech/soldier_engaging.acp": "9f052e87edaf182030edb656821621cdeabbf13d65bc181308357530c9d93a74", + "addons/core/Sounds/ERR/Speech/soldier_engaging.acp.meta": "9e487fa3746c46b2993f1dfd1f0513f375571728704533674bee62586e25b72b", + "addons/core/Sounds/ERR/Speech/soldier_engaging.wav": "ac0f2d7d698732e3d7c270186e7aa2ab7e6bd4c908f36b07fb6f66a3cbe75ccf", + "addons/core/Sounds/ERR/Speech/soldier_engaging.wav.meta": "d571b9ebce196cc209078a83e4bde8f6a5f4b6d28c2945e2b47953ccb6889e97", + "addons/core/Sounds/ERR/Speech/soldier_moving.acp": "05503ca7af13a7ad03ed2a3aa562cc58504fdfff3148477f8d81b5a01abdf37c", + "addons/core/Sounds/ERR/Speech/soldier_moving.acp.meta": "a2474c87e4e1587226919dfdbd03739d938803d34f4a4f441889b0d8015513bd", + "addons/core/Sounds/ERR/Speech/soldier_moving.wav": "a61dda64e6fc2a11eac3e6008ee14b89f360bd67e258dce1191a71d9e2e26fad", + "addons/core/Sounds/ERR/Speech/soldier_moving.wav.meta": "bd87cd72ccb819584f9da09fb0d6973ffd6eb0bb5572c562978500e2af467217", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp": "c821c61afb2ddc12d3ecdb552a66d2a9ff89a5258a567ff2a99fed4f45a33520", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.acp.meta": "65a27b81a5b437163befd4dc566785a9dda4def1798495ca53c8f768a5d7a73f", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav": "ffe6ef5fdf30411749e0cb73186e3005b1ce6a52fcb7c836caeb1bca422ed3ed", + "addons/core/Sounds/ERR/Speech/soldier_no_ammo.wav.meta": "25b5680fd2a313c18e15ce6e0d3f709d78352b93206c22c7881be19b81faddd5", + "addons/core/Sounds/ERR/Speech/soldier_reloading.acp": "51c5cb464bab6637cf9e3b1880a010e05774d76a92298daf40b1d84970845be7", + "addons/core/Sounds/ERR/Speech/soldier_reloading.acp.meta": "ca351e809b1ba7c69b066d2c1d0a5d2afdcaa833c1163e6d13a0396437e98cf6", + "addons/core/Sounds/ERR/Speech/soldier_reloading.wav": "15b2749f79bc73fd0784bcd6e6076e1bc50da835e0c434cd43bd185d0735c732", + "addons/core/Sounds/ERR/Speech/soldier_reloading.wav.meta": "161c9ebee1d0496c7aa9501d00eba646094bf1ce89cda4efde6e3a0229a49e4f", + "addons/core/Sounds/ERR/Speech/soldier_target_down.acp": "77acc89c4ef0b912b969a2e5f6c41e071e04d10cfe89666fbc1296878dab62bf", + "addons/core/Sounds/ERR/Speech/soldier_target_down.acp.meta": "fe456d354ace93b0f2261de483e86ccc92991011b1738c5703d6d7bc0daa49a6", + "addons/core/Sounds/ERR/Speech/soldier_target_down.wav": "e2e60e8b83a24a548c90b84c5e1137adb7e792cf1d4ba6232ddfb1012fa78892", + "addons/core/Sounds/ERR/Speech/soldier_target_down.wav.meta": "064588b86589ac9437fbccafedeefae04bec3331dd8a229d1c6d27b5e524a9e9", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.acp": "5ffd3ff57550296274e9e93fb64efdf2fb06a51161d6deb221c1f3eb408d1459", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.acp.meta": "366a3c9e20f27c0f73bdff5827576df8924e99241061f933e72bd342e5bc7119", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.wav": "bbcf454d48adea47478d410b1baf14df3a5d018237272e70ae33ee62823f822f", + "addons/core/Sounds/ERR/Speech/soldier_target_lost.wav.meta": "d1ac64242280521a7e40de51ae32a007878d7801401020e7a074a48e0f8ce62e", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.acp": "5af1c949d4662c2f33320165d2efdbd69cb183af1101aa246fe538bf0d91a33e", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.acp.meta": "aa7799e8a790539166a1d3a9c691416e7b2f6589d1674f5cf4b3e47523f15259", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.wav": "e4bd5e69fda289593fc6e6b8c2fae9a271a10d0a9bae877f18ba02dbbf75d1fc", + "addons/core/Sounds/ERR/Speech/soldier_under_fire.wav.meta": "25a988c31e4fc3ae6540920df3d4548307a4a1e3b96b1303e9b7bdb4ac5eea27", + "addons/core/Sounds/ERR/Speech/welcome.acp": "f8a7b6cdd08b57b4b227a2d5b480a6c76857d7fc8ace3434478aec01c0de5a83", + "addons/core/Sounds/ERR/Speech/welcome.acp.meta": "d3ac98b02c0725d347b30d0ac7586cb22904d46b65a145e4a1131222484a6929", + "addons/core/Sounds/ERR/Speech/welcome.wav": "01de068469bd6746dba7634fb6b5b85b150621d3359c17fd01bcb916b34b1720", + "addons/core/Sounds/ERR/Speech/welcome.wav.meta": "bf33edad44bbb04df852501154f08a9a9900ce503248abc698127a51e9eec934", + "addons/core/UI/Textures/ERR/SiteMarkers.edds": "611ec6c68c2456c2af017c47135134d73122461017b315f64ed7ca9891f20c21", + "addons/core/UI/Textures/ERR/SiteMarkers.edds.meta": "90f40b38e52a79951b72da2960e30887d5ee8bbcefbada0c0ac950c1bfcf847f", + "addons/core/UI/Textures/ERR/SiteMarkers.imageset": "3f947d03b3492ada541032539cdb3f34a03d68ae83c0ef8796dc7fd091b5911d", + "addons/core/UI/Textures/ERR/SiteMarkers.imageset.meta": "1dc5285abd0062af288fb40b2f22b5b7c3925cf7270a096862335db250ac1453", + "addons/core/UI/Textures/ERR/SiteMarkers.png": "76b472982234bd27050a9430e6a53f4c14fa38f7388db3706ebef506eab4e660", + "addons/core/UI/layouts/ERR/AdminMenu.layout": "9a2c9d6e2526d9318b4587bb69741f828f7f0f26607e5ef3791455fff6a701e3", + "addons/core/UI/layouts/ERR/AdminMenu.layout.meta": "9deeece996f43b1f1fed6b5ec89279645c7b6424250200a42580cc088142e9bf", + "addons/core/UI/layouts/ERR/AdminValue.layout": "cd811af6d2fb187f01c74e20ea07ad85669546b0ad70efae2ce52921ce26cbca", + "addons/core/UI/layouts/ERR/AdminValue.layout.meta": "56b3d2335db400c1308e07c4a35d278b23ef32013dfd6dc82951866327428d08", + "addons/core/UI/layouts/ERR/ContentRow.layout": "7bf19d12b1b5e2c165f8671e92ae9227b54b4d1e551de94fa67bd54d3a66fddb", + "addons/core/UI/layouts/ERR/ContentRow.layout.meta": "8c4bc13b41e7aee38e0ca640a97813ed1a6964a00e2cff9e1fe4ebd71fc2fdc6", + "addons/core/UI/layouts/ERR/ItemRow.layout": "3c7ae3acdf2fad0ba661a1152ea319392668d774adc09a2a8b61e9a0319db312", + "addons/core/UI/layouts/ERR/ItemRow.layout.meta": "33eaef9c403ea3a030e58ec17f78e46af457048243571ad5856fff04101fb60b", + "addons/core/UI/layouts/ERR/ItemWeightRow.layout": "dfa6b87420efc683cb278178553350daa7753004d64672741a3dc13b4316810d", + "addons/core/UI/layouts/ERR/ItemWeightRow.layout.meta": "eb4b28587abdf6100092fd6eee1695663fa6e1548d5e53017173c4a5f7320240", + "addons/core/UI/layouts/ERR/PauseModsButton.layout": "d21d436291e2c1b262e33dc228b0d60a1d188dc9e85cfda6d2373f8281431b79", + "addons/core/UI/layouts/ERR/PauseModsButton.layout.meta": "9ed6adabd8f53eb9a562d7186789876bba5c4202155ca894c1af866ca47354f3", + "addons/core/UI/layouts/ERR/PreparationFailure.layout": "b7c4a2e6aa2be0992b478bb4f969f80355753573fffbc15be44670f3b136ea2e", + "addons/core/UI/layouts/ERR/PreparationFailure.layout.meta": "17ca2c9a12f691680883cec368ff06f511c996e5da5c25498f5f0955887867b0", + "addons/core/UI/layouts/ERR/PreparationStatus.layout": "ec3369f4030e593d34043e70a311b0963606cf024cb452648671556f25f5b52a", + "addons/core/UI/layouts/ERR/PreparationStatus.layout.meta": "75b12176a443bb911fc4ad446982d762201fda42ed38736b79bc5439fca31ccc", + "addons/core/UI/layouts/ERR/RoundResults.layout": "8550ebc009024f619827a43fd766aff8b7fbf8bc87ef7593db0fd7f4d778c615", + "addons/core/UI/layouts/ERR/RoundResults.layout.meta": "7509e050b3910ee5730dd25c60aacf405110e943f4ab46e3fc2186b3b15a3cf9", + "addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout": "82d9ae77f076f945583791dfa0b01f1c925e6ff8aaebcf382fd56089fe61a115", + "addons/core/UI/layouts/ERRMap/ObjectiveMapElement.layout.meta": "8691fe2eaf46568bca4a9f8128b247a8da810bb87a5546aa7ca3334e740270d6", + "addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout": "aef5d565301046ae902033ec4eb4799ff1bdd9a37bc507898781d8790f04fc2a", + "addons/core/UI/layouts/ERRMap/SharedMapRenderTarget.layout.meta": "5c846445cc089e2e08899ba703059d4adb805ff30ab5a16409a3cd59718cbd54", + "addons/core/Worlds/ERR_Everon.ent": "22324bc7eb0d80dec8a1f3bd61a9df9201b72f749f4e751766b0c9d0b7d46b87", + "addons/core/Worlds/ERR_Everon.ent.meta": "19d1903ca72baa326b4724a6791d0da1104a1e53f3f31dc1ca41a856efd68e83", + "addons/core/Worlds/ERR_Everon_Layers/default.layer": "6bcb7fbb27b6282719dae8a37486e518d4cbaea385f2ea9af1918b36bb28b175" + }, + "project_difference": "Disposable project adds Rally DLC dependency for native verification", + "fixture_only_files": [ + "addons/core/Prefabs/Vehicles/ERR_RoleTestCar.et", + "addons/core/Prefabs/Vehicles/ERR_RoleTestCar.et.meta", + "addons/core/Prefabs/Vehicles/ERR_RoleTestEscort.et", + "addons/core/Prefabs/Vehicles/ERR_RoleTestEscort.et.meta", + "addons/core/Prefabs/Vehicles/ERR_RoleTestTruck.et", + "addons/core/Prefabs/Vehicles/ERR_RoleTestTruck.et.meta", + "addons/core/Scripts/Game/ERR/00_Core/ERR_ZZZContentReviewProbe.c" + ] +} diff --git a/docs/evidence/workshop-0.0.144-2026-11-06/README.md b/docs/evidence/workshop-0.0.144-2026-11-06/README.md new file mode 100644 index 00000000..e79611d4 --- /dev/null +++ b/docs/evidence/workshop-0.0.144-2026-11-06/README.md @@ -0,0 +1,10 @@ +# Workshop 0.0.144 — 6 November 2026 + +User-published release: Workbench confirmed successful upload and backend processing. +The bundle manifest identifies Escape 2528466DE220D91C version 0.0.144. +All current mission script bytes match the published bundle; both retired RHS +script overrides are absent. Archive digest and individual script hashes are +in verification.json; selected success lines are in upload.log. + +The published-version helper was run after verifying this result. +This records publication and bundle contents, not new multiplayer qualification. diff --git a/docs/evidence/workshop-0.0.144-2026-11-06/upload.log b/docs/evidence/workshop-0.0.144-2026-11-06/upload.log new file mode 100644 index 00000000..70a5a811 --- /dev/null +++ b/docs/evidence/workshop-0.0.144-2026-11-06/upload.log @@ -0,0 +1,5 @@ +22:04:06.414 DEFAULT : Bundle successfully saved into: C:/users/steamuser/AppData/Local/Temp/Arma Reforger Workbench/Publishing/2528466DE220D91C +22:04:07.848 DEFAULT : Publishing project to Workshop... +22:04:15.756 DEFAULT : Uploading finished +22:04:15.756 DEFAULT : Project uploaded successfully +22:04:21.760 DEFAULT : Addon processing successful diff --git a/docs/evidence/workshop-0.0.144-2026-11-06/verification.json b/docs/evidence/workshop-0.0.144-2026-11-06/verification.json new file mode 100644 index 00000000..88fa25c0 --- /dev/null +++ b/docs/evidence/workshop-0.0.144-2026-11-06/verification.json @@ -0,0 +1,412 @@ +{ + "addon_id": "2528466DE220D91C", + "version": "0.0.144", + "archive_sha256": "c1f6b66db29424a40410b1524cc46af0b1a6002c45041dfe3ecc1197cfb3dd9c", + "archive_bytes": 8346623, + "current_script_count": 398, + "current_script_hashes_match_uploaded_bundle": true, + "retired_overrides_absent": [ + "scripts/game/editor/components/editableentity/rhs_cas_editableentitycomponent.c", + "scripts/game/vehicle/rhs_destructiontirecomponent.c" + ], + "scripts": { + "scripts/gamelib/err/00_core/err_diagnosticnosplash.c": "0ea1b402f8927b6d68bf6f7e5caa2967f7e3a39147634faab147796b791933b5", + "scripts/workbenchgame/err/00_core/err_validatebaseworldplugin.c": "49a38c37b51e5318c7dcbcb01543dd9a6300d053f0d39808b3974f4edc45b871", + "scripts/workbenchgame/err/00_core/err_buildatlasmodel.c": "f6cb5e6f5afc9bb60a8a46d96b52c7506882faf0a880e0b20a01a2603b336d2c", + "scripts/workbenchgame/err/40_chat/err_validateworldplugin.c": "d1f3fc372d0d16062a5983f2a6cffb6e72f202cb93fea5b33b4d77e0c852ecc7", + "scripts/game/err/00_core/err_actors.c": "7258b838f8365e4fa575c4f2ccc8532e22a33946405ebb490120534d5ca65607", + "scripts/game/err/00_core/err_location.c": "6323facd2d5b32382b466a2aa0140064632a8c1de0597e0738cb09a3fcfd7abb", + "scripts/game/err/00_core/err_factioncatalog.c": "a5a8c53acf21259e14f59cb919535910f30dabff5a9179c664bc6a7a4d744d6e", + "scripts/game/err/00_core/err_spawnlogic.c": "6d9243f66b4ca8c53d53fedff9dea8986c815e90c1f97de58200cd759aa8b49f", + "scripts/game/err/00_core/err_actions.c": "cabb21413c90b252d29708b62228d0679c51c76e39ee0e483953ad7061b2b9d6", + "scripts/game/err/00_core/err_supplies.c": "752e8a56b0b8cde33cf532032cb0a203553017b686faac2e19bee06f7a9c0713", + "scripts/game/err/00_core/err_playerroster.c": "dc785a8a1d78a285fe55ce76f87b78a9f522eeb9f7d9655dfe9b5c4348a26a18", + "scripts/game/err/00_core/err_objectives.c": "b9cd5bb3b193c20401175c4328405be1b121e8a60b7b5999910b6a71f834af8a", + "scripts/game/err/00_core/err_sitedefinition.c": "d421d70b32bd2b55cd8e4966c04af3d5bc381ac811d3b4b2efa4bc0a8af8bd2c", + "scripts/game/err/00_core/err_documentcomponent.c": "885c8ab4fc9e64c3f8b40056536096c8c32b011cb340b25ca00353a96da15c69", + "scripts/game/err/00_core/err_nativedefinitionprobe.c": "904d8d4c3e7b91d49dadfe495fc7b4f02f300e4aaf7efa348df5ca17ec4a6e8a", + "scripts/game/err/00_core/err_resources.c": "d0169aac6fd0c38928c47a9002ded0fd8ba558ea3314a600e792d307ac1ca3ee", + "scripts/game/err/00_core/err_playeradmincommands.c": "eca9baa3b07da48a740851583540840f8bf5f65f7be854902a3778f76967faad", + "scripts/game/err/00_core/err_nativesitesurvey.c": "ac0203753ade0cdff6d483132797a80e4520f14546c3f9dea288281cd4cd9c4f", + "scripts/game/err/00_core/err_extractionservice.c": "c48e79a117990f83839704ae221af05fc7995b956af2d4b4f9ed2a6b91ec335a", + "scripts/game/err/00_core/err_nativeextractionprobe.c": "4b09385f73206de004f4f3c38a6192fd658a0d2012482dc5a84dff1599ceb972", + "scripts/game/err/00_core/err_playerescaperesult.c": "3124ab4d2d6d471409a47aba0af528790734df53243c03fe0cdac3e407047c14", + "scripts/game/err/00_core/err_nativeresultprobe.c": "c9a89cae067f221b9f33965b4d3ab311b78ba79ea383ca65032c4001df44b472", + "scripts/game/err/00_core/err_timeservice.c": "63867760876d523a1794f619118a52c5cd387d5d92756cd286b2c16a348a6c7b", + "scripts/game/err/00_core/err_nativetimeprobe.c": "4a2c6ffd947334a0a71eac083d10c853c524b00042e9ea0987497c4cee60c3d5", + "scripts/game/err/00_core/err_nativeobjectiveprobe.c": "71fbd2479a70048f83d8b262ad1452f427be2c0afc8b071ef13bff477b9dc29b", + "scripts/game/err/00_core/err_objectivedetails.c": "628ebd166dcb5544c2d18dce489619984887ee18296cf2446fc6d894f89dd5bf", + "scripts/game/err/00_core/err_radiodefenceservice.c": "f5f0bf1352141f933d0edb5630e30541e001dc07e1d2c8529b29cc159c126b13", + "scripts/game/err/00_core/err_nativeradiodefenceprobe.c": "ff1e27a0ce75b123a86e7df31354831880ca62ea90b6c5d7c60d3ba168e1fff0", + "scripts/game/err/00_core/err_nativestationteardowndiagnostic.c": "172248540932174341882861bb78a9720a6cf89981fcdf9dffe63f7fd4023f2c", + "scripts/game/err/00_core/err_nativetransportsurvey.c": "e5abdb69c0675a20f4287afb24b9e3c877e91b162c77c32d81ef61e2a8b72577", + "scripts/game/err/00_core/err_spawnplacement.c": "fc5b61f1877aeaee75fbfd6aed3cd0b4c5277ae8543bc38a0c09836353d54b27", + "scripts/game/err/00_core/err_nativelifecycleprobe.c": "b613a5dbe81c2032fd02d31070ae5631166d14d0b02cdbec3b63b782f0bbc115", + "scripts/game/err/00_core/err_recoveryservice.c": "182037828b74938746022ebe03bbd9cf849d52e31067c0b33f392f03969d6162", + "scripts/game/err/00_core/err_nativerecoveryprobe.c": "d6691f22432b3ce37d07d448aeb3ce7feb5cd09e852e0167b5e4676afd24bb21", + "scripts/game/err/00_core/err_nativeprisonerprobe.c": "e2d1ffe5d269add55124601ff0d1dc032a398c7d51010736e6f0e4cbeb38ae86", + "scripts/game/err/00_core/err_nativemedicalprobe.c": "4b73e7cf35e9c8fddb089678a320ea58272e1b6611318d0a762754c171eff785", + "scripts/game/err/00_core/err_nativecasualtyloadprobe.c": "94c533deea654ec546df3f1ebb7cd213e6cd79b1125d99bab5303ef8e87b018b", + "scripts/game/err/00_core/err_nativeadminsettingsprobe.c": "73e58561e08e50008d33f81eed606dd4e8109fb69a627e892d28ca468d641f7d", + "scripts/game/err/00_core/err_environmentservice.c": "c0fae5bf51ccf507bc84d44adc2d1dff021cd83653c0468b7645a4f343e3fc8d", + "scripts/game/err/00_core/err_nativeenvironmentprobe.c": "9e2e66ac5d9778a1c65445348e3300cbb90b68b3f669f3ddf1d2b78a858430eb", + "scripts/game/err/00_core/err_nativefactioncatalogprobe.c": "e3011fa47b67122d7b2c23af8f91b7a217599d6cc114c4f9de628744b9c948d3", + "scripts/game/err/00_core/err_nativepatrolprobe.c": "5a2af71cc4cfccc7dd7c23584398a38290eba1a8894cd46f6967252ff3a7087c", + "scripts/game/err/00_core/err_nativeenvironmentrestartprobe.c": "7a836a206381b8e8de24c92baf141beb30575723675dd6948d738169ed26b507", + "scripts/game/err/00_core/err_inventory.c": "b63e679d5b650b63a7a91dfc3f42a62f4be58b0338f6df3313e66d29a93bebf6", + "scripts/game/err/00_core/err_nativeobjectivelossprobe.c": "6b80fd317a8c6e8583bd4337870838a86251e3b8a681d0aa07e8b52e22abfc48", + "scripts/game/err/00_core/err_sitediscoveryrules.c": "dcbce3b7aee89bfc47a50e9de89209758af1f1bb462b99af67a8ad7a26e9f229", + "scripts/game/err/00_core/err_initialguardrules.c": "8c9d6b1dc4c2af96284e34f487eebb5a221091016ef108006dec60b4e3836558", + "scripts/game/err/00_core/err_casualtyloadingservice.c": "6efcfb4bb1bdf0da84400eef28a24f6c61e7f446073af2c9667b6f26f0bc47b5", + "scripts/game/err/00_core/err_casualtyloadingowner.c": "3f430930c2598951b75cba157a57967189686ca7a86aff8ecedd20f181262bbb", + "scripts/game/err/00_core/err_casualtyloadinggamemode.c": "1e670937736330716a467157d0f45bace512047d7e87d8678f4ae0ee123969c3", + "scripts/game/err/00_core/err_loadcasualtyaction.c": "1521af55a34110ce1c971b5226a618a9c6d931622abaae4946d9c0d27c05a273", + "scripts/game/err/00_core/err_nativecasualtyserviceprobe.c": "02a9d70d1f4ba20326df199ba41489cfbae12b7bb0aab441361421cee38ad9ea", + "scripts/game/err/00_core/err_nativeguardcancelprobe.c": "bfa1c65cb039e19c3d1891e4a3fd33469e974c97cc7f42128efc31a8f587d514", + "scripts/game/err/00_core/err_casualtygroundsupport.c": "8010394e7731d3bc2ce436cf795a37819e16d4d605e8d152027cf391e811d37c", + "scripts/game/err/00_core/err_nativecasualtygroundprobe.c": "41f40db3735f8aa535c0061458d9892dcfe972222b8a17238e67b65633c46bc3", + "scripts/game/err/00_core/err_radiofeedback.c": "545262e65e9b3645d9e514a0521e442fe08f0c2e4e7c83ba638c5105d09818db", + "scripts/game/err/00_core/err_extractionplacement.c": "6d388fe21f08b25cbdb5dfa4e198d94a4c80c5092f8d17630a4654e18bf8b3f5", + "scripts/game/err/00_core/err_nativecasualtyremoveprobe.c": "4cfc06f6d43b709b63caae714155ffc562502e884f49a9825623c6f46972ad36", + "scripts/game/err/00_core/err_ordinaryscenariolaunch.c": "8d8da4c1222dcc6adfee350490f4399b4129cfce7a42b45fd7fba52febfd3eda", + "scripts/game/err/00_core/err_localadmission.c": "a076922d1ae966cf5cc67b198166ca6b1288358fb7f641207a4681e6a610a2ae", + "scripts/game/err/00_core/err_nativelocaladmissionprobe.c": "29c860ca3e51cdaa463f3c23a98ff45ee0499ce9bbc322046e0efbed587f1e09", + "scripts/game/err/00_core/err_nativepoweredflightprobe.c": "7ae5d6f85bbbebec214c66bfdf6f53b93c802f109fcd5bcfbad82c5d61d6cb9f", + "scripts/game/err/00_core/err_nativediscoverymapprobe.c": "9ed32d391d08d937ff4f9f33bd11c3a204ce9a2230c2d72b6761e0320b31f24f", + "scripts/game/err/00_core/err_nativeprisonbreachprobe.c": "4889e0d3799a6a21b9f84bcb2f2ae78dce16269cccd1329f8d1fcc1a23e7c22c", + "scripts/game/err/00_core/err_itemstationteardown.c": "102e61216e86e47ad243cc19f6f66da1fcd8cc77f8799354ceaeb4a6dc74622e", + "scripts/game/err/00_core/err_nativeitemstationteardownprobe.c": "028588a49fa9207087cd27ec9396979cd932daa071e2490bd0262cd71dae30d9", + "scripts/game/err/00_core/err_nativeflightfootprint.c": "a8862a04ac784426f431e2e9cd3f1f19f820b38a081674d29549b8b00277c72d", + "scripts/game/err/00_core/err_nativeflightinputdiagnostics.c": "e231dcbdaefe81beb3bd587cb73be8fb3d3184bc86d18dbaa30a43ca4ba5dcc4", + "scripts/game/err/00_core/err_nativeprogressionidentityprobe.c": "1d3fe20bce761a1082964bca9bad9ce79d1fa8b04db9b5053bae98da380ae560", + "scripts/game/err/00_core/err_nativeendprobe.c": "2dec80c7e247ec5c257407f95d9d5edd42fe0cc44d6af9f724f6ebd10d8a355f", + "scripts/game/err/00_core/err_preparationstatus.c": "c5cc9125986e2285282f3f7fa9068ca72f00d7e26465d00213e734039c0e34e4", + "scripts/game/err/00_core/err_nativepreparationstatusprobe.c": "456f4d7c3272b89d5f4c6713617baa5596d846994152356fee9a659839bcd8b5", + "scripts/game/err/00_core/err_ordinaryinputobserver.c": "808a46cc1e4b31b65dbbbcdd55493f594ebb3974bbec38b4a2402334c653c0ef", + "scripts/game/err/00_core/err_inventorylayout.c": "1af5df45a0f06d19a017954e9bf4b2d722e2d2389f8ffdeb1d024435b9a08be8", + "scripts/game/err/00_core/err_ordinarylookobserver.c": "d5a1b636938d65e9d11c78b31487f2924400c34d98e2ec812954a2a224da7dc0", + "scripts/game/err/00_core/err_ordinarygateobserver.c": "1e376ca83c0005cf532539e14d7f47363c47b7c5b03fe3d55405a59208705fd7", + "scripts/game/err/00_core/err_casualtyloadingfeedback.c": "ac554a946cd14f73a5bf79005b8a3f770c9caaf0a6ea409134077b8d96f9433f", + "scripts/game/err/00_core/err_adminprovider.c": "62e05aceb49da07fed7aa89fb6b2f8eb3efc373ac09eff286fba983c3ad570eb", + "scripts/game/err/00_core/err_adminplayertools.c": "56780d78bf423f54f482d8620f821b8d3eb0199194482b4f12e37f5ec3f55ef5", + "scripts/game/err/00_core/err_adminsession.c": "27c88e9317ada33351042f0d1bdbd8e406fd798de34d1057544f1c6165a289b2", + "scripts/game/err/00_core/err_chatclient.c": "4bf937ff74e0483c17fa0103f73bfee3afd8f67a37c0c248b08772a17bfcc349", + "scripts/game/err/00_core/err_nativeadminmenuprobe.c": "2deded62be82adcf9866dacf8065f0c6a9a643bdd60a1c3e87990e1c70254c48", + "scripts/game/err/00_core/err_forceledger.c": "0ecaf1c5a52568e751678b0b1236e91e6adb538f8fbf010d38b61a312d1bf253", + "scripts/game/err/00_core/err_forcesimulation.c": "2bbb8888c752a3ffc042f3059937526d25ae288af5b4db024cc683025a2605ce", + "scripts/game/err/00_core/err_vehiclesecurityactions.c": "bd7d0aeb4abcc9d8044e4888f9a92f9e5fc97c098bdfa3bbad57e1a29697a779", + "scripts/game/err/00_core/err_vehiclesecuritycomponent.c": "2ffec4e646584ec546147fc4b08249825cb32b531aba26467b586d760485adc3", + "scripts/game/err/00_core/err_nativevehiclesecurityprobe.c": "59bce863142e4fba4b6fb2f544bb8a58061f0e99b1a38e5ac291cea919563763", + "scripts/game/err/00_core/err_nativetransportprobe.c": "7a3fe04aa1c5ed1061ff63d9d5180e8b925932b62d76c1ffb49bd3dc23530993", + "scripts/game/err/00_core/err_escapegameoverscreeninfo.c": "4746b0715c6e9a527038b47d54d2ff305becea219da6b736f6998d81901143c9", + "scripts/game/err/00_core/err_spawnclientscene.c": "b56f99a91cdc53bdb93d320d10839339022d7e61e6b101eee8296271abd7d3cb", + "scripts/game/err/00_core/err_spawnsceneinventory.c": "76b79d5bd9d1f367e1ed19724302b7d49f8b0ede85cf19e89c452582ef651f8f", + "scripts/game/err/00_core/err_spawnscenelease.c": "20de7f96bacc9037580d88d4424664b4554b2c082d82e7d29913e9dfe390b594", + "scripts/game/err/00_core/err_contentpolicy.c": "3a4987345d5a7159234a7e1a08bf5ac40dd5a23031e9b1953fc43a0501d9924b", + "scripts/game/err/00_core/err_contentmenu.c": "d9df3b2dd8fca119ecee466dc71d336b5a70ee7d5fced368cf34e250d22075de", + "scripts/game/err/00_core/err_contentdefinition.c": "bc1dd4ed27ec894cf4bd617fb226cb8140b544aaa9ef6d8654e815d81e7f6fd0", + "scripts/game/err/00_core/err_contentsettings.c": "3e2734dfb935a4e93d79b66ca4a7c883723a1fc348e3595432dbf2bfca643923", + "scripts/game/err/00_core/err_nativecontentprobe.c": "cb0ccfe1e1575f9ed80a8054058b471f3543378db059e6af2fed8eb42a262638", + "scripts/game/err/00_core/err_factionselection.c": "04b8bd8a042cf743ab8a87ec3711f9758e7b0112995a9d363e81a63df4eabe5e", + "scripts/game/err/00_core/err_factionmenu.c": "1deab4c396c307fc17dbaa8731b2943ffb73c37dc0121a5cba5c239c34901ba3", + "scripts/game/err/00_core/err_nativefactionselectionprobe.c": "946879d822e7be2d48e03a3140aa1aad3e3d44dd18507fa3cdedb4c6d7dd81b9", + "scripts/game/err/00_core/err_debugai.c": "bc5529c60591a6c36c39cdb753b1af948690fc3c3c725f38a8d595b41a499235", + "scripts/game/err/00_core/err_nativegeneratedsitesprobe.c": "a3202ee4658e98539122926755caf689a693a79642e8c88d3146c247dd961138", + "scripts/game/err/00_core/err_prisonpatrol.c": "284618391ee2da84dbcda4a99ca3c072eae3d67b8a9ef40a86827b9ea00810f9", + "scripts/game/err/00_core/err_debugintel.c": "a9f6e7e42a3214879a21052e897f9afc0653c12ff15d5bee7766e26a1af6ab17", + "scripts/game/err/00_core/err_nativeopeningtoolsprobe.c": "0c5d6b96ed5a7cb1cf0d098d534dc7190449ed09339062e6b584729d53a61b4c", + "scripts/game/err/00_core/err_airfieldplacement.c": "0601d8da570e1f63e43ea7df451d0e997872e4e163669fd8ad37bedd59de7b9b", + "scripts/game/err/00_core/err_nativeairfieldmarkersprobe.c": "980025c07d042c2f109e2c99ccee0316b596806ba2c4fcd9446b6ad7580d1d1f", + "scripts/game/err/00_core/err_nativeradiocampprobe.c": "67f1a088f9b20e5f0f11ed3aa083ffa772bffd7c74d85b7a307344ac3d47e09a", + "scripts/game/err/00_core/err_nativeaggressionprobe.c": "dcda8528a64d35e6aa2f030b59503a49ea8a85ffcc33beaecdf8da00c003b50e", + "scripts/game/err/00_core/err_nativeenemyloadoutprobe.c": "0885ca69f6fa7f53414ce1792cfc3c49916886b8173783c634135c13c5d37429", + "scripts/game/err/00_core/err_journaltext.c": "1ad00a77cb0be741c7b6ef5dad2d8a8c1ff1fcca3b093df2e132ead0b69f74e1", + "scripts/game/err/00_core/err_nativeradiointeractionprobe.c": "7b27552d233813894f65c08eb9f04b547c4ca9ff96a2370a763cb94bd4a555c3", + "scripts/game/err/00_core/err_sitesquads.c": "183883783a4e8399cf62851a4cc65a5d091d25131bc53b4323cf17286315b2e0", + "scripts/game/err/00_core/err_nativesitegarrisonsprobe.c": "1a5ff8747d7501862085b5e9162043fee3b05e82c73c516ad8093aaada53dc60", + "scripts/game/err/00_core/err_unconsciousweapon.c": "24d31bc857486638e55c605283c17cde0cdbd3c5c6021eac1ec93611387b10d1", + "scripts/game/err/00_core/err_epinephrine.c": "14a75e040f510773313c7e70b57f338821bc1ded650bc65133968dcad6e49c7c", + "scripts/game/err/00_core/err_nativemedicalcombatprobe.c": "59c5b04dd32370f8cf5c62fe6931d64209825522127a068b1957e9d1556274e1", + "scripts/game/err/00_core/err_nativeinfantrycombatprobe.c": "3e4c4382ab91f470357268927b954fd101685df6b2244df483f0422d6c0d7da2", + "scripts/game/err/00_core/err_nativeoptionalsiteprobe.c": "59d86432c19fd85da30a63087cf1f15375c8ee30178ed7e2765c1bda4cc4d035", + "scripts/game/err/00_core/err_viewdistance.c": "8514f72f8207f12570d2317e64094a45507a1647dfd45a1501499ef81e90189f", + "scripts/game/err/00_core/err_terrainsites.c": "4ac347d4d91951bcc7175a965ccea25f3782edb6e352354cce506d6b626e5ac0", + "scripts/game/err/00_core/err_spawnfinalization.c": "6ec741f8d19ee316d3c67b0dd2216698584bf2cde3634a3d6a7c3cdc3a3935b8", + "scripts/game/err/00_core/err_terraintakeoversettings.c": "da22775930b13e41d4a71409e37af3bb99e4cc1d94bdea0e3b59fbdcd4d40132", + "scripts/game/err/00_core/err_terraintakeover.c": "ac31af5ff2937f8a1fd89ac03732a8a473b27b09c83a07923f17986b0f9db841", + "scripts/game/err/00_core/err_terraintakeoverclient.c": "70f192d5d749b4211c5604575d2b9d7e39deca589b5841ffdd03f99baeca1280", + "scripts/game/err/00_core/err_terraintakeovermanagers.c": "ab1d64c8073e4daebf14f4ad2c745d874032675ebcac3fdb0fdae4626acb8dbf", + "scripts/game/err/00_core/err_playermedical.c": "270454d50235bc28df9bba4fde2689934578874c4eca9560afb9f0f6324d7215", + "scripts/game/err/00_core/err_siteservice.c": "2b283ad19b046fd6b33245d466b197bd05b4c472e128a747e6b1e725f4a34c2a", + "scripts/game/err/00_core/err_playerguide.c": "dc52f551a1d3705fceb64ea18d882009d9e9548c01f08ae1c7ef3083b19ab2d3", + "scripts/game/err/00_core/err_discoverymap.c": "8a8653b322c948c462002077272dae79e2f45a24e883767b3ad9c1f24caad237", + "scripts/game/err/00_core/err_objectivemappresentation.c": "70339c05c550b72a4fd5890a871c5d8e6a9e574813d61696194c5fbb1475ac8f", + "scripts/game/err/00_core/err_nativeobjectivemapprobe.c": "37e66177ee0f16fc33d3d18321211206bc4f095fccbd17b177d4b8cc1ba4e057", + "scripts/game/err/00_core/err_observer.c": "7c478eff3575eb1bd8a85c08955d4ca7f63b57969cd7b2b76dfd6c42136de1af", + "scripts/game/err/00_core/err_unconsciouscameraprobe.c": "cfc63058a20fad99e76c59b64d0d288cc3441fd3486ff63a6dde9998b4ab103d", + "scripts/game/err/00_core/err_terraintakeoverpresentation.c": "91d450215eb6ed2da74446b5fbb805356e3881e3cb43e37fe45308e30b22be9c", + "scripts/game/err/00_core/err_terraincatalog.c": "ba2e68543a8c929492d06f8725a743d26849a630d6f8c09be0f23894f92d0990", + "scripts/game/err/00_core/err_terrainpreference.c": "93fc55f2c33e95adbcf2bead3430aa14bdb55154315760bcc9647f89dc8286ff", + "scripts/game/err/00_core/err_terrainselection.c": "ee75cac068b99e7403f5eaabe556152513cf5d973602cc6e6b8967d25402f6ad", + "scripts/game/err/00_core/err_terrainmenu.c": "1da542ef60ff7c1897b1f12432c636ef6a08cc710bac520ef186589d506e9a54", + "scripts/game/err/00_core/err_serveritemcatalog.c": "047d8c4c36bfa32e1afed13f8199f01681ebd362c72d87da8868cb6959661973", + "scripts/game/err/00_core/err_serveritemsmenu.c": "b81283ec17fdd9f72096901f8bc2a3c87fb8fa4c8fd488579ba0817328b9dafd", + "scripts/game/err/00_core/err_itempreferences.c": "1319637add7f9fdb122ac130784c5426d90a32380d870df03efcce7f297c55e9", + "scripts/game/err/00_core/err_welcomevoice.c": "a6a9a816dee1c766675990c158a757cf9ea8628a7b2b0de991af67ff4cd23e47", + "scripts/game/err/00_core/err_profileconfig.c": "b5aca526a860ed9ed609dc3fad99ebb34d2f6fbd537575a167390472efd4ba89", + "scripts/game/err/00_core/err_selectionstyle.c": "b9ea5158e51559dc13812cdfa8939ac36b58c79b9e4115c72465d869fdf264a8", + "scripts/game/err/00_core/err_reaperrhscompat.c": "bcdf98c05ac6cdf0c7eaa854531b02e9ee4f53fbb346ae01d58114e572e7dd4f", + "scripts/game/err/00_core/err_gamemode.c": "d26e665cf5b9c0e1dc6c5e2da200a99711ef9272718d330f5aa66b09cede40d1", + "scripts/game/err/00_core/err_generatedsites.c": "4943f761d0274e163a1da325ac4f750de9180947b05b79ee173e12141bfd6661", + "scripts/game/err/00_core/err_missionrules.c": "17d1f48878b02a457eebbe5ff87c4267488d68d2a9b3121dda77a8bc8e69c8c6", + "scripts/game/err/00_core/err_prisonescapeservice.c": "ed180448cb516bc4ec521aedd366810a47787628c7f5ee9c9afdbd185d980751", + "scripts/game/err/00_core/err_scenariocomponent.c": "ca6b20d5c4599e31957e5cb464d21bb3a4bac517dd539711f9d4f380e48a0e15", + "scripts/game/err/00_core/err_startrules.c": "ab7c21ef700343cbe769d8d51d91f167db37285b466d6af9873e121b3adf4ade", + "scripts/game/err/00_core/err_startsetup.c": "58a6b617b22910d0ce9255f82091dc11cd1284417a66adf1cdaa7b661c1ed01c", + "scripts/game/err/00_core/err_settings.c": "fc5cbd7f52632228c071b9f14cce7979ef55298672e441f665f0efa97f083249", + "scripts/game/err/00_core/err_adminservice.c": "277df355d00458bf4a337b68feeb926ec4aa12c1546a604d039121a1bde7d995", + "scripts/game/err/00_core/err_adminmenu.c": "cac52cfb9f31ba42daed671e55bf5d55ea0840139deba5d13a0e156ec90559ff", + "scripts/game/err/00_core/err_objectivetext.c": "d2fd3670c89d679fcb1359ebccf67b58734fe5168e31fc239bdeffa7f8ff0607", + "scripts/game/err/00_core/err_crashsiteresources.c": "832aebf6e754dba54ba28b8f480180d32ced968a2d2f192424c4007a862c2b43", + "scripts/game/err/00_core/err_nativecontractsprobe.c": "60aa767d9455f2f4958a6a47bd68bbd8ab0466adc8f1dd9ae433c40ae96c68ff", + "scripts/game/err/00_core/err_prisonai.c": "67f8b444824634fc37fc253c60fd24b56d06d971f48e56a8d53095c97aaf0070", + "scripts/game/err/00_core/err_inventoryhitzonecompat.c": "23c34f901311dce63a79aafe83c11e2fc25bd3fddb0cde38bd313eb90878ca90", + "scripts/game/err/00_core/err_nativeinventoryhitzoneprobe.c": "604eacdc66cd52bc8a0115862ee7884a8b0f83bdb50609397de671eacd476543", + "scripts/game/err/00_core/err_nativebasesmoke.c": "f7697361c6a056a62aff86de7f7d69e9ccf47b92121dcb96ed012ad136e47e30", + "scripts/game/err/00_core/err_speechservice.c": "74ea305ac0c9a9d145646a5c73cba58e4920ab472943ae73b3dbd71d8216f752", + "scripts/game/err/00_core/err_speechmenu.c": "33f9ef80b4d6cdbf3646eab602d15ae0d05884bb20b3a7222b0648752339cda5", + "scripts/game/err/00_core/err_welcomeidentity.c": "8624bac67c1990f87b3fb799361e5facd31c2e03cb621563b9c73c4fe9d7f87b", + "scripts/game/err/00_core/err_playerreconnect.c": "478fd041e8a13132df25202088f42d0810d36680060dd7a0424d8f40a5b1ca44", + "scripts/game/err/00_core/err_observertargets.c": "1dfd50307b5d74075b90b5f2f70bae2c9488fc12df03d82eb19350a724f910f6", + "scripts/game/err/00_core/err_observerplayerview.c": "c287a1891451dce0836c6e859eb962c154aad9621a46e50400f44fb83f97d95e", + "scripts/game/err/00_core/err_nativeroadblocksprobe.c": "6f44725b049f2545a9ce3c94ae3e9134e16077fa017a438fe4f073b453292c1e", + "scripts/game/err/00_core/err_performance.c": "037ffa482e3765bb537629e34f10919d85d4b6bfb0abf56ccc7c0d44fce8872f", + "scripts/game/err/00_core/err_observerscope.c": "97d29535a0ca1571ceb86996f58b68e5ba0944edfe30370455c52a321772f85e", + "scripts/game/err/00_core/err_itemstationlifecycle.c": "0feee55cc5ddf13e00fe73ae3926ec2cadd5ba861d793a939164287ccbe1861d", + "scripts/game/err/00_core/err_serveritemsweightsmenu.c": "f0900e42100c9a58402cfdd48b7f27689144f53e03d3ae3dcd4bbebc13a5f61f", + "scripts/game/err/00_core/err_extractionradio.c": "ad7fd91d8bb96f05f3be04a03fd00c20ab9413adb12d649d3020c6f7994319e1", + "scripts/game/err/00_core/err_nativerescueprobe.c": "78f4dc11a179a5b924c0ec1939f0fc1e61d4e6f6647729c48a9f126ee32d1714", + "scripts/game/err/00_core/err_nativecoordinatedaiprobe.c": "9104a7a5154bf34906f135f00c5793229e343da6a1ed19dd572e3c1d9821d393", + "scripts/game/err/00_core/err_rescuelanding.c": "e6f63ee8860335de1125e0a62eae3b8406faf5a5ad2c8d9c6f9a6da077986e56", + "scripts/game/err/00_core/err_terraincontrollerinit.c": "8071e38812ac61f9b480d9e91f9ebc7712b360d431f5555da83027db6cdf2471", + "scripts/game/err/00_core/err_selfepinephrine.c": "da5850374b51e89016c4557d06f3c7c087b6e6e36fa9734b22c7c6c50d757914", + "scripts/game/err/00_core/err_zselfepinephrineprobe.c": "a13e14d1ef525209d4609a2532c6d72135377ce058298937b632a91eeb6392fe", + "scripts/game/err/00_core/err_startbackpack.c": "4a36799d3a3defd674822974cd96647c0accb2a854631dd5488c35e2ef697f7c", + "scripts/game/err/00_core/err_startbackpackmenu.c": "07c90db1a84893759dae71f40b7ae3109827646e48fade542190d21598ac271e", + "scripts/game/err/00_core/err_zstartbackpackprobe.c": "6778cd98392f4e73dfe974782e626d98472251c1266698020d63edf8fe735bcf", + "scripts/game/err/00_core/err_nativespeechdownloadprobe.c": "5377da12cabd58b9105851a2348d7496316db371bfc4346a5fb3f84f245ec013", + "scripts/game/err/00_core/err_bakedspeech.c": "d11fff16f86fd3447126701af84c3800860d721263b3c2c16d3b91d686d8b2fc", + "scripts/game/err/00_core/err_zbakedspeechprobe.c": "533c89b6a258dccb61d7ff6abe0a43da58d52ffae60735a38c2545fbb4480afb", + "scripts/game/err/00_core/err_nativesarkaprobe.c": "511816c4b86c9f1392bc4a1d83ad11e082280bec16356d8ab24ac1f2094bba93", + "scripts/game/err/00_core/err_adminmenufields.c": "55466b735c5c8f1041ac600338d55847372a71af48ba1ffbde8cce4286e55b19", + "scripts/game/err/00_core/err_menutheme.c": "90d9babfec7978b3d7f5baffedbbe5c1b54a9742f576f51e6232043e32d1cc9a", + "scripts/game/err/00_core/err_adminmenupages.c": "fc07549ba14900998223e8c1a95f57ddb0f365d0d687ac4907b0d97ffe1612b8", + "scripts/game/err/00_core/err_adminmenuview.c": "6c34557350659782bc1a098169dbbabf1f71502c35cdf711b83ce0efad907142", + "scripts/game/err/00_core/err_discoveryservice.c": "552d9e40f72a135f19d25a17fbecf475b8bba8d8b62ec6b6d055c65499a0b637", + "scripts/game/err/00_core/err_burybodyaction.c": "adbf4cee5b5f5317b185f17738205f28b701a15364e643cc9fb443866a121109", + "scripts/game/err/00_core/err_preparationfailuremenu.c": "5c31219740bbc26cb903a91f4fe22866c465b38220391093c72a3b094ca30f34", + "scripts/game/err/00_core/err_telemetry.c": "b1dc3ecab89f5e6db1ff4ba613b43755a5ae44f3612249288cd134ad850719f6", + "scripts/game/err/00_core/err_telemetrylifecycle.c": "15d2d90d4457339dacd61c1bb23b619243b8af10731687c35ecc300125a642f5", + "scripts/game/err/00_core/err_roundstatistics.c": "60e6839cc50fa02df1795a00b93fd431160f9201bdbb6f1e3b9b50271306e9fb", + "scripts/game/err/00_core/err_roundstatisticslifecycle.c": "b813a9ccea9a61c9c6d7d4806cf18adfb323d483622ca1225930207ca2436d12", + "scripts/game/err/00_core/err_telemetrycredentials.c": "9835caf69d4615d6a3fc840d9dc3cb0f507a0c5a2a6490893c21761f9cb4a216", + "scripts/game/err/00_core/err_communitystatistics.c": "84f2615fac1375bbe3738edd13a413ef1d524dea5ce0195b05b3a957aae84435", + "scripts/game/err/00_core/err_terrainsupportstations.c": "c4fe4265963ec88e24379c143edae251452c84e43a3102f5da120205f9a39c9d", + "scripts/game/err/00_core/err_passengerhandbrake.c": "3078487e077aaed1567894f6df12386aae440b790b6c134118d3afc2c4da156d", + "scripts/game/err/00_core/err_recoveryforecast.c": "0eda507fb58860c0eac1d957319d1e80e9576a870d22931c86081db748df44b6", + "scripts/game/err/00_core/err_telemetryservername.c": "7744762c4586e2543601fb0899847bed311c439cfda3dcaba825adf870628693", + "scripts/game/err/00_core/err_servervehiclecatalog.c": "bbc346188ed280d34b1b519ab7c96c6bc35df9ec3e4bfd03591cb9b8008f89f7", + "scripts/game/err/00_core/err_servervehiclesmenu.c": "d873cdd81b2350acac7068c4d59d5603437561e061a3b9ff2cde2356239da322", + "scripts/game/err/10_ai/err_aircraftcontrolbridge.c": "b8f0141644d8f043c6db4c2d4bb93215c548e5c27ab5468c66e996d62bdf905a", + "scripts/game/err/10_ai/err_aircraftfieldenvelope.c": "0f53c7d9ab167a804eb904d63725decebb53fd5796fdf27864a75abed5679838", + "scripts/game/err/10_ai/err_aircraftfieldflight.c": "c04e264cff9963821852094c451502d31bf9c96d4deae2e8ff8a2373b53b5665", + "scripts/game/err/10_ai/err_aircraftfieldrules.c": "30be68f4ca2db7e169f6f0432815821179cddf9159f7b150341dc8eb479bbd17", + "scripts/game/err/10_ai/err_aircraftflight.c": "aa25a8e67a30c48677bf528236402b7f8e5d815dc18df93b878520ad3d1fe8a7", + "scripts/game/err/10_ai/err_aircraftflightenvelope.c": "8125cef61fb283d0d7c4dd2df3c04b062b448f1101fd48dd53f4f4097df5fef3", + "scripts/game/err/10_ai/err_aircraftrouteenvelope.c": "e8fcef844239c47a1f2f36be420afe943bc450091b05859435406b46c87fa511", + "scripts/game/err/10_ai/err_aircraftrouteflight.c": "1d8d92bf6d97429d68a9f62018232e90cc124cc8d7445efeabe863706a31e2b9", + "scripts/game/err/10_ai/err_aircraftservice.c": "3f05209227986b5c6bfb193f8f53783cfd4ef083bce898e22257c3e63daed913", + "scripts/game/err/10_ai/err_convoycombat.c": "5c4b7576b28d51edea868cbb91a0ab31a40e6ddb558f1b8a38e07e20fdb2969d", + "scripts/game/err/10_ai/err_convoyplacement.c": "af4799e3028448e1a73f944989313e5d10c6262521bd29a8cdd5236842717963", + "scripts/game/err/10_ai/err_convoyroadplan.c": "fae404f85cae63e63976938a5fdb73efc988ba25c5846564f12edca04fb88551", + "scripts/game/err/10_ai/err_convoystartup.c": "360228fd45aa6ecd9426e36120b5e637d2feee1e3a4a89aac8207526b871c87e", + "scripts/game/err/10_ai/err_enemygunnerskill.c": "adf8bac5a6f7e40b2f9caff5fe9be590c4e4ce2b2b387ba39e741a3c4f4cc564", + "scripts/game/err/10_ai/err_enemyoptics.c": "215e8a05594c541861b48e093520c00091708eb0f3635dcee5d0b5e1160230eb", + "scripts/game/err/10_ai/err_enemyradio.c": "3a97e5c3de9ff33873d97c6b2d84ae505cfc4f3146e047b928e76ec3b22c8789", + "scripts/game/err/10_ai/err_hqammoreporting.c": "95c024cbdd35c02d9b0c3d389d29bb042e5dda6ffd2f5f0d896078274b3adb35", + "scripts/game/err/10_ai/err_hqbodyobserver.c": "f59421c1e0c83f0f480d7dd4d048b4b0a41193ed8fe8f2f627d2b6a696420ea1", + "scripts/game/err/10_ai/err_hqdeliveredcasualties.c": "1f738127e55e843ee2705007cedb5c08741f52f63c75eca7c80242177af82273", + "scripts/game/err/10_ai/err_hqdoctrine.c": "6335728e89ed40ce11b811f00b61bfea76e94dd3379e4357cbfc438b05522bb0", + "scripts/game/err/10_ai/err_hqjournal.c": "53563ff54fc4e0656713d6eaec5e88ddf69fd4bfa8ef6a67cfa13380d24031e1", + "scripts/game/err/10_ai/err_hqlocalhandoff.c": "2dd700dae9d9b232d22ca63ff01af75a3f5cc213ac24b7c0a43ffa38bc0b9ffa", + "scripts/game/err/10_ai/err_hqmemory.c": "ec2047a477fb4273e22ae6bb68e7365f321f55c583b5d2c48c4abf2ac38e3b7d", + "scripts/game/err/10_ai/err_hqnetwork.c": "0b73be993628a55e3b21c8670d540e39c938093dd5cb4d586e800ac530509b25", + "scripts/game/err/10_ai/err_hqobservation.c": "57ad3f0b68d150791e30a7e4bd7dfedfb1ddd78a1c76f228e67b33ea9cb7144e", + "scripts/game/err/10_ai/err_hqpursuit.c": "280e91feecc4e5b6d0886fc4201b12117b58c56857d4386b6c4cb963557274bf", + "scripts/game/err/10_ai/err_hqreport.c": "4c0c1f0e33f621d1e02375cf4f56b0e8c4ba6fd851912d3d16081949bae46158", + "scripts/game/err/10_ai/err_hqroadintercept.c": "f87727aa1c722a180c7b71fa2d896601b6250978a21bd2d1e973501fee81373b", + "scripts/game/err/10_ai/err_hqwatch.c": "abe634cf6003ae920ec1ed18e305ed462920204960894520d3dd11f7e5ef1c33", + "scripts/game/err/10_ai/err_helicopteravailability.c": "60eaef2f6d4b2fd44861c5a4434ef97e732e40a5ff7401e2da451ed2dd9c2762", + "scripts/game/err/10_ai/err_infantryammoaccess.c": "ab4262f78d54782c5ecbf5fff4ebe3da16d72329658d7e18c0c35387dc8b3c7d", + "scripts/game/err/10_ai/err_mortaraimsolution.c": "59e8343d09f7a44871d8d3335d6ad1d02216abb5deed30d38b5ec9ba3f2c0649", + "scripts/game/err/10_ai/err_mortarbattery.c": "157024afc8fd3c1ffeea6ae923ff091e5773b9ffcf5f5864f8040d001e689110", + "scripts/game/err/10_ai/err_mortarcouriertransfer.c": "968e58ca700b4a11e5e04a5c159696f514a0b1bce531210172b913e495f7e2b7", + "scripts/game/err/10_ai/err_mortarfiring.c": "2606ed8c19d5569815dacd3248f012072bb76834f429ce7557d24d884724f733", + "scripts/game/err/10_ai/err_mortarlogistics.c": "b3624e4a00a2bdef16f6c100bbd79910e3bb8c2ae8ec5fe2ad5aa70bffecd303", + "scripts/game/err/10_ai/err_mortarprediction.c": "05863b2b4f9f70cdb288f91c722cbea163c13f2a2927dc485482e5bd4fa7d57f", + "scripts/game/err/10_ai/err_mortarreadiness.c": "4c3799b3f2681e977669de0cbfaeb307d9a682b04365bfc9f59079e762965758", + "scripts/game/err/10_ai/err_mortarrefresh.c": "52ae8d9d6cad92f42d68c634091b80a474d2666b6c06d63a8c30a3fab71494c4", + "scripts/game/err/10_ai/err_mortarreportledger.c": "42a96040b63e56677353e55164ae23031c90f70b4d6673a9f412ad7b19e636ae", + "scripts/game/err/10_ai/err_mortarsalvo.c": "c128850c7a78a4d8fee00ad38f48b265f1fbd1d9b24b092ddc5c205b0f0ad6da", + "scripts/game/err/10_ai/err_mortarsystem.c": "01bae0bab685e9f0c86c3a8939d18ce6f20dc0b8c1a389d179d91e93008c6957", + "scripts/game/err/10_ai/err_nativeaircraftcontrolprobe.c": "0cf3e72ccdc42e6ef20fb71d743f0e037a9e69b2e082c720fa705628cf790205", + "scripts/game/err/10_ai/err_nativeaircraftfieldprobe.c": "b64907c7566a894ca2f3c49ede5d972d4087a938da1a0ca87bcbd7c2203b2c52", + "scripts/game/err/10_ai/err_nativeaircraftrouteprobe.c": "8d0dca97e5106d1c84b64992c789e1af0689514beefc027e713ca6ab901fc470", + "scripts/game/err/10_ai/err_nativemortarcourierprobe.c": "740c8bebbd4128a9311b1167d1058549475d6b46f81c9b6c0d19650f4b50616f", + "scripts/game/err/10_ai/err_nativemortarfiringprobe.c": "ee570d21bede8baebefc799399712d9582b3e30ebda7299f6c941777f02ad2a2", + "scripts/game/err/10_ai/err_nativemortarsalvoprobe.c": "fb9ccc6b36247ab3ad828ffbb2556abf5c2838d93ea6cd1ad259c0a015142f5e", + "scripts/game/err/10_ai/err_nativemortartransferprobe.c": "399c21940ef10777b46fdb3e905430ce43404ce1de2f4a6bb62f9c61c1a0689c", + "scripts/game/err/10_ai/err_nativepatrolhqprobe.c": "9784b551cbb91f017004fb728ce08b5c36bead0ffc83aa7149c2c46a7c4dc495", + "scripts/game/err/10_ai/err_settlementsafety.c": "e5c0ebc95521a9a33a3f7d9cca6c551dda862a08b7af20b017877aba9584795b", + "scripts/game/err/10_ai/err_supportscenario.c": "151eb6189701e559bd4f1359c91187f5a64deab1f2bacbd521c4f4cf3de6d878", + "scripts/game/err/10_ai/err_mortarstation.c": "cbbd7c86f722b664c85ab7c070ae1131d2ce5c41d1dacb4381bff9c1720a1866", + "scripts/game/err/10_ai/err_nativemortarstationprobe.c": "a110f0abc753cb1d2f781e457e637dd5346ecd2e924eb5eb3a5c7dca3d1e2340", + "scripts/game/err/10_ai/err_scoutsystem.c": "63287a252e4e7d5aefce840279f26ce3e1f286cb79cadb32596c37897cec7119", + "scripts/game/err/10_ai/err_nativescoutprobe.c": "41b39b1abe5e51a5b8a428d533cccbfb0dda9d7a570228dc3489408c60543f17", + "scripts/game/err/10_ai/err_reconairports.c": "7551347d776d6e0eec818d6468cacbca7ac53daee7317e0a1618ca3d39ebc762", + "scripts/game/err/10_ai/err_airreconsystem.c": "f8a0e3cf4552d8133efd33c2126ea15a7694676773a7047c15e00021c1d9721e", + "scripts/game/err/10_ai/err_reconflightcomponent.c": "1386e2a2d2a635417ca517aa1d8ddd4f657dd415ff59be2465543cd8f601e7a9", + "scripts/game/err/10_ai/err_nativeairreconprobe.c": "c1216e0512a0268e4dbb82429e228334401c0c3cac52ba4486ae6dc91e41576d", + "scripts/game/err/10_ai/err_reconcrewlocks.c": "83b63c21574140208792aaf3d24e3d22b255a078871382122110bb48520d4541", + "scripts/game/err/10_ai/err_airsupportpolicy.c": "c1a7ac8759ca8ec8b43cbccf303255a2f0b69de447d0d991e44b6bd3db415d51", + "scripts/game/err/10_ai/err_airassaultsystem.c": "2eaf9816eee3e1cd2ac70744a6ef7ea5a90d0a3eebdf925e384028a7edde6a42", + "scripts/game/err/10_ai/err_airassaultload.c": "de7b6c485167ab68ab0b37b96fe161ee821c2efd41362172b810448a02110e68", + "scripts/game/err/10_ai/err_assaultparachute.c": "a93c996059e7166988e9d1b0b498cbfd36f19a1cf8520cb4e9215a8884752e18", + "scripts/game/err/10_ai/err_aircraftammo.c": "2be282406d0c45ab2e35b0ced791b5e494c662588f536701a4e82e6f5fb7c913", + "scripts/game/err/10_ai/err_airfieldsupport.c": "c6d88ede0b1b6bac5a7075b6e2e783ccfa8850210aabd28bfa4bcdb698cc5f87", + "scripts/game/err/10_ai/err_airammomission.c": "0a471a40c8f7dfb797d8d35e41c5b1ff91e8d2ab13b43cf866e46c0e4ab4ed9d", + "scripts/game/err/10_ai/err_bodyrecovery.c": "f5fc311ecac4533c2d053a686c51e71216e69130a34483f27146627172914c99", + "scripts/game/err/10_ai/err_nativeairassaultprobe.c": "c1d55b338b157b758e6ffb993d5f689029b28b13929797c91e5dcb15b5e561ea", + "scripts/game/err/10_ai/err_nativeairlogisticsprobe.c": "58fe863775d0ad575cb566c78cef696c9826691cf49ef9adde76376be7316db1", + "scripts/game/err/10_ai/err_objectivedefence.c": "83ef91c2118521aedb4c1838b2e47909c80e0950086449b98ced168f1fd87080", + "scripts/game/err/10_ai/err_enemyskillawareness.c": "00c450d033e43fc45c9e2cb64a1d81161d123cc594a4292cfc5f68eb6c17ee60", + "scripts/game/err/10_ai/err_hunteropeningplan.c": "7791513b8b41f4d2ba1b593b5219d7f6e2bf036e352f8e4eb1a8029fc97ab7c8", + "scripts/game/err/10_ai/err_huntercrewrecovery.c": "22e192ca222017d4d7a27210c6e42cf0f128827bca00b37924c9c8d6866b62a4", + "scripts/game/err/10_ai/err_towngarrisons.c": "9b48331ff8bf7e5a111b498c59a57a5d0210125af983424535286a4aeda9a18d", + "scripts/game/err/10_ai/err_nativetownprobe.c": "28876e65f9f8a7d96d8056f446b61e12e97d9bbf1a5ac0d4c40edee44e6c4a21", + "scripts/game/err/10_ai/err_hqlocalawareness.c": "124260280ac8eda0e920bfcfc86932c9b21df6b1f7a6aa8acfc43feea3da149f", + "scripts/game/err/10_ai/err_huntercombat.c": "df1c319d10efd07ed6f971cf0e41d8d7e377b04ea7f0fe143bf94df733fd1d9c", + "scripts/game/err/10_ai/err_enemymedicine.c": "68b65c98214e1a27383e155727901a4f70e9c065bb0cf133bdcf7fe6d5a57a40", + "scripts/game/err/10_ai/err_infantrycombat.c": "5d7a8e579edf95003133ddb6e509202dba56ac9e68385247e1ac0256c1b319ec", + "scripts/game/err/10_ai/err_supplyconvoycolumn.c": "bd898aabcac5724d60dbecc4ff5ab6f062c66cf7c735ff59127c588ff94f898e", + "scripts/game/err/10_ai/err_convoyboardingprogress.c": "328f8a5eabb8174b7727eee1d675db83a2eb0be7b8e834db4e950a645ca5d7a3", + "scripts/game/err/10_ai/err_enemymapmarking.c": "0f161fd3e08a54e3e1063679127549e482c40253a022e9d06cd9ee4d740b8625", + "scripts/game/err/10_ai/err_vehiclealarmperception.c": "45ac71d25e10a057a26a5b0fc7128935baaf47f4c0f87208a4420fa52086fd98", + "scripts/game/err/10_ai/err_convoybudget.c": "fc7e254056c1da4aadd26d4f56d51ee375d5d3331f5f7e5183581108c7474a10", + "scripts/game/err/10_ai/err_supplyconvoysystem.c": "f09aa817c27d6af0ccfb544f4ab1ae2afafb63d626641e03d87cfe159475d821", + "scripts/game/err/10_ai/err_mountedmagazineseed.c": "b42d0aac142907433df8bedc40de24c94813544016cf5f451846f1980250f995", + "scripts/game/err/10_ai/err_finitemagazinereservation.c": "8278590ced1936d618905b0cbd0b5aebddda238d426a6a2a52e455fc36bbb502", + "scripts/game/err/10_ai/err_mountedresupply.c": "c26ad43705765be1c20eca37fbe2978b8c647151f6620ed37141657a4b7dc312", + "scripts/game/err/10_ai/err_hqcoverage.c": "0ef1ed718797114d95c636c8fa5a9e46a5f2a7ccbe3f432049b0c7d37f1eebd0", + "scripts/game/err/10_ai/err_hqtask.c": "29359f52734cbf3400e12696057bbb7aa54466a018fc88c42015b6eb9bb9990c", + "scripts/game/err/10_ai/err_hqadminprovider.c": "8879febe59fd99584add06690b29853f7cf14b580bb15c9a955cf1a2ce033908", + "scripts/game/err/10_ai/err_mountedammopickup.c": "5f7ca5b31f3b405c2a6ca32ff91042f5b4dac6ab9640ce67fb10d7a74236ba69", + "scripts/game/err/10_ai/err_mountedammotransfer.c": "0b195784497672fdaf651f336c14f7be98c257f98c85cfbeb4f96fe1a401999b", + "scripts/game/err/10_ai/err_hqminesampler.c": "2a0fdc4d27e947a1d77b02ae23f757c7fa074eb456f817b7df0766583d757f55", + "scripts/game/err/10_ai/err_hqstatussampler.c": "b937eaed913a5095afa8e678dc1c36b5c805541bf8cd5be927069533d6baed1c", + "scripts/game/err/10_ai/err_convoyminestock.c": "4497d6b790a45df2b76d18541ddaf299b406def88b868caa29f096849026a42c", + "scripts/game/err/10_ai/err_supplyconvoyservice.c": "5393efab9d663382e67b9b27a388063986a4f99c2607328c998f007588074ca4", + "scripts/game/err/10_ai/err_infantrysupplypool.c": "c8e454573cf064ff392291d6feebf1f23be64390b5b8e944c03dd065f9f46b42", + "scripts/game/err/10_ai/err_automaticequipment.c": "8658421f846fcd3402289103762edaccbe3ca26280d7d72df2846c32ae8a4cdc", + "scripts/game/err/10_ai/err_enemyloadout.c": "a48f32dbd7f209bf08fce2840aaffc1781c571fc679763be58987f6b082e776c", + "scripts/game/err/10_ai/err_enemyequipment.c": "dfb6a7aeda23adb8aff2292753b694770affc9855bff9fb11d50bb534f9219eb", + "scripts/game/err/10_ai/err_infantryminetransfer.c": "02c399413f80879c22b4891e8ec807c67a6235677095fc4b98bafdc360d6944c", + "scripts/game/err/10_ai/err_grounddepotloading.c": "6abb278409527bb67db084138a773de240d99ba7f63f9ac740f8167615d53f1d", + "scripts/game/err/10_ai/err_grounddepothq.c": "c51fccd0ecdb0a1d6ba99ae965e2e572fc1ea65a5d8dc2e1e2a058698dae45c3", + "scripts/game/err/10_ai/err_grounddepottransfer.c": "21daa9ed8cb5f2dc08a0fa85e305fa4b4f3e7b01e16c71fd1ca98d66a4e8b652", + "scripts/game/err/10_ai/err_hqammosampler.c": "8bb0ec1422887feaa340307d3c60bae50fc82d424fce6390876e580ff8b75e8b", + "scripts/game/err/10_ai/err_infantryammotransfer.c": "99fa26beb0c0869d0cd694500f3bfc0705c2c1cf674dea90d98fb93a59570ef7", + "scripts/game/err/10_ai/err_infantryresupply.c": "ca8eee2704e7758172e33014404bb1307c683f19b561b840d4592f6312051e62", + "scripts/game/err/10_ai/err_hqmountedintercept.c": "5f45545c11de5e183969203cdf07e29089697ddc89752a9c5aea0fa2a1a33a97", + "scripts/game/err/10_ai/err_hqmounteddispatch.c": "12769b56019e9fa5b8141498a1c33814ba5262253193495e72f85972365961a7", + "scripts/game/err/10_ai/err_mortarsupplytransfer.c": "ad71084f507ad9c32d3055e7ec6844a1ec5ddf568c0216ab8391e902b56e417c", + "scripts/game/err/10_ai/err_supplyconvoytactics.c": "d2fe073b0c23c877afaa65e246544751eecabce4febd72412fc9a4ec18eb1c8c", + "scripts/game/err/10_ai/err_convoyservice.c": "5abc35861aebf2e4ad00de11f040d01f784c6f2184de2e10beaf46a74ec8758c", + "scripts/game/err/10_ai/err_hunterservice.c": "c938b8beb3f72ca1b2a76b48052dee70fe52651593dcdc16b7993a9398bc92e8", + "scripts/game/err/10_ai/err_engineerminesite.c": "d838f5693d4fa5d252d529e59777f560674c02532f1041a5598e938b3a850839", + "scripts/game/err/10_ai/err_engineermine.c": "067bed625a3f4d0fa189f46476988e90528c59b2351ec0ea71916317b06efabb", + "scripts/game/err/10_ai/err_engineermineposts.c": "bcddb72845189b52e5ed71c687d7dd4b0b40b91b7306c3f6edf84a631002fc5b", + "scripts/game/err/10_ai/err_interceptvehiclefootprint.c": "5dea67d14ebab67231c485e14bc92f34c005a5f1bf6d9c0943db28e9857e958a", + "scripts/game/err/10_ai/err_hqmountedammosampler.c": "97dfab7381385959b0906be13fa2575253ac43be91a271a5d41edaf4106366ac", + "scripts/game/err/10_ai/err_civiliantraffic.c": "b6509be9cc891ba4c1fc0f3fed8b09ebb31ca69bf2e5b28b50a6060706baed73", + "scripts/game/err/10_ai/err_huntertactics.c": "274ae619589b85cf64df1510631ab914aa9fe8c50fc2a76e6e8c5aa5a2c8d9ba", + "scripts/game/err/10_ai/err_attackspace.c": "e7be303231b5946d78c61480a5de3f5b37a63d0d2281a9a30a21e59f072904d0", + "scripts/game/err/10_ai/err_hunterclosecontact.c": "56f22051566354ccdc61531af4869b62458a30d945e4d21de5aadf7079d2245b", + "scripts/game/err/10_ai/err_soldierspeechaudio.c": "4734d614c5366ae3ff57717f514664c9dfdbe4408e16ba36f6b10d807361e313", + "scripts/game/err/10_ai/err_soldierspeech.c": "ca87494ecd355052b46b72e2faf13660e458f3d376285bb0e4c20fd0112ef2e2", + "scripts/game/err/10_ai/err_soldierspeechcontext.c": "d2baa94f036f7dde5cf24e004ad1fb9416f249cbf7d0c6c07c5898f7d21751be", + "scripts/game/err/10_ai/err_huntergunteam.c": "0e66d82964ef8eeba29de11d5bb2af954ad72a8090855ac4c1b28fe1e66c0d69", + "scripts/game/err/10_ai/err_hq.c": "9bd25f9fc7e574c515c7131e8b52eb357e295822e1ce2f401e6e86cfd6ce062f", + "scripts/game/err/10_ai/err_roadblocks.c": "879f78beeb284d1298ec49dbca9624c5f3899ffc6fcd376e748bf55e4347d4bf", + "scripts/game/err/10_ai/err_roadblockmining.c": "47d0212cd20c0b320a47123d17f2b89f7d60b44072a00c69944ada7bb83c4e5a", + "scripts/game/err/10_ai/err_knownmines.c": "045468a052e485a91da601adcb42b504bb6e4ff13b096bc0666128e50a6aa9c6", + "scripts/game/err/10_ai/err_cessnabridge.c": "f1adb0f9b92f6ed94a8e9897b64e2fccba0f28552525a93f1ab893faa4fc5da2", + "scripts/game/err/10_ai/err_planeflight.c": "14fa2328e1d31cf59fb89cbb53ba33224be6cfcdd2813525fa9585f8b2e237c7", + "scripts/game/err/10_ai/err_planerecon.c": "fe94c29fd9befd3c1bf3ab97b9b27458a8563697d4d46f72df43c6e642f3664e", + "scripts/game/err/10_ai/err_equipmentlog.c": "df9eec7f94e4bf1b30b9463604e9b97ba3cbff36028a80b81327b0b021cbb2a9", + "scripts/game/err/10_ai/err_mortarspotting.c": "39b3c223ade610ed9f1d73040423339ac65c90b153f30c6f5c42290978c57427", + "scripts/game/err/10_ai/err_optionalmotorbikes.c": "87cf6544983386d29058a6f892aadbf242a517cfff4ed24348f56a72bcde8cd1", + "scripts/game/err/10_ai/err_rescueflightcomponent.c": "60db8029bbfbbb362b5bce61f509740eabea5925b93bc975e7c2b44addcf03f3", + "scripts/game/err/10_ai/err_hqexecution.c": "d286b8273faec0acf87366bf53ad2517d5b7d909741e981cdf283cd1f4f50314", + "scripts/game/err/10_ai/err_hqhypotheses.c": "060796bbbed604f9733d23e131c9836702870c6e25c81cc0b396c885eb06ade2", + "scripts/game/err/10_ai/err_hqoperations.c": "b83b805c61c3960801d24ae54854ba7aa4dc914ea89e61db365b5ec99f305ae5", + "scripts/game/err/10_ai/err_hqcoordinated.c": "5b67ad624c4a6b0bbb715314ab9cf14e527018fccb7d38af479184b4952b8c49", + "scripts/game/err/10_ai/err_hqhunteroperations.c": "b9200b6de3a3a61de94ad720aca94aca64db542acc64ba65e7b8061a5e4884e7", + "scripts/game/err/10_ai/err_hqsquadjudgment.c": "12e9ccc9d42a858a998bd46708fbb04d05d48dcf460303a5ecc1629021051bb4", + "scripts/game/err/10_ai/err_hqtacticalground.c": "eba9a9cabdaa80b936aa5e7025544e8b011fb597b96cbdb8d781583c025afbe8", + "scripts/game/err/10_ai/err_hqoperationspeech.c": "6f133c104223ce23262c2927db9e16df0f76f1ee647085114baef1d51417f4f3", + "scripts/game/err/10_ai/err_rescueassets.c": "fca1a4518baf09f0b2c97f3a51995001d9674849417fea9ca1233e8d1f578495", + "scripts/game/err/10_ai/err_huntersarkarules.c": "8c8c96e2f985f553e303f7e459b73a2a5cd0051951b22aa0ed364bc2ae19e194", + "scripts/game/err/10_ai/err_dronebridge.c": "9ad23a763c5995b2ac6f68ed02def487b0ba887e8ca68f0e546d1b6812504cc9", + "scripts/game/err/10_ai/err_dronerecon.c": "dc685b57c884d733e0ff90cf7937f5664ec08545f4cbf59d63bc8a84383dc442", + "scripts/game/err/10_ai/err_aidriverhorn.c": "db9f100c6cc10efc6f5b86e8fe9adb75657ebabee6f8bf0c89b997c2e947750a", + "scripts/game/err/10_ai/err_garagevehicles.c": "673661374e0854fd896d3d51aba84c07088057c941751b311daa4a97b899633e", + "scripts/game/err/10_ai/err_parkedcarcatalog.c": "1d865c263e910071b127ccd1bdc8b58dd45768c4629194da49705f76995ff0e7", + "scripts/game/err/20_intel/err_inteladminprovider.c": "40adf8497b64cc74b1390149fe5ba789ee2f14e6fb3c325af8f5ffa8c806878e", + "scripts/game/err/20_intel/err_intelreroll.c": "d8b04de9ea789732cc78ebce9aa60786c86fe46d05f671cf251eefa68a214b59", + "scripts/game/err/20_intel/err_intelservice.c": "2911325c79a7a372628b18ffa0e110d11919ce2c2cd7b19277bfd608fdb03dfc", + "scripts/game/err/20_intel/err_intelevidence.c": "ff436bd3c7aa0fcd5c24e940430c1ffdda934889953f63e877ae418bc9557d26", + "scripts/game/err/20_intel/err_inteldiscoveryfeedback.c": "741de1dbadfd46c154905a0918aad41386ddc139d843553db55d20d60700c020", + "scripts/game/err/20_intel/err_mineintel.c": "3ce16cebaa9703b2f9803df7c11614f94de6460a9136dab8f80dcad41ae2b1c2", + "scripts/game/err/30_map/err_scenariomap.c": "75fa1d742129ef7f33c005cd48f56db7f49ee7bde3c5428532b0b501b032b0a3", + "scripts/game/err/30_map/errm_nativemapownershipprobe.c": "32418602f085e3edba7343f42a6a691630b533be262002f29248e8ae87a38254", + "scripts/game/err/30_map/errm_sharedmapcomponent.c": "73298c94ecc8d227452b0eddfcaec7fe9df4748875fa7fafcc52544a43658f36", + "scripts/game/err/30_map/errm_nativeheldmapprobe.c": "46c0210a3aef40fc34e4c9682d9364b1cc1e15d4373d8aabfeac7d9b8e55c351", + "scripts/game/err/30_map/errm_sharedmappages.c": "2286d327b87f127f052e06c22f553b30ea31d25127b860fc02a220aeb4ce3ea2", + "scripts/game/err/30_map/errm_atlaspresentation.c": "f0b36472b16477b8c3b5b62f55cfb2a3b3a08304b0779bc39244359af1abe203", + "scripts/game/err/30_map/errm_nativeatlasanimationprobe.c": "845b39276bfdbadd6bfd9b41f445fce1a9d40231d38ef32adc7a6654868e17f2", + "scripts/game/err/40_chat/err_admincommands.c": "282fe1463add7af8771aa58507b254e69d2d06f50274d4c77321db073f8394f0", + "scripts/game/err/40_chat/err_nativeconvoycoverprobe.c": "d2450140cf9bdf09210473234605b4c0d818ea5b91f9532209166a35c5d13701", + "scripts/game/err/40_chat/err_nativehqbodyprobe.c": "811244cc8297817efbfc3ee4edf01c868eae23c88127ba0c72e98ee7422da72f", + "scripts/game/err/40_chat/err_nativehqmemoryprobe.c": "9bcd0b2e1007d40cb794aabe80368a2584ae58aad6a3ebbee070efc7b21a8147", + "scripts/game/err/40_chat/err_nativehqresponseproof.c": "0f8b09fd8753234c91fd6baaca0e2f812e409ae1c4be8f340b648ae59b69c2f3", + "scripts/game/err/40_chat/err_nativelocalhandoffprobe.c": "0d4d61c424a16008595f86fa61f3b848caf9bd6e9ebbacea9c10254d88ba378e", + "scripts/game/err/40_chat/err_nativemortarprobe.c": "ddb892141500c192c0787b011d57dd8c07dd8c9a3ca5fdc407f6c271897bde0a", + "scripts/game/err/40_chat/err_nativeradioprobe.c": "a4bd5cd9fe0594e05238b2d6dcd80466773f8fa160dc60bbe1eda70e3acdbe79", + "scripts/game/err/40_chat/err_ordinaryscenariolaunchchat.c": "a747af09599ce4d0c52051f18f00c4624d24d137e328341b580b82e896c6bf65", + "scripts/game/err/40_chat/err_nativesupplyconvoyprobe.c": "89c2696071912500840f4bb91d754f695bf674335b51a7ee1d03727084fd4869", + "scripts/game/err/40_chat/err_nativeinfantrytransferprobe.c": "9b2de4dc22bdadd51b0271219a971dc8dc07f70ed3534f306acf03ed81b29424", + "scripts/game/err/40_chat/err_nativealarmhearingprobe.c": "5dbb6a48909b76cd141e3a79ef01d2e68cafee55153821c4471f85c761fff94f", + "scripts/game/err/40_chat/err_nativemountedswapprobe.c": "a6721fcaaccadf8eddb06687c7d587d0a3e377d5d1bb0b8e72e630fede8690ac", + "scripts/game/err/40_chat/err_nativemountedcourierprobe.c": "12710e9e5548fe8856f7a52f3566338369a8a1eedf0bd92af16229271872ada5", + "scripts/game/err/40_chat/err_nativemaintenanceprobe.c": "852b9b397efc3f919c97fec63bc3df1a850cd7833421af8441994afd191951d4", + "scripts/game/err/40_chat/err_nativemountedinterceptprobe.c": "34b0b1e38a59f14c4e83d93ec412779945388e6f4d697bda2f6cb90f519a6372", + "scripts/game/err/40_chat/err_nativeconvoyprobe.c": "87df652b339df4fe4239617752ac5fd9f47aa4396ba94742a0af39a32b54e784", + "scripts/game/err/40_chat/err_nativesupplytravelprobe.c": "32e6074e912491f2643a24cb44311b9fe5b069c76e4e94a45e7409ac82d36507", + "scripts/game/err/40_chat/err_nativerandomradiustrace.c": "7e946406067092e30b6b75cc6ef0c56db7f866249e02bd13648156933ee578d9", + "scripts/game/err/40_chat/err_nativecrashgeometryprobe.c": "7867ce1794aa0d1bbab72c32f60f5bd0c2bad4f5ff6224978c215e7828840178", + "scripts/game/err/40_chat/err_nativecrashstartprobe.c": "957f40e36bfc025b8bc752b1f41dc177c8d0844c69ee5994321a47cf3ddea1ad", + "scripts/game/err/40_chat/err_nativesmoke.c": "4dfb218419db4cd7a46d25cb1f2e578e75ad89efc43f99c6ca8ab8e591e139d7", + "scripts/game/err/40_chat/err_nativemountedammoprobe.c": "7ddb634444c79ad9291d53a754dc0ed383342e36720ddaa4b7aa4bd4e7ee656d" + } +} diff --git a/docs/external-addons.json b/docs/external-addons.json index 6a5ea46e..b9bca145 100644 --- a/docs/external-addons.json +++ b/docs/external-addons.json @@ -10,7 +10,7 @@ "addons": { "595F2BF2F44836FB": { "title": "RHS: Status Quo", - "version": "0.16.5237", + "version": "0.17.5281", "dependencies": [ "58D0FB3206B6F859", "1337C0DE5DABBEEF", @@ -20,19 +20,19 @@ }, "1337C0DE5DABBEEF": { "title": "RHS: Status Quo - Content Pack 01", - "version": "0.16.5236", + "version": "0.17.5281", "dependencies": [ "58D0FB3206B6F859" ], - "project_sha256": "65197c50ff6e906a5732564e8b440d80ef1cdbcffead9eb388e1e2b56c1322bc" + "project_sha256": "09baf9fff74b1a8aadb03786d6d9ebe7159ddf074f7d46b35123501325332d98" }, "BADC0DEDABBEDA5E": { "title": "RHS: Status Quo - Content Pack 02", - "version": "0.16.5236", + "version": "0.17.5281", "dependencies": [ "58D0FB3206B6F859" ], - "project_sha256": "6ebd73d663ed6dbf981cd8bc7d19cfd5bcd3c9dec3b9a706fa331d992ef200b4" + "project_sha256": "196b2bc1da74c0b5154c7346c63989df237da487f29cff7b2094f53e0f17ff18" }, "5E389BB9F58B79A6": { "title": "WCS_SpaceCore", diff --git a/tests/test_admin_menu.py b/tests/test_admin_menu.py index 7ee386f8..9215ad09 100644 --- a/tests/test_admin_menu.py +++ b/tests/test_admin_menu.py @@ -217,7 +217,7 @@ weight_layout=(ROOT/'addons/core/UI/layouts/ERR/ItemWeightRow.layout').read_text validate_layout_structure(weight_layout) weight_names=re.findall(r'\bName "([^"]+)"', weight_layout) assert len(weight_names)==len(set(weight_names)) -for name in ('Sidebar_Items','OpenItems','OpenAllowedItems','AllowedItemsPage','OpenItemPresets','ItemPresetsPage','OpenWeights','WeightsPage','WeightsMod','WeightsShow','WeightsPrevious','WeightsNext','ModWeight','ModWeightApply','ModWeightNormal','ModWeightHigh','ModWeightSaved','WeightsChance','WeightsPageState','WeightsContent','WeightsScroll'): +for name in ('Sidebar_Content','OpenItems','OpenAllowedItems','AllowedItemsPage','OpenItemPresets','ItemPresetsPage','OpenWeights','WeightsPage','WeightsMod','WeightsShow','WeightsPrevious','WeightsNext','ModWeight','ModWeightApply','ModWeightNormal','ModWeightHigh','ModWeightSaved','WeightsChance','WeightsPageState','WeightsContent','WeightsScroll'): assert name in names, name for name in ('WeightLabel','WeightState','WeightValue','WeightApply','WeightNormal'): assert name in weight_names, name diff --git a/tests/test_civilian_traffic.py b/tests/test_civilian_traffic.py index 59c7a6b5..d022e23a 100644 --- a/tests/test_civilian_traffic.py +++ b/tests/test_civilian_traffic.py @@ -115,7 +115,9 @@ int main(){ # Integration boundaries: no military admission or late observer-driven retargets. s=p.read_text() assert '.RegisterGroup(' not in s and '.Own(' not in s -assert 'm_Serial >= 64' in body(p,'protected bool Spawn(') +spawn=body(p,'protected bool Spawn(') +assert 'm_Serial >= 64' in spawn +assert spawn.count('m_Serial++') == 1 and spawn.index('ERR_Actors.Spawn(prefab') < spawn.index('m_Serial++') < spawn.index('!ERR_VehicleSelection.RoadFit') assert 'Observers(observers, actors)' in body(p,'protected bool Spawn(') assert 'trace.ExcludeArray = excluded' in body(p,'protected bool Hidden(') assert 'sample = -1; sample <= 1' in body(p,'protected bool Hidden(') diff --git a/tests/test_content_browser.py b/tests/test_content_browser.py new file mode 100644 index 00000000..6cdf6bb5 --- /dev/null +++ b/tests/test_content_browser.py @@ -0,0 +1,28 @@ +"""Search the entire server result set before paging; exercise real filter rules.""" +from policy_harness import ROOT, body, run +p=ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_ServerItemCatalog.c' +s=body(p,'static bool Matches(').replace('array', 'Array').replace('foreach (','for (').replace('WidgetManager.Translate','Translate') +run(r''' +#include +#include +#include +#include +#include +struct string; +templatestruct Array:std::vector{}; +struct string:std::string{using std::string::string;string(std::string x):std::string(x){}bool IsEmpty(){return empty();}void ToLower(){std::transform(begin(),end(),begin(),[](unsigned char c){return std::tolower(c);});}bool Contains(string s){return find(s)!=npos;}void Split(string,Array& out,bool){std::istringstream in(*this);std::string s;while(in>>s)out.push_back(s);}}; +string Translate(string s){return s;} +''' + s + r''' +int main(){ + assert(Matches("First Aid Kit","items/medical/kit.et",true,0,"first kit")); + assert(Matches("FIRST AID KIT","items/medical/kit.et",true,1,"medical")); + assert(!Matches("First Aid Kit","items/medical/kit.et",true,2,"")); + assert(Matches("V2101 Red","cars/V2101_red.et",false,2,"v2101 RED")); + assert(!Matches("V2101 Red","cars/V2101_red.et",false,1,"")); + assert(!Matches("V2101 Red","cars/V2101_red.et",true,0,"v2101 blue")); + assert(Matches("anything","",false,0," ")); + int matches=0;for(int i=0;i<5000;i++)if(Matches("First Aid Kit","items/kit.et",i%2,2,"kit"))matches++; + assert(matches==2500); +} +''') +print('PASS: whole-catalog multiword/case-insensitive search, name/path matching, enabled/disabled filters and large result sets') diff --git a/tests/test_convoy_dispatch.py b/tests/test_convoy_dispatch.py index d3257331..d3b7e729 100644 --- a/tests/test_convoy_dispatch.py +++ b/tests/test_convoy_dispatch.py @@ -7,6 +7,7 @@ source=path.read_text() # Dispatch's native calls are doubled; budget behavior is executed separately. code=body(path,'ERR_ConvoyTask Dispatch(') code=re.sub(r'//[^\n]*','',code) +code=code.replace('array', 'Array').replace('ResourceName','string').replace('prefab.IsEmpty()', 'prefab.empty()').replace('unit->Entity.FindComponent(InventoryStorageManagerComponent)', 'unit->Entity->storage').replace('GetGame().ERR_ServerVehicles().Reject', 'Reject') code=code.replace('array','Array&') code=code.replace('SCR_AIGroup.Cast(', 'static_cast(').replace('Vehicle.Cast(', 'static_cast(') code=code.replace('FactionAffiliationComponent.Cast(unit.Entity.FindComponent(FactionAffiliationComponent))','&unit->Entity->affiliation').replace('AICarMovementComponent.Cast(unit.Entity.FindComponent(AICarMovementComponent))','&unit->Entity->movement') @@ -14,8 +15,9 @@ for cls in ['ERR_ConvoyTask','ERR_ConvoyReceipt','ERR_ForceRoute','ERR_ConvoyVeh code=re.sub(r'\b'+cls+r' ([A-Za-z_]\w*)',cls+r'* \1',code) for obj in ['m_Mode','m_Pool','task','unit','affiliation','movement']: code=re.sub(r'\b'+obj+r'\.',obj+'->',code) -for cls in ['ERR_ForceRules','ERR_ConvoyRules','ERR_ConvoyResources','ERR_Actors','ERR_HQ']: +for cls in ['ERR_ForceRules','ERR_ConvoyRules','ERR_ConvoyResources','ERR_Actors','ERR_HQ','ERR_VehicleSelection']: code=code.replace(cls+'.',cls+'::') +code=code.replace('unit->Entity.FindComponent(InventoryStorageManagerComponent)', 'unit->Entity->storage') code=code.replace('EnemyFaction().','EnemyFaction()->').replace('Group.Get','Group->Get').replace('null','nullptr') run(r''' #include @@ -28,7 +30,7 @@ struct IEntity{virtual ~IEntity()=default;}; struct FactionAffiliationComponent{void SetAffiliatedFaction(Faction*){}}; struct AICarMovementComponent{int speed=0;void SetCruiseSpeed(int v){speed=v;}}; struct SCR_AIGroup:IEntity{Faction* GetFaction(){return &enemy;}int GetAgentsCount(){return 0;}}; -struct Vehicle:IEntity{FactionAffiliationComponent affiliation;AICarMovementComponent movement;}; +struct Vehicle:IEntity{bool storage=true;FactionAffiliationComponent affiliation;AICarMovementComponent movement;}; struct ERR_GameMode{Arrayowned;Faction* EnemyFaction(){return &enemy;}void Own(IEntity* e){owned.Insert(e);}}; struct ERR_ForceRoute{}; struct ERR_ConvoyReceipt{bool used=false;}; @@ -40,6 +42,8 @@ namespace ERR_ConvoyRules{bool valid=true,clear=true,empty=true;bool EmptyCrewTe namespace ERR_ConvoyResources{bool available=true;bool Available(){return available;}string GroupPrefab(){return "group";}string VehiclePrefab(int i){return "vehicle"+std::to_string(i);}} namespace ERR_HQ{void Event(string,string){}} namespace ERR_Actors{int calls=0,fail=0;IEntity* Spawn(string prefab,vector,vector=vector{}){calls++;if(calls==fail)return nullptr;if(prefab=="group")return new SCR_AIGroup();return new Vehicle();}} +namespace ERR_VehicleSelection{bool empty=false;bool fit=true;string ForRole(int,string preferred){return empty?"":preferred;}bool RoadFit(Vehicle* v){return v&&fit;}} +void Reject(string,int){} struct Service{ERR_GameMode* m_Mode;ERR_ConvoyPool* m_Pool;Arraym_Tasks;bool current=true;int crews=0,failCrew=-1; ERR_ConvoyTask* NewTask(){return new ERR_ConvoyTask();} ERR_ConvoyVehicle* NewVehicle(){return new ERR_ConvoyVehicle();} bool Current(){return current;}bool FillCrew(ERR_ConvoyVehicle* unit){crews++;return unit->Index!=failCrew;} @@ -50,6 +54,7 @@ int main(){ ERR_ConvoyRules::valid=false;assert(!service.Dispatch(&receipt,positions,angles,&route,100));assert(!receipt.used&&ERR_Actors::calls==0);ERR_ConvoyRules::valid=true; ERR_ConvoyRules::clear=false;assert(!service.Dispatch(&receipt,positions,angles,&route,100));assert(!receipt.used&&ERR_Actors::calls==0);ERR_ConvoyRules::clear=true; ERR_ConvoyResources::available=false;assert(!service.Dispatch(&receipt,positions,angles,&route,100));assert(!receipt.used&&ERR_Actors::calls==0);ERR_ConvoyResources::available=true; + ERR_VehicleSelection::empty=true;assert(!service.Dispatch(&receipt,positions,angles,&route,100)&&!receipt.used&&ERR_Actors::calls==0);ERR_VehicleSelection::empty=false; enemy.key="US"; // A selected non-USSR enemy uses the same finite dispatch transaction. auto task=service.Dispatch(&receipt,positions,angles,&route,100);assert(task&&task->Vehicles.Count()==6&&!task->stopped&&receipt.used&&pool.consumes==1&&ERR_Actors::calls==10&&mode.owned.Count()==10&&service.crews==5); assert(task->Vehicles[2]->Released&&!task->Vehicles[2]->Entity&&!task->Vehicles[2]->Group); diff --git a/tests/test_item_preferences.py b/tests/test_item_preferences.py index 2fbc37a9..6eafe183 100644 --- a/tests/test_item_preferences.py +++ b/tests/test_item_preferences.py @@ -2,11 +2,12 @@ from policy_harness import ROOT, body, run import re p=ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_ItemPreferences.c' -methods='\n'.join(body(p,n) for n in ('static bool Name(', 'static bool Guid(', 'static bool WeightKey(', 'static bool WeightValue(', 'static bool Valid(', 'protected void Rebuild(', 'bool Enabled(', 'bool Allows(', 'bool Set(', 'int WeightSetting(', 'int Weight(', 'bool SetWeight(', 'bool Preset(')) -methods=methods.replace('weight.ToString()', 'string(std::to_string(weight))').replace('Math.Max', 'std::max').replace('ERR_CommandArguments.Integer', 'Integer') +methods='\n'.join(body(p,n) for n in ('static bool Name(', 'static bool Guid(', 'static bool RoleKey(', 'static bool WeightKey(', 'static bool WeightValue(', 'static bool Valid(', 'protected void Rebuild(', 'bool Enabled(', 'bool ModEnabled(', 'bool VehicleEnabled(', 'bool SetSwitch(', 'bool SetVehicleRole(', 'int VehicleRole(', 'bool AllowsVehicleRole(', 'bool AllowsVehicle(', 'bool Allows(', 'bool Set(', 'int WeightSetting(', 'int Weight(', 'bool SetWeight(', 'bool Preset(')) +methods=methods.replace('role.ToString()', 'string(std::to_string(role))').replace('weight.ToString()', 'string(std::to_string(weight))').replace('Math.Max', 'std::max').replace('ERR_CommandArguments.Integer', 'Integer') methods=methods.replace('protected ', '').replace('array', 'Array').replace('set keys = new set();','Array keys;') methods=methods.replace('foreach (', 'for (').replace('ResourceName','string').replace('ERR_TerrainCatalog.Key(prefab)', 'prefab').replace('SCR_AddonTool.GetResourceAddons(prefab)', 'sources') methods=methods.replace('Array sources = sources;', 'Array resourceSources = sources;').replace('project : sources','project : resourceSources') +methods=methods.replace('"01234".IndexOf', 'string("01234").IndexOf') methods=methods.replace('"0123456789abcdef".IndexOf','string("0123456789abcdef").IndexOf').replace('!records || ', '') run(r''' #include @@ -16,7 +17,7 @@ run(r''' #include struct string; templatestruct Array:std::vector{using std::vector::vector;using std::vector::operator=;int Count(){return this->size();}void Insert(T x){this->push_back(x);}bool Contains(T x){return std::find(this->begin(),this->end(),x)!=this->end();}void Clear(){this->clear();}}; -struct string:std::string{using std::string::string;string(std::string x):std::string(x){}bool IsEmpty(){return empty();}int Length(){return size();}int IndexOf(string s){auto i=find(s);return i==npos?-1:int(i);}string Substring(int a,int n){return substr(a,n);}int ToInt(){return std::stoi(*this);}void Split(string delim,Array& out,bool){size_t a=0;while(true){auto b=find(delim,a);out.Insert(substr(a,b==npos?b:b-a));if(b==npos)break;a=b+delim.size();}}}; +struct string:std::string{using std::string::string;string(std::string x):std::string(x){}bool StartsWith(string s){return find(s)==0;}bool IsEmpty(){return empty();}int Length(){return size();}int IndexOf(string s){auto i=find(s);return i==npos?-1:int(i);}string Substring(int a,int n){return substr(a,n);}int ToInt(){return std::stoi(*this);}void Split(string delim,Array& out,bool){size_t a=0;while(true){auto b=find(delim,a);out.Insert(substr(a,b==npos?b:b-a));if(b==npos)break;a=b+delim.size();}}}; templatestruct Map{std::map data;bool Contains(string k){return data.count(k);}T Get(string k){return data[k];}void Set(string k,T v){data[k]=v;}void Clear(){data.clear();}}; bool Integer(string s,int& n){try{size_t end;n=std::stoi(s,&end);return end==s.size();}catch(...){return false;}} struct Prefs{Array m_Records={"active"},sources={"base-project","mod-project"};Map m_Rules;Map m_Loaded;int m_Revision=0;bool fail=false; @@ -55,6 +56,8 @@ int main(){ auto old=p.m_Records;int revision=p.m_Revision;p.fail=true; assert(!p.Set(b,"*",true)&&p.m_Records==old&&p.m_Revision==revision); assert(!p.Preset("save","failed")&&p.m_Records==old); + assert(!p.SetSwitch(a,"mod",false)&&p.m_Records==old&&p.m_Revision==revision); + assert(!p.SetSwitch(a,"v"+i,false)&&p.m_Records==old&&p.m_Revision==revision); assert(!p.Preset("delete","custom")&&p.m_Records==old); p.fail=false; assert(p.Preset("save","custom")&&p.Preset("delete","custom")&&!p.Preset("load","custom")); @@ -66,6 +69,28 @@ int main(){ assert(!p.Valid({"active","active|1111111111111111|*|2"})); assert(!p.Valid({"active","active|1111111111111111|*|0","active|1111111111111111|*|1"})); assert(!p.Valid({"active","missing|1111111111111111|*|0"})); + // Master disable preserves per-item and per-vehicle decisions; all-items does not erase either gate or vehicle rules. + p.fail=false; p.m_Loaded.Set("base-project",a);p.m_Loaded.Set("mod-project",b); + assert(p.Set(a,"*",true)&&p.Set(b,"*",true)); + assert(p.Set(a,i,false));assert(p.SetSwitch(a,"v"+j,false)); + assert(p.SetSwitch(a,"mod",false)&&!p.Allows(j)&&!p.AllowsVehicle(i)); + assert(p.Set(a,"*",true)&&!p.ModEnabled(a)&&!p.VehicleEnabled(a,j)); + assert(p.SetSwitch(a,"mod",true)&&p.Allows(j)&&p.AllowsVehicle(i)&&!p.AllowsVehicle(j)); + assert(p.Set(a,i,false)&&p.SetSwitch(a,"v*",true)&&!p.Allows(i)&&p.AllowsVehicle(j)); + assert(p.Preset("save","replacement")&&p.SetSwitch(a,"mod",false)&&p.Preset("load","replacement")&&p.ModEnabled(a)); + assert(!p.SetSwitch(a,"vbad",false)&&!p.SetSwitch("../", "mod",false)); + // New vehicles are opt-in, role choices independent, explicit source denials win. + assert(p.SetVehicleRole(a,j,2,true)&&p.AllowsVehicleRole(j,2,false)); + assert(!p.AllowsVehicleRole(j,3,false)); + assert(p.SetVehicleRole(b,j,2,false)&&!p.AllowsVehicleRole(j,2,false)); + assert(p.SetVehicleRole(b,j,2,true)&&p.AllowsVehicleRole(j,2,false)); + assert(p.SetVehicleRole(a,"*",3,true)&&p.AllowsVehicleRole(j,3,false)); + assert(p.SetVehicleRole(a,j,3,false)&&!p.AllowsVehicleRole(j,3,false)&&p.AllowsVehicleRole(j,2,false)); + assert(p.Preset("save","replacement")&&p.SetVehicleRole(a,j,2,false)&&p.Preset("load","replacement")&&p.AllowsVehicleRole(j,2,false)); + assert(p.SetSwitch(a,"mod",false)&&!p.AllowsVehicleRole(j,2,true)&&p.SetSwitch(a,"mod",true)&&p.AllowsVehicleRole(j,2,false)); + int before=p.m_Revision;p.fail=true;assert(!p.SetVehicleRole(a,j,2,false)&&p.m_Revision==before&&p.AllowsVehicleRole(j,2,false));p.fail=false; + assert(!p.SetVehicleRole(a,j,5,true)&&!p.SetVehicleRole(a,j,-1,true)&&!p.SetVehicleRole(a,"bad",0,true)); + assert(!p.Valid({"active","active|1111111111111111|r5*|1"})); assert(!p.Set("../x",i,true)&&!p.Set(a,"unknown",true)); } ''') diff --git a/tests/test_server_item_catalog.py b/tests/test_server_item_catalog.py index 3a68e7f1..eb62c444 100644 --- a/tests/test_server_item_catalog.py +++ b/tests/test_server_item_catalog.py @@ -1,8 +1,9 @@ """Exercise per-admin catalog navigation; discovery itself is checked natively.""" from policy_harness import ROOT, body, run core=ROOT/'addons/core/Scripts/Game/ERR/00_Core' -s=body(core/'ERR_AdminSession.c','protected bool ItemCatalogCommand(') +s=body(core/'ERR_AdminSession.c','protected bool ItemCatalogCommand(')+'\n'+body(core/'ERR_AdminSession.c','protected bool VehicleCatalogCommand(') for a,b in [('protected ',''),('array replies','Array& replies'),('array parts','Array parts'),('ERR_ServerItemCatalog catalog','Catalog* catalog'),('GetGame().ERR_ServerItems()','GetCatalog()'),('GetGame().ERR_ItemSelections().','preferences.'),('catalog.','catalog->'),('ERR_CommandArguments.Integer','Integer')]:s=s.replace(a,b) +s=s.replace('query.Length()', 'int(query.size())').replace('ERR_ServerVehicleCatalog catalog', 'Catalog* catalog').replace('GetGame().ERR_ServerVehicles()', 'GetCatalog()') run(r''' #include #include @@ -10,12 +11,12 @@ run(r''' #include struct string; templatestruct Array:std::vector{using std::vector::vector;bool IsEmpty(){return this->empty();}int Count(){return this->size();}void Insert(T x){this->push_back(x);}}; -struct string:std::string{using std::string::string;string(std::string s):std::string(s){}void Split(string,Array& out,bool){std::istringstream in(*this);std::string word;while(in>>word)out.push_back(word);}}; -struct Catalog{bool Contains(string a,string i){return a=="loaded-a"&&i=="known-item";}void Start(void*){}bool Find(string s){return s=="loaded-a"||s=="loaded-b";}} catalog; +struct string:std::string{using std::string::string;string(std::string s):std::string(s){}bool IsEmpty(){return empty();}void Split(string,Array& out,bool){std::istringstream in(*this);std::string word;while(in>>word)out.push_back(word);}}; +struct Catalog{bool Contains(string a,string i){return a=="loaded-a"&&i=="known-item";}bool Capable(string i,int r){return i=="known-item"&&r!=4;}void Start(void* unused=nullptr){}bool Find(string s){return s=="loaded-a"||s=="loaded-b";}} catalog; Catalog* GetCatalog(){return &catalog;} bool Integer(string s,int& n){try{size_t p;n=std::stoi(s,&p);return p==s.size();}catch(...){return false;}} -struct Preferences{int edits=0;bool Preset(string action,string name){edits++;return action=="save"&&name=="test";}bool Set(string,string,bool){edits++;return true;}bool SetWeight(string,string,int){edits++;return true;}} preferences; -struct Session{void* m_Mode=nullptr;string m_ItemAddon;int m_ItemPage=0; +struct Preferences{int edits=0;bool Preset(string action,string name){edits++;return action=="save"&&name=="test";}bool Set(string,string,bool){edits++;return true;}bool SetVehicleRole(string,string,int,bool){edits++;return true;}bool SetSwitch(string,string,bool){edits++;return true;}bool SetWeight(string,string,int){edits++;return true;}} preferences; +struct Session{void* m_Mode=nullptr;string m_ItemAddon;int m_ItemPage=0,m_ItemFilter=0;string m_ItemQuery,m_VehicleAddon,m_VehicleQuery;int m_VehiclePage=0,m_VehicleFilter=0,m_VehicleRole=0; ''' + s + r''' }; int main(){Session a,b;Array replies; @@ -36,6 +37,21 @@ int main(){Session a,b;Array replies; a.ItemCatalogCommand("items weight loaded-a * 100",replies);assert(preferences.edits==4); a.ItemCatalogCommand("items weight loaded-a known-item 0",replies);assert(preferences.edits==5); assert(a.m_ItemAddon=="loaded-a"&&a.m_ItemPage==0); + a.ItemCatalogCommand("items browse loaded-a 2 2 first aid",replies); + assert(a.m_ItemPage==2&&a.m_ItemFilter==2&&a.m_ItemQuery=="first aid"); + a.VehicleCatalogCommand("vehicles browse loaded-b 1 1 2 red",replies); + assert(a.m_VehicleAddon=="loaded-b"&&a.m_VehiclePage==1&&a.m_VehicleQuery=="red"&&a.m_ItemAddon=="loaded-a"); + b.VehicleCatalogCommand("vehicles browse loaded-a 0 0 1",replies);assert(a.m_VehicleAddon=="loaded-b"); + a.VehicleCatalogCommand("vehicles role unknown 0 * 0",replies);assert(preferences.edits==5); + a.VehicleCatalogCommand("vehicles role loaded-a 0 unknown-item 0",replies);assert(preferences.edits==5); + a.ItemCatalogCommand("items browse loaded-a 2 3",replies);assert(a.m_ItemFilter==2); + a.ItemCatalogCommand("items mod loaded-a 0",replies);assert(preferences.edits==6); + a.ItemCatalogCommand("items mod unknown 0",replies);assert(preferences.edits==6); + a.VehicleCatalogCommand("vehicles role loaded-a 2 known-item 0",replies);assert(preferences.edits==7); + for(string bad:{"vehicles role loaded-a 4 known-item 1","vehicles role loaded-a 5 known-item 1","vehicles role loaded-a -1 * 1","vehicles role loaded-a 2 known-item 2"})a.VehicleCatalogCommand(bad,replies); + assert(preferences.edits==7&&a.m_VehicleRole==2&&b.m_VehicleRole==1); + a.VehicleCatalogCommand("vehicles browse loaded-a 0 0 5",replies);assert(a.m_VehicleRole==2); + a.VehicleCatalogCommand("vehicles role loaded-a 3 * 0",replies);assert(preferences.edits==8); } ''') command=body(core/'ERR_AdminSession.c','void Command(') diff --git a/tests/test_vehicle_roles.py b/tests/test_vehicle_roles.py new file mode 100644 index 00000000..2993252b --- /dev/null +++ b/tests/test_vehicle_roles.py @@ -0,0 +1,50 @@ +"""Production candidate and patrol crew limits for optional discovered vehicles.""" +from policy_harness import ROOT, body, run +p=ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_ServerVehicleCatalog.c' +s=body(p,'static bool Candidate(')+'\n'+body(p,'static bool PatrolSeats(') +run(r''' +#include +#include +#include +struct string:std::string{using std::string::string;void ToLower(){std::transform(begin(),end(),begin(),[](unsigned char c){return std::tolower(c);});}bool Contains(string s){return find(s)!=npos;}bool EndsWith(string s){return size()>=s.size()&&compare(size()-s.size(),s.size(),s)==0;}}; +''' + s + r''' +int main(){ + assert(Candidate("{guid}Prefabs/Vehicles/MyAddon_NewCar.et")); + assert(!Candidate("Prefabs/Vehicles/Car_Base.et")); + assert(!Candidate("Prefabs/Vehicles/Parts/Engine.et")); + assert(!Candidate("Prefabs/Vehicles/Turrets/PKM.et")); + assert(!Candidate("Prefabs/Vehicles/Car_wreck.et")); + assert(!Candidate("Prefabs/Weapons/Gun.et")); + assert(PatrolSeats(1,0,3,4));assert(PatrolSeats(1,1,0,2));assert(PatrolSeats(1,0,14,15)); + assert(!PatrolSeats(0,1,3,4));assert(!PatrolSeats(2,1,3,6));assert(!PatrolSeats(1,0,0,1)); + assert(!PatrolSeats(1,0,15,16));assert(!PatrolSeats(1,1,1,5)); +} +''') +print('PASS: optional vehicle discovery excludes parts/wrecks/base templates; bounded custom patrol crews accept cars and gun crews without extra bodies') +choice=body(p,'ResourceName Choose(int role, ResourceName preferred, bool otherDefaults = true)') +choice=choice.replace('ResourceName','string').replace('array','Array').replace('Math.RandomInt','RandomInt') +choice=choice.replace('foreach (string key, ERR_VehicleEntry entry : m_Entries)', 'for (auto& [key, entry] : m_Entries)').replace('entry.', 'entry->') +run(r''' +#include +#include +#include +#include +#include +struct string:std::string{using std::string::string;bool IsEmpty(){return empty();}}; +templatestruct Array:std::vector{using std::vector::vector;bool Contains(T v){return std::find(this->begin(),this->end(),v)!=this->end();}void Insert(T v){this->push_back(v);}bool IsEmpty(){return this->empty();}int Count(){return this->size();}}; +struct ERR_VehicleEntry{string Prefab;int Defaults;int allowed;}; +struct Catalog{std::mapm_Entries;void Start(){}bool Allowed(string p,int r){auto it=m_Entries.find(p);return it!=m_Entries.end()&&(it->second->allowed&(1<